Nish!gakiLaboratory

自己ファイルREAD/DELETEの検出によるボット検知の可能性に関する一検討
静岡大学 酒井 崇裕
静岡大学 長谷巧
KDDI研究所 竹森 敬祐
静岡大学 西垣 正勝

1

1

Nish!gaki

発表の流れ

Laboratory• 背景• ボット検知方式の検討– ワームの既存検知方式– ボットの侵入時の特徴• 提案方式• 検証実験
• 考察

22

Nish!gaki

背景(1/3)

Laboratory• 「ボット検知の困難性」
ボットはＰＣ内に潜伏する– ファイル削除、強制シャットダウンなど、目立った行動はしない– 他のＰＣへの攻撃、感染活動において正規の通信になりすます
感染端末に潜んでいるボットを検出することは難しい3

3

Nish!gaki

背景(2/3)

Laboratory• 「ボット検知のアプローチ」– 潜伏しているボットを見つけるのは難しい– ボットのＰＣへの侵入挙動をとらえるべき

そのアプローチのために、ボットの特徴を考える

44

Nish!gaki

背景(3/3)

Laboratory• 「ボットについて」– ボットの機能は既存のマルウェア・攻撃の集合体• ＰＣへの侵入• 他PCへの感染• 情報収集• DDoS攻撃• スパムメール

→ ワーム
→ ワーム
→ スパイウェア→ 踏み台攻撃→ 踏み台攻撃

PCへの侵入におけるワームの検知方式がボットに適用可能かを検討する
5

5

Nish!gaki

発表の流れ

Laboratory• 背景• ボット検知方式の検討– ワームの既存検知方式– ボットの侵入時の特徴• 提案方式• 検証実験
• 考察66

ワーム検知の既存方式

Nish!gakiLaboratory• 侵入の挙動におけるワーム検知『自己ファイルREADの検出による未知ワームの検知方式』– ワームはPCへの侵入時、システムフォルダ内に自己ファイルをコピーするため、自己ファイルをＲＥＡＤする

7

7

ワームのＰＣ内への侵入
ユーザ領域

カーネル領域

Nish!gakiLaboratory

HDD
WormWorm

システムフォルダREAD要求

Worm

Worm

WRITE要求
ファイルシステム88Nish!gaki

自己ファイルREAD

Laboratory• ワーム– PC内への自己複製のために自分自身のファイルのすべてをREADする• 正規のプログラム– 自分自身のファイルをすべてREADすることはな
い
自分自身のファイルのすべてをREADするという挙動を自己ファイルREADと定義し、自己ファイルREADの検出による未知ワーム検知
99

Nish!gaki

発表の流れ

Laboratory• 背景• ボット検知方式の検討– ワームの既存検知方式– ボットの侵入時の特徴• 提案方式• 検証実験
• 考察

1010

ボットの侵入時の特徴

Nish!gakiLaboratory

ボット
ワーム「自己複製」 …システムフォルダ内に自己ファイルをコピー「自己隠蔽」…オリジナルの自己ファイルの削除

11

11

Nish!gaki

自己複製Laboratory

ユーザ領域

カーネル領域

HDD
Bot

Bot

システム
フォルダ

READ要求Bot

Bot

WRITE要求
ファイルシステム

1212

Nish!gakiボットの自己隠蔽

Laboratory

ユーザ領域

カーネル領域

HDD
Bot

Bot

システム
フォルダ
DELETE要求

Bot
ファイルシステム

13

13

Nish!gaki

ボットの侵入時の特徴

Laboratory

ボット
ワーム「自己複製」 …システムフォルダ内に自己ファイルをコピー
自己ファイルREAD「自己隠蔽」…オリジナルの自己ファイルの削除
自己ファイルDELETE

自己ファイルへの挙動による検知方式
1414

Nish!gaki

発表の流れ

Laboratory• 背景• ボット検知方式の検討– ワームの既存検知方式– ボットの侵入時の特徴• 提案方式• 検証実験
• 考察
15

15

Nish!gaki

提案方式

Laboratory• 自己ファイルREAD/DELETEの検出によるボット検知方式の提案– 実行プログラムとREAD/DELETEされるファイルのパスの相関– 実行プログラムとREADされるデータの領域
OSのファイルシステムを監視することによりリアルタイムで検知可能

1616

提案方式（検知アルゴリズム）

Nish!gakiLaboratory

Step1. PC内で発生したすべてのファイルアクセスをフック
Step2. ファイルアクセスの中でREAD/DELETEに関するもののみを検出
Step3. Step2で検出したファイルアクセスを発生させたプロセスのパスと，アクセスするファイルのパスの相関をチェック
Step4. Step3で検出したプロセスがプロセス自身のファイル（の大部分）をREADまたはDELETEしていた時，そのプロセスをボットの疑いありと判定

17

17

提案方式（パスの相関）

Nish!gakiLaboratory• 単純な自己ファイルアクセス– プロセスのパスとアクセスしたファイルのパスが同一• 間接的な自己ファイルアクセス– 他プロセスを介した自己ファイルアクセス（1）別プロセスを起動し、自己ファイルのREAD/DELETEを依頼（2）他の既存プロセス、実行ファイルに寄生し、自己ファイルのREAD/DELETEを依頼

18

18

間接型自己ファイルREAD
ユーザ領域

カーネル領域

Nish!gakiLaboratory

HDD
Bot

Bot

生成/寄生

Bot

システム
フォルダ

READ要求Bot

WRITE要求
ファイルシステム

READ依頼1919

提案方式（パスの相関）

Nish!gakiLaboratory• 直接的な自己ファイルアクセス– プロセスのパスとアクセスしたファイルが同一
間接型自己ファイルREAD/DELETE• 間接的な自己ファイルアクセス– 他プロセスを介した自己ファイルアクセス（1）別プロセスを起動し、自己ファイルのREAD/DELETEを依頼（2）他の既存プロセスに寄生し、自己ファイルのREAD/DELETEを依頼

20

20

Nish!gaki

発表の流れ

Laboratory• 背景• ボット検知方式の検討– ワームの既存検知方式– ボットの侵入時の特徴• 提案方式• 検証実験
• 考察

21

21

Nish!gaki

検証実験

Laboratory• ProcMonを用いた有効性の評価
ファイルアクセス、プロセス生起が監視可能なモニタツール– ボットを用いて検知実験– 正規プログラムを用いた誤検知実験• 実験環境– 仮想マシン（VMWare Workstation6)– ゲストＯＳ：WindowsXP Professional SP2– 隔離されたローカルマシン
22

22

Nish!gaki

検知実験

Laboratory• ボットを用いてファイルアクセス、プロセス生起を観測し、自己ファイルREAD/DELETEされるかを測定• 実験に用いたボット– CCC2008のマルウェア検体を含む９個の検体

23

23

Nish!gaki

検知実験結果Laboratory

ボット名

自己ファイルREAD

自己ファイルDELETE

検体A○○（間接型）

検体B○○（間接型）

検体C○○（間接型）

検体D○○（間接型）

検体E○○（間接型）

検体F○○（間接型）

検体G○○（間接型）

検体H○○（間接型）

○

検知漏れ

検体I
（CCC2008検体）

24

24

Nish!gaki

自己ファイルREAD観測結果の一部
プロセス名

ｵﾍﾟﾚｰｼｮﾝ

Laboratoryパス

詳細0689(省略).exe CreateFile

C:¥WINDOWS¥system32¥Isass.exe（省略）

0689(省略).exe ReadFile

C:¥0689(省略).exe

Offset:0,Length:65,536

0689(省略).exe WriteFile

C:¥WINDOWS¥system32¥Isass.exe

Offset:0,Length:65,5360689(省略).exe ReadFile

C:¥0689(省略).exe

Offset:65,536,Length:65,5360689(省略).exe WriteFile

C:¥WINDOWS¥system32¥Isass.exe

Offset:65,536,Length:65,536：：：0689(省略).exe ReadFile

C:¥0689(省略).exe

Offset:262,144,Length:7,6800689(省略).exe WriteFile

C:¥WINDOWS¥system32¥Isass.exe

Offset:262,144,Length:7,680：

END OF FILE

25

自己ファイルDELETE観測結果の一部
プロセス名

オペレーション

パス

Nish!gakiLaboratory

詳細0689(省略).exeCreateFile

C:¥oeoeemct.bat(省略)0689(省略).exeWriteFile

C:¥oeoeemct.batOffset: 0, Length: 2020689(省略).exe

Process Create

C:¥WINDOWS¥
system32¥cmd.exe

Command line: cmd /c"C:¥oeoeemct.bat" "cmd.exe

Process Start

Parent PID: 14240689(省略).exe

Process Exit

(省略)

SetDispositionInformationFile
0689(省略).exeの子プロセス
SetDisposition
cmd.exe
InformationFile
cmd.exe

25

C:¥0689(省略).exe Delete: TrueC:¥oeoeemct.bat

26

Delete: True26

検知実験に関する考察(1)Nish!gakiLaboratory• 自己ファイルDELETEは間接型のみ– 実行中の実行ファイルは削除できない
カーネル領域

ユーザ領域

実行中！！

HDD
Bot

Bot

システム
フォルダ
DELETE要求

Bot
ファイルシステム
2727

検知実験に関する考察(1)Nish!gakiLaboratory• 自己ファイルDELETEは間接型のみ– 自己ファイルのDELETEは、別のプロセスに依頼し、自プロセスを終了してから行う
実行していない
カーネル領域
HDD
ユーザ領域
Bot

生成/寄生

Bot

システム
フォルダ

DELETE要求

Bot
ファイルシステム

DELETE依頼

28

28

Nish!gaki

検知実験結果Laboratory

ボット名

自己ファイルREAD

自己ファイルDELETE

検体A○○（間接型）

検体B○○（間接型）

検体C○○（間接型）

検体D○○（間接型）

検体E○○（間接型）

検体F○○（間接型）

検体G○○（間接型）

検体H○○（間接型）

○

検知漏れ

検体I
（CCC2008検体）

29

29

検知実験に関する考察(2)Nish!gakiLaboratory• CCC2008検体における耐「ボット検知」機能
監視ツールを検知した時点でPCへの侵入活動を強制終了

耐「ボット検知」機能を逆用したボットの侵入の抑制– 「悪性プログラムの耐解析機能を逆用した活動抑制手法の提案」（松木さんら）
30

30

検知実験に関する考察(2)Nish!gakiLaboratory

有り
耐「ボット検知」機能無し
本方式(自己ファイルREAD/DELETE)

相補

耐「ボット検知」機能を逆用したボットの侵入の抑制方式

31

31

Nish!gaki

誤検知実験

Laboratory• 正規プログラムのファイルアクセスを観測し、自己ファイルREAD/DELETEされるかを測定• 実験に用いた正規プログラム– MS WORD– MS EXCEL– Internet Explorer– Adobe Reader– インストーラ/アンインストーラ

32

32

Nish!gaki

誤検知実験結果

Laboratory

自己ファイルREAD

自己ファイルDELETE

MS WORD○○MS EXCEL○○Internet Explorer○○

Adobe Reader○○

インストーラ(wireshark-setup-1.0.2.exe)

誤検知○

アンインストーラ(wiresharkのアンインストーラ

誤検知誤検知（間接型）○○

正規プログラム

Windows Installer(apache_2.2.9-win32-x86-no_ssl-r2.msi)

33

33

インストーラの誤検知

Nish!gakiLaboratory• Winsowsが提供しているインストーラ– インストールファイル(インストール情報)をWindows InstallerがREADする• アプリケーション固有のインストーラ– インストーラ自体がインストール情報であるため、自分自身をREADする
自己ファイルREAD

34

34

アンインストーラの誤検知

Nish!gakiLaboratory• Windowsが提供しているアンインストーラ– Windows Installerが適宜アプリケーション構成ファイルを削除する• アプリケーション固有のアンインストーラ– 自分自身も含むアプリケーション構成ファイルを削除する
自己ファイルDELETE– 自分自身を削除するために、テンポラリファイル
自己ファイルREADに自己複製を作成する
35

35

Nish!gaki

発表の流れ

Laboratory• 背景• ボット検知方式の検討– ワームの既存検知方式– ボットの侵入時の特徴• 提案方式• 検証実験
• 考察3636

Nish!gaki

考察

Laboratory• 本方式での検出されるプログラム
インストーラ(アンインストーラ)

ボット

誤検知

インストーラをボットと切り分ける必要がある
37

37

インストーラの切り分け

Nish!gakiLaboratory• 一般にアプリケーションのインストールはユーザの意思によって行われる• インストールには必ずユーザが介入する「ユーザのレスポンスによる判定」
38

38

ユーザのレスポンスによる判定

自己ファイルREAD/DELETEの検出

No

Yes

Nish!gakiLaboratory

レスポンスに対して、ユーザ(人間)−ボット(コンピュータ) を区別する必要がある

アラートを表示CAPTCHA

レスポンス有り

Yes

No
ボット

インストーラ39

39

Nish!gaki

まとめ

Laboratory

自己ファイルREAD/DELETEによるボット検知– 多くのボットに対して有効
検知漏耐「ボット検知」機能を持つボット
耐「ボット検知」機能を逆用したボットの侵入の抑制による対策

誤検知

インストーラ/アンインストーラ
ユーザからのレスポンスを義務付けることでボットとの切り分け40

40