はじめに
AIエージェントを使う開発プロセスに、Secret ScannerやSASTをどう組み込むか。この記事では、既存のセキュリティ技術を開発のどの段階で使い、どのような役割を持たせるかを提案します。
私は、成果物を受け入れる前に必ず検証する役割を「AI Security Gate」と呼んでいます。
AIが実装からレビューまで担う開発
生成AIは、コード補完に加えて、自律的に開発を進めるエージェントとしても使われています。要件からのコード生成、テストの作成、リファクタリング、Pull Requestの作成、コードレビューまで、一連の作業を実行できます。
今後は、AIが実装し、AIがレビューし、AIが修正する開発が広がるでしょう。人間が関わり続けるとしても、最終的なセキュリティ確認を人間のレビューに頼る設計は難しくなります。
AIが生成した成果物をAIが評価する開発では、AIの判断から独立したセキュリティ検証を、必ず実行する仕組みが必要です。
AI Security Gateとは
私が考えるAI Security Gateは、AIが生成した成果物を開発プロセスに受け入れる前に、決定論的なルールで検証する仕組みです。決定論的とは、同じ条件で実行すれば同じ結果になることを指します。
検証対象には、ソースコード、Infrastructure as Code、Dockerfile、Kubernetesマニフェスト、SQL、GitHub Actions、API仕様書など、AIが生成するあらゆる成果物を含みます。
AI Reviewerは「こちらの設計の方が保守しやすい」といった判断を推論によって行います。AI Security Gateが行うのは、あらかじめ定めたルールによる検証です。「APIキーが含まれている」「組織ポリシーに違反している」といった事実を判定し、推論は行いません。
AI Security Gateの4つの要件
AI Security Gateには、次の4つの要件が必要だと考えています。
1. Deterministic(決定論的)
定めたルールに基づいて判定します。同じ条件であれば、誰が何度実行しても結果が変わらないことが要件です。
2. Policy-based(ポリシーに基づく)
組織のセキュリティポリシーをルールとして定義し、機械的に適用します。その適用を人やAIの判断に委ねないことが要件です。
3. Pre-acceptance(受け入れ前)
成果物がリポジトリやCI/CDパイプラインに取り込まれる前に検証します。問題が見つかった場合は、その時点で処理を停止できる必要があります。
4. Mandatory(必須)
AIと人間のどちらが作成した成果物も、必ず検証の対象にします。検証を開発プロセスに組み込み、実行を必須にすることが要件です。
Secret Scannerとの関係
Secret Scannerは、秘密情報を検出するツールです。AI Security Gateは、成果物を受け入れる前に検証する、開発プロセス上の役割を指します。
たとえば、Webアプリケーションには認証、認可、ロギングといった役割があり、それぞれに複数の実装方法があります。同じように、AI Security Gateも複数のツールで実装できます。Secret Scanner、IaC Scanner、ライセンスチェッカーなどを、その構成要素として使うことができます。
AI時代の開発プロセス
私は、AIを使う開発プロセスを次のように構成することを考えています。
AI Agent
↓
AI Security Gate
↓
AI Reviewer
↓
Automated Test
↓
CI/CD
↓
Production
AI Security GateをAI Reviewerの前に置き、組織のルールに基づく検証を先に実行します。その後、AI Reviewerが推論によって品質を評価する構成です。
AIの能力が向上しても、組織のルールを必ず適用する役割は必要だと考えています。
KeyGateの位置付け
私は、この考え方を実装したOSSとしてKeyGateを開発しています。KeyGateは、秘密情報の検出に特化したAI Security Gateの実装です。
今後は、Secret Protection、License Compliance、IaC Security、Policy Enforcement、Compliance Validationなど、さまざまな用途の実装が登場すると考えています。KeyGateは、このうちSecret Protectionを担います。
おわりに
AIエージェントが開発を担う範囲が広がるにつれて、開発プロセスも見直す必要があります。私は、AIの判断から独立して組織のルールを必ず適用する仕組みを、開発プロセスに組み込みたいと考えています。その役割を表す言葉が「AI Security Gate」です。
「AI Agent」や「AI Reviewer」と同じように、「AI Security Gate」も開発プロセスを説明する共通の言葉になってほしいと考えています。