
Codex Security CLIオープンソース監査ガイド
Codex Security CLIがリポジトリを走査し、発見を検証してSARIFレポートを出力する仕組みと、ローカルチェック、CIゲート、安全な監査ワークフローへの組み込み方を解説します。
OpenAIによると、このツールは30日間で1.2 million件のコミットを走査し、792件の重大な問題と10,561件の深刻度が高い問題を発見し、14件のCVEにつながりました。 ここから分かるCodex Security CLIの目的は、ターミナルまたはCIから_深刻なコードや設定の問題を早期発見すること_です。
短くまとめると、次のとおりです。
- リポジトリ全体の監査または差分のみのPRレビューに使用できる
- シークレット、インジェクションバグ、SSRF、パストラバーサル、不正な設定、安全でない依存関係などを確認する
- パターンマッチングにとどまらず、脅威モデルを構築し、サンドボックスで発見をテストし、小規模なパッチを提案する
- パイプラインとレポート向けに**JSON、CSV、SARIF**出力へ対応する
- Node.js 22+、Python 3.10+、GitHubへのアクセス、適切な**ChatGPTワークスペース権限**が必要
- CIでは、合格を示す**
0、発見があることを示す51**など、シンプルな終了コードを使う - チームはローカルチェック、pre-commitフック、PRレビューフロー、一括スキャンで実行できる
言い換えれば、これは後工程のレビューや本番環境まで待たず、シグナル精度の高いセキュリティレビューを行いたいチーム向けのCLIです。人間によるトリアージは引き続き必要ですが、手作業で調査すべき項目を減らせます。

簡易比較
| 領域 | 機能 | 使用する場面 |
|---|---|---|
| 全体監査 | リポジトリ全体とコミット履歴をスキャン | 初回スキャン、定期的な詳細チェック |
| 差分レビュー | 変更されたコードのみスキャン | プルリクエスト、ブランチレビュー |
| ローカルフック | コミットまたはpush前に確認 | 日々の開発作業 |
| CIゲート | 発見があるとビルドを失敗させる | チームポリシーの適用 |
| 一括スキャン | 多数のリポジトリをスキャン | 組織レベルのレビュー |
私が注目するのは、一つのコマンドラインワークフローにコードレビュー、脅威モデリング、サンドボックスでの実証、出力可能なレポートが組み合わされている点です。
中核機能:CLIがスキャン、検出、出力するもの
リポジトリスキャンと差分ベースのレビュー
Codex Security CLIは、全体監査と差分ベースのレビューという二つのスキャンモードに対応します。
リポジトリ全体の監査では、コードベース全体とコミット履歴を確認し、エントリーポイント、信頼境界、機密データ、リスクの高い経路を把握します[3]。新しいプロジェクトをツールへ取り込むときや、定期的な詳細スキャンを実施するときに適しています[3]。
差分ベースのレビューでは特定の変更群のみを見るため、全体監査よりはるかに速く実行できます[3][4]。プルリクエストの更新やその他の小さなコード変更に適しています[3][4]。
| スキャンモード | 範囲 | 速度 | 最適な用途 |
|---|---|---|---|
| リポジトリ全体の監査 | コードベース全体とコミット履歴 | 低速、リポジトリ規模に応じて増加 | 初回導入、定期的な詳細スキャン |
| 差分ベースのレビュー | 特定のコミットまたはPR変更セット | 大幅に高速 | 新しいコードのリグレッション検出 |
codex-security scanコマンドは、リポジトリパスまたはGitHub URLから全体監査を実行します。脅威モデル、確認済みの発見、推奨パッチを返します[3]。
プルリクエストの作業では、codex-security reviewにブランチ名またはコミットSHAを渡すと、新しく追加されたコードに絞ったリスク分析が返されます[3]。
簡単にまとめると、次のようになります。
- オンボーディングと詳細スキャンには全体監査
- 新しく追加されたコードには差分レビュー
これらのスキャンは、そのまま次に説明する発見へつながります。
CLIが検出できるリスクの種類
CLIはコードベース全体で現実的な攻撃経路を追跡し、報告前に隔離されたサンドボックス内で発見を確認します[3][7]。
そのため、ハードコードされたシークレット、SQLインジェクション、LDAPインジェクション、Server-Side Request Forgery(SSRF)、パストラバーサル、テナント分離の不備、バッファオーバーフローなどの問題を検出できます[7]。ExpectedBucketOwnerを適用していない安全でないS3設定など、設定ミスも指摘できます[2]。
初期テストのデータから規模感が分かります。調査テストの最初の30日間で、ツールは1.2 million件のコミットをスキャンし、792件の重大な問題と10,561件の深刻度が高い問題を発見しました。また、OpenSSH、PHP、Chromiumなど主要なオープンソースプロジェクトで14件のCVEに貢献しました[7][1]。
発見、深刻度ラベル、出力形式
CLIはリスクを特定した後、確認しやすくレポートワークフローへ渡しやすい形式でまとめます。
各発見にはCritical、High、Medium、Lowの深刻度ラベルが付与されます。スコアは、実際に悪用される可能性と影響に基づきます[3]。発見には、深刻度、サンドボックスログ、概念実証の証拠、根本原因に対する最小限のパッチも含まれます[3][7]。
レポートとパイプラインで使用するため、発見はJSONとCSVで出力できます[6]。出力はSARIFにも対応し、CIシステムやダッシュボードへの取り込みに役立ちます[3][4]。
| 発見のカテゴリ | 想定される深刻度 | 一般的な修正 | 検証方法 |
|---|---|---|---|
| ハードコードされたシークレット | Critical | 認証情報をローテーションし、シークレットを環境変数へ移動 | 450+の認証情報パターンに対する決定論的パターンマッチング[2][4] |
| インジェクション(SQL/LDAP) | High | 入力のサニタイズ、パラメーター化クエリ | サンドボックスでのエクスプロイト再現[7][3] |
| 認証の不備 | Critical | セッションのローテーション、MFAの適用 | 攻撃経路分析と信頼境界のマッピング[7][3] |
| 安全でないS3設定 | High | API呼び出しへExpectedBucketOwnerを追加 | SonarQubeプラグインによるAgentic Analysis[2] |
| バッファオーバーフロー | Critical | 境界チェック、より安全なメモリ関数 | サンドボックスでのエクスプロイト再現[7][3] |
チームは脅威モデルを編集し、実際のデプロイ前提に合わせ、プロジェクトの規約と一致させることもできます[3][4]。
次は、インストール、ログイン、最初のスキャンです。
セットアップと環境対応:インストール、ログイン、要件
システム要件とアクセス権
Codex Security CLIを使用するには、ChatGPT Pro、Enterprise、Business、Eduのいずれかのアクセス権が必要です。また、管理者がWorkspace SettingsでCodex CloudとCodex Securityの権限を有効にする必要があります[1][3]。
ローカル利用には、CLIが**Node.js 22+とPython 3.10+**を必要とします[2]。リポジトリとコミット履歴を確認するため、GitHubへの直接アクセスも必要です[3]。
MCPサーバーまたは特定のセキュリティプラグインを使用する場合は、Docker、Podman、Nerdctlなどのコンテナランタイムが必要です[2]。CLIは複数のプラットフォームで動作しますが、一部のshimと認証フォールバック方式はLinuxに依存します[8]。
CLIをインストールして最初のスキャンを実行する
アクセス権、言語ランタイム、コンテナサポートを準備したら、CLIをインストールし、まず小規模なリポジトリでテストします。最初のスキャンには非本番リポジトリを使ってください[3]。
この小規模なテスト実行により、大規模で活発なコードベースへ移る前に、チームが出力を確認し、セットアップの問題を見つけ、ワークフローに慣れる余裕が生まれます。
認証
インストール後、一度サインインしてトークンをローカルへ保存します。codex-security loginを実行してCLIを認証します。その後、トークンはシステムのキーチェーンへ保存されます[2]。
SonarQubeのフローを使用する場合は、sonar auth loginも必要になる場合があります[2]。
MCPの起動に失敗したら、まずコンテナランタイムが起動しているか確認し、その後セッションを再起動します[2]。
チームでの活用方法:ローカルチェック、CIゲート、監査ワークフロー
Codex Security CLIをセットアップしてサインインすると、チームは通常、ローカル編集、pre-commitチェック、CIゲートの三か所で使用します。
ローカル開発とpre-commitスキャン
一般的なパターンは、何かをコミットする前、まだコーディング中にスキャンを実行することです。PostToolUseフックは各編集後にAgentic Analysisを起動できるため、開発者が出力を目にする前に、エージェントがセキュリティ問題を検出して修正する機会を得られます[2][4]。これにより、問題を後回しにして積み上げず、早期に止められます。
より厳密に制御したいチームは、同じチェックをフックとパイプラインのステップへ移せます。install-hookコマンドはスキャナーをpre-commitとpre-pushのワークフローへ接続し、シークレットや脆弱な依存関係を含むコミットやpushをブロックします。GitHubのPersonal Access Tokenを含む450+のシークレットパターンがプロンプトに含まれている場合にブロックするUserPromptSubmitフックもあります[2][6]。
CI/CDセキュリティゲートと一括スキャン
CI/CDでは、CLIが自動化に適した終了コードを提供します。成功時は0、シークレット、脆弱性、依存関係リスクを発見した場合は51です[6]。そのため、パイプラインルールは単純です。0なら合格、51なら失敗です。
被害につながる可能性が最も高い問題へ集中したい場合、--severities CRITICAL,HIGHでスキャン範囲を絞ることもできます。
多数のリポジトリを扱う組織では、bulk-scanによって一度に多くのコードベースを確認できます。保存されたスキャン履歴を通じて、セキュリティ態勢を継続的に追跡することも可能です[7]。
一般的なコード監査シナリオ
スキャンを実行する場所に応じて、同じ発見を大きく異なるワークフローで活用できます。
| 環境 | 実行方式 | 生成される成果物 | チームの利点 |
|---|---|---|---|
| ローカル開発 | 対話型CLIセッション/PostToolUseフック | インラインの発見、推奨パッチ | 即時フィードバック、ディスクに反映される前に問題を修正 |
| pre-commitフック | install-hook/pre-commitまたはpre-push | 拒否メッセージ、ブロックされたコミット試行 | 認証情報の漏えいと明らかなバグがリポジトリ履歴へ入るのを防止 |
| CI/CDパイプライン | bulk-scan/非対話型CLI | JSON/CSV/表形式レポート、合否状態、スキャン履歴 | 大規模にセキュリティ基準を適用し、長期的な態勢を追跡 |
| エージェント主導の監査 | Agentic Analysis/サンドボックス検証 | 編集可能な脅威モデル、検証済みPoC、文脈を考慮したパッチ | 確度の高い検証を伴う詳細なアーキテクチャ分析 |
CLI出力をAIエージェントへ戻す場合、--format toonフラグはトークン使用量の削減に役立ちます。発見の詳細をすべて維持しながら、少ないトークンでYAMLに似たエンコーディングを生成します[6]。
安全な導入と結論:制限、ベストプラクティス、重要ポイント
ツール実行時のセキュリティ対策
Codex Security CLIをローカルまたはCIワークフローへ組み込む前に、まずランタイムの露出範囲と実行設定を確認します。よく知らないリポジトリをスキャンする場合は、少し立ち止まり、.codex/config.toml、.codex/hooks.json、.envを調べてください。これらのファイルは、登録済みMCPサーバーと有効なフックを制御しているため、最初に確認するのが標準的なセキュリティ対策です[2]。
定期的な更新でCLIを最新に保つことも有効です[6]。機密性の高いコードベースを扱う場合は、ツールの隔離されたコンテナ実行を使用します。そうすれば、分析は実際の作業環境ではなく、一時的にサンドボックス化されたコードのコピーで実行されます[9]。
データの取り扱いとワークフローの境界
これらのガードレールにより、実際に分析する意図のあるコードと権限にスキャンを限定できます。同じく重要なのは、Codex Security CLIがリスクに関する最終判断を下すものではなく、シグナル精度の高い発見を提供するツールだという点です。発見とパッチを提示できますが、人間が問題をトリアージし、漏えいした認証情報をローテーションし、各リスクを許容できるか判断する必要があります[5][7]。
この役割分担が重要です。ツールが問題の早期発見を助け、人間によるレビューが判断を本来あるべき場所に残します。
ガイドを締めくくる重要ポイント
Codex Security CLIは、コードファイルやユーザープロンプトにハードコードされたシークレット、依存関係リスク、SSRFやパストラバーサルなど、より複雑な種類の脆弱性を検出できます[2][6][7]。エージェント型のアプローチは、アーキテクチャ分析とサンドボックス検証を組み合わせ、実在する問題をノイズや推測上の問題から切り分けるのに役立ちます[1][5][7]。
Codex Security CLIが際立つ理由は、文脈を考慮した分析、編集可能な脅威モデル、人間がレビューするセキュリティ出力を、ワークフローに組み込みやすいCLIへ統合していることです。
よくある質問
Codex Security CLIは誰が使うべきですか?
Codex Security CLIは、脆弱性を発見、確認、修正してコードベースを保護する必要がある開発者、セキュリティエンジニア、チーム向けに作られています。
大規模なリポジトリや複雑な環境で作業するチーム、脆弱性をトリアージするオープンソースのメンテナー、ターミナル中心のワークフロー内でより明確かつノイズの少ないセキュリティ発見を求める人に適しています。
全体監査と差分レビューはどう違いますか?
差分レビューは、通常コードをコミットする前に、作業ツリーの変更へ絞って確認します。今行った編集のバグ、リスクのあるパターン、エッジケースを発見するのに役立ちます。
全体監査では、コードベース全体をより詳細に調べます。攻撃経路を追跡し、プロジェクトの脅威モデルを構築し、潜在的な脆弱性をサンドボックスでテストします。その結果、確度の高い発見と、より広範なパッチ提案が得られます。
実行する前に何が必要ですか?
ChatGPT Pro、Enterprise、Business、Eduプランのいずれかが必要です。
Codex Security CLIを実行する前に、まず開発環境をセットアップします。ソース言語の仮想環境を有効にし、必要なデーモンを起動し、必要な環境変数をエクスポートしてください。
SonarQubeプラグインを使用する場合は、Docker、Podman、Nerdctlのいずれかがインストールされ、起動していることを確認してください。
モデルマーケットで使いたいモデルを選ぶ
APIMart のモデルマーケットでチャット、画像、動画モデルを試し、統一 API でモデルの能力をすばやく体験できます。