Группа экстренного реагирования на проблемы компьютерной безопасности CERT представила инструментарий Basic Fuzzing Framework (BFF), предназначенный для автоматизации процесса определения наличия уязвимостей в программном обеспечении. В состав пакета входит виртуальная машина на базе Linux и набор perl-скриптов для проведения испытаний программ при попытке обработки различных наборов данных. Код инструментария распространяется в рамках лицензии GPLv2.
Суть реализованного метода сводится к изучению реакции приложения при подаче на вход всевозможных комбинаций из специально сформированных некорректных или приближенных к реальным наборов данных. В случае наличия недоработок в программе, например, отсутствия должных проверок, в процессе испытания будет зафиксирован крах, ошибка или отклонение от штатного поведения. В дальнейшем проанализировав какой именно набор данных вызвал отклонение, исследователь может локализовать проблемный участок кода в программе.
Образ виртуальной машины представляет собой урезанную версию Debian, снабженную графической оболочкой на базе оконного менеджера Fluxbox, измененного в плане отключения функции установки фокуса на окно, что необходимо для организации работы во время тестирования в Basic Fuzzing Framework графических приложений. Для организации доступа к файлам вне виртуального окружения в состав интегрирован пакет VMware Tools. В состав включен набор для сборки программ, но утилита strip заменена на /bin/true для предотвращения очистки отладочной информации во время сборки программы.
В качестве программы для перебора вариантов использовано приложение zzuf, с использованием которого осуществляется накопление данных из stderr-потока, анализа памяти с использованием valgrind и сохранение обратной трассировки в случае краха (gdb backtrace). В скрипте предусмотрена функция автоматического выявления повторяющихся причин краха при обработке разных данных, которая реализована через анализ обратных трассировок.
Настройка параметров проверки производится через файл конфигурации zzuf.cfg. По умолчанию, в качестве примера, настройки оформлены для проверки пакета ImageMagick, но их несложно адаптировать по аналогии для проверки любого другого приложения. Включенная в поставку в демонстрационных целях версия ImageMagic 5.2.0 имеет проблемы, которые выявляются при определенном стечении входных данных при их попытке конвертирования утилитой convert.
|