Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Generative and Predictive AI in Application Security: A Comprehensive Guide

2025年09月18日に「Dev.to」が公開したITニュース「Generative and Predictive AI in Application Security: A Comprehensive Guide」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

アプリのセキュリティ(AppSec)では、AIが脆弱性発見やテスト自動化を革新する。AIは新たなテスト生成(Generative AI)や脆弱性予測(Predictive AI)で活躍し、SAST/DASTツールにも統合。自律的に攻撃や防御を行うAgentic AIも登場した。誤検知や未知の脅威への対応が課題だが、AIはAppSecの効率化と高度化を進める。

ITニュース解説

アプリケーションセキュリティ(AppSec)の分野において、人工知能(AI)は今、革命的な変化をもたらしている。特に「生成AI」と「予測AI」という二つの技術が、ソフトウェアの安全性を確保するためのバグ発見、テストの自動化、さらには攻撃対象の自動スキャンといったタスクを、これまで以上に高度に実行できるよう進化させている。システムエンジニアを目指す皆さんにとって、この最先端の動向を理解することは、将来のキャリアにおいて不可欠となるだろう。

ソフトウェアの脆弱性を自動で発見しようとする試みは、実は古くから行われていた。1980年代後半に考案された「ファズテスト」はその代表例だ。これは、プログラムに意図的に異常なデータ(ファズ)を大量に与え、その反応を見ることでバグや脆弱性を見つけ出す手法である。初期の自動コードレビューツールは、あらかじめ定義された危険なパターンや関数名をコードの中から探し出す、非常にシンプルなものだった。しかし、これらのツールはコードの文脈を理解できないため、実際には問題ないコードまで危険だと報告する「誤検知(False Positive)」が多く発生するという課題を抱えていた。

その後、AI技術が進化し、AppSecの分野にもデータ駆動型のアプローチが導入され始めた。例えば、ネットワーク上の不審な振る舞いを検出するためにニューラルネットワークが使われたり、迷惑メールを判別するためにベイジアンフィルターが利用されたりするなど、AIの要素が徐々にセキュリティ対策に取り入れられていった。特に注目すべきは「コードプロパティグラフ(CPG)」という概念の登場である。これは、ソースコードの構文構造、プログラムの実行順序、そしてデータがどのように流れるかという情報を一つのグラフとして統合する技術だ。これにより、従来の単純なパターンマッチングでは見つけられなかった、より複雑で意味のある脆弱性を検出できるようになった。 2016年には、米国防高等研究計画局(DARPA)が主催した「Cyber Grand Challenge」というイベントで、人間が関与することなく、ソフトウェアの脆弱性を発見し、その悪用を実証し、さらに修正まで行う完全に自動化されたハッキングシステムが登場し、AIが自律的なサイバーセキュリティを実現する可能性を世界に示した。

これらの進展を経て、現代では機械学習モデルがセキュリティに本格的に活用されている。「Exploit Prediction Scoring System (EPSS)」はその一例で、これは何百もの要因を分析し、発見された脆弱性が実際に攻撃者によって悪用される可能性がどれくらい高いかを予測するシステムだ。これにより、セキュリティチームは、数多く存在する脆弱性の中から、最も危険で早急な対応が必要なものに優先的に対処できるようになる。また、大量のコードベースで学習されたディープラーニングモデルは、安全でないコード構造を効率的に特定する。さらに、大規模言語モデル(LLM)は、新しいテストケースを自動生成することで、より多くのバグを発見し、人間の手作業による負担を大幅に軽減している。

現在のAppSecでは、AIは大きく二つの形で利用されている。一つは「生成AI」で、これは新しいデータや情報を作り出す能力を持つ。セキュリティの文脈では、新しいテストケース、脆弱性を悪用するためのコード(エクスプロイト)、あるいは攻撃シナリオなどを自動的に生成する。例えば、従来のファズテストはランダムなデータを生成するだけだったが、生成AIを用いることで、より戦略的で効果的なテストデータを生み出し、より多くの欠陥を発見できるようになっている。また、既知の脆弱性に対して、その悪用方法を実証する「概念実証(Proof-of-Concept、PoC)」コードを生成したり、攻撃者の行動をシミュレートするツールとして利用され、防御側のテストを強化する役割も果たす。 もう一つは「予測AI」で、これは過去のデータから学習し、将来の事象やパターンを予測する能力を持つ。AppSecでは、大量のコードやログデータの中から、潜在的な脆弱性の兆候を特定したり、その深刻度や悪用される可能性を予測したりする。ルールベースのシステムでは見逃されがちな微妙なパターンも、予測AIは過去の膨大なデータから学習することで認識できる。EPSSはまさにこの予測AIの一種で、セキュリティ上の欠陥を、実際に攻撃で利用される可能性が高い順にランク付けし、セキュリティ担当者が最も重要な5%の脆弱性に集中できるように支援する。

SAST(静的アプリケーションセキュリティテスト)、DAST(動的アプリケーションセキュリティテスト)、IAST(対話型アプリケーションセキュリティテスト)といった既存のセキュリティテスト手法も、AIとの融合により、その性能を大きく向上させている。SASTはコードを実行せずに脆弱性を分析するが、AIは誤検知を減らし、実際に悪用可能な脆弱性のみを特定することで、結果の精度を高める。DASTは稼働中のアプリケーションに対して攻撃をシミュレートするが、AIはアプリケーションの複雑な処理の流れやマイクロサービスのエンドポイントをより正確に解釈し、テストの網羅性を広げる。IASTはアプリケーションの実行時に内部の挙動を監視するが、AIはその膨大な監視データの中から、ユーザー入力が危険な関数に不適切に影響を与えるようなリスクの高いデータフローを効率的に見つけ出す。

今日では、これらのスキャンエンジンは複数のアプローチを組み合わせて利用している。基本的なパターンマッチングや既知の脆弱性に対する署名ベースの検出は引き続き利用されるが、これにAI駆動の分析を加えてより深い洞察を得たり、機械学習によって検出された問題の優先順位を付けたりすることで、効率と精度を向上させている。 また、クラウドネイティブな環境への移行や、オープンソースライブラリの利用が拡大する中で、AIはコンテナセキュリティやサプライチェーンセキュリティにおいても不可欠な役割を担っている。AI駆動のイメージスキャナーは、コンテナイメージ内の既知の脆弱性や設定ミスを検出し、AIベースの異常検知は、実行中のコンテナの不審な振る舞いをリアルタイムで捉えることで、従来の署名ベースのツールでは見つけにくい攻撃を検出する。数百万にも及ぶオープンソースライブラリの中から、悪意のあるパッケージやリスクの高いコンポーネントをAIが分析し、サプライチェーン全体のリスクを管理することも可能になっている。

しかし、AIはAppSecに強力な能力をもたらす一方で、いくつかの課題と限界も抱えている。 まず、AIによる検出は常に完璧ではない。機械によるスキャンは、無害なコードを危険と判断する「誤検知」や、危険な脆弱性を見落とす「見逃し」の問題を抱えがちだ。AIは誤検知を減らすのに役立つが、学習データが不適切だったり、モデルの設計に問題があったりすると、新たな種類のエラーを引き起こす可能性もあるため、人間の専門家による最終的な確認が依然として重要である。 また、AIが脆弱性のあるコードパスを特定したとしても、それが実際に攻撃者によって悪用可能かどうかを判断するのは非常に複雑な問題だ。AIによる発見の多くは、専門家による詳細な分析を経て、その緊急性を判断する必要がある。 AIシステムは過去のデータから学習するため、学習データに偏りがあると、特定の技術については過度に正確に判断する一方で、他の領域では脆弱性を見落とす可能性がある。そのため、常に最新かつ多様なデータでAIモデルを学習させ、定期的に見直すことが重要だ。 さらに、AIは過去に学習したパターンには強いが、全く新しいタイプの脆弱性(ゼロデイ脅威)は、既存の知識に一致しないため、見逃してしまうリスクがある。また、攻撃者は防御側のAIを欺くための「敵対的AI」技術を用いることもあり、防御AIは常に進化し続ける必要がある。

近年では、「エージェントAI」という新しい概念が注目を集めている。これは、単に与えられた質問に答えるだけでなく、自律的に複数のタスクを計画し、実行し、状況に応じて戦略を調整できるAIシステムのことだ。セキュリティの分野では、人間による最小限の指示で、複数段階の操作を制御し、リアルタイムの状況に適応して意思決定を行うAIを意味する。 攻撃側(レッドチーム)では、エージェントAIが自律的に模擬攻撃を実行し、脆弱性の特定から侵入経路の構築、侵害の実証までを行うことが可能になる。防御側(ブルーチーム)では、AIエージェントがネットワークを常に監視し、不審なイベントに対して、例えば侵害されたホストの隔離やファイアウォールルールの更新など、能動的に対応する。 このような完全に自律的なペネトレーションテストや攻撃シミュレーションは、多くのセキュリティ専門家にとって長年の目標であり、DARPAのCyber Grand Challengeでの成果や、新しいエージェントAIの登場により、機械が複雑な多段階攻撃を計画し実行する現実が目前に迫っている。 しかし、大きな自律性には危険も伴う。自律システムが誤って重要なシステムに損害を与えたり、攻撃者によって悪用されて破壊的な行動を起こさせたりするリスクがあるため、厳重な安全対策、安全なテスト環境、そして潜在的に危険なタスクに対する人間による最終確認が不可欠となる。

AIがAppSecに与える影響は今後さらに加速するだろう。 今後数年のうちに、開発環境(IDE)にはAI駆動の脆弱性スキャン機能が標準で組み込まれ、開発者がコードを書いている最中にリアルタイムで潜在的な問題を指摘するようになる。機械学習を活用したファザーは一般的になり、人間による定期的なペネトレーションテストを補完する形で、AIによる継続的かつ自律的なスキャンが広がっていく。一方で、サイバー犯罪者も生成AIを悪用し、より巧妙なフィッシングメールやソーシャルエンジニアリング攻撃を仕掛けてくるため、これに対抗する新しいインテリジェントな防御策が求められる。また、AIのサイバーセキュリティにおける利用に関する規制やガイドラインも導入され、AIの透明性や説明責任が求められるようになるだろう。 長期的には(5~10年後)、AIはソフトウェア開発ライフサイクル(SDLC)全体を根本から変革する可能性がある。AIがコードの大部分を生成し、その過程でセキュリティを自動的に組み込む「AI拡張開発」が一般的になるかもしれない。脆弱性を発見するだけでなく、それを自律的に修正し、その修正の正しさを検証するツールが登場する可能性もある。AIエージェントがアプリケーションを24時間監視し、攻撃を予測し、リアルタイムでセキュリティ制御を展開し、攻撃側のAIと戦うようになるだろう。 AIの利用自体も厳しく規制されるようになり、高影響度の産業におけるAI利用には、その行動の追跡可能性や学習データの監査が義務付けられる可能性がある。AIがサイバー防御の中心的な役割を担うにつれて、関連するコンプライアンスフレームワークも適応し、AIモデルのガバナンス、すなわち学習データの追跡、モデルの公平性の実証、AI駆動のアクションのログ記録などが求められるようになるだろう。AIエージェントがインシデント対応措置を実行した場合の責任の所在など、政策立案者が取り組むべき倫理的および法的問題も多く存在する。 さらに、AIは従業員監視におけるプライバシー侵害のリスクや、操作された場合に生命にかかわる意思決定における危険性もはらむ。攻撃者はAIを利用して防御側の検出を回避しようとし、学習データを汚染したり、AIに意図しない指示を与えたり(プロンプトインジェクション)することで防御AIシステムを誤誘導する可能性もある。未来のサイバー防御では、機械学習コード自体のセキュリティ確保が極めて重要な要素となる。

AI駆動型の手法は、アプリケーションセキュリティに大きな変革をもたらし始めている。AIは、脆弱性の発見を加速させ、効果的な優先順位付けを支援し、労力の多いプロセスを効率化することで、防御側にとって強力な味方となる。 しかし、AIは決して万能ではない。誤検知、モデルの偏り、そして全く新しい種類の脆弱性に対しては、人間の専門家による厳密な精査が不可欠である。ハッカーと防御側の競争は今後も続き、AIはその最新の戦いの舞台となるだろう。AIを専門家による分析、堅牢なガバナンス、そして継続的な改善と統合する組織こそが、絶えず変化するアプリケーションセキュリティの状況で成功を収める準備ができていると言える。 最終的に、AIが約束する未来は、セキュリティの欠陥が早期に発見され迅速に対処され、セキュリティ専門家が攻撃者の急速なイノベーションに正面から対抗できる、より安全なデジタル環境である。継続的な研究、コミュニティの努力、そしてAI能力の進歩によって、その未来は予想よりも早く訪れるかもしれない。

関連コンテンツ

関連IT用語