マルウエアの設定情報を抽出する ~ MalConfScan ~

毎日、数多くのマルウエアが発見されていますが、その多くは過去に確認されているものの亜種であり、コードはほとんど変わりません。変更されているのは通信先などの設定情報だけの場合がほとんどです。そのため、多くの場合は設定情報だけ抽出できれば、マルウエア分析は完了します。
JPCERT/CC では、そのような作業をサポートするためにマルウエアの設定情報を抽出するツール「MalConfScan」を作成し、公開しました。 今回は、この「MalConfScan」の機能について紹介します。
なお、ツールはGitHub上で公開していますので、次のWebページからダウンロードしてご利用ください。

JPCERTCC/MalConfScan - GitHub
https://github.com/JPCERTCC/MalConfScan

インストール方法については、Wikiをご覧ください。
MalConfScan wiki - GitHub
https://github.com/JPCERTCC/MalConfScan/wiki

MalConfScanの詳細

MalConfScanは、メモリフォレンジックツールであるThe Volatility Framework(以下、「Volatility」)のPluginとして作成しています。多くの場合、マルウエアはパッキングされているため、設定情報を抽出する際にアンパックすることからはじめなければいけません。MalConfScanはメモリ上にロードされているアンパックされた状態の実行ファイルから設定情報を抽出します。そのため、パックされたマルウエアでも気にすることなく分析できます。
MalConfScanは、次の機能を持っています。

  • malconfscan: メモリイメージから既知のマルウエアの設定情報を抽出
  • malstrscan: メモリイメージから不審なプロセスを検出し、そのプロセスが参照する文字列をリスト

malconfscan

図1はmalconfscanの実行結果の例です。はじめに、マルウエアのインジェクト先プロセス名(Name)やプロセスID(PID)、マルウエア検知名(Malware Name)が表示されます。次に、マルウエアの設定情報が(Config info)が表示されます。

malconfscan実行結果1
図 1:malconfscan実行結果(Lavender(RedLeaves亜種)検知結果)

malconfscan はマルウエアによっては設定情報だけではなく、エンコードされている文字列をデコードして表示したり、DGAドメインなどを表示したりする機能もあります。図2はmalconfscanでBeblohを検知した結果です。設定情報の後にDGAドメインが表示されています。

malconfscan実行結果2
図 2:malconfscan実行結果(Bebloh検知結果)

2019年7月30日現在、malconfscanは25種類のマルウエア分析に対応しています。詳しい対応マルウエアについては、 Appendix をご覧ください。

malstrscan

malstrscanは、メモリ上のProcess Hollowingを検知し、そのプロセスが参照する文字列をリストします。マルウエアの設定情報は通常エンコードされています。マルウエアは設定情報を使用する際、デコードするため、メモリ上にそのデータが残っている場合があります。この機能は、そのようなデコードされた設定情報をリストできる可能性があります。図3はmalstrscanの実行結果の例です。

malstrscan実行結果
図 3:malstrscan実行結果

この機能は、デフォルトではPEがロードされたメモリスペースからのみ文字列をリストします。 -aオプションを使うと、ヒープなどのペアレントメモリスペースもリストします。

おわりに

このツールはマルウエア分析だけではなく、メモリフォレンジックにも活用できます。マルウエア分析だけではなく、インシデント調査にも本ツールを活用していただければと思います。今後も新たなマルウエアに対応していく予定です。
次回は、本ツールをCuckoo Sandboxにインストールして自動的にマルウエアの設定情報を抽出する方法について紹介します。

インシデントレスポンスグループ 朝長 秀誠

Appendix A 対応するマルウエア

表 1: 対応するマルウエア一覧
マルウエア名
Ursnif HawkEye Keylogger
Emotet Lokibot
Smoke Loader Bebloh
Poison Ivy AZORult
CobaltStrike NanoCore RAT
NetWire AgentTesla
PlugX FormBook
RedLeaves NodeRAT
TSCookie njRAT
TSC_Loader TrickBot
xxmm Remcos
Datper QuasarRAT
Ramnit
≪ 前へ
トップに戻る
次へ ≫