Maltego+API連携でばら撒きメールを分析
2018/7/12(木)のMacnica Networks DAY 2018にて、「フリーで使える脅威インテリジェンスの活用と実践-日本に着弾した攻撃事例を交えながら-」を聴講しました。
「もっとOSINTを効果的に使って手間かけずに分析しようず!」というテーマでの講演でしたが、そこで紹介のあったMaltego用のTransformがすごく便利そうだったので、実際に試してみました。
なお、このTransformは講演者である政本氏 本人が開発されておられるとのこと。
すごい(小並感
1. Maltegoのセットアップ
1.1. Maltegoのダウンロード
https://www.paterva.com/web7/downloads.php
上記リンクからインストーラーをダウンロードします。
1.2. Maltegoのインストール
インストーラーを実行したら「Next」「I Agree」「Install」ボタンで一直線です。
特に迷うところはありません。
1.3. Maltegoの初回実行、アカウント登録
初回起動すると、以下のダイアログが表示されます。
上から3番目のMaltego CE(Free)の「Run」ボタンを押下します。
ログインを求められるので、アカウント未登録の場合は「register here」から登録します。
登録後はアカウント情報を入力して、「Next」ボタンで一直線です。
2. APIキー発行
MaltegoからAPIを利用する際に利用するAPIキーを入手します。
2.1. VirusTotalのAPIキー発行
VirusTotal - ウイルス、マルウェア、URL の無料オンライン スキャナー
右上の「コミュニティに参加」からアカウント登録後、サインインします。
サインイン後、「右上のユーザー名」->「My API key」から確認できます。
2.2. HybridAnalysisのAPIキー発行
Free Automated Malware Analysis Service - powered by Falcon Sandbox
右上の「More->Register」からアカウント登録後、ログインします。
ログイン後、「右上のユーザー名」->「Profile」->「API key」から確認できます。
3. Transformのセットアップ
- VirusTotal-Private-API-Maltego
- VirusTotal-Public-API-Maltego
- HybridAnalysis-Public-API-Maltego
の、pyファイルとmtzファイルをダウンロードし、READMEに従ってセットアップしました。
このセットアップでAPIキーを使用します。
なお、念のためPythonは3.6.Xではなく2.7.Xを使いました。また、Pythonインストール後にC:\Python27\Scripts\pip.exe install requests
のコマンド実行による、requestsパッケージのインストールが必要です。(Windows環境の場合のパスです。)
4. Maltego+API連携を試してみる
いよいよ試してみますが、サンプルの検体情報が無いと試すに試せません。
そこで、JC3の注意喚起情報(注意情報|一般財団法人日本サイバー犯罪対策センター)から、添付ファイル付きのばら撒きメールの情報を確認し、その件名や本文情報からWeb検索し、リサーチャーの皆様が公開しているハッシュ値を確認しました。
サンプルのハッシュ値は4165270459a38ca8da6ab6ff7c7b1ecf29c13f6b602788738b8da2f0119ae56d
を使います。
4.1. VirusTotalのAPI使用(ハッシュ値)
VirusTotalのAPIを使用して、ハッシュ値からファイル情報を取得します。
まずは検体情報を入力するため、左ペインのEntity PaletteのHash
を中央のGraphへドラッグ&ドロップし、ハッシュ値を入力します。
Hash
を右クリックして[VTPub]file_reports
を選択して少し待つと、下図になりました。
う~ん、マリシャス
さて、同じハッシュ値をVirusTotalの画面で検索するとどうなるのでしょうか。
ベンダー検知数は27/59
と一致していますね。
ただ、Maltegoに表示されているマルウェアのファミリーは7種のみです。
3でセットアップしたTransformのVTPub.py
を確認すると、どうやら下記8ベンダーの結果をMaltegoに反映しているようです。
4.2. HybridAnalysisのAPI使用(ハッシュ値)
次に、HybridAnalysisのAPIを使用して、ハッシュ値からファイル情報を取得します。
なお、VirusTotalとの違いを確認するため、新規グラフで作業しています。
Hash
を右クリックして[HA]hash_to_all
を選択して少し待つと、下図になりました。
う~ん、マリシャス(2回目)
apt、ursnif、goziなどのワードが出現していますが、HybridAnalysisの何の情報でしょうか。
同じくハッシュ値をHybridAnalysisの画面で検索してみます。赤枠で囲った情報が、Maltegoにプロットされていた情報です。
主要な情報は拾ってくれているようです。
4.3. VirusTotalのAPI使用(IPアドレス)
4.2で出現したIPアドレスに対して、VirusTotalのAPIを使用して情報を取得してみます。
IPアドレス
を右クリックして[VTPub]ip_reports
を選択して少し待つと、下図になりました。
拡大します。
余罪ゴロゴロって感じですね。
ここで新たに出現したドメインについても悪性と判断してもよいかもしれません。
5. まとめ
これまでVirusTotalやHybridAnalysisを各々単独で使用して、IOC情報を収集したり関係性を分析していましたが、Maltego+API連携を使用すると、素早く情報収集ができ、また綺麗にビジュアライズされるため、スピードアップだけでなく分析品質の向上にも繋がりそうです。
紹介頂いた政本氏に感謝。