現代のサイバーセキュリティにおいて、散在する情報を統合し、攻撃者のインフラを可視化することは極めて重要な課題となっています。
攻撃者は自身の正体を隠すために複数のドメイン、IPアドレス、メールアドレスを複雑に組み合わせて活動を展開します。
こうした断片的な情報の背後にある関連性を解き明かすためのツールとして、Maltegoは世界中のセキュリティアナリストから高い評価を得ています。
本記事では、Maltegoを活用してドメイン、IPアドレス、メールアドレスの相関分析を行い、脅威インテリジェンスを可視化する具体的な手法について解説します。
Maltegoの概要と脅威インテリジェンスにおける役割
Maltegoは、オープンソース・インテリジェンス(OSINT)やデータマイニング、フォレンジックに特化したグラフベースのリンク分析ツールです。
このツールの最大の特徴は、異なるデータソース間の論理的な繋がりを視覚的な「ノード(エンティティ)」と「リンク」として表現できる点にあります。
脅威インテリジェンスの文脈では、単一の不審な指標(IoC)から出発し、その背後に潜む攻撃者のインフラ全体を明らかにすることを可能にします。
例えば、一つのドメイン名からIPアドレスを特定し、そこから共存する他のドメイン、さらには登録者のメールアドレスへと分析を広げることができます。
このように情報を芋づる式に引き出すプロセスを、Maltegoでは「トランスフォーム(Transform)」と呼びます。
エンティティとトランスフォームの概念
Maltegoを使いこなすためには、まず「エンティティ」と「トランスフォーム」という二つの基本概念を理解する必要があります。
エンティティとは、ドメイン名、IPアドレス、個人名、会社名などの個々のデータ要素を指します。
一方、トランスフォームとは、あるエンティティに対して特定のクエリを実行し、関連する新しいエンティティを導き出すスクリプトや処理のことです。
例えば「Domain」というエンティティに対して「To IP Address」というトランスフォームを実行することで、そのドメインに関連付けられた「IPv4 Address」を取得できます。
相関分析のための環境構築とデータソースの準備
Maltego単体でも基本的な分析は可能ですが、高度な相関マッピングを行うには外部データソースとの連携が不可欠です。
Maltego内の「Transform Hub」を利用することで、世界中のセキュリティベンダーが提供するインテリジェンス情報を統合できます。
分析を開始する前に、以下の主要なデータソースのAPI連携を済ませておくことが推奨されます。
| データソース名 | 主な役割 | 分析へのメリット |
|---|---|---|
| VirusTotal | マルウェア・URL分析 | ドメインと既知の悪性ファイルの関連性を確認できる |
| Shodan | インターネット接続デバイス検索 | IPアドレスが開いているポートやサービスの詳細を取得できる |
| WhoisXML API | ドメイン登録情報提供 | ドメインの登録者名やメールアドレスの履歴を追跡できる |
| SecurityScorecard | サイバーリスク評価 | 組織のデジタル資産全体のリスク状況を把握できる |
これらのサービスから発行されたAPIキーをMaltegoに登録することで、調査の幅は劇的に広がります。
無料枠のAPIキーでも、小規模な調査であれば十分に機能しますが、大規模な追跡には有料プランが必要になることもあります。
実践:ドメイン・IP・メールアドレスの相関マッピング
ここからは、具体的な調査ステップを追いながら、どのように情報の関連付けを行うかを解説します。
今回は、特定の不審なドメインを起点として、攻撃者のインフラを可視化するフローを想定します。
ステップ1:ドメインからのフットプリンティング
まず、Maltegoのキャンバスに「Domain」エンティティを配置し、調査対象のドメイン名を入力します。
このドメインに対して、まず実行すべきはDNSレコードの解決です。
「To IP Address [DNS]」トランスフォームを実行し、ドメインが現在紐付いているIPアドレスを特定します。
さらに、過去の履歴を知るために「Passive DNS」関連のトランスフォームを実行すると、以前に使用されていたIPアドレスの変遷も明らかになります。
ステップ2:IPアドレスからネットワークインフラへの展開
特定されたIPアドレスに対して、今度はネットワーク的な側面からの調査を行います。
IPアドレスから「Netblock(ネットワークブロック)」や「AS(自律システム)」へとエンティティを展開します。
これにより、攻撃者がどのホスティングサービスやプロバイダーを利用しているかが分かります。
特定のホスティングサービスに集中している場合、そのサービス自体の脆弱性を突いているか、あるいは審査の甘いプロバイダーを意図的に選んでいる可能性があります。
また、Shodanトランスフォームを併用することで、そのIPアドレス上で動作している特定のサーバーバナー情報なども取得できます。
ステップ3:Whois情報とメールアドレスの紐付け
次に、攻撃者の身元に繋がる重要な鍵となる「Whois情報」を深掘りします。
ドメインエンティティから「To Email Address [Whois]」を実行し、登録に使用されたメールアドレスを抽出します。
ここで得られたメールアドレスは、分析の非常に強力なピボット(転換点)となります。
同一のメールアドレスを使用して登録された他のドメインを検索することで、攻撃者が保有する別の攻撃用サイトが浮かび上がるからです。
リバースWhois検索の重要性
通常、Whoisはドメインから所有者を調べますが、その逆の「リバースWhois」は所有者からドメインを特定します。
Maltegoでメールアドレスエンティティに対し、このトランスフォームを実行すると、一つのアドレスに紐付く数十、数百のドメインが一気に表示されることがあります。
これが、個別の事象が「キャンペーン」として繋がる瞬間です。
高度な分析テクニック:マシン機能による自動化
Maltegoには、手動でのトランスフォーム実行を自動化する「Machines(マシン)」という機能が備わっています。
あらかじめ定義されたマクロのようなもので、クリック一つで複雑な調査プロセスを完了させることができます。
例えば「Footprint L2」という標準マシンを実行すると、ドメインからIP、Whois、メール、そしてサブドメインの探索までを自動的に繰り返してくれます。
初動調査において、このマシン機能を使用することで、アナリストは手作業の時間を大幅に削減し、本質的な相関性の解釈に集中できます。
可視化データの整理とフィルタリング
相関分析を進めると、キャンバス上に膨大な数のエンティティが表示され、視認性が低下することがあります。
この状態を解消するために、Maltegoの「レイアウト」と「ビュー」の機能を活用します。
適切なレイアウトの選択
目的やデータの種類に応じて、表示形式を切り替えることが重要です。
- Circular Layout(円形レイアウト): 中心的なノード(ハブ)を特定するのに適しています。
- Organic Layout(オーガニックレイアウト): データの自然な集まり(クラスター)を把握するのに最適です。
- Hierarchical Layout(階層レイアウト): インフラの親子関係や、DNSの階層構造を理解するのに役立ちます。
特に、大量のドメインが特定のIPに集中している場合、オーガニックレイアウトを使用すると、視覚的に目立つクラスターとして表示されます。
これが攻撃者の「C2サーバー」や「フィッシングパネル」の温床である可能性を直感的に察知できます。
相関分析における注意点と倫理的配慮
Maltegoを用いた分析は非常に強力ですが、いくつかの注意点も存在します。
まず、公開されている情報の鮮度と正確性には常に留意する必要があります。
Whois情報がプライバシー保護サービスによって隠蔽されている場合や、攻撃者が偽の情報を登録しているケースも珍しくありません。
また、分析過程で特定のサーバーに対してアクティブなスキャンを行うトランスフォームを実行する場合、相手方に調査を検知されるリスクもあります。
ステルス性を重視する場合は、Passive DNSなどのパッシブなデータソースのみを使用するように設定を調整してください。
ケーススタディ:フィッシングメール送信元の特定
ある組織に届いた一通のフィッシングメールを起点とした、実戦的な分析の流れを考えてみましょう。
まず、メールのヘッダー情報から送信元のIPアドレスを抽出します。
次に、そのIPアドレスをMaltegoに投入し、同一IPでホストされている他のホスト名を特定します。
さらに、それらのホスト名のWhois情報を確認し、共通の管理担当者名や電話番号が含まれていないかを確認します。
もし共通のメールアドレスが見つかれば、そのアドレスが過去に関与したセキュリティ事案をVirusTotalなどのデータベースから照会します。
# Maltegoのトランスフォームから外部APIを呼び出す際の概念的なコード例
import requests
def get_threat_intel(indicator):
# API経由で評判情報を取得
api_url = f"https://api.example.com/v1/search?q={indicator}"
headers = {"Authorization": "Bearer YOUR_API_KEY"}
response = requests.get(api_url, headers=headers)
if response.status_code == 200:
return response.json()
return None
# 例: IPアドレスの評判を確認
result = get_threat_intel("192.168.100.1")
print(result)
{
"status": "malicious",
"threat_type": "Phishing Infrastructure",
"associated_campaigns": ["OpShadow2024"],
"last_seen": "2024-05-20"
}
このように、プログラムを介して独自のデータをインポートすることで、分析の精度はさらに向上します。
まとめ
Maltegoを用いたドメイン、IP、メールアドレスの相関分析は、断片的な情報から脅威の全体像を炙り出すための非常に有効な手法です。
単一のエンティティに固執するのではなく、トランスフォームを駆使して「点」を「線」で繋ぎ、最終的に「面」としてのインフラを可視化することが重要です。
様々なデータソースを統合し、視覚的なレイアウト機能を活用することで、人間の脳では処理しきれない複雑な関係性を見出すことができます。
ただし、ツールはあくまで補助的なものであり、最終的な判断はアナリストの経験と論理的思考に委ねられます。
本記事で紹介したプロセスを参考に、自社のインシデントレスポンスや脅威ハンティングの体制を強化していただければ幸いです。
Maltegoの持つ強力な可視化能力は、サイバー空間の霧を晴らし、より安全なデジタル社会を築くための武器となるでしょう。
