Fragments of verbose memory

冗長な記憶の断片 - Web技術のメモをほぼ毎日更新

Jan 21, 2026 - 日記

Robin: AIを武器にダークウェブを調査する - セキュリティ研究者の新しい相棒

Robinのカバー画像

ダークウェブでの情報収集は、セキュリティ研究者にとって不可欠な作業です。しかし、膨大なノイズの中から有用な情報を見つけ出すのは至難の業でした。Robin は、LLMの力を借りてこの問題を解決する新しいOSINTツールです。OSINT(Open Source Intelligence)は、公開情報をもとに目的に沿った情報を収集・整理する調査手法を指します。

本記事では、Robinの概要、仕組み、そして公式README(2026-01-17時点のv2.0相当)に沿ったセットアップ方法を紹介します。CLIオプションやモデル名は更新されることがあるため、実行前に公式READMEも確認するのがおすすめです。

Robinとは?

Robinは、AIを活用したダークウェブ向けのOSINT(オープンソースインテリジェンス)調査ツールです。名前は「バットマンの相棒ロビン」に由来しており、セキュリティ研究者の補助役として設計されています。

主な特徴:

  • モジュール構成: search / scrape / LLM処理を分離した設計
  • マルチモデル対応: OpenAI、Claude、Gemini、Ollama(ローカル)などを切り替え可能(READMEではOpenRouterも言及あり)
  • CLIファースト: ターミナルから実行でき、自動化に向く
  • Docker対応: 環境を汚さずにWeb UIも起動できる
  • レポート出力: 調査結果をファイルに保存できる
  • 拡張性: 検索エンジンや出力形式を追加しやすい

なぜ「ロビン」なのか

バットマンがゴッサムシティの平和を守るように、セキュリティ研究者は脅威から組織を守ります。しかし、バットマンにロビンという相棒が必要だったように、研究者にもダークウェブの膨大な情報を整理する補助ツールが必要でした。Robinはまさにその役割を果たします。

ダークウェブOSINTの課題

従来のダークウェブ調査には以下の課題がありました:

1. 情報のノイズ比率が高い

ダークウェブの検索結果には、無関係なコンテンツ、スパム、詐欺サイトが大量に含まれます。手動でフィルタリングするには時間がかかりすぎます。

2. 検索クエリの最適化が難しい

効果的な検索には、ダークウェブ特有の用語や検索テクニックの知識が必要です。初心者には敷居が高い作業でした。

3. 複数の情報源の統合

複数ソースを横断して調査するには、それぞれのUIや癖を理解する必要がありました。

Robinはこれらの課題をAIの力で解決します。

Robinの仕組み

Robinは以下の流れで動作します:

sequenceDiagram
    participant User as ユーザー
    participant Robin as Robin
    participant LLM as LLM (GPT-4/Claude等)
    participant Tor as Tor検索エンジン
    
    User->>Robin: 検索クエリ入力
    Robin->>LLM: クエリ最適化依頼
    LLM->>Robin: 最適化されたクエリ
    Robin->>Tor: ダークウェブ検索実行
    Tor->>Robin: 検索結果(生データ)
    Robin->>LLM: 結果の要約・フィルタリング依頼
    LLM->>Robin: フィルタ済み情報
    Robin->>User: 整理された調査結果

AIによるクエリ最適化

例えば、ユーザーが「漏洩したクレジットカード情報」を検索したい場合、Robinはクエリをダークウェブ向けに言い換えたり、追加キーワードを付けたりして検索精度を上げます。

元のクエリ(例):

1
credit card leaks

LLMによる最適化後(例):

1
"CVV" OR "dumps" OR "fullz" site:.onion

※ここで挙げたクエリはあくまで例です。実際には法令や組織のポリシーに従い、適法な調査目的に限定して利用してください。

検索結果のインテリジェントフィルタリング

Robinは検索結果をLLMに送信し、以下の基準でフィルタリングします:

  • 関連性: クエリとの一致度
  • 信頼性: 情報源の評価
  • 鮮度: 情報の新しさ
  • リスク評価: 脅威レベルの判定

インストールと初期設定

Robinは複数の実行方法を提供しています。公式README(2026-01-17時点のv2.0相当)では Docker(Web UI)が推奨されています。CLIオプションやモデル名は更新されることがあるため、最新情報はRobin公式リポジトリReleases も参照してください。

前提条件

  • Tor: 検索にTorが必要です(READMEではTorをインストールしてバックグラウンドで動かす想定)
  • APIキー: OpenAI / Anthropic / Google Geminiなど(オンラインLLMを使う場合)
  • Ollama: ローカルLLMを使う場合

Torの導入例(READMEより):

1
2
3
4
5
# macOS
brew install tor

# Linux / WSL
sudo apt install tor

Torの詳細はThe Tor Project を参照してください。

1) Docker(Web UIモード・推奨)

  1. Dockerイメージを取得
1
docker pull apurvsg/robin:latest
  1. .env を用意
1
2
3
git clone https://github.com/apurvsinghgautam/robin.git
cd robin
cp .env.example .env
  1. .env にAPIキー等を設定

.env に各プロバイダーのAPIキーを設定します(例: OPENAI_API_KEY, ANTHROPIC_API_KEY, GOOGLE_API_KEY)。

.env は機密情報を含むため、Gitにコミットしないでください。

  1. コンテナを起動
1
2
3
4
5
docker run --rm \
  -v "$(pwd)/.env:/app/.env" \
  --add-host=host.docker.internal:host-gateway \
  -p 8501:8501 \
  apurvsg/robin:latest ui --ui-port 8501 --ui-host 0.0.0.0

ブラウザで http://localhost:8501 を開くとWeb UIにアクセスできます。

2) リリースバイナリ(CLIモード)

ローカルにPython環境を入れたくない場合は、Releases からバイナリを取得するのが手軽です。

1
2
chmod +x robin
./robin cli --model gpt-4.1 --query "ransomware payments"

3) Python(開発版)

READMEでは Python 3.10+ が前提です。

1
2
pip install -r requirements.txt
python main.py cli -m gpt-4.1 -q "ransomware payments" -t 12

基本的な使い方(README準拠のCLI)

RobinのCLIは「モデル」「クエリ」「スレッド数」「出力ファイル」を指定して実行します。

1. シンプルな検索

1
./robin -m gpt-4.1 -q "ransomware payments" -t 12

また、開発版をPythonで動かす場合は次のようになります。

1
python main.py cli -m gpt-4.1 -q "ransomware payments" -t 12

2. 出力をファイルに保存

1
./robin --model gpt-4.1 --query "sensitive credentials exposure" --threads 8 --output report.md

3. ローカルLLMを使用(プライバシー重視)

外部APIにクエリや結果を送信したくない場合は、Ollama(ローカルモデル)を選べます。

1
2
ollama pull llama3.1
./robin -m llama3.1 -q "zero days"

Docker経由でOllamaに接続する場合は、READMEにある OLLAMA_BASE_URL の設定が必要です(host.docker.internal など環境により差があります)。

実践例: ランサムウェア関連キーワードの調査

実際のユースケースとして、ランサムウェアに関連するキーワードで調査する例を見てみます。

検索クエリ

1
./robin -m gpt-4.1 -q "ransomware payments" -t 12 --output ransomware_report.md

Robinの自動処理(概念)

  1. クエリ最適化: 検索精度が上がるようにクエリを調整
  2. 検索・スクレイピング: 複数ソースから情報を収集
  3. 要約・整理: 重要点と次のアクションをまとめる

以下は出力形式のイメージを示す架空のサンプルです(実データではありません)。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
{
  "query": "ransomware payments",
  "results": [
    {
      "title": "Example source",
      "url": "http://[redacted].onion",
      "summary": "サンプルの要約(実在の被害・組織を示すものではありません)",
      "risk_level": "medium",
      "confidence": 0.5,
      "timestamp": "2026-01-01"
    }
  ],
  "analysis": {
    "key_findings": [
      "重要情報の抜粋",
      "追加で確認すべき観点",
      "次に取るべきアクション"
    ]
  }
}

注意点とベストプラクティス

RobinのREADMEにもある通り、この種のツールは教育目的・適法な調査目的でのみ使用すべきです。国や組織のルールにより、アクセスや取り扱いが禁止されている場合があります。

セキュリティ上の注意

  1. Tor接続を必ず使用

    • ダークウェブへのアクセスは必ずTor経由で行ってください
    • IPアドレスの漏洩リスクを最小化します
  2. APIキーの管理

    • APIキーは環境変数または .env ファイルで管理
    • .env をGitにコミットしないこと
  3. 違法コンテンツへのアクセス禁止

    • Robinは調査目的のツールです
    • 違法なコンテンツの閲覧・ダウンロードは厳禁

プライバシー保護

外部LLM APIを使用する場合、検索クエリと結果がプロバイダーに送信されます。機密性の高い調査では、以下の対策を検討してください:

  • Ollamaでローカルモデルを使用
  • クエリを一般化: 具体的な組織名を避ける
  • 結果を加工してからLLMに送信: 個人情報等をマスキング

効果的な検索のコツ

  1. 具体的なキーワードを使用

    • 例: ransomware payments, sensitive credentials exposure
  2. 複数ソースで裏取りする

    • ダークウェブの情報は誤情報やノイズも多いです
    • 1つの結果だけで判断せず、複数の情報源で整合性を確認します
  3. 定期的な調査

    • ダークウェブの情報は流動的です
    • 定期実行でトレンドを把握

まとめ

Robinは、AIの力でダークウェブOSINTを効率化する画期的なツールです。

主なメリット:

  • 検索〜整理の手間を削減(ケースによる)
  • ノイズの自動フィルタリング
  • 初心者でも効果的な調査が可能
  • ローカルLLM対応でプライバシー保護

適したユースケース:

  • ランサムウェアグループの活動監視
  • 漏洩データの発見
  • 脅威インテリジェンスの収集
  • セキュリティ研究

ダークウェブ調査は専門的な知識とツールが必要な分野でしたが、Robinの登場で大きく変わろうとしています。セキュリティ研究者にとって、まさに「頼れる相棒」となるツールです。

興味がある方は、まずは公式READMEと免責事項を確認し、隔離した検証環境で安全に試すところから始めるのがよいと思います。

参考リンク