人工知能(AI)の進歩に伴って、企業や政府はその最良の応用方法を見つけようと躍起になっています。ChatGPTなどの大規模言語モデル(LLM)がメディアの注目を集めていますが、AIにはテキスト生成よりもはるかに幅広い潜在的用途があります。その1つがセキュリティ で、特にソフトウェアの脆弱性特定という反復的で大規模な作業に活用できます。
しかし、AI導入がセキュリティの強化になるか弱化になるかは、誰が(あるいは何が)、何のために脆弱性を特定するかによります。
ソフトウェアの欠陥は、本質的に良性のものもありますが、脆弱性として知られるいくつかの欠陥は、その弱点を悪用する者にシステム内に侵入する足掛かりを与え、侵害につながる可能性があります。サイバーセキュリティの実務は、大部分がそうした脆弱性の特定とパッチ適用です。
脆弱性を悪用した侵害は枚挙にいとまがありませんが、例えば以下のようなインシデントはよく知られています。
2017年のEquifax情報漏洩事件は、パッチ未適用の脆弱性に起因
2022年のLastPass情報漏洩事件は、サードパーティ製ソフトウェアの脆弱性が一因
2023年に起こったノルウェー政府ITシステムのハッキングも、ゼロデイ脆弱性が侵入口
脆弱性の悪用は、データ流出やランサムウェア感染によるシステム凍結などの悲惨な結果を招きかねません。そうした事態を避けるためには、脆弱性をできるだけすばやく特定し、パッチを当てる必要があります。
複雑なソフトウェアプログラムを分析してミスを探すのは、自動化に適していると思われる反復作業です。著名な技術者のBruce Schneier氏は、「コードを1行ずつ調べていくのは、脆弱性がどのようなものかを教えさえすれば、まさにコンピュータが得意とする退屈な作業」という見解を示しています。
実際に、機械学習(AI能力のサブセット)は長らく、コードの潜在的脆弱性を見つけるために使われてきました。例えば、GitHubはコードスキャン機能に機械学習を取り入れて、コードのセキュリティ脆弱性を特定しています。もちろん、このやり方で誤検知が生じることもありますが、よく訓練された機械学習モデルを手作業による分析と組み合わせて使えば、早期の脆弱性特定が可能になります。
人工知能が飛躍的に進歩するにつれて、この技術を訓練して脆弱性をさらに効果的に発見できる可能性が出てきます。実際、2023年には米国防高等研究計画局(DARPA)が「インテリジェント・ジェネレーション・オブ・ツールズ・フォー・セキュリティ(INGOTS)」と呼ばれるプログラムを発表しました。(DARPAは、インターネットの前身であるARPANETを作った機関です。)
INGOTSプログラムでは、「プログラム解析と人工知能を活用した新技術で脆弱性を測定」し「深刻度が高く連鎖性の脆弱性を、攻撃者に悪用される前に特定して修正する」ことを目的として、「Webブラウザやモバイルオペレーティングシステムなど、最新の複雑なシステム」の脆弱性を探します。
しかし、AIは本当に脆弱性発見が得意なのでしょうか?DARPAはそれを見極めようとしていますが、プログラムはまだやや手探り状態です。
2016年、DARPAは「サイバーグランドチャレンジ」を開催し、7つのエン ジニアチームが自律型AIハッキングプログラムを作成して、デジタル「旗盗り」ゲームで対決しました。目的は、自動化されたプログラムがセキュアなシステムをどれだけハッキングできるかを見極めることでした。数時間の戦いの末、カーネギーメロン大学のチームが設計したプログラム「Mayhem」が優勝しています。
DEF CON 2016カンファレンスが近くで開催されており、「Mayhem」はDEF CONが主催する人間のハッカーを相手にした「旗盗り」ゲームに招待されました。Mayhemは大差で敗北、最下位に終わっています。
以来、AIは大きく進歩し、研究者たちは脆弱性発見のための機械学習モデルを次々に発表しています。しかし、最新の機械学習モデルを使ってソフトウェアを検証したとしても、誤検知(偽陽性や偽陰性)がないようにするにはやはり人間によるレビューが必要です。
AIに脆弱性発見能力があることは確かですが、人間による侵入テストの役割はまだ終わっていないようです。ただ、今後AIがより堅牢になるにつれ、この状況は変わるかもしれません。
脆弱性にパッチを当てるとは、欠陥を修正するコードを書くことです。AIツールは確かにコードを生成できますが、そのためには、人間のユーザーによって生成された特定のプロンプトが必要です。
INGOTSでさえ、脆弱性の修復を完全自動化されたプロセスに依存するつもりはなく、「深刻度の高い脆弱性を修復するために、人間の介入をシームレスに可能にするコンピュータと人間のパイプラインを構築する」ことを目指しています。
ただし、ここでも先ほどと同様に、AIがさらに進化すれば、将来的にはパッチを迅速かつ効率的に生成できるようになるかもしれません。
ツールや技術が広く普及すれば、それを一方が攻撃からシステムを守るために使い、他方が攻撃を生み出すために使うようになるのは必然の成り行きです。
AIがソフトウェアの脆弱性を効果的に発見し、パッチを適用できるなら、攻撃者側はパッチが当てられる前にその脆弱性を見つけ出し、エクスプロイトを書くでしょう。
すべてのサイバー攻撃者がそうしたリソースにアクセスできるわけではありませんが、アクセスできれば、自分のAIが見つけた脆弱性の情報や書いたエクスプロイトを、平気でダークウェブ上の最高入札者に売るでしょう。マルウェア作者は既にAIをツールに組み込んでおり、今後も進化するAIの活用を続けるに違いありません。
正規ソフトウェア開発者と悪意ある攻撃者との間でAIを駆使した軍拡競争が激化し、脆弱性は特定されるなり即座に悪用されるか(願わくば)パッチが適用される状況になる可能性が高まっています。
もちろん、攻撃者は既に未発見の脆弱性を見つけようとコードを入念に調べています。「ゼロデイ脆弱性」は非常に価値が高く、発見者はシステムをハッキングする目的で使用するか、闇市場で高値で販売することができます。AIの悪意ある利用はゲームチェンジャーになるかもしれません。とはいえ、やることは従来と同じです。
パッチの適用と同様、可能ですが、そのプロセスには人による誘導が必要です。AIを使っても大した労力の節約にはならないかもしれません。自分でコードを書かず、どのみちエクスプロイトキットを購入する攻撃者が多いのはこのためです。
しかし、この状況は10年後、あるいは5年後には変わっているかもしれず、セキュリティ担当者は、システムを標的にした完全自動の脆弱性エクスプロイトの波に備える必要があります。
すべてのネットワークは侵害に対して脆弱です。実際、十分な時間と決意のある攻撃者がいれば、侵害は避けられないでしょう。
システムの安全性を確保しようとする側にとってAIが脆弱性発見の新世界を切り開くとしても、攻撃者も同じ手法を使って最初に、あるいは少なくともパッチが適用される前に脆弱性を見つけようとするでしょう。AIは、善者にとってと同様、悪者にとっても道具箱の新ツールになりつつあるのです。
先見性のある企業は、侵害が起こる前提で対策します。つまり、セキュリティが破られるかもしれない、データがリスクにさらされている、攻撃者が既にネットワーク内部にいるかもしれないと考えて、それに備えるのです。
外部向けのセキュリティが常に完璧に機能するとは限らないことを想定し、ネットワークをマイクロセグメント化して、悪意のある者が既にアクセスした1つのセグメントを超えて侵入しないようにしています。船体を水密隔壁で仕切って浸水が広がらないようにするのと同じです。セキュリティチームがこの方法で攻撃を封じ込められれば、理想的です。
このアプローチは「ゼロトラスト」と呼ばれ、この考え方を取り入れるケー スが増えているのには確固たる理由があります。AIツールで不正がエスカレートする可能性がありますが、ゼロトラストはそうした不正をネットワークの片隅に限定し、実害をもたらすのに十分な足掛かりを決して攻撃者に与えないようにすることができます。
今後、脆弱性の悪用が次々と見つかるかもしれませんが、対策として最も有望なのがゼロトラストです。また、Cloudflareは、セキュアWeb ゲートウェイ、DNSフィルタリング、データ損失防止(DLP)などのゼロトラストテクノロジーを、統一ダッシュボードを備えた単一プラットフォームに統合している唯一のベンダーです。このプラットフォームの接続点(POP)は世界各地にあります。このように分散型のCloudflareネットワークなら、クラウドとオンプレミスのアプリケーションにデフォルト拒否のきめ細かなアクセス制御を適用することができ、遅延が生じてユーザーエクスペリエンスを損なうことはありません。
実際、Cloudflareは自社のネットワークと従業員を攻撃から保護するためにゼロトラストのアプローチをとってきました。Cloudflareのゼロトラスト実装支援について、詳しくはこちらをご覧ください。
この記事は、技術関連の意思決定者に影響を及ぼす最新のトレンドとトピックについてお伝えするシリーズの一稿です。
ゼロトラストの詳細については、ホワイトペーパー『ゼロトラストアーキテクチャへのロードマップ』をご覧ください。
この記事では、以下のことがわかるようになります。
AIが脆弱性の発見に適している理由と注意点
セキュリティ攻防戦の両陣営が、脆弱性の悪用やパッチ適用に自動化を利用可能
侵害を前提に考えるのが最も安全なアプローチである理由