For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
メインナビゲーション
Theme

Codex Security CLI クイックスタート

サインインしてローカルリポジトリをスキャンし、スキャン範囲と検出事項を確認します。

スタンドアロンの Codex Security CLI を使って、ローカルリポジトリの標準スキャンを実行します。完了するとレポートが保存され、その場でも後からでも結果を確認できます。Codex の会話内でスキャンするには、Codex Security プラグインを使ってください。

前提条件の確認

Node.js 24 または 26 を使用してください。Node.js 22 系を使う場合は 22.13.0 以降が必要です。Python 3.10 以降も必要です。Python 3.10 を使う場合は tomli をインストールしてください。一部のサイバーセキュリティ関連のリクエストや、保護された検出事項へのアクセスには、Trusted Access for Cyber が必要です。

CLI は OS 上でユーザーに付与された権限で動作し、承認を待たずに処理を進めます。スキャンプロセスがユーザーの環境を引き継ぐことがあるため、スキャンに不要な認証情報は開始前に環境から削除してください。詳しくはローカルスキャンの権限を参照してください。

CLI のセットアップと動作確認

公開パッケージをグローバルにインストールし、バージョンを確認します。

npm install -g @openai/codex-security
codex-security --version

このパッケージには codex-security コマンドとそのエイリアス cs が含まれます。npm がグローバルにインストールした実行ファイルのディレクトリが PATH に含まれていることを確認してください。

グローバルにインストールせずに実行するには、npx を使います。

npx @openai/codex-security --version

以降の例では npx @openai/codex-security を使います。グローバルにインストールした場合は、代わりに codex-security を使えます。

上のコマンドを実行すると、インストールされたパッケージのバージョンが表示されます。同梱のプラグインのバージョンを確認するには info --json を、コマンド一覧を表示するには --help を使います。

サインイン

ChatGPT アカウントでサインインします。

npx @openai/codex-security login

ブラウザのないマシンでは、ワークスペースでデバイス認証が許可されていれば --device-auth を追加し、表示される手順に従ってサインインしてください。デバイス認証が無効の場合は、SSH を使ったログイン手順に従ってください。以降のスキャンコマンドに --auth chatgpt を指定すると、環境に API キーが設定されていても、サインイン済みの ChatGPT アカウントで認証できます。

API キーや他のプロバイダーを使う場合は、スキャンの認証方法の選択を参照してください。Amazon Bedrock の場合は、ChatGPT でのサインインや OpenAI API キーの代わりに、AWS 認証情報とモデルへのアクセスを設定してください。

スキャンの準備

次のパスを、対象のリポジトリと、結果を保存する新しいディレクトリのパスに置き換えてください。結果の保存先は、リポジトリの Git Worktree の外に指定します。

REPOSITORY=/path/to/repository
SCAN_DIR=/path/outside/repository/codex-security-results

結果にはソースコードの抜粋や脆弱性の詳細が含まれることがあります。アクセスを制限した場所に保存してください。--output-dir を省略すると、CLI は状態を永続化するためのディレクトリに結果を保存します。

スキャン対象と出力先を確認します。

npx @openai/codex-security scan "$REPOSITORY" \
  --auth chatgpt --output-dir "$SCAN_DIR" --dry-run

ドライランが成功すれば、ローカルの入力に問題がないことを確認できます。ドライランではスキャンを開始せず、認証情報の読み込みやプラグインの Python インタープリターの確認も行いません。そのため、認証に成功するかどうかや、実行環境が正しく設定されているかどうかは、この段階では分かりません。

初回スキャンの実行

--dry-run を外してスキャンを開始します。

npx @openai/codex-security scan "$REPOSITORY" \
  --auth chatgpt --output-dir "$SCAN_DIR"

対話型ターミナルではダッシュボードがリアルタイムで更新されます。非対話型ターミナルでは進捗が行単位で出力されます。対話型ターミナルでも行単位で進捗を表示するには、--headless を追加してください。ダッシュボードや保存されたログには、ソースコードや認証情報が含まれることがあります。共有する前に内容を確認してください。

スキャンが終了すると、レポートのパス、検出件数、経過時間が標準エラー出力に表示されます。以下はその例です。

  REPORT    /path/outside/repository/codex-security-results/report.md

  FINDINGS  2 (2 confirmed this scan; 0 previously found; 1 high, 1 medium)
  SCOPE     repository: .
  ELAPSED   42s
  RESULTS   /path/outside/repository/codex-security-results

デフォルトでは、検出事項の重大度を理由にスキャンが失敗することはありません。機械で読み取れる形式で標準出力に結果を出すには、--json を追加してください。検出事項の重大度に応じて CI チェックを失敗させるには、重大度ポリシーを設定します。

結果の確認

結果ディレクトリの report.md を開きます。スキャン対象とリビジョンを確認してから、検出事項を確認してください。記録されたスキャンの状態と範囲は、それぞれ scan.status と scan.scope に示されています。どちらも scan-manifest.json にあります。

スキャンが完了すると、終了コードは 0 になります。ただし、設定した重大度のしきい値に達する検出事項がある場合は 1 を返します。終了コードが 0 でも、すべてのファイルが確認されたとは限りません。入力や実行に問題がある場合、結果の整合性が損なわれている場合、または必要な出力を生成できない場合は 2 を返します。終了コードの詳細は CLI リファレンスを参照してください。

検出事項ごとに、影響を受けるコード、攻撃が成立するための前提条件、検証で得られた証拠、まだ確認できていない点を確認してください。ソースコードに基づく検出事項については、実行時に問題を再現できたとは限りません。報告された問題を証拠が裏付けていることを確認してから、修正対象に選んでください。

スキャン結果を共有またはアーカイブする際は、スキャンディレクトリを丸ごと含めてください。このディレクトリには、scan-manifest.json と findings.json のほか、レポートとその裏付けとなる成果物が含まれています。ディレクトリ構成の詳細はスキャンの成果物を参照してください。

保存済みの脅威モデルのエクスポート

標準スキャン、詳細スキャン、差分スキャンでは、脅威モデルが結果とともに保存されます。サインインやモデルの再呼び出しをせずに、脅威モデルを Markdown 形式でエクスポートできます。

npx @openai/codex-security export "$SCAN_DIR" \
  --artifact threat-model --output "$SCAN_DIR/exports/threatmodel.md"

脅威モデルが保存されていない場合、export はエラーを返します。保存済みのスキャンを選ぶ方法や、別の出力形式を指定する方法は、エクスポートのリファレンスを参照してください。

保存済みスキャンの再確認

リポジトリのスキャン一覧を表示します。

npx @openai/codex-security scans list "$REPOSITORY"

一覧からスキャン ID をコピーし、次のコマンドの SCAN_ID に指定します。

npx @openai/codex-security scans show SCAN_ID

対話型スキャンが完了し、検出事項があった場合は、CLI で各検出事項を閲覧することもできます。修正方法を選ぶ前に、そこで証拠を確認してください。保存済みの検出事項には、検証とパッチ適用のコマンドを使います。

次のスキャンの選択

目的 ガイド
指定したパスや差分をスキャンする スキャン対象の選択
同じリポジトリ内のコンポーネントを並列にスキャンする コンポーネントのスキャン
テストスクリプトで検出事項の候補を検証する カスタム検証
詳細スキャンを実行する、またはその実行時間を制限する 詳細スキャンの設定
アーキテクチャ情報やセキュリティポリシーを指定する セキュリティコンテキストの追加
モデルや推論強度を変更する 実行環境の設定
見積もりコストに上限を設定する 出力とポリシーのオプション
複数のリポジトリをスキャンする 一括スキャン
GitHub の Pull Request をスキャンする、またはスキャンを定期実行する GitHub Actions ガイド
別の CI プロバイダーを選ぶ CI/CD の概要

認証に問題がある場合、再スキャンで結果が異なる場合、または誤検出についてフィードバックを送る場合は、CLI に関するよくある質問を参照してください。