Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Fuzzing исследование уязвимостей методом грубой силы.pdf
Скачиваний:
1127
Добавлен:
13.03.2016
Размер:
5.96 Mб
Скачать

Типы фаззеров

65

ternet Explorer. Также фаззингу могут быть подвергнуты графика и за$ головки сервера. Вот лучшие средства для фаззинга веб$броузеров:

mangleme1 от lcamtuf. Первый общедоступный фаззер HTML. Это скрипт CGI, который постоянно отсылает в броузер поврежденные данные HTML.

DOM+Hanoi2 Х. Д. Мура и Авива Раффа. Фаззер DHTML.

Hamachi3 Х. Д. Мура и Авива Раффа. Тоже фаззер DHTML.

CSSDIE4 Х. Д. Мура, Авива Раффа, Мэтта Мерфи и Терри Золле+ ра. Фаззер CSS.

COM Raider5 Дэвида Зиммера (David Zimmer). Простой фаззер с гра$ фическим интерфейсом для объектов COM и ActiveX.

Фаззинг объектов COM и ActiveX подробно анализируется в главе 17 «Фаззинг веб$броузеров» и главе 18 «Фаззинг веб$броузера: автомати$ зация». Фаззинг графических файлов и CSS в контексте фаззинга веб$ броузеров специально не рассматриваются; к ним применимы те же принципы, что и к фаззингу формата файла.

Фаззеры оперативной памяти

Порой во время тестирования что$то препятствует быстрому и эффек$ тивному фаззингу. Тут может оказаться полезным фаззинг оператив$ ной памяти. Основная идея проста, но разработка ее далека от триви$ альной. Один из подходов требует «заморозки» и моментального сним$ ка процесса и быстрого вброса ошибочных данных в один из шаблонов анализа ввода. После каждого случая тестирования делается новый снимок, вбрасываются новые данные. Так повторяется, пока все слу$ чаи для тестирования не закончатся. Как и любой другой способ фаз$ зинга, фаззинг оперативной памяти имеет свои преимущества и недос$ татки. Среди преимуществ отметим:

Скорость. Не приходится иметь дело с пропускной способностью сети, к тому же можно игнорировать тот не имеющий значения код, который исполняется между получением пакета из сети и собствен$ но анализом; в результате тестирование улучшается.

Ярлыки. Иногда протокол использует обычные алгоритмы кодиро$ вания или сжатия или же содержит код проверки контрольной сум$ мы. Вместо того чтобы тратить время на создание фаззера, который мог бы работать со всем этим, стоит создать фаззер внутренней па$ мяти, который может сделать моментальный снимок после извле$

1http://freshmeat.net/projects/mangleme/

2http://metasploit.com/users/hdm/tools/domhanoi/domhanoi.html

3http://metasploit.com/users/hdm/tools/hamachi/hamachi.html

4http://metasploit.com/users/hdm/tools/see+ess+ess+die/cssdie.html

5http://labs.idefense.com/software/fuzzing.php#more_comraider

66

Глава 3. Методы и типы фаззинга

чения, декодирования, проверки контрольной суммы, чем сэконо$ мит множество сил.

Из недостатков фаззинга оперативной памяти важны следующие:

Ложные результаты. Поскольку в адресное пространство вбрасыва$ ются сырые данные, могут наблюдаться случаи, когда полученные данные на самом деле не могут исходить из внешнего источника.

Воспроизведение. Хотя появление исключения может сигнализиро$ вать об условии функционирования, тестеру по$прежнему придется иметь дело с задачей воспроизведения исключаения вне процесса. Это может отнять много времени.

Сложность. Как мы увидим в главе 19 «Фаззинг оперативной па$ мяти» и главе 20 «Фаззинг оперативной памяти: автоматизация», этот метод фаззинга очень сложен для выполнения.

Интегрированные среды фаззеров

Интегрированные среды фаззеров (фреймворки) могут применяться к различным объектам. Интегрированная среда фаззеров – это просто универсальный фаззер или библиотека фаззеров, которая упрощает представление данных для многих типов объектов. Некоторые фаззе$ ры, которые мы уже упоминали, на самом деле представляют собой фреймворки, например SPIKE и Peach.

Обычно интегрированные среды фаззеров включают библиотеку, кото$ рая производит фаззинговые строки или значения, обычно вызываю$ щие проблемы при анализе. Также типичен набор шаблонов для упро$ щения ввода и вывода в сети и на диске. Кроме того, в интегрирован$ ные среды фаззеров должен входить особого рода скриптоподобный язык, который можно использовать для создания специфического фаз$ зера. Интегрированные среды фаззеров популярны, но никоим образом не являются окончательным ответом. По отношению к созданию и ис$ пользованию систем существуют «за» и «против». Вот преимущества:

Возможность повторного применения. Если создана действитель$ но универсальная система фаззеров, ее можно применять постоян$ но при фаззинге различных объектов.

Возможность общественной помощи. Куда проще добиться помо$ щи общества для создания крупного проекта, который может быть использован различными способами, чем загнать большую группу разработчиков трудиться над маленьким проектом для решения очень узкой проблемы, как в случае с фаззерами для определенных типов протоколов.

Среди недостатков интегрированных сред фаззеров следующие:

Ограничения. Даже если система создана с большой аккуратно$ стью, вполне возможно, что тестеру попадется объект, который

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]