最新AI論文をキャッチアップ

サイバー攻防の新時代!ウェブサイトの脆弱性を暴く、大規模言語モデルによる自動ハッキングとは

サイバー攻防の新時代!ウェブサイトの脆弱性を暴く、大規模言語モデルによる自動ハッキングとは

Large language models

3つの要点
✔️ 自律的ハッキング能力:GPT-4などの先進的エージェントは、事前の脆弱性情報なしに実世界のウェブサイトの脆弱性を発見し、複雑なハッキングタスクを実行可能。
✔️ スケーリング法則:大規模言語モデルエージェントのハッキング能力は、GPT-4が高い成功率を示す一方で、オープンソースモデルでは成功率が低いことから、モデルの進化に伴い能力が増大することが確認される。
✔️コスト効率:大規模言語モデルエージェントによるハックは、人間のサイバーセキュリティアナリストに比べてコストが低く、経済的に実行可能。

LLM Agents can Autonomously Hack Websites
written by Richard FangRohan BinduAkul GuptaQiusi ZhanDaniel Kang
(Submitted on 6 Feb 2024 (v1), last revised 16 Feb 2024 (this version, v3))
Comments: Published on arxiv.
Subjects: Cryptography and Security (cs.CR); Artificial Intelligence (cs.AI)


code:  

本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。  

概要

近年、大規模言語モデルは目覚ましい進化を遂げています。関数呼び出しを介してツールとの対話、文書の閲覧、さらには自己への再帰的な問いかけが可能になるなど、その能力の幅が拡大しています。今では、大規模言語モデルは科学的発見を促すなど、自律的なエージェントとしての役割を果たすことができるようになっています。

そして、この進化に伴い、大規模言語モデルとそのエージェントがサイバーセキュリティ分野において攻撃および防御の両面で貢献できる可能性があります。しかし、未だ検証は進んでおらず、サイバーセキュリティにおける大規模言語モデルのエージェントの能力についてはほとんど知られていません。最近の研究では、大規模言語モデルが単純なマルウェアを生成するようにプロンプトすることができることが示されていますが、、自律的なエージェントについては探究されていません。

この論文では、大規模言語モデルエージェントがウェブサイトを自律的にハックできることを示しています。これらのエージェントは、脆弱性の事前知識なしに複雑なタスクを実行することができます。例えば、これらのエージェントは、データベーススキーマの抽出、このスキーマに基づいてデータベースから情報を抽出する、そして最終的なハックを実行するという、複数ステップのプロセス(38アクション)を含む複雑なSQLインジェクション攻撃を実行することができます。実際、最も高度なエージェントは、テストした脆弱性の大部分に成功しています。

このような能力を実現するため、大規模言語モデルエージェントは文書を読み、ウェブブラウザを操る関数を呼び出し、以前の行動からのコンテキストを引き出すことができます。これらはすべて、OpenAI Assistants APIのような標準化されたAPIを通じて実現可能であり、僅か85行のコードで実装できます。下図にエージェントの概略を示しています。

この論文では、2024年2月時点で最も高度なモデルであるGPT-4を用いて、これらのエージェントがいかにしてウェブサイトを自動でハックできるかを示しています。さらに、我々はウェブサイトをハックするコストについても分析し、人間の労力に比べて格段に低コストであることを示しています。

大規模言語モデルエージェントとウェブセキュリティの概要

ここでは、大規模言語モデルエージェントとウェブセキュリティの要点について概観します。

まずは、大規模言語モデルエージェントの概要です。大規模言語モデルエージェントとは、問題を分析し、解決策を計画し、一連のツールを駆使してその計画を実行するシステムを指します。これらのエージェントの機能は正式に定義されていませんが、特にこのシステムが持つ問題解決の能力に着目しています。

大規模言語モデルエージェントの核となる能力は、ツールやAPIとの対話です。この能力により、エージェントは自律的に行動を起こすことができます。逆に言えば、この能力がなければ、人間などの別の主体が行動を実行し、その結果をエージェントにフィードバックする必要があります。また、大規模言語モデルエージェントにとって重要なのは、ツールやAPIからの出力に基づいて、計画を立て、適切に反応する能力です。これは、出力をモデルに追加のコンテキストとして供給するだけでなく、より高度な計画を立案することも含まれます。

さらに、文書を読む能力も大規模言語モデルエージェントにとって有益です。これは、エージェントが特定のトピックに集中するのを助ける検索強化生成と密接に関連しています。

これら3つの能力に焦点を当てながらも、大規模言語モデルエージェントはメモリーなど、さらに多くの能力を持っています。これらのエージェントがどのようにして複雑なタスクを解決し、私たちの技術的な課題に対処するのかを理解することは、これからの研究の鍵となります。

次は、ウェブセキュリティの概要です。ウェブセキュリティは、その複雑さゆえにすぐには理解できない幅広い分野です。この論文では、この広大なトピックから特に重要な点に焦点を当てています。

ウェブサイトは、ユーザーが直接触れるフロントエンドと、一般的にはリモートサーバーとして機能するバックエンドから成り立っています。このバックエンドには機密情報が含まれることが多く、不正アクセスを防ぐことが極めて重要です。

ウェブサイトの脆弱性は、フロントエンド、バックエンド、あるいはその両方に存在することがあります。フロントエンドにおける攻撃は、しばしばブラウザの不安全な設定を悪用します。例えば、クロスサイトスクリプティング(XSS)攻撃では、悪意のアクターが不要なスクリプトを注入し、ユーザーデータを盗み出すことが可能です。

一方、バックエンドにおける攻撃は、サーバー側のロジックに存在するバグを悪用することにより行われます。特に、SQLインジェクション攻撃は、ユーザーがフロントエンドで行動することにより、直接データベースに命令を送ることが可能な状況を利用します。この攻撃により、悪意のあるアクターはデータベースから機密情報を盗み出すことができます。

例えば、ウェブサイトにユーザー入力に基づいてユーザーネームとパスワードを取得するコードがあり、エスケープされていない場合を想定してください。

 

この場合、攻撃者はユーザーネームとパスワードとして「" or ""="」を渡すことができます。この条件は常に真と評価され、テキストがエスケープされていないため、これによりデータベースのすべての情報が攻撃者に返されてしまいます。

こうした攻撃方法は、ウェブサイトのセキュリティにとって大きな脅威をもたらしますが、この論文では、これらの攻撃よりも複雑なSQL攻撃やその他のバックエンド攻撃を検証しています。ウェブサイト自体の脆弱性に注目した、ウェブサイトの運営者に対するフィッシング攻撃など、他の攻撃方法は対象外としています。

ウェブサイトを自動でハックするための大規模言語モデルエージェントの活用

ウェブサイトを自動的にハックするためには、初めに大規模言語モデルエージェントの構築から始めます。このエージェントが準備できたら、目標を設定してタスクを開始します。ここでは、この主要なステップを紹介します。

エージェントのセットアップ:詳細はセキュリティ上の配慮から公開していませんが、ウェブサイトの侵入テストに大規模言語モデルエージェントを活用する際には、機能呼び出し、文書閲覧、計画立案といったエージェントの基本機能を用います。まず、エージェントがウェブサイトとやり取りできるように、ヘッドレスブラウザを介したインターフェースを設定しています。次に、ウェブハッキングに関する公開文書へのアクセスを提供し、さらにエージェントに計画立案の能力を実装しています。これらは全て、GPT-4を含む最先端の大規模言語モデルを利用したOpenAIのAssistants APIによって実装されています。

文書の利用:エージェントのパフォーマンス向上には、関連文書の取得が非常に効果的です。この論文では、一般的なウェブハッキング、SQLインジェクション、XSS、SSRFに関する文書を含む、6つの文書を使用しています。これらはすべて公開情報であり、特定のウェブサイトを標的にするガイドは含まれていません。

エージェントへのプロンプト:大規模言語モデルエージェントがウェブサイトを自動でハックする際、初期プロンプトの設定が重要になります。チャットボットやアシスタントと異なり、大規模言語モデルエージェントは人間からのフィードバックを受けません。初期プロンプトの選択は、エージェントが創造的に思考し、異なる戦略を試し、有望な手法を追求し、失敗した場合には新たな戦略に切り替えるよう促されています。この情報は倫理的な理由から完全には公開していないとしていますが、研究目的でのアクセスは可能としています。

このアプローチにより、大規模言語モデルエージェントがどのようにして複雑なウェブベースの脅威に対処できるかを検証しています。

実験セットアップ

実際のシステムへの影響を避け、法律違反を回避するために、サンドボックス化されたウェブサイト上で実験を行っています。これらはデータベース、バックエンド、フロントエンドを備えた実際のウェブサイトで、違いはサンドボックス化されている点のみです。SQLインジェクションからXSSとCSRFを要する複雑な攻撃まで、15種類の脆弱性に対するテストを実施しています。脆弱性の完全なリスト、難易度レベル、および説明を下表のとおりです。

各脆弱性に対して、特定の目標(例えば、ユーザー情報の盗難)を定義しています。大規模言語モデルエージェントが指定された時間内に目標を達成した場合、攻撃は成功と見なされます。サイバーセキュリティ攻撃においては、一度の成功が目標達成につながるため、各脆弱性について5回の試行を行い、そのうち1回でも成功すれば成功と判断しています。

また、10種類のモデルがテストに利用されています。GPT-4とGPT-3.5にはOpenAI APIを、その他のモデルにはTogether AI APIを使用しています。これらのモデルは、Chatbot Arenaでの高評価など、さまざまな基準に基づいて選定されています。すべての大規模言語モデルは、エージェントフレームワークへの統合のためにLangChainフレームワークを通じて使用されています。

実験

この論文で利用したベンチマークにおける異なる大規模言語モデルおよびエージェントフレームワークの成功率は、下表のようになります。全体の成功率/Overall success rate(5回中の合格率)を示しています。

注目すべきは、文書の閲覧、関数の呼び出し、アシスタントAPIを駆使するGPT-4が示した73.3%という非常に高い成功率です。重要なのは、GPT-4に対して特定の脆弱性を試すよう指示せず、単純にウェブサイトを自律的にハックするよう求めた点です。

さらに、ハッキング能力における「スケーリング法則」が見て取れます。GPT-3.5は6.7%の成功率を記録しましたが、オープンソースモデルでは成功率が0%にまで落ち込んでいます。この結果は、大規模言語モデルのサイズが能力にどのように影響するかに関する先行研究と一致しています。

特に能力の高いエージェントは、15の脆弱性中11に対して成功を収めています。例えば、困難なSQLインジェクション攻撃のような複雑なタスクでは、ウェブサイトとの対話を複数回要求され、その際、ほとんどまたは全くフィードバックを得られていません。

エージェントは、データベーススキーマを取得するために「ブラインド」SQLインジェクションを実行し、その後、適切なユーザー名とパスワードを選択して最終的なハックを行う必要があります。この攻撃は、長いコンテキストを理解し、ウェブサイトとの以前のやりとりに基づいて行動を取る能力が必要です。

GPT-4は、特に困難な5つのタスクのうち3つと、中程度の6つのタスクのうち1つに失敗しています。これらは、認証バイパス、Javascript攻撃、困難なSQLインジェクション、XSS+CSRFなどです。これらの攻撃は、大規模言語モデルエージェントがまだサイバーセキュリティ攻撃に対して抱える限界を浮き彫りにします。

一方、GPT-4の特定の脆弱性に対する成功率は低いことがあり、例えばWebhook XSS攻撃では、初めにその攻撃を試さない場合は後でも試みません。これは、攻撃リストから特定の攻撃を試すようGPT-4を設定することで改善できる可能性があります。対照的に、GPT-3.5はSQLインジェクションの1つを正確に実行できるのみで、XSSやCSRF攻撃などの簡単で広く知られている他のすべてのタスクに失敗しています。

アブレーション研究による洞察

また、この論文では、ウェブサイトを自律的にハックする際の成功に影響を与える要因を解明するため、異なる条件下でGPT-4エージェントの性能を評価しています。以下の4つのシナリオをテストしています。

  • 文書閲覧と詳細なシステム指示の両方を用いる
  • 文書閲覧を省略し、詳細なシステム指示のみを用いる
  • 文書閲覧を行い、詳細なシステム指示を省略する
  • 文書閲覧も詳細なシステム指示も省略する

これら4つの条件における5回の試行での合格率と、全体の成功率を比較しています。結果は下図のとおりです。


結果によると、文書閲覧や詳細なシステム指示、あるいはその両方を取り除くことで、エージェントの性能は大幅に低下しています。特に、文書の除去は、詳細度が低いプロンプトと比較しても、性能の低下がより顕著になっています。困難な脆弱性に対しては、文書や詳細なプロンプトのいずれかが欠けると全く悪用されず、中程度の脆弱性もほとんど悪用されていません。最終的に、文書と詳細なプロンプトの両方を省略した場合、非常に低い性能を示し、興味深くもGPT-3.5と同等の成果に至っています。 

エージェント能力の深堀り

ここでは大規模言語モデルがどのようにウェブサイトのセキュリティを突破するかについての定性的な分析に焦点を当てますGPT-4の能力を深く理解するため、いくつかの具体的な例に取り組んでいます。最初に、困難なSQLインジェクション攻撃のシナリオに取り組んでいます。このケースでは、GPT-4は以下のような複数の段階を踏んで攻撃を成功させています。

  1. どのページを攻撃するかを決めるために、ページ間を移動します。
  2. デフォルトのユーザー名とパスワード(例えば「admin」)を試みます。
  3. それが失敗したと判断し、一般的なSQLインジェクション(例えば、「OR 1 = 1」を追加する)を試みます。
  4. ソースコードを読み込み、SQLクエリ内にGETパラメータが存在することを見つけ出します。
  5. ウェブサイトがSQLユニオン攻撃に脆弱であると判断します。
  6. SQLユニオン攻撃を実行します。

これらのステップを実行するためには、拡張されたコンテキストと記憶が必要であり、GPT-4がウェブサイトからのフィードバックに基づいてその行動を適応させる能力が求められます。このような能力は、多くのオープンソースモデルでは見られません。

別のシナリオでは、GPT-4はサーバーサイドテンプレートインジェクション(SSTI)攻撃を見事に成功させています。ユーザー入力が直接テンプレートに結合されるこの攻撃では、特定の状況下でユーザーがサーバー上で任意のコードを実行することが可能です。この攻撃を行うため、GPT-4は以下を実行しています。

  1. ウェブサイトがSSTI攻撃に対して脆弱であるかどうかを判断します。
  2. 小さなテストスクリプトを使用してSSTI攻撃をテストします。
  3. 盗むべきファイルの場所を特定します。
  4. SSTI攻撃を完遂します。

この攻撃を実行するためには、前のステップからのコンテキストと、SSTI攻撃の実行方法に関する専門知識が必要です。例えば、GPT-4は`file.txt`の位置を特定し、その特定のパスを使用します。

これらの例から明らかなように、GPT-4は豊富な知識を有し、ウェブサイトからのフィードバックに応じて自身の行動を調整する能力、そして必要なツールを適切に使用する能力を持っています。 

ツール使用に関するデータ分析:成功したハックを遂行する上での複雑さを数値で理解するため、成功したハックごとにGPT-4が行う関数呼び出しの数を集計しています。下表では、成功に至るまでの平均呼び出し回数を示しています。

特に複雑なハックでは、関数呼び出し回数が最大で48回にもなることがあります。GPT-4エージェントが試みた攻撃が機能しなかった場合、戦略を変更し、別の攻撃手法に切り替えることもあります。この柔軟な対応能力は、攻撃の試行を超えた計画性を示しており、エージェントの高度な能力を強調しています。

また、一部のハックでは、エージェントが数十回のアクションを必要とすることもあります。例えば、SQLユニオン攻撃では平均して44.3回のアクション(バックトラッキング含む)が必要です。バックトラッキングを除いても、38回のアクションが必要とされ、エージェントはデータベーススキーマの抽出や機密情報の取得など、複数のステップをコンテキスト内で管理しながら実行する必要があります。

攻撃ごとの成功率:GPT-4が各脆弱性に対してどれだけの成功率を示したかについても検証しています。結果は下表の通りです。

予想通り、より高度な脆弱性に対する成功率は低くなっていますが、SQLインジェクションやCSRFのような基本的な脆弱性では100%の成功率を達成しています。これは、これらの攻撃が一般的なウェブハッキングの例として頻繁に使用され、GPT-4のトレーニングデータに多数含まれているためと推測されます。しかしながら、コンピュータセキュリティにおいては、たった一度の成功が攻撃者に目的の行動を可能にさせるため、困難な脆弱性に対して20%の成功率を達成することも、ハッカーにとっては意味のある成果となります。 

オープンソースの大規模言語モデルの評価

基本的なオープンソースの大規模言語モデルが、ツールの適切な利用や効果的な計画立案に苦戦していることが明らかになっています。この問題は、Llama-70Bなどの大規模モデルや、100万以上のGPT-4の事例で微調整されたモデル(例:Nous Hermes-2 Yi 34B)にも見られ、ハッキングにおける性能の大きな制約となっています。

特筆すべきは、7億パラメータにもかかわらず、OpenChat-3.5がこの論文のタスクで最も高性能なオープンソースモデルとして浮上した点です。OpenChat-3.5はツールの使用において適切な能力を示し、実際に約25.3%の確率で正確な脆弱性に挑戦しています。各脆弱性に対する詳細な成果は下表(再掲)のとおりです。


ただし、OpenChat-3.5はウェブサイトからのフィードバックを活用して正確な攻撃を行うことに失敗し、これはGPT-4の能力とは対照的です。GPT-4はウェブサイトの情報を基に攻撃戦略を調整できるため、この点で優れています。これらの発見は、マルチターンチャット環境においてGPT-4が他のモデルより優れていることを示す最新の研究成果(Wang et al., 2023b)と一致しています。

この論文では、追加の微調整を施すことでオープンソースモデルが将来的にウェブサイトハッキングに対応できるようになる可能性を示唆しています。また、これが、オープンソースモデルの責任ある公開に関するさらなる議論の契機となることが期待されます。

実際のウェブサイトへのハッキング試み

この論文では、サンドボックス内での実験だけでなく、実際のウェブサイトに潜む脆弱性の特定に着手しています。GPT-4が現実世界のウェブサイトを効果的にハックできるかを検証するため、まず潜在的に脆弱なウェブサイトを探すための戦略を策定しています。

幸いなことに、多数のウェブサイトは静的か、あるいは安全なテンプレートを用いて作成されており、その結果、大多数は脆弱性を持たないことが分かり、静的分析によって簡単に識別できるこれらのサイトは、分析から除外されています。加えて、メンテナンスが行われていない可能性が高く、そのためハックのターゲットになりやすいと推測される、古いサイトを積極的に探求しています。

この論文が選定した基準に合致する約50のウェブサイトを選び出し、それらに対して最も高い能力を持つエージェント、GPT-4を配備し、選ばれた50サイトの中で、GPT-4は1つのサイトにおいてXSS脆弱性を発見しています。しかしながら、該当サイトは個人情報を取り扱っておらず、この脆弱性から直接的な害は確認されていません。責任を持った情報開示の規範に則り、この論文ではその脆弱性を持つウェブサイトの制作者の連絡先を探していますが、成功してい内容です。そのため、脆弱性を適切に報告できる状況になるまで、ウェブサイトの詳細は伏せることにしたとしています。この取り組みは、GPT-4が実世界におけるウェブサイトで自律的に脆弱性を発見する能力を持つことを明示しています。

コスト分析

この論文では、最も能力が高いとされるGPT-4を用いた自律的なハックの実行コストと、人間の労力だけを用いた場合との比較分析を行っています。ここで提示するコスト見積もりは、ウェブサイトハッキングの具体的なコストを示すものではなく、経済的に実現可能な自律的な大規模言語モデルのハッキングの潜在性を探るものです。あくまで表面的なコスト評価です。

GPT-4のコスト評価を行うにあたり、文書閲覧と詳細なプロンプトを用いた最も高性能なエージェントを5回実行し、それにかかる総コストを算出しています。この実行での平均コストは$4.189で、全体の成功率が42.7%であることを考慮すると、一つのウェブサイトあたりのコストは約$9.81となります。

初見ではコストが高く感じられるかもしれませんが、自律的な大規模言語モデルエージェントにはいくつかの利点があります。まず、大規模言語モデルエージェントはテストすべき脆弱性を事前に知る必要がなく、柔軟に脆弱性のシリーズを計画することができます。次に、大規模言語モデルエージェントは容易に並列化可能です。さらに、商業的に実行可能なLLMの登場以来、大規模言語モデルエージェントのコストは継続的に低下しています。

また、自律的な大規模言語モデルエージェントのコストとサイバーセキュリティアナリストの労力コストを比較しています。ウェブサイトのハッキングは専門知識を要するため、一般の人間には実行不可能です。サイバーセキュリティアナリストが特定の脆弱性に対してハックを試みるのに要する時間を基に、ウェブサイト一つあたりの脆弱性チェックに約20分かかると推定されます。サイバーセキュリティアナリストの年収$100,000(時給約$50)を基準に、5回の試行で約$80のコストがかかると見積もられ、これは大規模言語モデルエージェントを利用する場合の約8倍のコストに相当します。

これらの見積もりは大まかなものであり、全体的なコストに対する直感を提供することを目的としています。しかしながら、専門家と大規模言語モデルエージェント間の顕著なコスト差を示しています。

まとめ

この研究を通じて、大規模言語モデルエージェントが脆弱性の事前知識なしに、自動でウェブサイトをハックできる能力を持つことが明らかになっています。特に、最も高度なエージェントは実世界のウェブサイトに潜む脆弱性を自ら発見することが可能であることを確認しています。

また、大規模言語モデルがウェブサイトをハックする能力には、明確なスケーリング法則が存在し、GPT-4は構築したウェブサイトの73%をハック可能であるのに対し、GPT-3.5は7%、そしてオープンソースモデルは0%であることが示されています。これらのエージェントによるハックのコストは、サイバーセキュリティアナリストのコストに比べて著しく低いと推測されています。

この論文の結果は、大規模言語モデルのプロバイダーにモデルの展開とリリース戦略を慎重に再考するよう促すと考えられます。特に、現存するオープンソースモデルが自律的なハッキングを行えない一方で、最先端モデルであるGPT-4やGPT-3.5がそれを可能にしている点、そして、この論文での結果が示したフロンティアモデルによる具体的なリスクの例が、重要な発見として挙げられます。これらの発見に基づき、オープンソースおよびクローズドソースのモデルプロバイダーが、先進的なモデルのリリースポリシーを慎重に検討し、技術の進歩と社会的責任のバランスを取ることが求められます。

  • メルマガ登録(ver
  • ライター
  • エンジニア_大募集!!
Takumu avatar
インターネット広告企業(DSP、DMP etc)や機械学習スタートアップで、プロジェクトマネージャー/プロダクトマネージャー、リサーチャーとして働き、現在はIT企業で新規事業のプロダクトマネージャーをしています。データや機械学習を活用したサービス企画や、機械学習・数学関連のセミナー講師なども行っています。

記事の内容等について改善箇所などございましたら、
お問い合わせフォームよりAI-SCHOLAR編集部の方にご連絡を頂けますと幸いです。
どうぞよろしくお願いします。

お問い合わせする