目次

推薦の言葉

まえがき

1章 ファイルをダウンロードするマルウェアの解析

1.1 マルウェア解析の世界へようこそ

1.2 マルウェア解析とは

1.2.1 マルウェア解析における観点

1.3 マルウェア解析方法の概略

1.4 マルウェアの入手方法

1.4.1 検索エンジンから入手する

1.4.2 専門Webサイトから入手する

1.4.3 自分でハニーポットを運用して入手する

1.5 ファイルの判別

1.6 動的解析と静的解析

1.7 解析環境の整備

1.7.1 物理環境と仮想環境

1.7.2 仮想化ソフトウェア

1.8 動的解析

1.8.1 動的解析を提供するWebサービス

1.9 マルウェア解析環境で使用できるツール

1.9.1 表層解析

1.9.2 デバッガの基礎

1.9.3 アンパック

1.9.4 Process Monitor

1.9.5 Malcode Analysis Pack

1.9.6 SysAnalyzer

1.9.7 FlyPaper

1.9.8 BlackManta

1.10 静的解析

1.10.1 IDA Proによるマルウェア解析

1.10.2 マルウェア解析のためのWin32 APIチート表の使い方

1.11 まとめ

2章 パックされているマルウェアの解析

2.1 はじめに

2.2 PEファイルフォーマット

2.2.1 DOS MZヘッダ/ DOSスタブ

2.2.2 PEヘッダ

2.2.3 セクションテーブル

2.2.4 セクション

2.2.5 PEファイルフォーマットを確認するツール

2.3 パック

2.3.1 パックされたプログラムの特徴

2.3.2 パックされたプログラムの実行フロー

2.3.3 自作パッカーで動作を理解する

2.4 アンパック

2.4.1 アンパックに使うツール

2.4.2 マニュアルアンパック

2.4.3 アンパックの実例

2.5 アンパックを妨害するテクニック

2.5.1 Stolen Bytes(Stolen Codes)

2.5.2 SizeOfImageの改変

2.5.3 Import Redirection

2.6 まとめ

3章 動的解析を妨害するマルウェアの解析

3.1 はじめに

3.1.1 仮想化ソフトウェア

3.1.2 システムリソース監視ツール

3.1.3 デバッガ

3.2 動的解析ツールの検出

3.2.1 プロセス一覧から動的解析用のツールを探し出す方法

3.2.2 ウィンドウを検出する方法

3.2.3 動的解析ツールが利用するデバイスファイルを検出する方法

3.3 タイマーによるチェック

3.3.1 Win32 APIの利用

3.3.2 RDTSC命令

3.4 マルウェア自身の再起動

3.5 デバッガを検出

3.5.1 IsDebuggerPresent

3.5.2 PEB!NtGlobalFlags

3.5.3 CheckRemoteDebuggerPresent

3.6 仮想化ソフトウェア上での動作を検出

3.6.1 VMwareバックドアI/Oポート

3.6.3 GDT、IDT、LDTアドレスの確認

3.7 さまざまな例外発生 ── 0除算、ブレークポイント、シングルステップ実行など

3.8 APIに設定されたブレークポイント(INT3)の検出

4章 コードインジェクションをするマルウェアの解析

4.1 はじめに

4.2 コードインジェクションの方法

4.2.1 SetWindowsHookExを使う方法

4.2.2 レジストリキー“AppInit_DLLs”を使う方法

4.2.3 BHOを使う方法

4.2.4 CreateRemoteThreadを使う方法

4.3 コードインジェクションマルウェアの解析

4.3.1 コードインジェクションの検出

4.3.2 インジェクションされたコード(DLL)の解析

4.3.3 CreateRemoteThreadでインジェクションされるコードの解析

4.4 まとめ

5章 カーネルモード(Ring0)で動作するマルウェアの解析

5.1 はじめに

5.1.1 準備

5.1.2 VMwareとWinDbgのセットアップ

5.1.3 WinDbgの使い方

5.1.4 WinDbg拡張機能作成のための環境構築

5.2 カーネルモード(Ring0)のマルウェアの概要

5.3 カーネルモードマルウェアの解析

5.3.1 SSDT Hooking

5.3.2 Runtime Patching(Inline Hooking)

5.3.3 IDT Hooking

5.3.4 IRP Hooking

5.3.5 MSR Hooking(sysenter Hooking )

5.3.6 DKOM

5.4 オリジナルツールによるカーネルモードマルウェアの解析

5.4.1 WinDbg拡張機能について

5.4.2 基本的な拡張機能の作成

5.4.3 実践的な拡張機能の作成

5.5 まとめ

索引