Codex Security — CLI и TypeScript SDK от OpenAI для поиска, проверки и исправления уязвимостей в коде

· 2 мин чтения
security ai-agents code-scanning cli openai
📂 Исходный код на GitHub

CLI и TypeScript SDK от OpenAI для определения политики безопасности и поиска, валидации и исправления уязвимостей в коде. Включает генерацию SECURITY.md, Docker Compose для массовых сканирований, findings-сервис с дедупликацией по эмбеддингам и классификацию серьёзности по собственному рубрикатору.

Codex Security — CLI и TypeScript SDK от OpenAI для поиска, проверки и исправления уязвимостей в коде

OpenAI выпустила Codex Security — npm-пакет @openai/codex-security, который объединяет CLI и TypeScript SDK для определения политики безопасности и автоматического поиска, валидации и исправления уязвимостей в коде. Если Codex CLI — это агент для написания кода, то codex-security — его «оборонительная» половина: инструмент, который смотрит на код глазами атакующего и доводит находки до исправлений. Проект выложен под лицензией Apache-2.0 и уже собрал более 10 тысяч звёзд на GitHub.

Быстрый старт

Понадобятся Node.js 22.13.0 или новее и Python 3.10+:

npm install @openai/codex-security
codex-security login
codex-security scan /path/to/directory

Для CI-сред логин не нужен — достаточно переменной окружения OPENAI_API_KEY.

Одна деталь, которую стоит знать сразу: часть кибербезопасностных запросов и «защищённых находок» требует одобрения через программу Trusted Access for Cyber (заявка подаётся на chatgpt.com/cyber). Полная документация живёт на learn.chatgpt.com/docs/security/cli.

Генерация SECURITY.md

Интересная идея — начать не со сканирования, а с политики. Команда codex-security policy создаёт черновик файла SECURITY.md с руководством для будущих сканирований: репозиторий целиком или конкретный компонент.

codex-security policy .
codex-security policy . --path services/api --knowledge-base architecture.md

Черновик сохраняется вне чекаута — команда его не устанавливает и сканирование не запускает. Смысл в том, что сопутствующие документы (архитектура, threat model, результаты ревью) остаются за пределами репозитория и могут содержать чувствительные детали. Прежде чем копировать политику в репозиторий, нужно просмотреть предложенный diff.

TypeScript SDK

Вся функциональность доступна и как библиотека:

import { CodexSecurity } from "@openai/codex-security";

const security = new CodexSecurity();
const result = await security.run("/path/to/directory");
await security.run("/path/to/directory", {
  mode: "deep",
  workers: 2,
  subagents: 0,
  stopAfterNoNew: 3,
  maxDiscoveryRuns: 10,
  maxTimeHours: 1.5,
});

console.log(result.reportPath);
await security.close();

Набор опций показывает, что под капотом — агентный процесс, а не одноразовый статический анализатор: mode: "deep", пул воркеров, количество подагентов, лимиты на число проходов поиска и общее время сканирования, а также stopAfterNoNew — остановка после нескольких проходов без новых находок. Результат — путь к отчёту.

Массовые сканирования в Docker

Для прогона по многим репозиториям в репозитории есть готовая конфигурация Docker Compose: один и тот же образ сканера ghcr.io/openai/codex-security работает и для контейнеризованных массовых сканирований, и для отдельных этапов CLI с долговременным состоянием и доступом к отдельно развёрнутому findings-сервису (пример workflow runner в docker/README.md).

Findings-сервис (preview)

Центральное место в архитектуре — сервис хранения находок. Его можно запустить без Docker командой codex-security serve.

Что он делает:

  • хранит находки и эмбеддинги в SQLite, выдаёт находки постранично;
  • отдаёт read-only дашборд на /dashboard, который обновляется каждые пять секунд и показывает сохранённые находки и группы дубликатов;
  • находит потенциальные дубликаты по схожести эмбеддингов — внутри одного репозитория или в явном all-repository scope.

Публикация результатов сканирования в сервис:

codex-security publish scan --to custom --findings-url http://localhost:3000

Дедупликация — не просто сравнение хэшей: SDK и команда codex-security dedupe забирают кандидатов, запускают независимые Codex-ревью локально и сохраняют подтверждённые группы дубликатов. Флаг --all-repositories расширяет поиск дубликатов на все репозитории.

Классификация серьёзности по своему рубрикатору

Перед тем как заводить тикеты, находки можно переоценить по собственному регламенту:

codex-security classify-severity --scan SCAN_ID --rubric /path/to/policy.md

Классификация чекпоинтит каждую находку в SQLite и при повторных запусках переиспользует готовые оценки; --reprocess заставляет пересчитать всё заново. Важная деталь: классификация не трогает оригинальную серьёзность из скана — она существует параллельно. Та же операция доступна из SDK.

Сторонние провайдеры инференса

Сканер не привязан жёстко к OpenAI API — провайдер и модель выбираются флагами:

export AWS_BEARER_TOKEN_BEDROCK="<your-bedrock-api-key>"
export AWS_REGION="us-east-2"
codex-security scan . --provider amazon-bedrock --model openai.gpt-5.6-luna

export OPENROUTER_API_KEY="<your-openrouter-api-key>"
codex-security scan . --provider openrouter --model anthropic/claude-sonnet-4.5

export FIREWORKS_API_KEY="<your-fireworks-api-key>"
codex-security scan . --provider fireworks --model accounts/fireworks/models/qwen3-235b-a22b

Поддерживаются Amazon Bedrock, OpenRouter и Fireworks — это позволяет прогонять сканирование на моделях, которые уже разрешены в вашей организации, или искать более дешёвую конфигурацию для регулярных прогонов.

Как это вписывается в DevSecOps

Codex Security закрывает полный цикл: политика (policy), поиск (scan), дедупликация (dedupe), приоритизация (classify-severity), публикация (publish) и сервис с дашбордом для команды. Сочетание агентного поиска с проверкой находок независимыми ревью и собственной шкалой серьёзности — это попытка решить главную проблему классических SAST-сканеров: поток ложных срабатываний, который никто не разбирает.

Проект распространяется как npm-пакет @openai/codex-security, исходники — на GitHub, дополнительная информация — на developers.openai.com/codex/security.

Источник: https://github.com/openai/codex-security