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