
Этот проект содержит исходный код CERT Basic Fuzzing Framework (BFF) и CERT Failure Observation Engine (FOE).
Этот проект содержит исходный код для CERT Basic Fuzzing Framework (BFF)
BFF для Windows ранее был известен как CERT Failure Observation Engine (FOE).
В зависимости от предпочитаемого уровня сложности и опыта выберите один из вариантов ниже.
Большая часть кода BFF находится в пакете certfuzz src/certfuzz. Чтобы опробовать код certfuzz в существующей установке BFF, замените каталог certfuzz в вашей установке на каталог certfuzz из этого репозитория.
Некоторые платформозависимые вещи находятся в src/windows и src/linux. BFF для OSX также использует src/linux. Смотрите src/linux/README и src/windows/README.txt для чтения, специфичных для платформы, и src/linux/INSTALL, если вы чувствуете себя особенно авантюрно.
Мы на самом деле используем систему непрерывной интеграции с некоторыми платформозависимыми инструментами в сочетании с кодом в каталоге build/ для сборки релизов, найденных по ссылкам выше. Однако в настоящее время код сборки не ожидается, что будет работать где-либо, кроме этой среды. Фактически, код в ветке master был ориентирован на SVN, так что он даже не работал, когда мы перешли на git. Мы исправили это в нашей внутренней системе разработки, но ещё не объединили это с кодом, опубликованным здесь.
Кроме того, сборочные скрипты изменяют некоторые файлы и перемещают их, чтобы собрать пакеты релизов и построить установщики. Имена файлов (но не обязательно их расположение) в каталогах src/ обычно остаются нетронутыми, так что вы сможете понять, куда что идёт, если вы ищете за пределами каталога src/certfuzz. (Как упоминалось в разделе Лёгкий выше, src/certfuzz должен быть просто заменой.)
Если всё это кажется вам скорее вызовом, чем предупреждением, дерзайте.
Смотрите src/experimental/README.md о некоторых тупиковых направлениях, которые могут быть отчасти полезны.
CERT Basic Fuzzing Framework (BFF) — это инструмент тестирования программного обеспечения, который находит дефекты в приложениях, работающих на Linux, Mac OS X и Windows.
BFF выполняет мутационное фаззинг-тестирование программного обеспечения, принимающего файловый ввод. Он автоматически собирает тестовые случаи, которые вызывают уникальные сбои программного обеспечения, а также отладочную информацию, связанную с этими сбоями. Цель BFF — минимизировать усилия, необходимые разработчикам ПО и исследователям безопасности для эффективного обнаружения и анализа уязвимостей, найденных с помощью фаззинга.
Мутационное фаззинг-тестирование — это действие по взятию корректных входных данных и их искажению различными способами в поисках случаев, вызывающих сбои. BFF автоматически собирает тестовые случаи, которые вызывают уникальные сбои программного обеспечения, а также отладочную информацию, связанную с этими сбоями. Цель BFF — минимизировать усилия, необходимые разработчикам ПО и исследователям безопасности для эффективного обнаружения и анализа уязвимостей, найденных с помощью фаззинга.
Традиционно фаззинг был очень эффективен для поиска уязвимостей, но из-за его стохастической природы результаты могут сильно зависеть от начальной конфигурации системы фаззинга. BFF применяет методы машинного обучения и эволюционных вычислений, чтобы минимизировать объём ручной настройки, необходимой для запуска и завершения эффективной фаззинг-кампании. BFF регулирует свои параметры конфигурации на основе того, что он находит (или не находит) в ходе кампании. Тем самым он может значительно повысить как эффективность, так и производительность кампании. В результате для настройки эффективной фаззинг-кампании не требуется экспертное знание, и новички, и эксперты могут быстро начать находить и анализировать уязвимости.
Ниже приведены некоторые конкретные функции, доступные в BFF:
В CERT/CC мы использовали инфраструктуру BFF для поиска ряда критических уязвимостей в таких продуктах, как Adobe Reader и Flash Player; Foxit Reader; Apple QuickTime, Preview и Mac OS X; Xpdf; Poppler; FFmpeg; JasPer; Wireshark; видеокодек VMware VMnc; видеокодек Indeo; и многих других. Смотрите Public Vulnerabilities Discovered Using BFF.
BFF и FOE начинались как два отдельных, но связанных проекта в команде анализа уязвимостей CERT/CC. Со временем их архитектуры сошлись до такой степени, что BFF 2.7 и FOE 2.1 разделяли большую часть своего кода. Начиная с BFF 2.8, эта интеграция завершена, и мы отказались от названия FOE в пользу BFF.
Записи блога о BFF и FOE можно найти в категории CERT/CC Vulnerabilities на SEI Blog.