はじめに
この記事は、新しいセキュリティツールを紹介するものではありません。また、Secret ScannerやSASTを置き換えることを提案するものでもありません。
私が提案したいのは、AIエージェント時代の開発プロセスにおいて、これらの技術をどのような役割で組み込むべきかというアーキテクチャ上の考え方です。
私は、この役割を AI Security Gate と呼んでいます。
AIは「コードを書くツール」ではなくなった
生成AIは、コード補完ツールから、自律的に開発を進めるエージェントへと進化しています。
すでにAIは、
- 要件からコードを生成する
- テストを書く
- リファクタリングする
- Pull Requestを作成する
- コードレビューを行う
といった一連の作業を実行できます。
近い将来、多くのソフトウェア開発は、
AIが実装し、AIがレビューし、AIが修正する
というワークフローになるでしょう。
このとき、開発プロセスから人間が完全にいなくなるとは限りません。しかし、人間によるレビューをセキュリティの最後の砦として設計することは難しくなります。
AIが生成した成果物をAIが評価する世界では、AIの判断とは独立して必ず実行される機械的なセキュリティ制御が必要です。
AI Security Gateとは
私が考えるAI Security Gateの定義は、次のとおりです。
AI Security Gateとは、AIが生成した成果物を開発プロセスへ受け入れる前に、決定論的なルールに基づいて検証するセキュリティ制御レイヤーである。
ここで重要なのは、「成果物」と「決定論的」という2つの言葉です。
成果物とは、ソースコードだけではありません。
- ソースコード
- Infrastructure as Code
- Dockerfile
- Kubernetesマニフェスト
- SQL
- GitHub Actions
- API仕様書
など、AIが生成するあらゆる成果物が対象になります。
また、AI Security Gateは推論を行いません。
AI Reviewerが
「こちらの設計の方が保守しやすい」
と判断するのに対し、AI Security Gateは
「APIキーが含まれている」
「組織ポリシーに違反している」
といった事実だけをルールに基づいて判定します。
AI Security Gateの4つの要件
AI Security Gateは、次の4つの性質を持つべきだと考えています。
1. Deterministic(決定論的)
AIではなく、ルールによって判定すること。
誰が実行しても、何度実行しても同じ結果になることが重要です。
2. Policy-based(ポリシー駆動)
組織のセキュリティポリシーを機械的に適用できること。
人やAIの判断ではなく、ルールとして強制される必要があります。
3. Pre-acceptance(受け入れ前)
成果物がリポジトリやCI/CDパイプラインへ取り込まれる前に実行されること。
問題があれば、その時点で処理を停止できることが重要です。
4. Mandatory(必須)
AIが生成した成果物でも、人間が作成した成果物でも、必ず通過すること。
「必要なら実行する」のではなく、開発プロセスに組み込まれていることが前提です。
Secret Scannerとの違い
「それはSecret Scannerではないのか」と思われるかもしれません。Secret Scannerは、秘密情報を検出するためのツールです。
一方、AI Security Gateは、開発プロセスにおける役割を表す概念です。
例えば、Webアプリケーションには、
- 認証
- 認可
- ロギング
という役割があります。
実装は複数存在しても、「認証」という役割は共通です。
AI Security Gateも同じです。
Secret ScannerやIaC Scanner、ライセンスチェッカーなどは、それぞれAI Security Gateを構成する実装になり得ます。
つまり、AI Security Gateはツール名ではなく、AIが生成した成果物を受け入れる前に適用されるセキュリティレイヤーを表すアーキテクチャ上の概念です。
AI時代の開発プロセス
これからの開発プロセスは、次のような構成へ変化していくと考えています。
AI Agent
↓
AI Security Gate
↓
AI Reviewer
↓
Automated Test
↓
CI/CD
↓
Production
ここで重要なのは、AI Reviewerより前にAI Security Gateを配置していることです。AI Reviewerは推論によって品質を評価します。
一方、AI Security Gateは、推論を介さず、組織のルールを必ず適用します。この役割は、AIがどれだけ進化しても変わりません。
KeyGateの位置付け
私は、この考え方を実装したOSSとしてKeyGateを開発しています。KeyGateは、秘密情報の検出に特化したAI Security Gateの実装です。
今後、AI Security Gateというカテゴリの中には、
- Secret Protection
- License Compliance
- IaC Security
- Policy Enforcement
- Compliance Validation
など、さまざまな実装が登場するでしょう。
KeyGateは、その中で「Secret Protection」を担う一つの実装です。
おわりに
AIエージェントは、ソフトウェア開発の主体になろうとしています。その変化に合わせて、開発プロセスの設計も見直す必要があります。私は、AI時代に新しく必要になるのは「AIが判断する仕組み」ではなく、「AIの判断とは独立して、組織のルールを必ず適用する仕組み」だと考えています。
その役割を表す概念が AI Security Gate です。
数年後、「AI Agent」「AI Reviewer」と同じように、「AI Security Gate」が開発プロセスを説明する際の共通語になれば、AI時代のソフトウェアエンジニアリングは一段成熟したと言えるのではないでしょうか。