
セキュリティ脆弱性を発見、検証、修正するためのOpenAIのCodex Security CLIおよびTypeScript SDK。 npm: https://www.npmjs.com/package/@openai/codex-security
Codex Security は、コード内の脆弱性を発見、調査、修正するのに役立ちます。
Codex でそのセキュリティワークフローを使用するか、
@openai/codex-security CLI と TypeScript SDK で自動化できます。
SECURITY.md ポリシーを起草し、後でレビューするために脅威モデルを保存します。Codex Security プラグインを有効にした Codex セッションでリポジトリを開き、 次のように依頼します:
このリポジトリで Codex Security スキャンを実行し、認証と 認可に焦点を当ててください。保存されたレポート、ソースの証拠、カバレッジの制限を返してください。
完了したスキャンは、レポート、検出結果、カバレッジ、および利用可能な場合は脅威モデルを保存します。これらの結果を使用して、検出結果を調査したり、パッチを要求したり、既存の修正を検証したりできます。プラグインのセットアップ、タスクの選択、および必要なツールが利用できない場合のリカバリについては、エージェントワークフローガイドを参照してください。
22.x 内の Node.js 22.13.0 以上、または Node.js 24.x もしくは 26.x、および Python 3.10 以上が必要です。
Python 3.10 では tomli も必要です。
CLI をグローバルにインストールしてサインインします:
npm install --global @openai/codex-security
cs login
cs は codex-security の短いエイリアスです。どちらのコマンドも同じ CLI を実行します。
インストールにより、npm のグローバル実行可能ディレクトリに両方のコマンドが作成されます。
このディレクトリは PATH に含まれている必要があります。cs がすでに別のツールに解決される場合は、
代わりに codex-security を使用してください。npm が cs に対して EEXIST エラーで停止する場合は、
グローバルインストールを行わずに npx @openai/codex-security を使用してください。
リポジトリディレクトリからスキャンを実行します:
cs scan .
Daybreak Blue へのアクセス権がある場合は、スキャンコマンドに --cyber-access-program daybreak_blue を追加してください。それ以外の場合は、フラグを省略するか --cyber-access-program standard を使用してください。
Codex の Daybreak トグルを使用するには、--codex daybreak=true を渡します。デフォルトではオフになっており、互換性のあるアクセス権が必要です。Deep Scan ワーカーを含む SDK およびプラグインでの使用方法については、Daybreak の設定を参照してください。
スキャンでは既存の SECURITY.md のガイダンスが使用されます。これを定義または更新するには、必要に応じてポリシーをドラフトしてください:
cs policy .
ドラフトはリポジトリの外に保存されます。差分とメモを確認し、ドラフトを編集してから、SECURITY.md のみを表示されている ポリシーターゲット にコピーしてください。ポリシーを生成せずにスキャンすることもできます。
グローバルインストールなしで実行するには、これらの例の cs を npx @openai/codex-security に置き換えてください。例えば次のようになります:
npx @openai/codex-security scan .
CI では、スキャンプロセスの環境に OPENAI_API_KEY または CODEX_API_KEY を設定してください。
リモートまたはヘッドレスマシンでは、ワークスペースが許可している場合は login --device-auth を使用するか、SSH 経由でサインインしてください。
一部のサイバーセキュリティリクエストおよび保護された検出結果には、 Trusted Access for Cyber の承認が必要です。
スコープとスキャンモードを選択してください:
# Scan selected paths.
cs scan . --path src --path tests
# Scan committed changes from a base revision to HEAD.
cs scan . --diff origin/main
# Run a deep scan of the repository.
cs scan . --mode deep
cs scan . --max-time 15 を使用すると、推奨される15分間の Standard 調査の許容量が設定されます。タイミングのセマンティクスと Deep Scan の制限については、investigation time を参照してください。
コマンドを一覧表示するには cs --help を使用し、スキャンオプション、コスト制限、スキャン後のパッチ適用については cs scan --help を使用してください。
複数のリポジトリにまたがるアプリケーションについては、review one system across repositories を参照してください。1つの再開可能なキャンペーンで独立したリポジトリレビューを行うには、bulk scans を使用してください。
スキャン後は、inspect its scope and follow-up work を参照して、記録された除外項目を理解し、検出結果をレビューするか、集中的なスキャンを実行するか、中断された実行を復旧するかを判断してください。
TypeScript プロジェクトにパッケージをローカルにインストールします:
npm install @openai/codex-security
次に、それをインポートします:
import { CodexSecurity } from "@openai/codex-security";
const security = new CodexSecurity();
try {
const result = await security.run("/path/to/repository");
console.log(result.reportPath);
} finally {
await security.close();
}
SDK ガイドには、ディープスキャンの設定、検証、重大度分類、所有者の提案、および結果の処理が含まれています。
Codex Security Cloud がアカウントで利用可能な場合、Security プラグインの
$cloud-findings スキルは、Codex デスクトップまたは Codex CLI で検出結果、レポート、記録された割り当てと
検証、およびスキャンステータスを読み取ることができます。Cloud は
オプションの接続です。ローカルスキャンはそれなしで動作します。
認証要件と読み取り専用の例については、 Cloud 接続のセットアップと CLI 読み取り を参照してください。
policy を使用して、新しい SECURITY.md の草案を作成するか、既存のものを更新します。--path
を使用してコンポーネントを選択します:
cs policy .
cs policy . --path services/api --knowledge-base architecture.md
このコマンドはドラフトをリポジトリ外に保存し、既存のファイルを変更しません。差分とノートを確認し、ドラフトを編集してから、表示された ポリシーターゲット に SECURITY.md のみをコピーしてください。保存されたアーキテクチャおよび脅威モデルのドキュメントはリポジトリ外に保管してください。
スキャンはすでにルートおよびコンポーネントの SECURITY.md ファイルを使用しています。変更が不要であれば、現在のポリシーをそのまま維持してください。更新する際は、その脆弱性報告の手順を保持してください。コマンドがポリシーはすでに最新であると表示した場合、コピーは不要です。
.github/SECURITY.md または docs/SECURITY.md にあるファイルには、報告手順が含まれていることがよくあります。ポリシーを起草する際はそれらを保持してください。これらの場所はリポジトリ全体のスキャンガイダンスを自動的に提供するものではありません。ポリシーの場所、未回答の質問、保存された成果物、SDK の使用方法については、ポリシーガイドを参照してください。
スキャンとポリシー生成は、結果とともに脅威モデルを保存します。別の分析を開始せずに、保存されたモデルをエクスポートできます:
cs export --scan SCAN_ID --artifact threat-model --output threatmodel.md
--scan を省略すると、現在のリポジトリの最新の完了済みスキャンが使用されます。
エクスポートガイドでは、検出事項、CI 向けの SARIF 出力、およびオフラインの TypeScript API についても説明しています。
GitHub Action を使用して、スケジュール実行、手動実行、またはプルリクエストのスキャンを実行します。週次のリポジトリスキャンを行うには、OpenAI API キーをリポジトリシークレット CODEX_SECURITY_API_KEY として追加し、このワークフローを .github/workflows/codex-security.yml に保存します。REPLACE_WITH_REVIEWED_COMMIT は、Action コミットの完全な SHA に置き換えてください。
このワークフローは Daybreak Blue を要求します。Blue が有効化されたプロジェクトの API キーを使用してください。Daybreak へのアクセス権がない場合は、cyber-access-program を省略するか、standard に設定してください。
name: Codex Security
on:
workflow_dispatch:
schedule:
- cron: "23 7 * * 1" # Mondays at 07:23 UTC
permissions:
contents: read
jobs:
security:
runs-on: ubuntu-24.04
steps:
# Configure Bubblewrap and AppArmor so Codex Security can run safely in its sandbox.
- name: Set up the Ubuntu sandbox
run: |
sudo apt-get update
sudo apt-get install --yes bubblewrap apparmor-profiles
sudo apparmor_parser -r /usr/share/apparmor/extra-profiles/bwrap-userns-restrict
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: openai/codex-security@REPLACE_WITH_REVIEWED_COMMIT
with:
model: gpt-5.6-sol
effort: high
cyber-access-program: daybreak_blue
env:
OPENAI_API_KEY: ${{ secrets.CODEX_SECURITY_API_KEY }}
検出結果はデフォルトでレポートのみです。重大度のしきい値を設定すると、そのしきい値以上の報告された検出結果で失敗するようになります。スキャナおよび必須のレポートエラーはジョブを失敗させますが、意図的なファイル除外と調査メモは失敗させません。 PRスキャン、重大度のしきい値、レポートのアップロードについては、Actionのセットアップと入力リファレンスを参照してください。