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

Компания 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), отличая потенциальную проблему от реальной.





