はじめに
この記事はマルウェア解析について簡単にまとめた記事です。
自分用のメモでもあります。ちょっと入門に依りすぎているかもしれません。
ただし、悪用は厳禁。
Who am i ?
しがないエンジニアです。
想定読者
- マルウェア解析初心者でやってみようと思っている方
- その他
そもそもマルウェア解析をする目的は何か
インシデントレスポンス(IR)時の調査に役立てるのが目的です。マルウェアの挙動を知っておく必要があります。
どのようなことを準備しておくべきか
まずやっておくことはマルウェア検体を解析する検体解析環境の準備です。
検体を動作させる専用の環境を用意しておく必要があり、専用のVM環境など、基本的にはオフラインの環境を用意すべきです。
ただし、インターネットに接続をしないと動作しないマルウェアも存在するため、複数の環境を用意すべきだと思います。
※基本的にインターネットへ接続しない理由はプロバイダーに怒られる場合もあるためです。
また、Sandboxの情報を元にマルウェアの情報を検索したり、調査する習慣もつけておくといいかもしれません。
標的型攻撃の場合だと検体が組織にチューニングされているため、Virus Totalのハッシュ検索などでは引っ掛からないことが多いので、自分で検体からマルウェアの特徴を調査する習慣をつけておくといいと思います。
マルウェア動的解析環境例
大変雑多な例ですが、マルウェア解析用の環境例を記載します。
localhost:物理マシン(OSは何でもいい)
VM①:マルウェア検体を動作させるための環境(検体の種類に応じてOSを変える)
VM②:攻撃者擬似サーバ(こちらもOSは何でもいい)
※VM①、VM②はバックアップのためスナップショットをとっておく。
VMwareの場合はVMware WorkStation(Pro)がオススメです。
※個人用途だと無料で使えるようになったみたいですね!
環境の構築については「ハッキングラボのつくり方」が詳しいです。こちらはVirtual Boxを使用しているようですが。
マルウェア解析環境構築とよく使うツール
Windows:
①色々入っているツール
Sysinternals
以下のツールはわりとよく使うかも。
- Process Explorer
- Process Monitor
- TCP View
- AutoRuns
②パケットキャプチャツール
WireShark
③色々入っているツール群
Ghidra
IDA Pro
④Linuxのコマンド群を使える(例えばWSLなど)と便利
⑤バイナリエディタ
④デバッガ(必要に応じて)
Ollydbg
x64dbg
⑤デコンパイラ(必要に応じて)
dnSpy(.Netならこれ)
retdec
IDAやGhidraのデコンパイラでも可。
Linux:
kali Linux
gdb
Ghidra
WireSharkなど
他、Pythonなどの使用するツールは適宜インストールする。
ProcMon(プロセスモニタ)のLinux版が出ているらしい。
補足
サーバを擬似的に作成したい場合は以下のミドルウェアが便利です。
上記のソフトウェアは、基本的には攻撃者側のサーバ(VM②)で使うことを想定しています。マルウェアの中にはプロキシサーバや専用のDNSサーバなどがないと動作しないものも存在するため、BlackJamboDogやXAMPPなどサーバを擬似的に作れる環境があると解析が捗ります。
よく使うサイト
Virus TotalやHybrid Analysisは表層解析レベルでは非常に役に立ちます。
Virus Total
Mitre Attack
Hybrid Analysis
Shodan
Any.Run
URLhaus
最後に
マルウェア解析は検体によって解析手法が変わるため、一概に「こうすればいい」ということはありませんが、一般論は勉強しておいて損はないかと思います。