Отказ от статического анализа в новом ИИ-инструменте безопасности от OpenAI
OpenAI объясняет, почему их новый продукт Codex Security не использует традиционные отчеты статического анализа (SAST) в качестве отправной точки для поиска уязвимостей.
OpenAI объясняет, почему их новый продукт Codex Security не использует традиционные отчеты статического анализа (SAST) в качестве отправной точки для поиска уязвимостей.
2 мин

Компания OpenAI представила подход к поиску уязвимостей в своем новом продукте Codex Security, отказавшись от использования традиционных отчетов статического анализа защищенности приложений (SAST) в качестве базового источника данных. Вместо этого ИИ-агент начинает работу непосредственно с исходного кода, анализируя архитектуру, границы доверия и ожидаемое поведение системы.
Долгое время статический анализ оставался основным методом масштабирования проверки кода для команд безопасности. SAST эффективно отслеживает потоки данных от ненадежного источника к чувствительному приемнику (sink), указывая на потенциальные проблемы. Однако, по мнению разработчиков Codex Security, самые сложные уязвимости редко сводятся к простым ошибкам потока данных.

Designing AI agents to resist prompt injection > Cover Image
Проблема заключается в том, что статический анализ часто не может ответить на главный вопрос: действительно ли сработала защита? Например, SAST может зафиксировать вызов функции очистки данных, но не способен оценить, достаточна ли эта очистка для конкретного контекста рендеринга или последующих преобразований. Уязвимости часто возникают из-за ошибок в порядке операций, частичной нормализации или неоднозначностей парсинга, когда проверка формально существует, но фактически не ограничивает значение нужным образом.
Подход Codex Security основан на понимании намерений системы и попытках опровергнуть гарантии безопасности, которые код пытается обеспечить. Агент читает код с полным контекстом репозитория, выделяет минимальные тестируемые фрагменты и пишет для них микро-фаззеры. Для решения сложных задач ограничения входных данных ИИ может использовать внешние инструменты, такие как z3-solver в среде Python. В идеале система стремится выполнить код в изолированной среде, чтобы предоставить доказательство концепции (Proof of Concept), отличая потенциальную проблему от реальной.

Learning Blocks ArtCard 1x1
Разработчики выделяют три причины, почему ИИ-агент не должен начинать работу с готового отчета SAST. Во-первых, это сужает фокус, заставляя систему тратить ресурсы на те же области, что и статический анализатор, упуская другие классы уязвимостей. Во-вторых, отчеты содержат неявные предположения об очистке и границах доверия, которые могут быть ошибочными, превращая задачу агента из расследования в простое подтверждение. В-третьих, зависимость от внешнего отчета затрудняет оценку и улучшение собственных аналитических способностей ИИ.
OpenAI подчеркивает, что инструменты SAST остаются важной частью эшелонированной защиты (defense-in-depth). Однако для интеллектуальных агентов, чья задача — превращать подозрения в доказанные уязвимости с рабочими исправлениями, требуется иной подход, ориентированный на поведение системы и проверку инвариантов.
OpenAI создала ИИ-агента для поиска уязвимостей, который анализирует код как исследователь безопасности, а не опирается на списки потенциальных ошибок от статических анализаторов.
Загрузка готовых отчетов об ошибках в ИИ-агента может ухудшить его работу, так как навязывает чужие ошибочные предположения и сужает область поиска.