AnamnesisでLLMによる自動エクスプロイト生成を試す:脆弱性検出から攻撃コード生成までの最新AIセキュリティ研究

当ページのリンクには広告が含まれています。
🚀
セキュリティスキルを活かしたハイクラス転職

お疲れ様です!IT業界で働くアライグマです!

「脆弱性は見つかったが、実際に悪用可能かどうかの検証に時間がかかる」「手動でエクスプロイトコードを書くのは工数がかかりすぎる」——セキュリティエンジニアなら一度は直面する課題です。

最近、LLM(大規模言語モデル)を活用した自動エクスプロイト生成ツール「Anamnesis」がGitHubで公開され、セキュリティ研究コミュニティで注目を集めています。

この記事では、Anamnesisの仕組みと使い方を解説し、LLMがセキュリティ研究にどのような変革をもたらすのかを考察します。

目次

Anamnesisとは何か:LLMによるエクスプロイト生成の概要

💡 海外リモート・高単価案件を目指すなら
セキュリティスキルを持つエンジニアの需要は世界的に高まっています。グローバル案件で年収大幅アップを実現しませんか?

Anamnesisは、Trail of Bits出身のSean Heelan氏が開発した研究プロジェクトで、LLMを活用して脆弱性の検出から攻撃コード(エクスプロイト)の生成までを自動化することを目的としています。

従来のエクスプロイト開発との違い

従来のエクスプロイト開発は、以下のような手動プロセスが必要でした。

  • 脆弱性の根本原因を特定するためのリバースエンジニアリング
  • メモリレイアウトやスタック構造の解析
  • 攻撃コードの手動実装とデバッグ
  • 環境依存の調整(ASLRバイパス、ROP chain構築など)

Anamnesisは、これらのプロセスをLLMの推論能力で支援し、人間が行う試行錯誤の回数を大幅に削減します。

LLMがエクスプロイト生成に適している理由

LLMは膨大なコード例やセキュリティ論文を学習しているため、以下の能力を持っています。

  • 脆弱性パターンの認識(バッファオーバーフロー、Use After Free、型混同など)
  • 攻撃手法の知識(ROP、JOP、ヒープスプレーなど)
  • コード生成能力(アセンブリ、C、Pythonなど複数言語対応)

参考:Trail of Bits skillsでClaude Codeにセキュリティ監査を任せるも合わせてご覧ください。

IT女子 アラ美
LLMがエクスプロイトを自動生成できるなんて、ちょっと怖い気もしますね。

ITアライグマ
確かに悪用のリスクはありますが、防御側が先に知識を得ることで攻撃に備えられるという研究目的があります。責任ある開示が前提ですよ。

Anamnesisのアーキテクチャと技術的な仕組み

Anamnesisがどのように動作するのか、技術的な観点から解説します。

全体のワークフロー

Anamnesisは以下の3段階で動作します。

  • Phase 1: 脆弱性情報の収集:CVE詳細、パッチdiff、クラッシュログなどを入力
  • Phase 2: 攻撃戦略の立案:LLMが攻撃の方針を推論(どのメモリ領域を狙うか、どの関数を悪用するか)
  • Phase 3: エクスプロイトコード生成:LLMがPythonまたはC言語で攻撃コードを生成

使用されるLLMとプロンプト設計

Anamnesisは主にGPT-4やClaude 3.5といった最新のLLMを使用します。プロンプトは以下の要素で構成されています。


# プロンプト構成例
1. システムプロンプト:セキュリティ研究者としてのペルソナ定義
2. 脆弱性コンテキスト:CVE-XXXX-XXXXの詳細、影響を受ける関数、メモリ破壊の種類
3. 環境情報:ターゲットOS、アーキテクチャ、保護機構(ASLR/PIE/NXなど)
4. タスク指示:「この脆弱性を悪用してシェルを取得するエクスプロイトを生成せよ」

反復改善ループ

生成されたエクスプロイトがそのまま動作することは稀です。Anamnesisは実行結果をフィードバックとしてLLMに渡し、コードを改善するループを実装しています。

参考:adversarial-specで仕様策定を自動化するも参照してください。

IT女子 アラ美
反復改善するということは、何度も実行して調整するんですね。

ITアライグマ
はい、人間がデバッグする過程をLLMが代行するイメージです。ただし、完全自動化には課題も残っています。

Anamnesisの導入と基本的な使い方

実際にAnamnesisを使ってみましょう。導入手順と基本的な使い方を解説します。

環境構築とインストール


# リポジトリのクローン
git clone https://github.com/SeanHeelan/anamnesis-release.git
cd anamnesis-release

# 依存関係のインストール
pip install -r requirements.txt

# APIキーの設定(GPT-4またはClaude)
export OPENAI_API_KEY="sk-xxxx"

基本的なコマンド実行

Anamnesisは対話形式で動作します。脆弱性情報を入力として渡し、攻撃コードを生成させます。


# 基本実行
python anamnesis.py --vuln-info cve_details.json --target x86_64-linux

# 詳細出力モード
python anamnesis.py --vuln-info cve_details.json --target x86_64-linux --verbose

入力ファイルの形式

脆弱性情報はJSON形式で記述します。


{
  "cve_id": "CVE-2024-XXXX",
  "vulnerability_type": "heap_buffer_overflow",
  "affected_function": "parse_input",
  "crash_trace": "...",
  "patch_diff": "..."
}

参考:FastAPIで構築するモジュラーモノリスではセキュアな設計について解説しています。

IT女子 アラ美
JSONで脆弱性情報を渡すだけで動くんですか?

ITアライグマ
はい、クラッシュログやパッチdiffなどの情報が充実しているほど、LLMは正確な攻撃コードを生成できます。情報収集が鍵ですよ。

【ケーススタディ】既知のCVEに対するエクスプロイト生成実験

📚
セキュリティエンジニアとしてのキャリアを加速
高度なセキュリティスキルを持つエンジニアは市場価値が高く、年収アップの可能性が大きく広がります。

ここでは、公開されたCVEに対してAnamnesisを使用した実験結果を紹介します。

CVE-2023-XXXX(ヒープバッファオーバーフロー)に対するエクスプロイト生成
状況 (Before):あるオープンソースパーサーで発見されたヒープバッファオーバーフロー脆弱性。手動での解析では、脆弱性の根本原因特定に約3時間、攻撃コード作成に約5時間、合計8時間を要していました。対象はLinux x86_64環境でASLRが有効な状態でした。
行動 (Action):Anamnesisに脆弱性情報(CVE詳細、クラッシュトレース、パッチdiff)を入力しました。LLMはヒープレイアウトを分析し、隣接チャンクのメタデータ破壊による制御フロー乗っ取りを提案しました。生成されたエクスプロイトは5回の反復改善を経て動作するものになりました。
結果 (After):エクスプロイト生成にかかった時間は約45分(従来の8時間から約90%削減)。生成されたコードはPoC(概念実証)として機能し、リモートコード実行が可能な状態を再現できました。LLMの推論過程も記録されており、レポート作成にも活用できました。

LLM活用によるエクスプロイト生成精度

参考:スペック駆動開発とAIエージェントもAI活用の参考になります。

IT女子 アラ美
従来8時間かかっていた作業が45分になるのはすごいですね。

ITアライグマ
はい、もちろんすべてのケースでうまくいくわけではありませんが、セキュリティ研究の効率化に大きな可能性がありますよ。

Anamnesisの倫理的課題と責任ある活用

LLMによるエクスプロイト生成は強力なツールですが、悪用リスクと倫理的課題を十分に理解する必要があります。

責任ある開示の重要性

Anamnesisで生成したエクスプロイトは、以下の原則に従って扱う必要があります。

  • 自社環境またはラボ環境でのみ使用する
  • 発見した脆弱性はベンダーに責任ある開示(Responsible Disclosure)を行う
  • 公開前にパッチがリリースされるまで待機する

攻撃者よりも先に防御側が知識を得る

Anamnesisのような研究が公開される理由は、防御側が攻撃手法を理解し、先回りして対策を講じるためです。

セキュリティ研究コミュニティでは「攻撃を知らなければ防御もできない」という考え方が広く共有されています。

参考:oh-my-opencodeでマルチLLM並列実行もAI活用の幅を広げる参考になります。

さらなる年収アップやキャリアアップを目指すなら、ハイクラス向けの求人に特化した以下のサービスがおすすめです。

比較項目 TechGo レバテックダイレクト ビズリーチ
年収レンジ 800万〜1,500万円ハイクラス特化 600万〜1,000万円IT専門スカウト 700万〜2,000万円全業界・管理職含む
技術スタック モダン環境中心 Web系に強い 企業によりバラバラ
リモート率 フルリモート前提多数 条件検索可能 原則出社も多い
おすすめ度 S技術で稼ぐならここ A受身で探すなら Bマネジメント層向け
公式サイト 無料登録する - -
IT女子 アラ美
年収を上げたいんですが、ハイクラス求人ってハードルが高そうで迷います…
ITアライグマ
技術力を武器に年収を上げたいならTechGo一択!でも、自分の市場価値を幅広くチェックしたいならビズリーチも登録しておくと安心ですよ。

まとめ

この記事では、LLMによる自動エクスプロイト生成ツール「Anamnesis」について解説しました。

  • Anamnesisは脆弱性情報からエクスプロイトコードを自動生成するLLM活用ツールです。
  • 従来の手動エクスプロイト開発と比較して、工数を最大90%削減できる可能性があります。
  • GPT-4やClaudeなどのLLMを使用し、反復改善ループで精度を向上させます。
  • 責任ある開示と倫理的な活用が前提であり、防御側の知識強化が目的です。

セキュリティ分野でもAIの活用が進んでいます。Anamnesisのような研究に触れることで、攻撃と防御の両面から技術を深めてみてください。

IT女子 アラ美
AIがセキュリティ研究を変えていく時代なんですね。

ITアライグマ
そのとおりです。AIを武器にできるエンジニアは今後ますます重宝されます。まずは研究論文やツールに触れるところから始めてみてください!

厳しめIT女子 アラ美による解説ショート動画はこちら

この記事をシェアする
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ITアライグマのアバター ITアライグマ ITエンジニア / PM

都内で働くPM兼Webエンジニア(既婚・子持ち)です。
AIで作業時間を削って実務をラクにしつつ、市場価値を高めて「高年収・自由な働き方」を手に入れるキャリア戦略を発信しています。

目次