Концепция изменилась: Чтобы сделать ПО безопасным, в него нужно добавить побольше «дыр»

«Соломенные баги»

Исследователи из Нью-Йоркского университета нашли оригинальный способ повысить безопасность программных продуктов — путем целенаправленного увеличения в них количества уязвимостей. Речь идет не о настоящих, рабочих уязвимостях, а о ложных багах-приманках, которые на первый взгляд выглядят как настоящие, но на самом деле их нельзя эксплуатировать.

Идея заключается в том, что на изучение этих багов хакер потратит время, что отвлечет его от поиска и изучения настоящих «дыр». Если хакер ограничен во времени, то он может просто не успеть взломать код, или же может посчитать, что конечный результат не стоит таких усилий, в результате чего атака потерпит крах.

Исследование под названием «Соломенные баги: как сдержать атакующего, сделав ПО более уязвимым» (Chaff Bugs: Deterring Attackers by Making Software Buggier) было опубликовано Чжэньхао Ху (Zhenghao Hu), Юй Ху (Yu Hu) и Бренданом Доланом-Гавиттом (Brendan Dolan-Gavitt). Описание исследования можно найти на сайте библиотеки Корнеллского университета.

Как родилась идея

Брендан Долан-Гавитт, доцент Политехнического института Нью-Йоркского университета сообщил изданию Motherboard, что исследователи несколько лет работали над методиками автоматического внедрения уязвимостей в программный код — это было необходимо для тестирования различных систем обнаружения «дыр». Создав такую методику, они начали искать ей другие применения.

bug650.jpg

На первом этапы исследования уязвимостей хакер тратит драгоценное время на изучение фальшивок

Долан-Гавитт поясняет, что многие его коллеги зарабатывают тем, что пишут эксплойты. Он обращает внимание на то, что между обнаружением уязвимости и созданием рабочего эксплойта проходит много времени и тратится много усилий. Именно этим и решили воспользоваться авторы исследования в борьбе с хакерами.

«Люди, которые могут писать эксплойты — редкость, и их время дорого стоит. Поэтому если вы сможете понять, как потратить это время впустую, вы потенциально получите значительный сдерживающий эффект», — поясняет ученый.

Автоматизация процесса

Взлом программного продукта через найденную в нем уязвимость состоит из нескольких этапов. На первом этапе хакер оценивает, можно ли с помощью какой-либо уязвимости причинить реальный вред системе, потом создает эксплойт и помещает его обратно в систему. Для оценки уязвимостей используются специальные инструменты, которые и нужно обмануть ложными уязвимостями, замаскированными под настоящие.

Исследователи смогли создать прототип алгоритма, который способен сгенерировать несколько видов багов, непригодных для эксплуатации, и внедрять их тысячами в крупные программные продукты. Это позволит растратить впустую значительную часть времени хакера, которому придется заниматься оценкой заведомо ложных уязвимостей.

Долан-Гавитт отмечает, что изобретение вызвало большой интерес со стороны пользователей интернета именно благодаря простоте идеи. Вместе с тем он предупреждает, что в силу многих ограничений, эта методика может никогда не получить практического применения, или по крайней мере не скоро станет широко используемой. Во-первых, ее нельзя использовать на открытом ПО. Во-вторых, необходимо тщательно проверять, что «соломенные баги» действительно безвредны, и одновременно эти баги должны на первый взгляд ничем не отличаться от настоящих. Несмотря на это, авторы идеи полагают, что ее стоит развивать дальше, и что такая методика может найти практическое применение в отдельных сферах.