← На главную

OpenAI выкатила Codex Security: блокирует коммиты и валит CI

28.07.2026 20:52 · hackernews

OpenAI выкатила open-source инструмент Codex Security — это CLI и TypeScript SDK для поиска, валидации и ревью уязвимостей в своём коде. Работает на macOS, Linux и Windows, требует Node.js 22 или новее, а для сканирования и экспорта — ещё Python 3.10+. Ставится одной командой: npm install @openai/codex-security. Авторизация — через аккаунт OpenAI или API-ключ (OPENAI_API_KEY / CODEX_API_KEY); сканировать можно только те репозитории, которыми вы владеете или на которые получили явное разрешение.

Главная команда — npx codex-security scan. Она принимает путь, умеет анализировать только diff (--diff origin/main), выбранные поддиректории (--path) и подгружать модели угроз через --knowledge-base. Результаты обязательно пишутся в отдельную директорию вне репозитория. Экспортировать их можно в SARIF, JSON или CSV. По умолчанию сканирование только отчитывается, но в CI легко добавить --fail-on-severity high, чтобы пайплайн валился при серьёзных находках. Есть и install-hook для pre-commit-проверок — он блокирует коммит при высоком уровне угрозы или сбое сканирования.

Массовая проверка запускается через bulk-scan. Можно либо отдать CSV с колонками id, repository и полным revision, либо войти через gh auth login, и тогда CLI сам найдёт GitHub-репозитории, куда был пуш за последние 90 дней (форки и архивные исключены). Приватные репозитории клонируются через GitHub CLI-токен, не трогая глобальную Git-конфигурацию.

Для изолированных прогонов есть Docker-образ с compose.yaml. Контейнер запускается без лишних привилегий: дропаются все capabilities, применяется кастомный seccomp-профиль, разрешающий только нужные операции песочницы. Модели по умолчанию — gpt-5.6-sol с «extra-high» reasoning; переключить можно флагом --model (например, gpt-5.6-terra), а уровень усилий — через --codex. Прогресс идёт в stderr, JSON-вывод — в stdout.

SDK даёт асинхронный клиент: создаёте экземпляр CodexSecurity, вызываете run() с путём и outputDir, получаете typed-результаты. Поддерживаются колбэки, отмена, префлайты. Для аудита есть команды validate и patch — они прогоняют встроенные навыки валидации находок и автоматических исправлений. Экспорт запечатанных сканов (export) не требует запуска Codex и проверяет целостность seal. Команды scans list, show, rerun, match и compare позволяют отслеживать находки между сканированиями и связывать одинаковые причины.

Размеры документов жёстко ограничены: манифест до 16 МиБ, находки до 128 МиБ, покрытие до 32 МиБ. Коды возврата чётко разделяют report-only успех (0), нарушение severity-политики (1) и ошибки ввода или неполное покрытие (2). В CI JSON-сканирования остаются неинтерактивными, а validate и patch при выборе JSON просто отказываются работать. Аутентификационные данные никогда не попадают в слои образа или вывод команд — логин хранится в отдельной директории и переиспользуется между кампаниями.

Читать оригинал →