Почему Codex Security не начинает работу с отчёта SAST

OpenAI объяснила, почему агент Codex Security изучает сам репозиторий и проверяет находки на практике, а не берёт за основу отчёт статического анализа.

Дмитрий Смирнов
Дмитрий Смирнов
2 мин
Почему Codex Security не начинает работу с отчёта SAST

OpenAI опубликовала разбор архитектуры Codex Security: агент не принимает на вход отчёт SAST (статического анализа кода), а начинает с самого репозитория — его устройства, границ доверия и ожидаемого поведения. Найденные уязвимости он проверяет, прежде чем показать человеку.

Почему SAST не хватает

SAST отслеживает путь данных от источника к опасной точке и отмечает случаи, когда данные доходят до неё без очистки. В реальных кодовых базах с динамическими вызовами, колбэками и рефлексией инструмент вынужден делать допущения. Но главная проблема в другом: самые сложные уязвимости — не про поток данных, а про то, действительно ли защита работает. Анализатор видит, что вызван, например, sanitize_html(), но не знает, достаточно ли этого для конкретного шаблонизатора и контекста вывода.

В качестве примера OpenAI приводит приложение, которое проверяет redirect_url по regex-списку разрешённых адресов, а затем декодирует URL и передаёт его редиректу. Если проверка идёт до декодирования, она может не ограничивать итоговый адрес. Похожий случай — CVE-2024-29041 в Express: некорректные URL обходили типовые allowlist-проверки.

Как работает Codex Security

  • читает код с контекстом всего репозитория, как исследователь безопасности, и ищет расхождения между замыслом и реализацией; комментариям вроде «это не баг» агент не доверяет;
  • выделяет минимальный проверяемый фрагмент и пишет для него микро-фаззеры;
  • рассуждает об ограничениях на цепочке преобразований, при необходимости формулируя их как задачу выполнимости и решая в z3-solver;
  • проверяет гипотезы в изолированной среде, вплоть до полноценного PoC.

Три риска стартовых SAST-находок

OpenAI называет три причины не засевать агента отчётом SAST. Во-первых, список находок сужает фокус: система тратит силы там, где инструмент уже смотрел. Во-вторых, в находки зашиты чужие допущения о санитизации и границах доверия, и агент начинает подтверждать или отклонять, а не исследовать. В-третьих, сложнее оценить сам агент: непонятно, что он нашёл сам, а что унаследовал.

При этом компания подчёркивает, что SAST остаётся полезным: он обеспечивает стандарты безопасного кода и находит известные паттерны в большом масштабе. Статья говорит лишь о том, что агент, который рассуждает о поведении, не должен опираться на статический список. Часть уязвимостей — это нарушенные инварианты и обходы бизнес-логики, где нет единой «опасной точки».

Дмитрий Смирнов

Автор новости

Дмитрий Смирнов

Читайте также

Поделиться

Комментарии(0)

Оставьте комментарий

Войдите, чтобы присоединиться к обсуждению