mcpField
A
analyzing-ransomware-payment-wallets

analyzing-ransomware-payment-wallets

github.com/mukul975セキュリティ35.2k257 回インストール8 週間前に更新
リポジトリ

analyzing-ransomware-payment-wallets について

インシデント対応担当者、法執行機関、脅威インテリジェンス分析者向けのランサムウェア支払いウォレット分析スキルです。公開ブロックチェーンデータを受動的に追跡し、アドレスのクラスタリングと帰属レポート作成を案内します。

主な機能

  1. 01身代金要求文からウォレットを抽出
  2. 02ブロックチェーン取引履歴の照会
  3. 03資金フローとアドレス群の追跡
  4. 04既知のウォレットデータベースとの照合
  5. 05帰属分析レポートの作成
  6. 06アドレスと関連性の検証

活用シーン

  1. 01ランサムウェア支払いの流れを調査
  2. 02複数事件のウォレット基盤を関連付け
  3. 03法務やコンプライアンス向けの資金流動証拠を整理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill analyzing-ransomware-payment-wallets

インストール後、Claude Code で/analyzing-ransomware-payment-walletsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
references/
api-reference.md
scripts/
agent.py

詳細

ランサムウェアの支払いウォレットを分析する

使用する場面

  • 組織がランサムウェアの被害に遭い、身代金要求メモに調査が必要なビットコインまたは暗号資産のウォレットアドレスが記載されている場合
  • 法執行機関またはインシデント対応担当者が、被害者の支払い後に身代金がどこへ流れたか追跡する必要がある場合
  • 脅威インテリジェンスアナリストが、インシデントをまたいで決済インフラをクラスタリングし、ランサムウェアキャンペーンの実行者を特定する場合
  • 調査担当者が、ランサムウェアグループが複数の被害者に対してウォレットインフラを再利用しているか判断する必要がある場合
  • コンプライアンスチームまたは法務チームが、起訴、制裁措置の執行、保険請求に向けて資金の流れを示す証拠を必要とする場合

このスキルは、支払いのリアルタイム傍受やランサムウェアの運営者との直接的なやり取りには使用しないでください。分析はすべて、公開ブロックチェーンデータを対象に、受動的かつ読み取り専用で行う必要があります。

前提条件

  • requests、json、hashlib ライブラリを備えた Python 3.8+
  • ブロックチェーンエクスプローラー API(blockchain.com、WalletExplorer.com、Blockstream.info)へのアクセス
  • ビットコインのトランザクションモデル(UTXO、入力、出力、チェンジアドレス)に関する知識
  • 一般的な難読化手法(ミキサー、タンブラー、ピールチェーン、クロスチェーンスワップ)への理解
  • 任意:エンタープライズ向けクラスター分析用の Chainalysis Reactor ライセンス
  • 任意:高度なトランザクショングラフ可視化用の OXT.me

ワークフロー

ステップ 1:身代金要求メモからウォレットアドレスを抽出する

身代金要求メモを解析し、支払い先アドレスを特定します。

Common address formats:
  Bitcoin (P2PKH):   1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa  (starts with 1)
  Bitcoin (P2SH):    3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy  (starts with 3)
  Bitcoin (Bech32):  bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq (starts with bc1)
  Monero:            4... (95 characters, much harder to trace)
  Ethereum:          0x... (40 hex chars)
ステップ 2:ブロックチェーンエクスプローラーでトランザクション履歴を照会する

ウォレットに関連するすべてのトランザクションを取得します。

import requests

def get_wallet_transactions(address):
    """Query blockchain.com API for address transactions."""
    url = f"https://blockchain.info/rawaddr/{address}"
    resp = requests.get(url, timeout=30)
    resp.raise_for_status()
    data = resp.json()
    return {
        "address": address,
        "n_tx": data.get("n_tx", 0),
        "total_received_satoshi": data.get("total_received", 0),
        "total_sent_satoshi": data.get("total_sent", 0),
        "final_balance_satoshi": data.get("final_balance", 0),
        "transactions": data.get("txs", []),
    }
ステップ 3:資金の流れをマッピングしてクラスターを特定する

身代金ウォレットから下流のアドレスへ出力を追跡します。

Fund Flow Analysis:
━━━━━━━━━━━━━━━━━━
Victim Payment ──► Ransom Wallet ──► Consolidation Wallet
                                  ├─► Mixer/Tumbler Service
                                  ├─► Exchange Deposit Address
                                  └─► Peel Chain (sequential small outputs)

Key indicators:
  - Consolidation: Multiple ransom payments aggregated into one wallet
  - Peel chains: Sequential transactions with diminishing outputs
  - Mixer usage: Funds sent to known mixer addresses (Wasabi, Samourai, ChipMixer)
  - Exchange cashout: Deposits to known exchange wallets (Binance, Kraken hot wallets)
ステップ 4:既知のウォレットデータベースと照合する

既知のランサムウェアインフラとアドレスを照合します。

# Check WalletExplorer for entity identification
def check_wallet_explorer(address):
    url = f"https://www.walletexplorer.com/api/1/address?address={address}&caller=research"
    resp = requests.get(url, timeout=30)
    data = resp.json()
    return {
        "wallet_id": data.get("wallet_id"),
        "label": data.get("label", "Unknown"),
        "is_exchange": data.get("is_exchange", False),
    }
ステップ 5:帰属分析レポートを作成する

調査結果を構造化されたインテリジェンスレポートにまとめます。

RANSOMWARE WALLET ANALYSIS REPORT
====================================
Ransom Address:      bc1q...xyz
Family Attribution:  LockBit 3.0 (based on ransom note format)
Total Received:      4.25 BTC ($178,500 at time of payment)
Total Sent:          4.25 BTC (wallet fully drained)
Number of Payments:  3 (likely 3 separate victims)

FUND FLOW:
  Payment 1: 1.5 BTC → Consolidation wallet → Binance deposit
  Payment 2: 1.0 BTC → Wasabi Mixer → Unknown
  Payment 3: 1.75 BTC → Peel chain (12 hops) → OKX deposit

CLUSTER ANALYSIS:
  Related wallets: 47 addresses identified in same cluster
  Total cluster volume: 156.3 BTC ($6.5M USD)
  First activity: 2024-01-15
  Last activity: 2024-09-22

検証

  • API を照会する前に、ウォレットアドレスの形式が有効であることを確認します
  • トランザクションのタイムスタンプを既知のインシデントの時系列と照合します
  • 共通入力所有権ヒューリスティックを確認し、クラスターの関連付けを検証します
  • 制裁対象アドレスについて、調査結果を OFAC SDN リストと照合します
  • 複数の情報源(WalletExplorer、OXT、Chainalysis)で取引所への帰属を検証します

主要な概念

用語定義
UTXO未使用トランザクション出力(Unspent Transaction Output)。トランザクションの連鎖を通じて所有権を追跡する、ビットコインの基本単位です
クラスター分析共通入力所有権やチェンジアドレスのヒューリスティックを使って、同じ主体が管理していると考えられる複数のビットコインアドレスをグループ化することです
ピールチェーン資金を多数の連続したトランザクションに通し、その都度、少額を新しいアドレスに移す資金洗浄のパターンです
CoinJoin/ミキサー送信者と受信者のつながりを分かりにくくするため、複数のユーザーのトランザクションを組み合わせるプライバシー保護手法です
共通入力所有権1つのトランザクションへのすべての入力は、同じ主体が管理していると仮定するヒューリスティックです

ツールとシステム

  • Chainalysis Reactor:主体への帰属分析とクロスチェーン追跡機能を備えた、エンタープライズ向けブロックチェーン調査プラットフォーム
  • WalletExplorer:ビットコインアドレスをクラスタリングし、既知のサービス(取引所、ミキサー、マーケット)をラベル付けする無料ツール
  • OXT.me:UTXO グラフ分析機能を備えた、高度なビットコイントランザクション可視化ツール
  • Blockstream.info:API を全面的に利用できるオープンソースのビットコインブロックエクスプローラー
  • blockchain.com API:ビットコインのアドレス残高とトランザクション履歴を照会できる無料 API
  • OFAC SDN List:コンプライアンス確認用の米国財務省制裁対象アドレスリスト

コメント