お疲れ様です!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女子 アラ美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で仕様策定を自動化するも参照してください。



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で構築するモジュラーモノリスではセキュアな設計について解説しています。



【ケーススタディ】既知のCVEに対するエクスプロイト生成実験
ここでは、公開されたCVEに対してAnamnesisを使用した実験結果を紹介します。


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



Anamnesisの倫理的課題と責任ある活用
LLMによるエクスプロイト生成は強力なツールですが、悪用リスクと倫理的課題を十分に理解する必要があります。
責任ある開示の重要性
Anamnesisで生成したエクスプロイトは、以下の原則に従って扱う必要があります。
- 自社環境またはラボ環境でのみ使用する
- 発見した脆弱性はベンダーに責任ある開示(Responsible Disclosure)を行う
- 公開前にパッチがリリースされるまで待機する
攻撃者よりも先に防御側が知識を得る
Anamnesisのような研究が公開される理由は、防御側が攻撃手法を理解し、先回りして対策を講じるためです。
セキュリティ研究コミュニティでは「攻撃を知らなければ防御もできない」という考え方が広く共有されています。
参考:oh-my-opencodeでマルチLLM並列実行もAI活用の幅を広げる参考になります。
さらなる年収アップやキャリアアップを目指すなら、ハイクラス向けの求人に特化した以下のサービスがおすすめです。
| 比較項目 | TechGo | レバテックダイレクト | ビズリーチ |
|---|---|---|---|
| 年収レンジ | 800万〜1,500万円ハイクラス特化 | 600万〜1,000万円IT専門スカウト | 700万〜2,000万円全業界・管理職含む |
| 技術スタック | モダン環境中心 | Web系に強い | 企業によりバラバラ |
| リモート率 | フルリモート前提多数 | 条件検索可能 | 原則出社も多い |
| おすすめ度 | 技術で稼ぐならここ | A受身で探すなら | Bマネジメント層向け |
| 公式サイト | 無料登録する | - | - |



まとめ
この記事では、LLMによる自動エクスプロイト生成ツール「Anamnesis」について解説しました。
- Anamnesisは脆弱性情報からエクスプロイトコードを自動生成するLLM活用ツールです。
- 従来の手動エクスプロイト開発と比較して、工数を最大90%削減できる可能性があります。
- GPT-4やClaudeなどのLLMを使用し、反復改善ループで精度を向上させます。
- 責任ある開示と倫理的な活用が前提であり、防御側の知識強化が目的です。
セキュリティ分野でもAIの活用が進んでいます。Anamnesisのような研究に触れることで、攻撃と防御の両面から技術を深めてみてください。













