
防御的エンゲージメント&脅威インテリジェンス研究ラボ。制御されたポリシー駆動型AIエンゲージメントにより、受信した詐欺メールを実用的なIOC(侵害指標)に変換します。適応型戦略選択を備えたマルチエージェントLLMアーキテクチャ。
自動化スキャムベイティング・ハニーポット&脅威インテリジェンスプラットフォーム
Webサイト: scambuster.ai · ライブデモ: demo.scambuster.ai
コミュニティ: GitHub Discussions | セキュリティ問題の報告
コミュニティ主導: ご自身で評価してください -- デモを実行し、コードを読み、ご自身の見解をお持ちください。
デモを試す(インストール不要): demo.scambuster.ai -- ログイン:
[email protected]/Un1que$trongPassword2024(ローカルのmake demo-upと同じデータセット)。5分でローカルインストール: クイックスタートガイド --
cp .env.dist .env-> 4つの値を編集 ->make quickstart-> 完了。デモをローカルで実行(APIキー不要): デモガイド --
make demo-up-> http://localhost:3002
ScamBusterは、受信したスキャムメールを管理されたポリシー駆動のエンゲージメントを通じて実用的な脅威インテリジェンスに変換します。IOCの抽出、脅威アクターのプロファイリング、エンゲージメント効果の測定、STIX 2.1 / MISP / TAXII形式でのインテリジェンスエクスポートを実現します -- すべて安全ゲート付き、コスト意識型、完全監査可能です。
メールスキャムは大規模に運用されています。ほとんどのセキュリティプログラムはブロックして忘れる方式です:メッセージは除去されますが、攻撃者のインフラ、金融経路、キャンペーンシグナルは観察されないままです。属性情報はほとんどなく、進化するTTPへの可視性は限られ、脅威アクターとの実際のやり取りから生成されるインテリジェンスもありません。
ScamBusterは、スキャムメールを安全かつ大規模に測定可能な脅威インテリジェンスへ変換することで、このギャップを探求します。問題提起 を参照してください。
すべての返信は人間の遅延シミュレーション(設定可能な間隔、ランダム化されたタイミング、時間帯認識)を通過し、現実的な応答パターンを模倣します。
ScamBusterはUCB1探索を伴うイプシロン・グリーディを使用して、スキャム種類ごとにインテリジェンス収穫量を最大化するペルソナを学習します。ペルソナの有効性は手動で固定されるのではなく、ライブの結果からカテゴリごとに学習されます。
スキャマーは多くの言語で活動するため、ScamBusterも同様に対応します。検出ルール(脅迫、権威者のなりすまし、緊急性の合図)、ペルソナシステムプロンプト、戦略ガイダンスには、意図的に非英語コンテンツが含まれています -- これはハニーポットがスキャマーと彼らの言語でエンゲージすることを可能にする運用データです。コードベース自体(識別子、コメント、ログ)は英語です;シードデータやプロンプトに表示される非英語文字列は、翻訳されていないコードではなく意図的なものです。ペルソナと検出シードデータを編集することで言語を追加または適応できます -- コードの変更は不要です。
各会話から重複排除されたIOC(メール、ドメイン、IP、IBAN、暗号通貨ウォレット、電話番号、Telegramユーザー名、ファイルハッシュ...)が抽出され、意味的コンテキストで強化されます:スキャムのストーリーにおける各IOCの役割(支払い先、フィッシングの餌、連絡チャネル)、刺激タイプ、緊急度スコア、PIIを含まないコンテキスト抜粋など。
各会話からSTIX 2.1脅威アクターが生成され、行動プロファイリングが含まれます:```json { "type": "threat-actor", "name": "ScamBuster Actor - INVESTMENT #02114290", "sophistication": "minimal", "goals": ["financial-theft"], "primary_motivation": "personal-gain", "threat_actor_types": ["criminal"], "description": "Criminal actor operating investment scam." }
脅威アクターにはMITRE ATT&CKのテクニックマッピング、全IOCへの`indicates`リレーションシップ、エンゲージメントメトリクスを備えたカスタム`x_scambuster_actor`拡張が含まれます。バンドルは**OpenCTI**へのインポート用に検証されます。
### 脅威アクターインテリジェンス
ハニーポット自身のインタラクション(外部エンリッチメントなし)から構築された、*アクターに関する*ファーストパーティインテリジェンス — [脅威アクターのプロファイリングガイド](https://github.com/laugiov/scambuster/blob/HEAD/docs/21_threat_actor_profiling.md)を参照してください:
- **心理プロファイリング** — アクターごとの永続的なフィンガープリント:主要+副次的な**チャルディーニの影響力レバー**(Authority、Urgency、Scarcity、Secrecy、Reciprocity、Liking、SocialProof)、行動ナラティブ、エスカレーションパターン、被害者ターゲティング。オフラインで生成され、クラスタ詳細ページ、API、`x_scambuster_actor_psych` STIX拡張に表示されます。
- **ファジーアクタークラスタリング** — 会話は、単に同一の値だけでなく、*正規的に等価な*金融/連絡先IOC(ETHウォレットの大文字小文字、IBAN/カード/電話の区切り文字)でリンクされます。一方、真に異なる値(1桁違い)は分離されたままになります。
- **アナリストフィードバックループ** — アナリストはIOCを確認済み / 誤検知としてマークします(`POST /iocs/{id}/feedback`); その判定はエクスポートの信頼度を上書きします(確認済み → 高、誤検知 → ほぼゼロ)。
- **明示的なSTIXエビデンス** — 各インジケーターは`sighting` SDO(件数、初回/最終確認日時、確認場所)を保持し、標準のobservableも`observed-data`+Cyber Observable Objectsを出力します。
### 詐欺師のTTPインテリジェンス
ScamBusterはまた、インバウンドメッセージ上の**詐欺師の戦術・手法・手順(TTP)**を、6段階の詐欺キルチェーン(フック、信頼構築、支払い要求、エスカレーション、チャネル切り替え、出口)にわたる27項目のクローズドな分類法に対してタグ付けします。刺激(stimulus)は**私たちのペルソナ**が行う何かであり、TTPは**詐欺師**が行う何かです。この2つは厳密に分離され、分析上の価値は**刺激 → TTP → IOC**の交差にあります。
- **インバウンド限定LLMタグ付け** — 私たち自身の返信は決して分析されません。各観測は、信頼度、`confirmed`/`review`ステータス(設定可能なしきい値を下回る場合も、何も黙って破棄されません)、逐語的なエビデンス引用(**内部保存のみ**、APIレスポンスやエクスポートには一切含まれません — 消費者は文字オフセットを参照します)、およびモデル/プロンプトの来歴を保持します。
- **読み取りAPI** — `GET /conversations/{id}/ttps`、`/clusters/{id}/ttps`、`/ttps`、`/ttps/cluster-matrix`、`/ttps/{code}/iocs`、`/iocs/{id}/ttps`。手動の`POST /communication/message/{msgId}/extract-ttps`は運用/テスト用のインターフェースとして残っています。
- **アナリストUI** — クラスタTTPパネル、中立的な刺激/因果関係チップを備えた会話ごとの刺激 → TTP → IOC抽出タイムライン、およびタブ型の**TTP Explorer**(TTPごとの詳細ページを持つ分類法、8週間トレンド付きのフェーズ分析、クラスタ重複プレイブックマトリクス、オンデマンドかつデフォルトでマスク表示されるエビデンスを備えた読み取り専用レビューキュー)
- **CTIエクスポート** — TTPごとに1つの安定したSTIX 2.1のattack-pattern(`kill_chain_phases`付き)、`threat-actor uses attack-pattern`リレーションシップとクラスタ集計からのsighting、および`scambuster:ttp`+MITRE ATT&CKギャラクシーMISPタグ。エビデンステキストは決してエクスポートされません。
- **オペレーターツール** — `scambuster:ttp:backfill`(履歴抽出、デフォルトでプレビュー、予算上限付き、冪等)および`scambuster:ttp:audit-sample`(手動精度監査用のランダムサンプルCSV — エビデンステキストがデータベースから外部に出る唯一の経路)
- モジュール全体は**`TTP_EXTRACTION_ENABLED`**機能フラグ(デフォルトでオン)の背後にあり、フェイルセーフです:無効化されているか障害が発生しても、インジェスト、IOC抽出、返信には一切影響しません。
> **メトリクスに関する注意。** TTPモジュールは、ホワイトペーパーが対象とする9か月の本番運用期間**後**に追加されたため、**公開されたメトリクスはこれに適用されません**。その抽出精度は手動監査(`scambuster:ttp:audit-sample`)によって確立される予定です。その監査が存在するまで、精度値は主張されません。
### 自動化されたインテリジェンスフィード
- **STIX 2.1エクスポート** 会話ごと(indicators+threat-actor+sightings+observed-data+attack-pattern+relationships)
- **TAXII 2.1サーバー** デルタ同期付き -- IOCインジケーターに脅威アクターの属性情報をエンリッチ
- **MISP Event JSON**エクスポート
- **SIEMエクスポート** CEF、ECS、またはJSON形式で、ファイルまたはsyslog経由
標準規格であり、ベンダーごとのコネクタではありません:STIX 2.1、TAXII 2.1、MISP Event JSON、またはCEF/ECS syslogを消費できる任意のプラットフォームがこれらを読み取れます。**OpenCTIに対してエンドツーエンドで検証済み** -- 何がどこに格納されるかは[OpenCTI統合ガイド](https://github.com/laugiov/scambuster/blob/HEAD/docs/11_opencti_integration.md)を参照してください。他の経路も同じ標準に従いますが、実環境に対しては検証されていません。
[TAXIIサーバーガイド](https://github.com/laugiov/scambuster/blob/HEAD/docs/16_taxii_server.md)と[APIリファレンス](https://github.com/laugiov/scambuster/blob/HEAD/docs/12_api_quick_reference.md)を参照してください。
---
## 技術スタック
| レイヤー | 技術 |
|-------|------------|
| **バックエンド** | PHP 8.3, Symfony 7.4, DDDアーキテクチャ |
| **データベース** | PostgreSQL 15, Redis 7 |
| **フロントエンド** | React 19, TypeScript, TailwindCSS, i18n (EN/FR) |
| **LLM** | マルチプロバイダー: OpenAI, Anthropic, Ollama (完全ローカル), Mock (開発) |
| **オーケストレーション** | n8n (自己ホスト) |
| **シークレット** | 環境変数 / Docker secrets |
| **モニタリング** | Prometheusメトリクス, LLMコスト追跡, パイプライントレーシング |
| **インフラストラクチャ** | Docker Compose, GitHub Actions CI |
| **SIEM** | CEF, ECS, JSON -- プラガブルコネクタ |
> **データ主権**: `LLM_PROVIDER=ollama`でデプロイすると、100%オンプレミス処理が可能です。データがインフラストラクチャの外に出ることはありません。
---
## クイックスタート```bash
git clone https://github.com/laugiov/scambuster.git
cd scambuster
cp .env.dist .env # then EDIT it (see below) BEFORE the next step for real use
make quickstart # one command: build, start, migrate, seed, JWT keys, n8n
make test # optional: run the test suite
.envはmake quickstartの前に設定してください。 インストール処理はハニーポットの メールボックスを登録し、n8n の IMAP 認証情報を インストール中に.envから 作成します。 デフォルトのプレースホルダーでmake quickstartを実行すると、デモモード で起動します —HONEYPOT_IMAP_*、MAILER_DSN、LLM_API_KEYを入力して再実行するまで、実際の メール取得と返信は動作しません。(make quickstartはプレースホルダーを検出すると 警告を表示します。)
make quickstart はスタック全体をビルドして起動し、データベースを作成・マイグレーションし、
フィクスチャとデモデータを投入し、JWT キーを生成して、n8n を設定します —
手動の手順は不要です。詳細な手順は QUICKSTART.md を参照してください。
デプロイ方法は2つあります — QUICKSTART.md で手動で行うか、 AI_DEPLOYMENT.md を使ってAIエージェント(Claude Code、Cursor、Copilot、…)に任せるかです。 AI_DEPLOYMENT.md はツールに依存しないランブックで、エージェントが必要とする 秘密情報の取り扱いとガードレールが含まれています。
本番稼働時のご利用ですか?
make quickstartはローカル/開発者向けの手順です(開発サーバー、 デモデータ)。実際のデプロイには、自己完結型の本番イメージと compose ファイルを使用してください: 本番デプロイランブック (docker compose -f docker-compose.prod.yml up -d --build— nginx + php-fpm、デモデータなし、 マイグレーションは自動実行)。エージェントは AI_DEPLOYMENT.md の Production セクションに従うこともできます。
実際に(デモ以外で)使用する前に、.env の次の4つを編集してください(.env.dist の先頭にある
>>> EDIT THESE 4 FIRST <<< ブロックが指しているものと同じ4つであり、make quickstart が
プレースホルダーをチェックする項目です):
本番環境の強化のため、POSTGRES_PASSWORD(およびそれに合わせた DATABASE_URL)と
JWT_PASSPHRASE(openssl rand -hex 32)も変更してください — 詳細は
本番デプロイランブック を参照してください。
LLM プロバイダー(1つの環境変数で切り替え):
デフォルト認証情報(フィクスチャによって作成):
| メールアドレス | パスワード | 役割 |
|---|---|---|
[email protected] | Un1que$trongPassword2024 | ROLE_USER |
[email protected] | Un1que$trongPassword2024 | ROLE_ADMIN |
完全なセットアップガイド: はじめに
scambuster/ backend-symfony/ # PHP/Symfony backend (DDD) src/ Domain/ # Entities, value objects, enums, events Application/ # Handlers, services, orchestrators Infrastructure/ # Doctrine repos, external APIs, listeners UI/Http/ # Controllers (single __invoke) tests/ # PHPUnit (unit, integration, E2E) frontend-react/ # React 19 dashboard n8n/ # Workflow definitions infra/ # Docker configs docs/ # Documentation guides
---
## セキュリティと倫理
ScamBusterは**防御的な調査ツール**であり、攻撃用の武器ではありません。
- **インバウンド専用**: 詐欺師が接触を開始した後にのみ応答します
- **不正アクセスなし**: 攻撃者のシステムにアクセスすることはありません
- **コンテンツフィルタリング**: PolicyGuardが脅威、違法コンテンツ、実際の個人情報(PII)をブロックします
- **レート制限**: 会話、メッセージ、LLM呼び出しに対する厳格な上限
- **キルスイッチ**: ワークフロー、API、データベース、またはインフラストラクチャレベルで即時停止
- **GDPR**: データ最小化、保持ポリシー、保存時の暗号化
> **責任ある利用は運用者の責任です。** 運用する地域で展開が合法であることを確認し、インバウンド専用に保ち、接触の開始、個人の標的化、嫌がらせ、または晒し(dox)に決して使用しないでください。展開前に**[免責事項と責任ある利用](https://github.com/laugiov/scambuster/blob/HEAD/DISCLAIMER.md)**をお読みください。
詳細は[セキュリティとガードレール](https://github.com/laugiov/scambuster/blob/HEAD/docs/04_security_guardrails.md)、[SECURITY.md](https://github.com/laugiov/scambuster/blob/HEAD/SECURITY.md)、[DISCLAIMER.md](https://github.com/laugiov/scambuster/blob/HEAD/DISCLAIMER.md)を参照してください。
---
## プロジェクトの状況
| フェーズ | 状況 |
|-------|--------|
| マルチエージェントLLMアーキテクチャ | 完了 |
| 適応型エンゲージメント(epsilon-greedy) | 完了 |
| スケール、ダッシュボード、可観測性 | 完了 |
| 品質保証と検証 | 完了 |
| リッチなコンテキストIOCエンリッチメント | 完了 |
| STIX脅威アクターエクスポートとOpenCTI統合(sightings + observed-data) | 完了 |
| 脅威アクタークラスタリング(金融IOCに対するUnion-Find、ファジー正規マッチング) | 完了 |
| 脅威アクターの心理的プロファイリング(チャルディーニのレバー) | 完了 |
| アナリストIOCフィードバックループ(confirmed / false-positive → confidence) | 完了 |
| 詐欺師TTPの抽出とインテリジェンス(キルチェーン分類法、STIX attack-patterns) | 完了(研究後 — 公表されたメトリクスなし) |
| トンプソンサンプリング(v2バンディットアルゴリズム) | 計画中 |
詳細は[ロードマップ](https://github.com/laugiov/scambuster/blob/HEAD/docs/06_roadmap.md)と[チェンジログ](https://github.com/laugiov/scambuster/blob/HEAD/CHANGELOG.md)を参照してください。
---
## ドキュメント
| ドキュメント | 説明 |
|----------|-------------|
| [問題提起](https://github.com/laugiov/scambuster/blob/HEAD/docs/01_problem_statement.md) | 電子メール詐欺の問題 |
| [価値提案](https://github.com/laugiov/scambuster/blob/HEAD/docs/02_value_proposition.md) | 技術的な差別化要因 |
| [アーキテクチャ](https://github.com/laugiov/scambuster/blob/HEAD/docs/03_high_level_architecture.md) | システム設計 |
| [セキュリティと倫理](https://github.com/laugiov/scambuster/blob/HEAD/docs/04_security_guardrails.md) | 防御の原則、GDPR |
| [評価](https://github.com/laugiov/scambuster/blob/HEAD/docs/05_evaluation_methodology.md) | メトリクスと検証 |
| [ロードマップ](https://github.com/laugiov/scambuster/blob/HEAD/docs/06_roadmap.md) | タイムラインとマイルストーン |
| [FAQ](https://github.com/laugiov/scambuster/blob/HEAD/docs/07_faq.md) | よくある質問 |
| [はじめに](https://github.com/laugiov/scambuster/blob/HEAD/docs/08_getting_started.md) | 完全なセットアップチュートリアル |
| [本番展開](https://github.com/laugiov/scambuster/blob/HEAD/docs/runbooks/production-deployment.md) | 自己完結型の本番イメージ+compose、エンドツーエンドでテスト済み |
| [APIリファレンス](https://github.com/laugiov/scambuster/blob/HEAD/docs/12_api_quick_reference.md) | 全エンドポイント |
| [TAXIIサーバー](https://github.com/laugiov/scambuster/blob/HEAD/docs/16_taxii_server.md) | 自動化CTIフィードガイド |
| [OpenCTI統合](https://github.com/laugiov/scambuster/blob/HEAD/docs/11_opencti_integration.md) | OpenCTIをフィードに接続する: どこに何が入るか、そして落とし穴 |
| [SIEM統合](https://github.com/laugiov/scambuster/blob/HEAD/docs/15_siem_integration.md) | エンタープライズSIEMコネクタ |
| [MISP統合](https://github.com/laugiov/scambuster/blob/HEAD/docs/13_misp_integration.md) | MISPエクスポートマッピング |
| [エンタープライズSSO](https://github.com/laugiov/scambuster/blob/HEAD/docs/20_enterprise_sso.md) | OIDCシングルサインオン |
| [メトリクスカタログ](https://github.com/laugiov/scambuster/blob/HEAD/docs/22_metrics_catalog.md) | メトリクスの定義と由来 |
| [データ検証](https://github.com/laugiov/scambuster/blob/HEAD/docs/18_data_validation.md) | IOC、クラスタ、分類品質の監査コマンド |
| [データ品質監査](https://github.com/laugiov/scambuster/blob/HEAD/docs/19_data_quality_audit.md) | LLM品質監査、手動詳細監査、および是正ガイド |
| [脅威アクタープロファイリング](https://github.com/laugiov/scambuster/blob/HEAD/docs/21_threat_actor_profiling.md) | アクターごとの心理的+行動的フィンガープリント(チャルディーニのレバー) |
| [脅威アクター画面の見方](https://github.com/laugiov/scambuster/blob/HEAD/docs/23_reading_the_threat_actor_screen.md) | クラスタ詳細ページのフィールドガイド — すべての指標を解説し、デモのトーキングポイント付き |
| [TTP画面の見方](https://github.com/laugiov/scambuster/blob/HEAD/docs/26_reading_the_ttp_screens.md) | TTPエクスプローラーのタブ、TTP別詳細ページ、レビューキュー、会話因果関係チップのフィールドガイド |
| [アナリストフィードバック](https://github.com/laugiov/scambuster/blob/HEAD/docs/24_analyst_feedback.md) | STIX、TAXII、MISP、CSVフィード全体で信頼度の基準となる人間のconfirm / false-positive判定 |
---
## ライセンス
- **コード**: [MITライセンス](https://github.com/laugiov/scambuster/blob/HEAD/LICENSE)
- **ドキュメント**: CC BY-NC-SA 4.0
- **データセット**(公開時): CC BY-NC-SA 4.0
---
## コントリビューション
ガイドラインについては[CONTRIBUTING.md](https://github.com/laugiov/scambuster/blob/HEAD/CONTRIBUTING.md)を参照してください。
---
## 連絡先
| | |
|---|---|
| **ウェブサイト** | [scambuster.ai](https://scambuster.ai) |
| **ライブデモ** | [demo.scambuster.ai](https://demo.scambuster.ai) |
| **メンテナー** | Laurent Giovannoni |
| **LinkedIn** | [linkedin.com/in/giovannonilaurent](https://linkedin.com/in/giovannonilaurent) |
| **コンテキスト** | Black Hat USA 2026 |
| **イシュー** | [GitHub Issues](https://raw.githubusercontent.com/laugiov/issues) |
| **セキュリティ** | [SECURITY.md](https://github.com/laugiov/scambuster/blob/HEAD/SECURITY.md)を参照 |
---
<p align="center">
<a href="docs/01_problem_statement.md">詳細を見る</a> •
<a href="docs/03_high_level_architecture.md">アーキテクチャ</a> •
<a href="docs/06_roadmap.md">ロードマップ</a> •
<a href="docs/07_faq.md">FAQ</a>
</p>
| エージェント | 役割 |
|---|
| ScamClassifier | 受信スキャムを分類(13タイプのスキャム種類 + UNKNOWNフォールバック)+ 言語検出 |
| IocExtractor | 脅威インジケーター(36種類のIOCタイプ)をコンテキスト付きで抽出 |
| Generator | インテリジェンス収穫量を最大化するペルソナ駆動の応答を生成 |
| Validator | 安全性と品質を保証(PolicyGuard + LLM二重検証) |
| ConversationDirector | 各ターンでスレッド全体を推論し、Generatorを誘導(既に得たインテルを追跡、目標を推測、停止タイミングを通知) |
| Orchestrator | パイプラインを調整、コストを最適化、返信ごとのトレースを追跡 |
| InjectionDetector | 2層のプロンプトインジェクション分析(パターン + LLM-as-judge) |
| TtpExtractor | 受信メッセージのスキャマー戦術(TTP)を閉じたタクソノミーに基づいてタグ付け(受信専用、フィーチャーフラグ付き) |
| 変数 | 設定内容 |
|---|
LLM_API_KEY | OpenAI API キー(キーなしのデモの場合は LLM_PROVIDER=mock のままでも可) |
HONEYPOT_IMAP_USER | ハニーポットメールボックス(IMAP — スパムメールを受信) |
HONEYPOT_IMAP_PASSWORD | そのアプリパスワード(通常のアカウントパスワードではありません) |
MAILER_DSN | 返信送信用の SMTP — 同じメールボックス、@ は %40 と表記 |
| プロバイダー | LLM_PROVIDER= | データの場所 | 用途 |
|---|
| OpenAI | openai | クラウド | 最高品質 (GPT-4o) |
| Anthropic | anthropic | クラウド | 代替 (Claude) |
| Ollama | ollama | 100% ローカル | データ主権を重視するデプロイ |
| Mock | mock | ローカル | デモ(APIキー不要、無料) |