背景


近年、多くのWebサービスやスマートフォンアプリは、1つの巨大なシステムではなく、小さな機能を組み合わせて動く仕組みで作られるようになっている。また、その多くはAWSやGCP、Azureなどのクラウドサービス上で運用されている。例えば、ログイン機能を担当するシステム、データを保存するシステム、画像を管理するシステムなどが、それぞれ別々に動きながら連携している。このような構成は便利で拡張しやすい一方で、システム全体が複雑になりやすいという課題がある。

ただ、このような複雑なシステムでは、「脆弱性があるかどうか」だけでは本当の危険性を判断できない。例えば、あるサーバーに脆弱性が存在していたとしても、アクセス制御の問題により、そのサーバーへ到達できなかったり、必要な権限を取得できなかったりすれば、実際の攻撃は成立しない。一方で、それぞれは小さな問題であっても、複数のシステムや権限の関係をたどることで、大きな被害につながる場合もある。

つまり、「脆弱性が存在するか」ではなく、「実際に攻撃できるのか」で攻撃が実現するのかが決まるのである。

従来、このような攻撃性の評価は、ペネトレーションテストやレッドチーム演習と呼ばれる専門家による侵入テストによって行われてきたが、これらは高い専門知識とコストを必要とするため、継続的に実施できる組織は限られている。

そのため、多くの企業では脆弱性診断ツールを利用しているが、これらのツールは大量の脆弱性を検出する一方で、「どれが本当に危険なのか」を判断することは難しい。

私はこれまで、脆弱性情報とシステム構成図を利用して、攻撃経路を自動的に可視化するツール「AttackRoute_Scanner」を開発してきた。その結果、「攻撃経路が存在すること」と「実際に攻撃が可能であること」は別の問題であり、アクセス権限による攻撃が可能になることが不透明であることが分かった。

そして、近年、Claude MythosやFableなどのAIエージェントを使用したLLMペネトレーションテストやRed Team向けのAIエージェントまでも登場している。また、Loop EngineeringというAIに都度プロンプトを打ち込んで指示する作業から脱却し、AI自身が課題の発見、実行、検証、状態の保存、スケジュール実行を自律的に繰り返すシステム全体を設計する手法が登場した。

そこで本研究では、システム構成、脆弱性情報、アクセス制御情報を組み合わせた複雑なクラウド環境におけるIAM権限・脆弱性グラフから脅威インテリジェンスの抽出を行います。そして、実際にLLMによる侵入テストを行い、そのグラフが攻撃操作として有効であることを示し、攻撃操作グラフとして構築します。また、自律的なLLMによる侵入テストを目指すために、Loop-Engineeringを採用した事前に攻撃シナリオの目標達成状態を満たせるような一貫したLLMペネトレーションテストを支援できる手法を目指す必要があり、また、その攻撃操作グラフ内での侵入テストを目標地点までテストを行います、その際にどのように侵入可能かという理由まで説明できる仕組みの実現を目指すことが必要です。

目的


以上の背景から、本研究では、複雑なクラウド環境におけるIAM権限・脆弱性を統合した攻撃操作グラフに基づくLLMペネトレーションテストの行動制約手法を提案します。

アプローチ


本研究では、複雑なクラウド環境におけるIAM権限・脆弱性を統合した攻撃操作グラフに基づくLLMペネトレーションテストの行動制約手法を提案します。

まず、Grypeによる脆弱性診断結果、Hound系ツールによって得られるIAM権限グラフ、重要資産ノードの定義を入力として用いる。重要資産には、Admin RoleSecret ManagerDatabase、Kubernetes Cluster AdminProduction Storageなどを含める。また、ハイブリッド環境やクラウド間の依存関係を補完するために、Draw.io構成図を任意入力とする。これらの情報を共通スキーマへ変換し、IAM上の主体、ロール、ポリシー、リソース、権限関係、CVE情報を統合した事実グラフを生成する。

次に、生成された事実グラフに対して、CVEベースの攻撃操作のモデル化とHound系から得られたIAM権限を攻撃ベクターへのモデル化を行います。例えば、CVE由来の攻撃操作については、NVD Vulnerability APIを用いてCVEのCVSS、CWE、Referencesなどの情報を取得し、各CVEが対象ノードにどのような影響を与え得るかを整理する。さらに、NVD ReferencesにExploit-DBなどの公開Exploit情報が含まれる場合は、Exploitコード本体を取得・保持・実行するのではなく、公開Exploitが存在するというメタデータとして扱い、攻撃操作候補の重み付けや成立可能性の補助情報として利用する。また、CWEやCVEの説明情報、公開Exploitの有無、脆弱性の影響範囲をもとに、対象ノードに対して成立し得る攻撃操作を exploit_vulnerabilityremote_code_executioncredential_disclosureprivilege_escalation などの抽象的な攻撃操作としてモデル化する。これにより、特定のExploitコードに依存せず、脆弱性が攻撃者に与える攻撃能力を攻撃操作グラフ上で表現する。

また、低権限ユーザーから高権限ロールへの権限昇格、Secretの取得、Databaseへの接続、Kubernetes Cluster Admin権限の取得など、重要資産への到達経路を分析対象とする。IAMグラフ上の全経路を列挙すると経路数が増加するため、重要資産をGoalとした逆向き探索、探索深さやエッジ種別の制限、前提条件の充足状況に基づく候補経路の絞り込みを行う。

続いて、生成した攻撃操作グラフを用いて、PentestCodeによるGoal指向型の動的検証を行う。現在の環境状態、取得済み権限、認証情報をもとに、前提条件を満たす攻撃操作のみを実行候補として抽出し、PentestCodeへ検証タスクとして渡す。