Download presentation
Presentation is loading. Please wait.
1
Windows PEファイル感染及び発見的手法による検知 Nicolas BRULEZ / Digital River
PACSEC '04
2
はじめに
3
コンピュータ ウイルスの進化 非暗号化 暗号化 少形( Oligomorphic ) 多様型( Polymorphic )
変形型( Metamorphic )
4
PE ファイル形式 MZ ヘッダ PE ヘッダ PE ファイル ヘッダ PE オプショナル ヘッダ データ ディレクトリ セクション ヘッダ
5
位置独立コード ウイルスはどのメモリアドレスでも実行可能であること が要求される デルタ オフセットの計算
6
Windows PE ファイル 感染テクニック
7
ウイルスの位置 最後のセクション: - 新しいセクション BEFORE : AFTER :
8
ウイルスの位置 最後のセクション: - 新しいセクション
9
ウイルスの位置 最後のセクション: - 最後のセクションの拡張 BEFORE : AFTER :
10
ウイルスの位置 最後のセクション: - 最後のセクションの拡張
11
ウイルスの位置 ヘッダ感染
12
ウイルスの位置 キャビティ BEFORE : AFTER :
13
実行開始位置 最後のセクション内
14
実行開始位置 最初のセクション内
15
実行開始位置 最初のセクションの前
16
e_lfanew 感染 e_lfanewはPEヘッダ オフセットのポインタである MZヘッダ内のMZ+3Chにある
ウイルスはファイルの末尾にコピーされるが、独立した位置コー ドは不要である
17
e_lfanew 感染 プログラムが改変されることにより、そのe_lfanewはウイルスの PEヘッダにポイントする
そのためWindowsは感染したファイルではなく、ウイルスをロー ドする そしてウイルスは感染したプログラムの一時的なコピーを作成 し、 PEヘッダへの元のポインタを修正する 最後にウイルスは例えばCreateProcessAを用いて一時ファイル を実行し、終了後、一時ファイルを削除する
18
Windows PEファイルにおける発見的手法による検知
19
PE ファイルの構造解析 発見的手法による検知は主にWindows実行可能プログラムの PEファイルの構造解析に基づく エントリポイント
セクションの特性 (固有の特性をもつ)セクションの名前 PEヘッダ内で更新されない値 ファイル内のPEヘッダの位置 など
20
PE ファイルの構造解析 最後のセクション内のエントリポイント 最初のセクションの前のエントリポイント
21
PE ファイルの構造解析 セクションの特性 : セクション名およびその特性 - 最後のセクション « 実行可能 »
- 最後のセクション « 実行可能 » - 最初のセクション « 書き込み可能 » セクション名およびその特性
22
PE ファイルの構造解析 «SizeOfImage» PEヘッダ内で正しくない ファイルの終わり近くのPEヘッダ
« コードサイズ » 正しくない
23
コード解析 エントリ ポイントにおける非標準命令 デルタ オフセットの計算 疑わしいコードの出力先変更: - JUMP FAR
- PUSH RET その他..
24
コード解析 PEファイルを探しているコード システムDLLのイメージベースを取得するためのPEB使用
25
コード解析 - "*.exe" コード セクション内の疑わしい文字列
- Win関数の名前: FindFirstFileA, MapViewOfFile など.. - レジストリ キー : Run / RunOnce など
26
エミュレーション JMP FAR PUSH / RET + コード・フローの出力先変更のための多様な方法
ディクリプタ エミュレーション( ループの識別)
27
対発見的テクニック
28
PE 構造 セクションの特性の非改変 追加された1つ以上のセクション (偽装リロケーション/インポー ト)
疑わしいものを避けるために上書きするコードセクションの部分 ウイルスを配置するコードセクションのパッキングは開放された 場所 EPO: エントリポイントの隠蔽
29
PEの構造 FF15/FF25 (IATスロットと呼ぶ) パッチ スタック フレーム パッチ 最新のチェックサム
既存のセクション名の変更(可能な場合) « コードサイズ » 固定
30
アンチ エミュレーション SEH – 構造化例外処理(Structured Exception Handling) コプロセッサ命令
MMX / SSE テクノロジ 隠し命令 アンチ仮想マシンコード 鍵をブルートフォースする暗号解読層 スレッド
31
アンチ ヒューリスティック(発見的) コード
デルタ オフセットは異なる方法で計算される 疑わしい行為を隠すオブフスケーション(不明瞭化)の使用法 (PEファイルチェックなど) ウイルスローダに文字列はない: CRC / HASH
32
基本的な発見的エンジンについて
33
基本エンジン 標準バイナリ : notepad, regedit, calc, MS Pain, WordPad など…
34
基本エンジン
35
基本エンジン
36
基本エンジン
37
基本エンジン 感染したバイナリの解析 : 多様型、暗号化、標準、 EPO など
38
基本エンジン
39
基本エンジン
40
基本エンジン
41
基本エンジン
42
基本エンジン
43
基本エンジン
44
ベーシック・エンジンのプレゼンテーション
45
基本エンジン
46
基本エンジン 注: これは基本エンジンにも関わらず、 最新のWin32ウイルスジェ ネレータ(Win32 Virus Generator)(VCL32)で作成された 全てのウイルスを発見的に検知した
47
基本エンジン パックされたファイルの解析: PE protect、 PEShield など …
48
基本エンジン
49
基本エンジン
50
基本エンジン
51
ディスアセンブリの実演
52
実演 新種のウイルス及びパックされたPE によって感染した新種のワーム 実在のウイルスのディスアセンブリの実演
このウイルスはごく最近出現したものであり、本講演資料が作成された 時点で、このウィルスを検出したアンチウイルス ベンダはほとんど いない
53
結論
54
Nicolas BRULEZ / Digital River
ご質問 Nicolas BRULEZ / Digital River PACSEC '04
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.