OpenAI опубликовала исходный код Codex Security CLI — инструмента для поиска, проверки и исправления уязвимостей из командной строки. Вместе с CLI компания открыла TypeScript SDK, позволяющий запускать проверки из других приложений и внутренних инструментов.
Репозиторий опубликован по лицензии Apache 2.0. Код можно изучать, изменять и встраивать в собственные процессы разработки. При этом Codex Security не стал полностью автономным открытым сканером: для проведения анализа всё ещё требуется доступ к сервису OpenAI.
В публичном репозитории Codex Security находятся CLI, TypeScript SDK, Docker-конфигурация, примеры интеграции и вспомогательные файлы. Пакет устанавливается через npm:
npm install @openai/codex-security
npx codex-security login
npx codex-security scan .
Для работы нужен Node.js 22 или новее. Запуск сканирования и экспорт результатов также требуют Python 3.10 или более новой версии.
Главное ограничение: публикация исходников не означает свободный доступ ко всем возможностям продукта. В официальной инструкции CLI и SDK по-прежнему называются бета-версией, для которой требуется разрешённый доступ к Codex Security. Для некоторых полноценных проверок репозиториев может дополнительно понадобиться Trusted Access for Cyber. Иными словами, открытым стал клиентский код, но не модели и инфраструктура, выполняющие анализ.
Как запускается сканирование
Для локальной работы пользователь может авторизоваться через учётную запись ChatGPT: npx codex-security login
На сервере без браузера поддерживается авторизация с другого устройства: npx codex-security login --device-auth
В CI/CD вместо интерактивного входа используется ключ OpenAI API. Само наличие ключа не гарантирует доступ к Codex Security: соответствующее разрешение должно быть предоставлено учётной записи.
CLI умеет проверять весь репозиторий, отдельные каталоги, рабочее дерево Git и изменения между двумя ревизиями:
npx codex-security scan .
npx codex-security scan . --path src
npx codex-security scan . --diff origin/main --head HEAD
npx codex-security scan . --working-tree --base HEAD
Для более широкого анализа предусмотрен глубокий режим: npx codex-security scan . --mode deep
К проверке можно приложить архитектурную документацию, модель угроз или внутренние правила безопасности. Это помогает агенту учитывать назначение системы, границы доверия и допустимые потоки данных.
Какие результаты создаёт CLI
После завершения проверки Codex Security сохраняет читаемый отчёт и набор структурированных файлов:
codex-security-results/
├── scan-manifest.json
├── findings.json
├── coverage.json
├── report.md
├── artifacts/
└── exports/
findings.json содержит обнаруженные проблемы, их серьёзность, уверенность модели, расположение в коде, доказательства и рекомендации по исправлению.
coverage.json описывает полноту проверки. Она может быть обозначена как полная, частичная или неизвестная. Частичный отчёт нельзя считать подтверждением отсутствия уязвимостей: часть компонентов или путей выполнения могла остаться без анализа.
Результаты экспортируются в CSV, JSON и SARIF. Последний формат поддерживается GitHub Code Security и другими платформами анализа кода.
Сравнение проверок
Codex Security умеет сопоставлять результаты двух запусков:
npx codex-security scans match PREVIOUS_SCAN_ID CURRENT_SCAN_ID
npx codex-security scans compare PREVIOUS_SCAN_ID CURRENT_SCAN_ID
После сопоставления находки распределяются на новые, сохранившиеся, повторно появившиеся, устранённые и находки с неопределённым статусом.
Однако такое сравнение не делает анализ детерминированным. Документация CLI предупреждает, что повторные проверки с одинаковыми настройками могут дать разные результаты.
Если проблема исчезла из нового отчёта, это ещё не доказывает, что она устранена. Нужно убедиться, что повторное сканирование охватило исходный участок кода, а критичную находку желательно дополнительно перепроверить командой validate.
Создание исправлений
CLI содержит отдельную команду для генерации исправления:
npx codex-security patch findings.json \
"Missing authorization check in src/routes.ts:18"
Codex Security может подготовить патч с учётом контекста проекта, но результат необходимо проверить вручную, прогнать через тесты и обычную процедуру код-ревью. Генерация исправления не гарантирует, что оно полностью закрывает уязвимость или не создаёт регрессию.
Для повторной проверки находки используется команда:
npx codex-security validate findings.json \
"Recheck the SQL injection in src/orders.ts:42"
Интеграция с CI/CD
OpenAI опубликовала отдельную инструкцию по запуску Codex Security в CI. CLI может проверять изменения в pull request, сохранять отчёты как артефакты сборки и выгружать результаты в формате SARIF.
Порог блокировки задаётся параметром --fail-on-severity:
npx codex-security scan . \
--diff origin/main \
--fail-on-severity high
Если полная проверка обнаружит уязвимость указанного или более высокого уровня, команда завершится с кодом 1. Код 2 используется при ошибке выполнения или неполном покрытии.
OpenAI рекомендует сначала запускать проверки в информационном режиме. Это позволяет оценить продолжительность анализа, полноту покрытия и число спорных находок до того, как Codex Security начнёт блокировать сборки.
Сколько стоит сканирование
CLI позволяет установить приблизительный бюджет проверки: npx codex-security scan . --max-cost 5
Значение указывается в долларах, однако не является жёстким пределом. Запросы, уже отправленные к моменту достижения бюджета, могут завершиться позднее и увеличить итоговую стоимость.
Отчёты могут содержать фрагменты исходного кода, описание уязвимостей и сведения об их воспроизведении. Поэтому их не следует автоматически публиковать в открытых артефактах CI.
Есть новость? Станьте автором.
Мы сотрудничаем с независимыми исследователями и специалистами по кибербезопасности. Отправьте нам новость или предложите статью на рассмотрение редакции.