Как INFERA AI.SafeCode соединяет SAST и фаззинг для автоматического подтверждения уязвимостей
Инструменты статического анализа (SAST) лишь подсвечивают вероятные уязвимости, генерируя гипотезы. Динамическое тестирование (DAST) и фаззинг, напротив, выявляют реальные сбои на работающем приложении и фиксируют вектор атаки, но не указывают на конкретную строку в исходниках. Традиционно эти два п

Инструменты статического анализа (SAST) лишь подсвечивают вероятные уязвимости, генерируя гипотезы. Динамическое тестирование (DAST) и фаззинг, напротив, выявляют реальные сбои на работающем приложении и фиксируют вектор атаки, но не указывают на конкретную строку в исходниках. Традиционно эти два подхода существуют в изоляции, образуя методологический разрыв, преодолеть который способен только AppSec-эксперт путем кропотливого ручного триажа. Однако российская платформа INFERA AI.SafeCode предлагает инновационное решение, автоматически соединяющее SAST и фаззинг, чтобы превращать гипотезы в подтвержденные уязвимости без участия человека.
Как INFERA AI.SafeCode соединяет SAST и фаззинг
Разработчики INFERA AI.SafeCode создали систему, которая объединяет результаты статического анализа и динамического фаззинга в едином процессе. Платформа не просто показывает потенциальные проблемы, найденные SAST, но и автоматически запускает фаззинг для наиболее подозрительных мест кода. Если фаззер вызывает аномалию (например, краш или утечку памяти), система сопоставляет её с конкретной строкой исходного кода, указанной SAST. Таким образом, гипотеза превращается в подтверждённую уязвимость без участия человека.
Ключевая инновация — формирование единого реестра знаний о проекте. В него попадают данные из SAST-сканирования, результаты фаззинга, а также контекстная информация: типы данных, потоки управления, вызовы функций. Этот реестр позволяет автоматически коррелировать события и отсеивать ложные срабатывания, которые не подтверждаются динамическим тестированием.
Почему традиционные методы не решают проблему ложных срабатываний?
Проблема ложных срабатываний SAST известна давно. По данным исследований, до 90% предупреждений статических анализаторов могут быть ложными. Это вынуждает команды безопасности тратить часы на ручную проверку. Фаззинг, с другой стороны, даёт высокую достоверность, но требует настройки и не привязан к исходному коду. Попытки комбинировать подходы предпринимались и раньше, но они либо были слишком сложны для внедрения, либо требовали значительных ручных усилий. INFERA AI.SafeCode решает эту задачу автоматизацией триажа.
Предыстория и контекст
INFERA AI.SafeCode — российская платформа для анализа безопасности приложений, разработанная компанией INFERA Security. Она уже включает SAST, SCA и DAST. Новая функция моста между SAST и фаззингом стала результатом исследований команды, направленных на автоматизацию триажа. Решение базируется на открытых фаззерах (например, AFL) и собственных алгоритмах сопоставления.
Как это работает для разработчика?
Разработчик запускает SAST-сканирование в CI/CD. Платформа находит несколько десятков предупреждений. Вместо того чтобы вручную проверять каждое, он нажимает кнопку «Подтвердить фаззингом». Система автоматически выбирает наиболее критичные места, генерирует тестовые сценарии и запускает фаззер. Через несколько минут приходит отчёт: часть предупреждений отмечена как подтверждённые (с указанием вектора атаки), остальные — как ложные срабатывания. Разработчик исправляет только реальные уязвимости.
Технические детали интеграции
Платформа использует гибридный подход: SAST строит граф потоков данных и контроля, а фаззер на основе этого графа генерирует входные данные, нацеленные на потенциально опасные участки. Если фаззер вызывает исключение или краш, система анализирует стек вызовов и сопоставляет его с узлами графа. Для этого применяется алгоритм трассировки, который связывает адреса памяти с исходным кодом. Важно, что фаззинг запускается не на всём приложении, а на изолированных модулях, что ускоряет процесс и снижает нагрузку.
В статье приводятся результаты тестирования на реальном проекте: из 120 предупреждений SAST 38 были подтверждены фаззингом, 72 оказались ложными, а 10 не удалось проверить из-за ограничений окружения. Время триажа сократилось с 4 часов до 20 минут.
Кого затронет и как
Решение в первую очередь полезно для AppSec-инженеров и разработчиков, которые устали от ручного триажа. Оно позволяет быстрее выпускать безопасные обновления и снижает нагрузку на команды безопасности. Для бизнеса это означает сокращение времени на исправление уязвимостей и уменьшение риска эксплуатации. В российском контексте платформа INFERA AI.SafeCode уже используется несколькими крупными компаниями, и новая функция может усилить её позиции на рынке.
Конкуренты, такие как Checkmarx и Veracode, предлагают похожие интеграции, но они часто требуют дополнительных лицензий или не так плотно связывают SAST и фаззинг. INFERA делает ставку на автоматизацию и единый интерфейс.
Что будет дальше
Команда INFERA планирует расширять поддержку языков и типов уязвимостей. В ближайших планах — интеграция с популярными CI/CD-системами (GitLab CI, Jenkins) и добавление поддержки Java и JavaScript. Также ведётся работа над улучшением точности сопоставления для сложных уязвимостей, таких как race conditions. Если развитие пойдёт по плану, мост между SAST и фаззингом может стать стандартной функцией для платформ AppSec.
Итог
INFERA AI.SafeCode предлагает практическое решение давней проблемы ложных срабатываний SAST, автоматически подтверждая уязвимости с помощью фаззинга. Это сокращает ручной труд и ускоряет процесс обеспечения безопасности. Следите за развитием платформы — возможно, вскоре такие гибридные подходы станут отраслевым стандартом.