【ITニュース解説】Complete Overview of Generative & Predictive AI for Application Security
2025年09月24日に「Dev.to」が公開したITニュース「Complete Overview of Generative & Predictive AI for Application Security」について初心者にもわかりやすく解説しています。
ITニュース概要
AIがアプリのセキュリティを革新している。生成AIはテストやコードを、予測AIは脆弱性検出やリスク評価を行い、バグ発見やテストを効率化する。誤検知や未知の脅威対応といった課題もあるが、将来的には自律型AIエージェントが防御を自動化し、より安全なソフトウェア開発へ進む。
ITニュース解説
アプリケーションセキュリティ、略してAppSecは、ソフトウェアの安全性を確保するための重要な分野だ。近年、このAppSecの領域でAIが大きな変化をもたらしており、バグの発見、テストの自動化、さらには悪意ある活動の自律的な検知など、様々な形で活用され始めている。この解説では、機械学習やAIがAppSecでどのように機能し、どのような進化を遂げてきたのか、そして今後どのように発展していくのかを、システムエンジニアを目指す皆さんにも分かりやすく説明する。
まず、AppSecにおけるAIの歴史と発展について見ていこう。機械学習が広く知られる前から、ソフトウェアの脆弱性を自動で見つける取り組みは存在した。例えば、1980年代後半に考案されたファズテストは、プログラムにランダムなデータを大量に入力し、クラッシュするかどうかを調べることで、多くのバグを発見した。これは、その後のセキュリティテスト技術の基礎となった。1990年代から2000年代初頭にかけては、危険な関数や機密情報がないかをコードの中から探し出す、初期の静的解析ツールが登場したが、文脈を理解できず、多くの誤った警告(誤検知)を出すという課題があった。
その後、AppSecにおけるAIの進歩は、ルールベースの解析から、より高度な解釈へと移行していった。機械学習がAppSecに本格的に導入され始め、データがプログラム内でどのように流れるかを追跡するデータフロー分析や、実行経路をマッピングする機能を持つようになった。この時期に「コードプロパティグラフ(CPG)」という重要な概念が生まれた。これは、プログラムの構文、制御の流れ、データの流れを一つのグラフとして統合するもので、単純なパターン照合では見つけにくい複雑な脆弱性を、文脈を考慮して評価することを可能にした。2016年には、DARPA主催のサイバーグランドチャレンジという大会で、人間なしにソフトウェアの脆弱性をリアルタイムで発見し、証明し、修正できる完全に自動化されたハッキングシステムが登場し、自律的なサイバー防御の画期的な瞬間となった。
近年では、より優れたアルゴリズムと大量のデータセットの登場により、AIを利用したセキュリティソリューションは飛躍的な進歩を遂げた。例えば、機械学習モデルが悪用される可能性のある脆弱性を予測する「Exploit Prediction Scoring System (EPSS)」のようなツールが登場し、セキュリティ担当者は最もリスクの高い脆弱性に集中できるようになった。また、大規模言語モデル(LLM)のような深層学習ネットワークに大量のコードを学習させることで、安全でないコード構造を特定できるようになり、さらにファズテストを自動生成することで、手作業を減らしつつ多くの脆弱性を発見することにも貢献している。
現在のAppSecでは、AIは大きく分けて二つの形で活用されている。一つは「生成AI」で、新しいテストケース、コード、あるいは攻撃スクリプトといった出力を生成する。代表的な例は、インテリジェントなファズテストの生成だ。従来のファジングがランダムな入力に頼っていたのに対し、生成AIはより戦略的なテストケースを作り出すことができる。これにより、多くのバグを発見できるようになった。防御側としては、自社の防御がどれほど強固かを確認するために、AIによって生成されたエクスプロイトを利用してテストを行うことがある。
もう一つは「予測AI」で、データを分析して脆弱性を検知したり、将来の脅威を予測したりする。予測AIは、大量のデータセットを分析してセキュリティ上の弱点を見つけ出す。ルールやシグネチャに縛られるのではなく、数千もの脆弱なコードと安全なコードの事例から学習し、ルールベースのシステムでは見逃されがちなパターンを特定できる。EPSSのように、機械学習モデルが悪用される可能性に基づいて脆弱性に優先順位を付けることで、セキュリティチームは最も深刻なリスクに集中できるようになる。
従来のアプリケーションセキュリティテストツールであるSAST、DAST、IASTもAIとの融合が進んでいる。SASTはコードを実行せずに脆弱性をスキャンするが、AIはデータフロー分析と組み合わせることで、本当に悪用可能な脆弱性かそうでないかを判断し、誤検知を大幅に減らすことに貢献する。DASTは実行中のアプリケーションをスキャンし、AIはスマートな探索とテストセットの進化を可能にし、より網羅性の高いテストを実現する。IASTはアプリケーションの実行時に内部の動きを監視するが、AIはこの大量の監視結果を分析し、ユーザー入力が危険な形で重要な機能に影響を与えるフローを特定することで、実際の脅威だけを提示できるようになる。
クラウドネイティブな開発が主流になり、コンテナや依存関係のセキュリティも重要性が増しているが、ここでもAIが役立つ。AI駆動のコンテナ分析ツールは、既知の脆弱性や設定ミスがないかを検査する。また、実行時に機械学習ベースの監視を行うことで、異常なコンテナの動作を検知し、従来のツールでは見逃されがちな侵入を捕らえることができる。数百万ものオープンソースコンポーネントが利用されるソフトウェアサプライチェーンでは、AIがパッケージのメタデータを分析して悪意のある兆候を暴いたり、特定のライブラリが悪用される可能性を評価したりすることで、危険な要素に集中できるようになる。
しかし、AIはAppSecに強力な機能をもたらす一方で、万能な解決策ではない。いくつかの課題も存在する。AIによる検知は、必ず誤った警告(誤検知)を出したり、実際の脆弱性を見逃したりする可能性があるため、最終的には専門家による確認が必要になる場合が多い。また、AIが問題のあるコードパスを特定しても、それが実際に悪用可能かどうかを判断するのは難しい。AIシステムは学習データに基づいて判断を下すため、もしそのデータに偏りがある場合、AIは特定の脅威を見逃す可能性がある。これは「データの偏り」と呼ばれ、解決には継続的な再学習や多様なデータセット、バイアス監視が不可欠だ。さらに、機械学習は過去に処理したパターンには強いが、全く新しい種類の脆弱性(ゼロデイ脅威)は、既存の知識と一致しないため見逃してしまう可能性がある。攻撃者もAIを悪用して防御システムを欺く「敵対的AI」の技術を使ってくるため、AIベースのソリューションは常に適応し続ける必要がある。
最近のAI分野で注目されているのは「自律型AIエージェント」という概念だ。これは単に答えを生成するだけでなく、自律的に目標を実行できるプログラムを指す。セキュリティの文脈では、AIが複数のステップからなる操作を制御し、リアルタイムの状況に適応し、最小限の人間の指示で意思決定を行うことを意味する。AIエージェントには「このシステムにセキュリティ上の欠陥を見つけなさい」といった大まかなタスクが与えられ、データ収集、テスト実行、発見に基づく戦略変更といった計画を自ら立てて実行する。攻撃側ではシミュレーション攻撃を自律的に開始できるが、防御側ではネットワークを監視し、不審なイベントに対して自律的に対応できる。ただし、このような自律性には危険も伴う。AIエージェントが意図せず本番環境に損害を与えたり、悪意あるハッカーによってシステムが操作され、破壊的な行動を引き起こしたりする可能性があるため、厳重な安全対策や人間の承認プロセスが不可欠となる。
AppSecにおけるAIの役割は今後も拡大していくだろう。短期的には、開発者の統合開発環境にAIを活用したセキュリティチェックが組み込まれ、リアルタイムで問題を指摘するようになる。機械学習を活用したファザーは標準的なツールとなり、自律型AIによる継続的なセキュリティテストが、手動のペネトレーションテストを補完するようになるだろう。攻撃者も生成AIを悪用して巧妙なソーシャルエンジニアリングを仕掛けてくるため、防御側もAIによる新たなインテリジェントスキャンで対抗する必要がある。長期的には、AIがDevSecOpsのプロセス全体を根本的に変え、人間がAIと協力してプログラミングを行い、セキュリティが最初から組み込まれる「AI拡張開発」が実現するかもしれない。脆弱性を発見するだけでなく、それを自律的に修正し、その修正が安全であることを検証するツールも登場するだろう。AIエージェントがアプリケーションを常時スキャンし、攻撃を予測してリアルタイムで防御策を講じる「プロアクティブで継続的な防御」も実現する可能性がある。
AIがAppSecの中心となるにつれて、規制やコンプライアンスの枠組みも進化していく。AIによる自動監査で、業界標準への準拠をリアルタイムで確認できるようになるだろう。また、AIモデルのトレーニングデータや公平性を追跡し、AIによる判断記録を規制当局に提示するなどの「AIモデルのガバナンス」が求められるようになる。自律システムが封じ込め措置を実行した場合、誰がその決定に責任を負うのかといった「インシデント対応における責任」の定義も重要な課題となる。倫理的な問題も考慮する必要がある。AIが行動分析に利用されることでプライバシー侵害のリスクが生じる可能性がある。AIの判断に全面的に依存することは、AIに欠陥があった場合に危険である。さらに、攻撃者はAIを利用して悪意のあるコードを隠蔽したり、防御側のAIシステムを欺くための「敵対的AI」を使ったりする。AIモデル自体のセキュリティ確保も、これからのサイバー防御における重要な側面となる。
まとめると、生成AIと予測AIは、ソフトウェア防御を大きく変革し始めている。AIはAppSecの専門家にとって強力な味方であり、脆弱性の発見を加速させ、最大の脅威に優先順位を付け、煩雑な作業を処理する手助けとなる。しかし、AIは万能薬ではない。誤検知やトレーニングデータの偏り、新しい種類の脆弱性への対応には、依然として人間の専門知識が必要だ。ハッカーと防御者の間の攻防は続き、AIはその新たな戦場にすぎない。AIをチームの知識、堅牢なガバナンス、継続的な更新と統合し、責任ある形で導入する組織が、変化の激しいAppSecの世界で成功を収めるだろう。継続的な研究と技術の進化により、セキュリティの欠陥が早期に発見され、迅速に修正され、防御者がサイバー犯罪者の巧妙さに正面から立ち向かえる、より安全なソフトウェアエコシステムが実現する日は、私たちが想像するよりも早く訪れるかもしれない。