なぜ今、コードのセキュリティ診断が重要なのか

AIエージェントがコードを書く機会が増え、人間のレビューが追いつかない現場が増えているという声が多いです。

生成速度が上がるほど、脆弱性の混入リスクも比例して高まります。こうした背景の中、OpenAIがコードセキュリティ診断のCLI/SDKを自社リポジトリでOSS公開したことが注目されています(GitHub公式リポジトリ openai/codex-security より)。

この記事でわかること

  • Codex Securityが何をするツールなのか
  • CLIでのスキャンからCI組み込みまでの基本フロー
  • 日本の開発現場で使う際の注意点

結論:Codex Securityは「AIレビュー担当」をCLI/SDKで組み込める仕組み

Codex Securityは、自分が所有または許可を得たリポジトリに対し、OpenAIのモデルで脆弱性を検出・検証できるOSSのCLIとTypeScript SDKです(公式READMEより)。

たとえるなら、コードのために雇う「専属セキュリティ監査員」のようなツールです。人間が見落としがちなパターンを、決まった手順で機械的にチェックしてくれます。

特徴を整理すると次の通りです。

  • CLIとSDKの両方を提供(npm install @openai/codex-security)
  • スキャン結果をSARIF・CSV・JSON形式でエクスポート可能
  • CI/CDパイプラインやpre-commitフックに組み込み可能
  • デフォルトモデルはgpt-5.6-sol、reasoning effort(推論にかける計算の深さ)はextra-high設定

詳細解説:インストールとスキャンの基本フロー

まず結論から言うと、ログイン後にscanコマンドを打つだけで診断が始まります。

npm install @openai/codex-security
npx codex-security login
npx codex-security scan /path/to/repo

サインインはOpenAIアカウント、またはAPIキー(環境変数OPENAI_API_KEYやCODEX_API_KEY)のどちらかで行います。ヘッドレス環境(GUIのないリモートサーバー)では--device-authオプションを使う設計です(公式READMEより)。

スキャン対象は絞り込みも可能です。

npx codex-security scan /path/to/repo --path src --path tests
npx codex-security scan /path/to/repo --diff origin/main --json

--diffを使えば、リポジトリ全体ではなく差分(diff、変更点)だけを対象にできます。プルリクエスト単位での軽量な差分スキャンに向いた設計とみられます。

出力先の指定にも注意が必要です。スキャン結果には脆弱性の詳細や再現手順が含まれるため、出力ディレクトリはスキャン対象のリポジトリやGitワークツリーの外に置く仕様になっています(公式READMEより)。

詳細解説:CI/CDとpre-commitフックへの組み込み

この節の結論は、severity(深刻度)を閾値にしてCIを止められる、という点です。

npx codex-security scan /path/to/repo --fail-on-severity high

指定した深刻度以上の指摘があると終了コード1で失敗し、スキャン未完了やランタイムエラーは終了コード2になる仕様です(公式READMEより)。CIのジョブとしてそのまま組み込みやすい設計といえます。

コミット前チェックも用意されています。

npx codex-security install-hook

このコマンドで、コミット前にステージ済み・未ステージの変更をスキャンするフックが設定されます。既存のGitフックを上書きせず、core.hooksPath(Gitのフック格納先設定)にも対応する点が特徴です。

さらに複数リポジトリをまとめて診断するbulk-scanコマンドもあります。GitHub CLIでサインインしていれば、直近90日以内にプッシュされたリポジトリを自動的に一覧表示し、選択したものだけをスキャンする流れです(公式READMEより)。

詳細解説:TypeScript SDKとモデル設定

CLIだけでなくSDKからも同じ機能を呼び出せます。

import { CodexSecurity } from "@openai/codex-security";

const security = new CodexSecurity();
try {
  const result = await security.run("/path/to/repository", {
    outputDir: "/path/outside/repository/results",
  });
  console.log(result.reportPath);
  console.log(result.findings.findings.length);
} finally {
  await security.close();
}

自社の開発ツールやダッシュボードにセキュリティスキャン機能を組み込みたい場合、SDKを使えばCLIを叩かずに直接連携できます。

モデルは--modelで切り替え可能で、reasoning effort(推論の深さの設定値)も--codex経由で調整できます。

npx codex-security scan . --model gpt-5.6-terra --codex 'model_reasoning_effort="high"'

診断精度とコスト・速度のバランスを、案件ごとに調整できる設計といえます。

日本の開発者にとっての意味・使い所

日本でも生成AIによるコーディング支援の導入が進み、レビュー体制の強化が課題になっているという声が多いです。Codex Securityは、その一部を自動化する選択肢として検討価値があります。

一方で注意点もあります。

  • OpenAIアカウントまたはAPIキーが必須のため、社内コードを外部サービスに送る前提になる
  • Python 3.10以上・Node.js 22以上という比較的新しい環境が必要
  • MCP(AIエージェントが外部ツールを呼び出すための共通規格)経由では読み取り専用のメタデータしか扱えず、スキャン自体はCLI限定

これらの制約を踏まえると、機密性の高いコードを扱う企業では、まず社内ルールと照らし合わせてから導入するのが現実的です。逆に、OSSプロジェクトや個人開発、社外秘情報の少ないリポジトリでは、CIに組み込むハードルは低いと考えられます。

まとめ

Codex Securityは、OpenAIのモデルを使ってコードの脆弱性を検出・検証・レビューするCLI/SDKです。CI連携やpre-commitフック、差分スキャンなど、実運用を意識した機能がひとそろい揃っています。

ただしAPIキーによる外部送信が前提となるため、社内のセキュリティポリシーとの整合性は事前に確認すべきポイントです。まずは公開リポジトリや個人プロジェクトで挙動を確認し、自社導入の可否を検討するのがよさそうです。