【ITニュース解説】Exhaustive Guide to Generative and Predictive AI in AppSec
2025年10月03日に「Dev.to」が公開したITニュース「Exhaustive Guide to Generative and Predictive AI in AppSec」について初心者にもわかりやすく解説しています。
ITニュース概要
AIはアプリケーションセキュリティ(AppSec)を大きく変えている。生成AIはテストや攻撃コードを生成し、予測AIは脆弱性を特定・評価する。バグ発見の自動化やコンテナ/サプライチェーン保護に役立つ一方、誤検知やバイアスといった課題もある。将来的にはエージェントAIによる自律的な防御も期待される。
ITニュース解説
アプリケーションのセキュリティ、通称AppSecは、私たちが日常的に利用するソフトウェアを安全に保つ上で極めて重要である。近年、人工知能(AI)はこのAppSecの分野で目覚ましい進歩を遂げ、脆弱性の発見や自動評価をより高度に、そして効率的に行えるようになりつつある。本稿では、AIがAppSecにどのように貢献しているのか、その進化の歴史から現在の機能、将来の展望までを、システムエンジニアを目指す初心者にもわかりやすく解説する。
AIがAppSecに応用される以前から、セキュリティ専門家たちはセキュリティ上の欠陥を見つける作業を効率化しようと模索してきた。1980年代後半には、プログラムにランダムなデータを送り込み、その異常な挙動を検出して脆弱性を発見する「ファジング」という手法が基礎を築いた。1990年代から2000年代初頭にかけては、コードの中から既知のパターンを検索する「静的解析ツール(SAST)」が登場したが、文脈を考慮しないため「誤検知」が多いという課題があった。その後、セキュリティツールはデータ駆動型アルゴリズムへと進化し、ニューラルネットワークやベイズフィルターといった機械学習技術が徐々に浸透していった。この時期に「コードプロパティグラフ(CPG)」という概念が生まれ、プログラムの構造やデータの流れ、制御の流れを一つのグラフに統合することで、より深い文脈を考慮した脆弱性分析が可能になった。2016年には、人間を介さずにセキュリティホールを発見・修正する完全自動ハッキングシステムが登場し、自動化されたサイバーセキュリティの転換点となった。
高度な機械学習技術と大量の学習データの出現により、AppSecにおけるAIの活用は加速した。機械学習モデルは、ソフトウェアの脆弱性やそれを利用する攻撃を予測する能力を持つようになった。例えば、「Exploit Prediction Scoring System (EPSS)」は、多くの要因を分析して、どの脆弱性が実際に攻撃される可能性が高いかを予測し、セキュリティチームがリスクの高い脆弱性から対処できるように支援している。また、大規模言語モデル(LLM)は、新しいテストケースを生成することでセキュリティテストを強化し、少ない手作業で多くのバグを発見するのに貢献している。
現在のソフトウェア防御では、AIは大きく分けて二つのカテゴリーで活用されている。一つは、新しい出力(テストデータや攻撃コードなど)を生成する「生成AI」、もう一つは、データを評価して脆弱性を特定または予測する「予測AI」である。生成AIは、インテリジェントなファズテストの生成に活用され、従来のランダムなテストよりもターゲットを絞ったテストを考案できる。また、既知の脆弱性に対する攻撃の概念実証(PoC)コードの構築を支援し、防御側はこれを利用して自らの防御をテストできる。一方、予測AIは、大量のデータセットを分析して潜在的なバグを発見する。ルールベースのシステムでは見逃されがちなパターンを学習し、疑わしいコード構造を特定したり、新たに見つかった問題の悪用可能性を評価したりする。EPSSのように、機械学習モデルが脆弱性の攻撃される可能性に基づいて優先順位を付けることで、セキュリティチームは最もリスクの高い脆弱性に集中できるようになる。
従来のセキュリティテストツールもAIによって強化されている。SASTは、AIが機械学習による分析で誤検知をフィルタリングし、優先順位を付けることで精度が向上する。実行中のアプリケーションをスキャンする「動的解析ツール(DAST)」は、AIがスマートな探索やテストセットの進化を可能にし、複雑なアプリケーションのテスト網羅性を高める。アプリケーションの実行中に組み込まれ、関数呼び出しやデータの流れを記録する「実行時インタラクティブ解析ツール(IAST)」では、AIモデルが大量のデータを解釈し、ユーザー入力が危険な処理に到達する脆弱なフローを特定する。これらのツールは単独ではなく、パターンマッチング、専門家のルール、CPG、そしてAI駆動の分析が組み合わされ、より深い洞察と警告の優先順位付けが行われている。
AIは、コンテナセキュリティやサプライチェーンの脅威といった現代的な課題にも対応している。AI駆動のイメージスキャナーはコンテナファイル内の脆弱性や設定ミスを調査し、実行時に脆弱性が利用可能か判断することで、誤った警告を減らす。サプライチェーンリスクにおいては、AIが悪意のある兆候をパッケージメタデータから検知したり、コンポーネントの危険性を評価したりすることで、リスクの高い要素を特定できるようになる。
しかし、AIは万能な解決策ではない。すべての自動セキュリティテストと同様に、AIも「誤検知」(問題ないコードを危険と判断)や「未検知」(危険な脆弱性を見逃す)のリスクを抱えている。AIは誤検知を減らせる一方で、学習不足や想定外のパターンにより新たな誤りや見落としを生む可能性があるため、人間の専門家による確認が不可欠である。AIが脆弱性を指摘したとしても、実際に攻撃者によって悪用可能であるかは専門家の判断を要する。また、AIモデルは学習データに偏りがあると、特定の脅威を見落とす可能性があり、継続的な更新と多様なデータセットの利用が重要である。機械学習は既知のパターンに優れるため、まったく新しい種類の脆弱性(ゼロデイ攻撃)は見逃す可能性がある。攻撃者もAIを利用するため、防御側のAIも常に進化し続ける必要がある。
近年注目されているのが「エージェントAI」である。これは、単に答えを生成するだけでなく、自律的に目標を立てて行動できるAIエージェントを指す。エージェントAIは、「このシステムでセキュリティ上の欠陥を見つけろ」といった目標を与えられると、計画を立て、データの収集、テストの実行、戦略の修正まで自ら行う。これは、AIが「ヘルパー」から「自律的な存在」へと変化する重要な意味を持つ。エージェントAIは、自律的なレッドチーム演習やネットワーク監視、疑わしいイベントへの積極的な対応など、攻撃と防御の両面で活用が進む。しかし、高い自律性にはリスクも伴い、意図しない損害やハッカーによる操作の可能性もあるため、安全対策や人間の承認が不可欠である。
アプリケーションセキュリティにおけるAIの役割は今後さらに加速するだろう。短期的には、開発環境にAIアシストのセキュリティ評価機能が組み込まれ、AIベースのファジングが標準化されると予測される。サイバー犯罪者もAIを悪用するため、防御システムも進化を続ける必要がある。長期的には、AIがDevSecOpsを刷新し、AIがコード生成の大部分を担いセキュリティを本質的に組み込む「AI拡張開発」や、脆弱性を自律的に修正する「自動脆弱性修正」が実現するかもしれない。また、AIはシステムを常時監視し、攻撃を未然に防ぐ「プロアクティブな継続的防御」も可能にするだろう。同時に、AI自体も厳格な監視対象となり、AI使用の規制や説明可能なAIが求められるようになる。
AIがサイバー防御の中心となるにつれて、AIによるコンプライアンスチェックやAIモデルのガバナンスが重要となる。自律システムが対応した場合の責任の所在など、AIの意思決定に対する責任の定義は、政策立案者が取り組むべき複雑な課題である。プライバシーや、AIに頼りすぎた場合の危険性も考慮する必要がある。攻撃者もまた、機械学習のパイプラインを妨害したり、機械知能を利用して検出を回避したりする「敵対的AI」を活用する。そのため、機械学習コード自体のセキュリティ確保が極めて重要となる。
生成AIと予測AIは、アプリケーションセキュリティを大きく変革し始めている。AIは防御者にとって強力な味方となり、欠陥の発見を加速させ、最大の脅威に優先順位をつけ、面倒な作業を処理するのに役立つ。しかし、AIは万能薬ではない。誤検知、偏り、新しい種類のエクスプロイトには、専門家による厳密な検査が必要である。AIを責任ある形で導入し、人間の専門知識、規制遵守、そして継続的な更新と組み合わせる組織が、変化し続けるAppSecの世界で成功するだろう。AIの最終的な目標は、脆弱性が早期に検出され、迅速に修正され、防御者が攻撃者の巧妙さに真っ向から対抗できる、より安全なアプリケーション環境を実現することである。