【ITニュース解説】Complete Overview of Generative & Predictive AI for Application Security
2025年09月16日に「Dev.to」が公開したITニュース「Complete Overview of Generative & Predictive AI for Application Security」について初心者にもわかりやすく解説しています。
ITニュース概要
AIはアプリケーションのセキュリティを大きく変革している。生成AIや予測AIを活用し、バグを素早く発見したり、テストを自動化したり、脅威を予測したりすることで、セキュリティ対策が効率化される。一方で、誤検知や未知の脅威への対応が課題だ。将来的にはAIがより自律的にセキュリティを守るようになるだろう。
ITニュース解説
AIは今、アプリケーションセキュリティ(AppSec)の分野で革新的な変化をもたらしている。システムエンジニアとして安全なソフトウェアを開発し、運用するために、AIがどのように脆弱性の発見やテスト、さらにはサイバー攻撃への防御に役立っているのかを理解することは非常に重要である。この解説では、生成AIと予測AIという二つの主要なAI技術が、AppSecの歴史の中でどのように進化し、現在どのような能力を持ち、そして将来どのように発展していくのかを詳しく見ていく。
AIがAppSecに本格的に登場する以前から、セキュリティの専門家たちはバグ検出の自動化を試みてきた。1980年代後半には、ランダムなデータをプログラムに入力して脆弱性を発見する「ファズテスト」が登場し、自動化の有効性を示した。1990年代から2000年代初頭にかけては、パターンマッチングベースの自動化スクリプトや静的解析(SAST)ツールが使われたが、コードの文脈を理解できないため誤検知が多いという課題があった。その後、セキュリティ分析は静的なルールベースから、よりコードの文脈を考慮した高度なアプローチへと進化し、機械学習がAppSec分野に導入され始めた。システムネットワークの異常検知やスパムフィルターなどが初期の応用例である。SASTツールも入力データの流れや実行経路を追跡できるようになり、より深い脆弱性分析が可能になった。特に、「Code Property Graph(CPG)」という概念は、コードの構文、実行順序、データフローを統合したグラフ構造で表現することで、単純なキーワードマッチでは見つけられないような複雑な脆弱性の特定を可能にした。2016年にはDARPA(米国防総省国防高等研究計画局)が主催した「Cyber Grand Challenge」というイベントで、人間による介入なしに脆弱性を発見し、その悪用を確認し、さらにはパッチを適用できる全自動ハッキングシステムが披露され、自律的なサイバーセキュリティの可能性を示した。
より高性能なアルゴリズムと大量の学習データが利用可能になるにつれて、AppSecにおけるAIの導入はさらに加速した。機械学習モデルは、ソフトウェアの脆弱性やその悪用方法を予測する能力を向上させ、例えば「Exploit Prediction Scoring System(EPSS)」は、多数の要因を分析してどの脆弱性が実際に攻撃される可能性が高いかを予測し、セキュリティチームが最も危険なものに集中できるように支援している。また、大規模言語モデル(LLM)は、オープンソースコードのテストハーネス(テストコードの枠組み)を生成するなど、脆弱性検出に貢献している。
今日のソフトウェア防御には、主に二種類のAIが活用されている。一つは、新しい成果物(テストケース、コード、エクスプロイトスクリプトなど)を生成する「生成AI(Generative AI)」であり、もう一つは、データを評価して脆弱性を特定したり予測したりする「予測AI(Predictive AI)」である。生成AIは、従来のファジングよりも精密で効果的なテストケースを作成できる。GoogleのOSS-FuzzチームはLLMを活用してテストハーネスを開発し、欠陥発見率を向上させた。また、生成AIは脆弱性が判明した際に、その悪用を証明する概念実証(PoC)コードの作成も支援し、防御側はこれを用いて自社のセキュリティ体制を検証できる。一方、予測AIは、大量の安全なコードと脆弱なコードから自ら学習し、ルールベースでは見逃されがちな疑わしいパターンや、新たに見つかった問題が悪用される可能性を特定・予測する。EPSSのようなツールがその代表例で、リスクの高い脆弱性に優先的に対処するのに役立つ。
AIは、静的アプリケーションセキュリティテスト(SAST)、動的アプリケーションセキュリティテスト(DAST)、インタラクティブアプリケーションセキュリティテスト(IAST)といった主要なセキュリティテスト手法も強化している。SASTでは、AIがデータフロー分析を用いて真に悪用可能なアラートを選別し、誤検知を削減する。DASTでは、AIが稼働中のアプリケーションをスマートに探索し、テストセットを動的に進化させることで、テストの網羅性を高め、脆弱性の見逃しを減らす。IASTでは、アプリケーションの実行時データをAIが解釈し、ユーザー入力が危険なAPIに触れる脆弱なフローを特定することで、誤アラートを排除し、実際の危険性のみを示す。現代のコードスキャンエンジンは、これらのAI強化型アプローチと、パターンマッチングやルールベースの既存手法を組み合わせて使用し、より深く、より正確な脆弱性分析を実現している。
クラウドネイティブなアーキテクチャへの移行により重要性が増しているコンテナやサプライチェーンのセキュリティにおいても、AIは活躍する。AI駆動型のツールは、コンテナファイル内の脆弱性や設定ミス、漏洩した秘密情報を検査し、デプロイ時に悪用可能かどうかも評価する。また、機械学習ベースのランタイム監視は、通常と異なるコンテナの挙動を検知し、従来のツールでは見逃されがちな攻撃を捕捉できる。サプライチェーンリスクに関しては、AIが悪意のあるオープンソースコンポーネントの挙動を分析し、隠れた脅威を特定する。機械学習モデルは、特定の依存関係が侵害される可能性を評価し、危険な要素を特定できるように支援する。
AIはソフトウェア防御に強力な能力をもたらすが、万能薬ではない。すべての機械ベースのスキャンと同様に、AIも誤検知(無害なコードを問題と誤って報告)と見逃し(実際の脆弱性を見落とす)の問題に直面する。AIは意味論的分析で誤検知を減らせるが、不適切な訓練やデータバイアスにより、新たなエラーや特定のリスクの見落としを生む可能性がある。また、AIが脆弱なコードパスを検出しても、それが実際に悪用可能かどうかの判断は難しく、人間の専門家による検証がしばしば必要となる。機械学習は学習したパターンには優れるが、全く新しいタイプのゼロデイ脆弱性や、攻撃者側が利用する敵対的AIに対しては、常に更新と人間による洞察が不可欠である。
現代のAIコミュニティで注目されているのが、自律的にタスクを実行できる「エージェント型AI」である。これは、単に質問に答えるだけでなく、「このソフトウェアの脆弱性を見つけなさい」といった大まかなタスクを与えられると、データ収集、テスト実行、戦略変更といった具体的な実行計画を自ら立てて実行するAIである。エージェント型AIは、攻撃側では自律的な模擬攻撃(脆弱性列挙、エクスプロイト戦略作成)に、防御側ではネットワーク監視や疑わしいイベントへの能動的な対応(ホスト隔離、ファイアウォールルール更新など)に利用され得る。しかし、大きな自律性には、意図しない損害や攻撃者による悪用のリスクも伴うため、堅牢なガードレールや監視が不可欠である。それでも、エージェント型AIはAppSecの新たなフロンティアである。
AppSecにおけるAIの役割は今後さらに加速するだろう。短期的には、開発者向けIDEにLLM駆動型のセキュリティチェックが組み込まれ、AIベースのファジングが標準化される。エージェント型AIによる継続的なセキュリティテストは、従来のペネトレーションテストを補完するようになるだろう。サイバー犯罪者も生成AIを悪用し、精巧なフィッシングが登場するため、防御側もAIによる新たな検出技術が必要となる。また、AI使用の透明性に関する規制の策定も進むと予想される。長期的には、AIがコードの大部分を生成し、最初から安全なコーディングが組み込まれる「AI拡張型開発」や、脆弱性を自律的に修復するツールの登場、そしてプロアクティブで継続的な防御体制の実現が期待される。AI自体の利用についても、追跡可能性や学習データの監査を義務付ける厳格な規制が導入される可能性もある。AIがAppSecに不可欠になるにつれて、AIによるコンプライアンスチェックや、AIモデルのガバナンス、さらにはAIの自律的な行動に対する責任所在の定義といった、倫理的・法的な課題にも取り組む必要がある。
生成AIと予測AIは、アプリケーションセキュリティを大きく変革している。AIはAppSecの専門家にとって強力な味方となり、脆弱性をより迅速に検出し、効果的に優先順位を付け、煩雑な作業を効率化する。しかし、AIは万能な解決策ではなく、誤検知、訓練データの偏り、新しい種類の攻撃には、依然として人間の専門知識が不可欠である。AIを責任を持って活用し、人間の洞察力、コンプライアンス戦略、そして継続的な更新と連携させる組織が、進化するAppSecの状況において成功するだろう。AIの機会を最大限に生かすことで、脆弱性が早期に発見され、迅速に修正される、より安全なソフトウェアエコシステムの実現が期待される。