マルウェア解析入門
マルウェア解析の入門記事。内容的に特に新しいものはなかったものの、体系的に見直す意味で勉強になりました。
以下、簡単に概要を記載します。
■ マルウェア解析を行う理由
■ お勧めの書籍・サイト
【書籍】
Practical Malware Analysis
Malware Analyst Cookbook
Incident Response and Computer Forensics
【ウェブサイト】
(省略)
■ OpSec
- 攻撃者のインフラにアクセスしない
攻撃者に不審なアクセスが気づかれ、証拠隠滅等をされる可能性が有る。
ダミーデータを返すツールを使う(InetSim、FakeNet)
実際にサービスを立ち上げておく(Ampps)
マルウェアの挙動を完全に理解するために外部通信を許可する場合(適切に隔離、監視、保護を行う必要がある)
- 公開ツール(VirusTotal等)は検索するだけに留める
検体をアップロードすると機微な情報が漏れたり、攻撃者に気づかれるリスクが有る
- ゲストOSの外でマルウェアを実行しない
- ネットワーク接続ができるゲストOS上でマルウェアを実行しない
- 共有ドライブや他のシステムにアクセスできるゲストOS上でマルウェアを実行しない
- クリーンな環境に戻せるようにスナップショットを取っておく
- マルウェア検体を共有する際にはパスワードを付与する
セキュリティ業界では「infected」が最もよく使われている
- 危険なドメイン等をやり取りする際には「デファング(無害化)」する
evil.com → evil[.]com
■ マルウェア解析の種類
常にサンドボックス環境で動作する訳ではないので、別途手動解析をする必要がある場合もある。
- 最初のトリアージには大体15~30分の時間を取る
検体の種類や解析者のレベルにも依存するため、あくまで参考値。
- サンドボックス上での挙動と手動解析した際の挙動を突き合わせて確認する
- 解析方法は以下の4つのカテゴリーに分類できる
- 表層解析(Strings,FLOSS,Hex View)
- (簡易)動的解析(SysInternals, Sandbox)
- (詳細)動的解析(OllyDbg, WinDbg)
- 静的解析(IDA, Hopper)
■ 難読化
・難読化されたコードを読むにはCyberChefがお勧め
Docker: https://docs.docker.com
CyberChef: https://hub.docker.com/r/remnux/cyberchef/
sudo docker run -d -p 8080:80 remnux/cyberchef