OpenAI Codex Security 徹底解説 — 脆弱性をAIが検出・検証・修正するCLI/SDKの使い方
OpenAIのセキュリティエージェント「Codex Security」のオープンソースCLI/TypeScript SDK(@openai/codex-security)を解説。コードの脆弱性をAIが検出→サンドボックス検証→修正案生成するパイプライン、scan/validate/patch等の主要コマンド、pre-commitフック・CI組み込み(--fail-on-severity・SARIF出力)、コスト管理(--max-cost)、導入要件と注意点まで、リポジトリの一次情報に基づき整理します。
Codex Securityは、OpenAIが提供するアプリケーションセキュリティエージェントです。コードベースをAIが読み込んで動作を理解し、脆弱性の検出 → サンドボックスでの検証(誤検知の排除)→ 修正パッチ案の生成までを一気通貫で行います。2026年3月に旧称「Aardvark」からリブランドしてリサーチプレビューとして発表されていましたが、2026年7月13日、その CLI と TypeScript SDK(@openai/codex-security)が Apache-2.0 ライセンスのオープンソースとして GitHub に公開されました。本記事はリポジトリの README・実装という一次情報に基づき、できること・導入手順・CI組み込みまでを整理します。
Codex Security とは — 「検出して終わり」ではないセキュリティエージェント
従来の静的解析(SAST)ツールの課題は、大量の誤検知に埋もれて本当に危険な指摘が見えなくなることでした。Codex Security のアプローチは3段階です。①リポジトリ全体を読んでアプリケーションの動作を自然言語で理解した上で脆弱性候補を挙げる(ranking・file-review フェーズ)、②候補をサンドボックスで実際に検証して誤検知を落とす(validation・attack-path フェーズ)、③残った本物の脆弱性に修正パッチ案を生成する。スキャンの進行状況もこのフェーズ単位で報告されます。
今回のOSS公開で何が変わったか
- CLI と TypeScript SDK がオープンソース化(Apache-2.0・v0.1.1・ESM専用)。npm の @openai/codex-security として配布
- 手元・CI・自社インフラからスキャンを実行可能に: npx codex-security scan . の1コマンドで開始
- 認証は2系統: ローカルは ChatGPT サインイン(login / ヘッドレス環境は --device-auth)、CI は OPENAI_API_KEY または CODEX_API_KEY。両方ある場合は --auth chatgpt / --auth api-key で明示選択
- Docker イメージ同梱で、CSVリストによる大量リポジトリの非対話・再開可能スキャン(bulk-scan)にも対応
- ただしサービス本体へのアクセス権は別途必要(リサーチプレビュー時点では ChatGPT Enterprise / Business / Education 向け)。「クライアントがOSS、頭脳はクラウド」という構図です
導入要件とクイックスタート
動作要件は Node.js 22 以上+Python 3.10 以上(macOS / Linux / Windows対応)。導入は次の3コマンドです。
npm install @openai/codex-security
npx codex-security login # CIでは OPENAI_API_KEY を設定
npx codex-security scan .
スキャン結果の出力ディレクトリはリポジトリの外に置く必要があり(macOS/Linuxでは chmod 700 のプライベート権限必須)、結果にはソース抜粋・脆弱性の詳細・再現手順が含まれるため、閲覧権限の管理が求められます。TypeScript SDK からは new CodexSecurity() → security.run(path) で同じスキャンをプログラムから実行でき、preflight() による事前検証や AbortSignal でのキャンセルにも対応します。
主要コマンド一覧
| コマンド | 役割 |
|---|---|
scan <path> | リポジトリ/パス/コミット差分(--diff)/作業ツリー(--working-tree)をスキャン |
scan --knowledge-base <path> | 脅威モデルや設計書(Markdown/PDF/Word等)を文脈として渡す |
install-hook | pre-commitフックを導入し、コミット前に変更分を自動スキャン |
bulk-scan <csv> | CSVで指定した複数リポジトリを並列スキャン(--workers) |
scans list / show / rerun | スキャン履歴の一覧・詳細・再実行 |
scans match / compare | 過去スキャンとの突合・差分比較(指摘の推移追跡) |
export --export-format sarif | SARIF / CSV / JSON への出力(GitHub Code Scanning等と連携) |
validate <findings> "指摘" | 特定の指摘を再検証 |
patch <findings> "指摘" | 特定の指摘に対する修正パッチ案を生成 |
CIへの組み込み — report-onlyとfail-on-severityの設計
デフォルトはレポートのみ(ビルドを落とさない)で、CIでは --fail-on-severity high のように閾値を指定すると、該当severity以上の指摘があるときに exit 1 で失敗させられます。設計として秀逸なのは終了コードの分離で、スキャン自体が不完全・エラーの場合は exit 2 となり「パスした」と誤認できないようになっています。install-hook はコミット前の変更分だけを対象にし、既存フックを上書きしない・core.hooksPath を尊重するなど、既存環境への配慮も見られます。SARIF出力を使えば GitHub の Code Scanning アラートにもそのまま流し込めます。
コストとモデル — gpt-5.6-sol既定・--max-costで上限管理
スキャンは既定で gpt-5.6-sol(reasoning effort: extra-high)を使用し、--model gpt-5.6-terra への切り替えも可能です。各スキャンはモデル・消費トークン・推定コストをJSON結果と履歴に記録し、--max-cost 5 のように1回のスキャンのコスト上限(ドル)を指定できます。推定はAPIの標準トークン単価(キャッシュ込み)に基づくため、GPT-5.6系のAPI料金比較と併せて読むと予算感が掴めます。--dry-run を使えば、ネットワークに接続せずに有効なモデル・設定だけを確認できます。
注意点・現時点の制約
- OSSなのはクライアントのみ: スキャンの頭脳はクラウド側で、Codex Security本体へのアクセス権(リサーチプレビューはEnterprise/Business/Education向け)が必要
- バージョンは0.1.1: 1.0未満はセマンティックバージョニング上、マイナーバージョン間でAPIが変わり得ると明記されている
- スキャン対象の権限: 自分が所有するか、評価の許可を得たリポジトリのみを対象にすること(README にも明記)
- 結果の取り扱い: 出力には脆弱性の再現手順が含まれるため、結果ディレクトリの保管場所とアクセス権の設計が実質必須
- 脆弱性の報告窓口はGitHub IssuesではなくOpenAIのBugcrowdプログラムに分離されている
Codex 自体をこれから触る方はOpenAI Codex 入門ガイドとAGENTS.md によるカスタム設定を、AIコードレビューの周辺ツールはcrit.md(ローカルファーストのエージェントレビュー)も参考にしてください。組織としてのセキュリティの初手は中小企業のセキュリティ最初の一歩で解説しています。
Codex Securityは無料で使えますか?
CLI/SDK自体はApache-2.0のオープンソースで無料ですが、スキャンを実行するにはCodex Securityサービスへのアクセス権が必要です。リサーチプレビュー時点ではChatGPT Enterprise/Business/Education向けに提供されており、CI利用ではAPIキー経由の従量課金(スキャンごとにトークン消費とコスト推定が記録され、--max-costで上限指定可能)となります。
既存のSAST(静的解析)ツールと何が違いますか?
最大の違いは検出後の「検証」フェーズです。Codex Securityは脆弱性候補をサンドボックスで実際に検証して誤検知を落としてから報告し、さらに修正パッチ案の生成まで行います。一方でDAST(動的診断)が担う稼働環境のテストを置き換えるものではなく、既存のセキュリティテスト体制の一部を強化する位置づけです。
CIに組み込むにはどうすればいいですか?
OPENAI_API_KEYを設定し、npx codex-security scan . --fail-on-severity high のように実行します。閾値以上の指摘で exit 1、スキャン自体の失敗は exit 2 に分離されているため、エラーを合格と誤認しない設計です。SARIF形式でエクスポートすればGitHub Code Scanningにも連携できます。
日本語のコードベースやドキュメントでも使えますか?
スキャン対象のプログラミング言語に制約は明記されていません。--knowledge-base オプションで設計書や脅威モデル(Markdown・PDF・Word等)を渡して文脈を補強できるため、日本語の設計資料をそのまま活用できる点は実務上便利です。
まとめ
Codex Security のOSS化は、「AIによる脆弱性検出→検証→修正」のパイプラインを、手元のターミナルとCIから普通の開発フローに組み込めるようにした一歩です。誤検知を検証で落とす設計、report-only既定と終了コード分離、コスト上限の明示といった実務的な作り込みは、セキュリティスキャンを「たまにやる監査」から「コミットごとの習慣」に変えるためのものと言えます。まずは自社リポジトリで --dry-run から試し、pre-commitフック→CIの順に段階導入するのが現実的です。
お気軽にご相談ください
お問い合わせ