- PVSM.RU - https://www.pvsm.ru -
Зачем заморачиваться и тратить деньги и ресурсы на security? Зачем утруждать себя постановкой Security Development Lifecycle (SDL)? Зачем заниматься интеграцией fuzzing’а в процесс разработки? Зачем занимать голову знаниями о различных фаззерах типа AFL, libfuzz и т.д.? Ведь можно “просто” превратить поиск уязвимостей в своих продуктах в сплошное мучение и устроить исследователям и злоумышленникам “сладкую” жизнь. Хотите знать, как это сделать? Тогда добро пожаловать под кат!
Disclaimer: Данную статью стоит воспринимать с определенной долей юмора и иронии!
В последнее время появляется все больше работ, посвящённых теме AntiFuzzing’а. AntiFuzzing — это действие, уменьшающее эффективность и пользу fuzzing’a для поиска уязвимостей в решении(ях) разработчика.
В статье речь пойдет о fuzzing'е бинарных приложений, написанных на СС++, которые можно развернуть локально, и попытаться найти в них уязвимости, связанные с повреждением памяти.
Сегодня большое количество действий нацелены против AFL фаззера, как наиболее яркого, известного и зарекомендовавшего себя представителя подхода feedback based fuzzing.
Изучив проблему, мы выделили возможные техники AntiFuzzing’а:
Таким образом, у AntiFuzzing’a есть как очевидные преимущества, так и недостатки:
Почему использовать данный подход для обеспечения безопасности глупо и вредно? Разработка качественного AntiFuzzing подхода и его применения к реальному ПО по сложности сопоставима с разработкой самого алгоритма для увеличения покрытия кода при feedback based fuzzing. Сложность в том, что помимо того, чтобы вставить в нужные места затрудняющие фазинг конструкции, необходимо сделать так, чтобы у них не было четкого паттерна, который можно выделить, а дальше — просто исключить. AntiFuzzing не повышает безопасность самого приложения… Хорошо, что пока исследованиями AntiFuzzing’a занимаются только в академической среде. При этом, существуют компании, которые наоборот ориентированы на упрощение поиска багов. Например, Mozilla предоставляют для этого специальную сборку своего браузера blog.mozilla.org/security/2018/07/19/introducing-the-asan-nightly-project [1]!
Всплеск интереса к AntiFuzzing’у вызван в первую очередь DARPA Cyber Grand Challenge 2016. Это соревнование, где компьютеры без помощи человека искали уязвимости, эксплуатировали и патчили их. В основе большинства систем для поиска, как вы могли догадаться, лежал AFL фаззер, а все цели на соревновании были бинарными приложениями. Всё это может быть направлено на противодействие автоматическим системам, а не людям.
Данная статья базируется на работах, которые вы можете изучить самостоятельно:
P.S.: Мы часто работаем с AFL (+libfuzz) и его модификациями при исследовании ПО и внедрении SDL нашим клиентам. Поэтому в одной из следующих статей мы подробнее поговорим на тему fuzzing’a с помощью AFL и о том, почему все больше людей используют его в тестировании программ и как это повышает уровень безопасности разработок.
Автор: d1g1
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/297376
Ссылки в тексте:
[1] blog.mozilla.org/security/2018/07/19/introducing-the-asan-nightly-project: https://blog.mozilla.org/security/2018/07/19/introducing-the-asan-nightly-project/
[2] «Escaping the Fuzz Evaluating Fuzzing Techniques and Fooling them with AntiFuzzing»: http://publications.lib.chalmers.se/records/fulltext/238600/238600.pdf
[3] «Chaff Bugs: Deterring Attackers by Making Software Buggier»: https://arxiv.org/pdf/1808.00659.pdf
[4] «AFL's Blindspot and How to Resist AFL Fuzzing for Arbitrary ELF Binaries»: https://imagemanager.ubm-us.net/images/blackhat.com/us-18/Wed-August-8/us-18-Li-AFLs-Blindspot-And-How-To-Resist-AFL-Fuzzing-For-Arbitrary-ELF-Binaries.pdf
[5] «Introduction to Anti-Fuzzing: A Defence in Depth Aid»: https://www.nccgroup.trust/uk/about-us/newsroom-and-events/blogs/2014/january/introduction-to-anti-fuzzing-a-defence-in-depth-aid/
[6] Источник: https://habr.com/post/428067/?utm_campaign=428067
Нажмите здесь для печати.