こんとろーるしーこんとろーるぶい

週末にカチャカチャッターン!したことを貼り付けていくブログ

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」ボタンを押下します。 f:id:graneed:20180718015058p:plain

ログインを求められるので、アカウント未登録の場合は「register here」から登録します。
f:id:graneed:20180718015115p:plain

登録後はアカウント情報を入力して、「Next」ボタンで一直線です。

2. APIキー発行

MaltegoからAPIを利用する際に利用するAPIキーを入手します。

2.1. VirusTotalAPIキー発行

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のセットアップ

github.com

上記のgithubリポジトリ

の、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. VirusTotalAPI使用(ハッシュ値)

VirusTotalAPIを使用して、ハッシュ値からファイル情報を取得します。

まずは検体情報を入力するため、左ペインのEntity PaletteのHashを中央のGraphへドラッグ&ドロップし、ハッシュ値を入力します。 f:id:graneed:20180718005717p:plain

Hashを右クリックして[VTPub]file_reportsを選択して少し待つと、下図になりました。
f:id:graneed:20180718010426p:plain う~ん、マリシャス

さて、同じハッシュ値VirusTotalの画面で検索するとどうなるのでしょうか。 f:id:graneed:20180718010723p:plain ベンダー検知数は27/59と一致していますね。
ただ、Maltegoに表示されているマルウェアのファミリーは7種のみです。

3でセットアップしたTransformのVTPub.pyを確認すると、どうやら下記8ベンダーの結果をMaltegoに反映しているようです。

4.2. HybridAnalysisのAPI使用(ハッシュ値)

次に、HybridAnalysisのAPIを使用して、ハッシュ値からファイル情報を取得します。
なお、VirusTotalとの違いを確認するため、新規グラフで作業しています。

Hashを右クリックして[HA]hash_to_allを選択して少し待つと、下図になりました。 f:id:graneed:20180718012720p:plain う~ん、マリシャス(2回目)

apt、ursnif、goziなどのワードが出現していますが、HybridAnalysisの何の情報でしょうか。
同じくハッシュ値をHybridAnalysisの画面で検索してみます。赤枠で囲った情報が、Maltegoにプロットされていた情報です。

f:id:graneed:20180718013023p:plain f:id:graneed:20180718013031p:plain f:id:graneed:20180718013046p:plain

主要な情報は拾ってくれているようです。

4.3. VirusTotalAPI使用(IPアドレス)

4.2で出現したIPアドレスに対して、VirusTotalAPIを使用して情報を取得してみます。

IPアドレスを右クリックして[VTPub]ip_reportsを選択して少し待つと、下図になりました。 f:id:graneed:20180718014017p:plain

拡大します。

f:id:graneed:20180718014033p:plain

余罪ゴロゴロって感じですね。
ここで新たに出現したドメインについても悪性と判断してもよいかもしれません。

5. まとめ

これまでVirusTotalやHybridAnalysisを各々単独で使用して、IOC情報を収集したり関係性を分析していましたが、Maltego+API連携を使用すると、素早く情報収集ができ、また綺麗にビジュアライズされるため、スピードアップだけでなく分析品質の向上にも繋がりそうです。

紹介頂いた政本氏に感謝。