Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
自己組織化マップを用いた
Windows OS malware 挙動
の可視化
3

2
1

安藤類央
情報通信研究機構
情報通信セキュリティ研究セン
ター
あらまし
• 本論文では仮想環境でのマルウェア挙動のデー
タを取得し、自己組織化マップはマルウェアの
分類可視化を試みる。
• 自己組織化マップは、教師なし学習アルゴリズ
ムの中でも処理時にクラスタ数を与件とせず、
学習時にトポロジーが変化しな...
背景:情報セキュリティとデータマイ
ニング
• マルウェア( malicious software: 悪意の
あるソフトウェア)の挙動が複雑になっ
ており、検出対象処理データも複雑に
なっている。
• クラウドコンピューティング、高速ネッ
トワ...
背景:情報セキュリティとデータマイ
ニング
トラフィックログ、
アクセスログの爆発

様々なアプリケーションに
マルウェアが混入
関連研究
• アンドロイドのアプリケーションのセ
キュリティ属性(パーミッションの可視
化)
David Barrera, Hilmi Günes Kayacik, Paul
C. van Oorschot, Anil Somayaji: A
...
関連研究 
• スパムメールのデータマイニング
Guofei Gu, Roberto Perdisci, Junjie Zhang,
Wenke Lee: BotMiner: Clustering Analysis
of
Network Tra...
処理対象のログ種別
■ 静的ログ
Windows OS の1時点でのスナップ
ショット
リソース所有、トラフィックログ
の状況
メモリダンプ
■ 動的ログ
Windows OS のリソースアクセス
ソケット・ファイル・レジストリ
 

 

前...
仮想化技術とマルウェア観測
• マルウェアの観測解析には仮想化技術を用いる
。
理由1:観測系と実験系の乖離
観測対象のOSを錯乱しない。
理由2:再現性
スナップショット、ロールバックの機能によりマ
ルウェア挙動が再現できる。
理由3:不可視...
仮想マシンソフトウェアと Windows
OS
仮想化ソフトウェア
クローズドソース
VMWare, XP mode
オープンソース
Xen / Qemu
マルウェアの観測解析
などの特殊用途には、
高粒度のロギングなど
の改造が可能なオープ
...
Memory behavior clustering and anomaly detection

正常時の状態のクラスタリングによるグループ(プロファイル)の作成→
プロファイル群から感染状態からの距離を算出し、異常を検出する。
10
仮想マシンモニタ観測例
Logger/detector

DATA

Windows OS
(virtualized)
DATA

Virtual machine monitor
(hypervisor)

# ./vkimono xp3 0x...
処理対象のログ種別
■ 静的ログ
Windows OS の1時点でのスナップショット
リソースアクセスの状況
メモリダンプ
■ 動的ログ
Windows OS のリソースアクセス
ソケット
ファイル
レジストリ
受動的観測による静的ログの取得
プロセスID
  開いているファイル
  開いているソケット
  ロードしているライブ
ラリ
メモリスナップ
ショット

プロセス

仮想 Windows OS
仮想メモリ

各種リソース

仮想化ソフトウェア(...
受動的観測による動的ログの取得
プロセス

仮想 Windows OS
ログファイル

各種リソース

仮想メモリ

モニタソフトウェア

仮想化ソフトウェア( Xen, Qemu)

仮想 Windows OS 内でイベントが発生した時点で仮...
静的ログ:トラフィックログ
■ トラフィックログ
静的ログは、動的ログが時系列に発生するログのシーケンスに対し、
ある時点のシステムのメモリスナップショットなどの状態を記録した
ものであ
る。
静的ログには、基本的には Windows OS 内...
トラフィックログの処理結果

同一視されて
いる。

正常時のトラフィックとマルウェア感染時のトラフィックはほぼ同じものとして認識される
これは、マルウェアは通常通信を装う通例から、予想とおりの結果であると言える。
静的ログ:メモリダンプ
メモリダンプ
4 種類のメモリダンプから、
頻出文字列( nGram) を抽出。
頻度分析、単語カウント

      文字列 1  文字列2 文字列N

頻出文字列の各メモリダンプごとの
頻度をカウントし、行列を作成。...
メモリダンプ処理結果

前処理の方針が定まっていないので、分類可視化もうまくいかなかった。
解析その2 動的ログ

通常状態 normal state

Klez (worm)

Zeus-wsnpoem (BotNet)

Sassar (worm)
解析その2:動的ログ

We monitor and visualize Windows OS behavior using virtual machine montitor.
提案手法(詳細)

ログ文字列を1文字ずつ送信
1文字を ASCII コードとしてレジスタに格納
EMIT 命令で HYPERCALL を仮想 Windows 側から生成
XEN 側の do_hypercall (hvm.c) で仮想レジスタか...
提案手法
(シーケンス図 :XEN Hypervisor )

XEN
ハイパーバイザーがホスト OS
Linux の下で稼動

手順①
仮想 Windows OS 内の DLL ・
フィルタドライバ内で
構築したログ情報・ハッシュ値
を仮想 ...
動的ログ:レジストリアクセスログ
Windows OS as huge state machine

Registry access table

SDT
・・・
・・・
ZwCreateKey
ZwDeleteKey
ZwDeleteValu...
Windows レジストリアクセスフック
■windows/system32/ntoskrnl.exe にある SDT (service
descriptor table) のレジストリ部分を修正する。
■#define   SYSCALL_I...
自己組織化マップ
■ クラスタリング・次元削減のための教師なし学習アルゴ
リズムのひとつ
Wv(t + 1) = Wv(t) + Θ(t)α(t)(D(t) - Wv(t))
D(t): 入力  Wt: 重み係数
Θ(t):BMU からの近傍半...
レジストリアクセス取得データと前処理

単位時間( SEC) あたりの上記10フィルタの頻度カウントを入力 :D(t) とす
る。
Wv(t + 1) = Wv(t) + Θ(t)α(t)(D(t) - Wv(t))
Visualizing Windows Behavior
Data for (before) SOM processing

Running P2P application

Running WEB(FireFox) application
Visualizing Windows behavior
using SOM
INSTALLING
APPLICATION
(text editor)

MALWARE
INFECTION

INSTALLING
Device driver
(...
Visualizing Windows behavior
using SOM
Installing
Application
(text editor)

Malware
infection

Running P2P
application
Visualizing Windows behavior
using SOM
Running Internet
Explorer

Malware infection

Running P2P
application
まとめ
• 本論文では仮想環境でのマルウェア挙動のデー
タを取得し、自己組織化マップはマルウェアの
分類可視化を試みた。
• 自己組織化マップは、教師なし学習アルゴリズ
ムの中でも処理時にクラスタ数を与件とせず、
学習時にトポロジーが変化しない...
今後の課題 メモリダンプ
• 本論文の結果は良好ではなかったが、メ
モリダンプに関しては、分類可視化が成
功する可能性がある。
• メモリダンプは他のログにくらべて規模
が大きく、構造も複雑である。
 → 適切な前処理を考案する
 → 取得する...
今後の課題 メモリスナップショット
クラスタ技術による大規模メモリダンプの解析
特徴抽出が容易にな
る適切な前処理を考
案する必要がある。
Hadoop:
Google のGFSの
クローン。大規模データ処
理用のファイルシステム
機械学習アル...
Upcoming SlideShare
Loading in …5
×

自己組織化マップを用いたWindows OS malware挙動の可視化

1,605 views

Published on

  • Be the first to comment

自己組織化マップを用いたWindows OS malware挙動の可視化

  1. 1. 自己組織化マップを用いた Windows OS malware 挙動 の可視化 3 2 1 安藤類央 情報通信研究機構 情報通信セキュリティ研究セン ター
  2. 2. あらまし • 本論文では仮想環境でのマルウェア挙動のデー タを取得し、自己組織化マップはマルウェアの 分類可視化を試みる。 • 自己組織化マップは、教師なし学習アルゴリズ ムの中でも処理時にクラスタ数を与件とせず、 学習時にトポロジーが変化しないことから解析 の初期段階で適用しやすい。 • 学習分類の結果、動的ログと静的ログに関して 、静的ログの可視化は難しく、動的ログの分類 可視化は 比較的良好な結果になることが明らか になった。
  3. 3. 背景:情報セキュリティとデータマイ ニング • マルウェア( malicious software: 悪意の あるソフトウェア)の挙動が複雑になっ ており、検出対象処理データも複雑に なっている。 • クラウドコンピューティング、高速ネッ トワークの普及、汎用OSの複雑化に伴 い、ログ情報が爆発、複雑化している。 • 大規模化するログデータを処理してセ キュリティインシデントを検出しなけれ ばならない。
  4. 4. 背景:情報セキュリティとデータマイ ニング トラフィックログ、 アクセスログの爆発 様々なアプリケーションに マルウェアが混入
  5. 5. 関連研究 • アンドロイドのアプリケーションのセ キュリティ属性(パーミッションの可視 化) David Barrera, Hilmi Günes Kayacik, Paul C. van Oorschot, Anil Somayaji: A methodology for empirical analysis of permission-based security models and its application to android. AC M Conference on Computer and Communications Security 2010: 73-84
  6. 6. 関連研究  • スパムメールのデータマイニング Guofei Gu, Roberto Perdisci, Junjie Zhang, Wenke Lee: BotMiner: Clustering Analysis of Network Traffic for Protocol- and StructureIndependent Botnet Detection. USENIX Security Symposium 2008: 139-154
  7. 7. 処理対象のログ種別 ■ 静的ログ Windows OS の1時点でのスナップ ショット リソース所有、トラフィックログ の状況 メモリダンプ ■ 動的ログ Windows OS のリソースアクセス ソケット・ファイル・レジストリ     前処理困 難度 情報量 分類処理結 果 静的ログ プロセスのリソースロ グ 易 少 × 静的ログ メモリダンプ 難 多 ? 動的ログ レジストリアクセス 中 中 〇
  8. 8. 仮想化技術とマルウェア観測 • マルウェアの観測解析には仮想化技術を用いる 。 理由1:観測系と実験系の乖離 観測対象のOSを錯乱しない。 理由2:再現性 スナップショット、ロールバックの機能によりマ ルウェア挙動が再現できる。 理由3:不可視性 マルウェアから観測器が検出できない。
  9. 9. 仮想マシンソフトウェアと Windows OS 仮想化ソフトウェア クローズドソース VMWare, XP mode オープンソース Xen / Qemu マルウェアの観測解析 などの特殊用途には、 高粒度のロギングなど の改造が可能なオープ ンソース のソフトウェアを用い る。
  10. 10. Memory behavior clustering and anomaly detection 正常時の状態のクラスタリングによるグループ(プロファイル)の作成→ プロファイル群から感染状態からの距離を算出し、異常を検出する。 10
  11. 11. 仮想マシンモニタ観測例 Logger/detector DATA Windows OS (virtualized) DATA Virtual machine monitor (hypervisor) # ./vkimono xp3 0x8055a220 save Domains xp3: ID: 1, CPUs: 1 このようなスパイクを検出するために Trying to read in SDT from 8055a220 クラスタリング(異常検知) SSDT.ServiceTableBase = 804e26a8 アルゴリズムを用いる。 SSDT.NumberOfServices = 11c Reading 0x11c syscalls from SSDT at 804e26a8 Writing SDT data to sddt.dat
  12. 12. 処理対象のログ種別 ■ 静的ログ Windows OS の1時点でのスナップショット リソースアクセスの状況 メモリダンプ ■ 動的ログ Windows OS のリソースアクセス ソケット ファイル レジストリ
  13. 13. 受動的観測による静的ログの取得 プロセスID   開いているファイル   開いているソケット   ロードしているライブ ラリ メモリスナップ ショット プロセス 仮想 Windows OS 仮想メモリ 各種リソース 仮想化ソフトウェア( Xen, Qemu) 任意の時点で仮想 Windows OS のメモリのスナップショットを取得し、ダンプデータを 解析することでプロセスなどの情報を取得する
  14. 14. 受動的観測による動的ログの取得 プロセス 仮想 Windows OS ログファイル 各種リソース 仮想メモリ モニタソフトウェア 仮想化ソフトウェア( Xen, Qemu) 仮想 Windows OS 内でイベントが発生した時点で仮想化ソフトウェアに情報を 送信し、ホストOS内でログ文字列に変換する。
  15. 15. 静的ログ:トラフィックログ ■ トラフィックログ 静的ログは、動的ログが時系列に発生するログのシーケンスに対し、 ある時点のシステムのメモリスナップショットなどの状態を記録した ものであ る。 静的ログには、基本的には Windows OS 内部のプロセスの状態を、メ モリダ ンプなどから 取得したものになる。 プロセスの状態の静的ログには、 1 ロードしているライブラリ 2 読み込んだファイル 3 開いているソケット などによって構成される。
  16. 16. トラフィックログの処理結果 同一視されて いる。 正常時のトラフィックとマルウェア感染時のトラフィックはほぼ同じものとして認識される これは、マルウェアは通常通信を装う通例から、予想とおりの結果であると言える。
  17. 17. 静的ログ:メモリダンプ メモリダンプ 4 種類のメモリダンプから、 頻出文字列( nGram) を抽出。 頻度分析、単語カウント       文字列 1  文字列2 文字列N 頻出文字列の各メモリダンプごとの 頻度をカウントし、行列を作成。 メモリダンプの前処理には 代替案、改良の余地がある。 ダンプ1   X1    X2     X3 ダンプ2   Y1    Y2     Y3 ダンプ3   Z1    Z2     Z3
  18. 18. メモリダンプ処理結果 前処理の方針が定まっていないので、分類可視化もうまくいかなかった。
  19. 19. 解析その2 動的ログ 通常状態 normal state Klez (worm) Zeus-wsnpoem (BotNet) Sassar (worm)
  20. 20. 解析その2:動的ログ We monitor and visualize Windows OS behavior using virtual machine montitor.
  21. 21. 提案手法(詳細) ログ文字列を1文字ずつ送信 1文字を ASCII コードとしてレジスタに格納 EMIT 命令で HYPERCALL を仮想 Windows 側から生成 XEN 側の do_hypercall (hvm.c) で仮想レジスタから ASCII コード取り 出し
  22. 22. 提案手法 (シーケンス図 :XEN Hypervisor ) XEN ハイパーバイザーがホスト OS Linux の下で稼動 手順① 仮想 Windows OS 内の DLL ・ フィルタドライバ内で 構築したログ情報・ハッシュ値 を仮想 CPU のコンテキストに 格納。その後、 Hypercall を発行 手順② XEN 内の HYPECALL ハンドラで仮想 CPU の コンテキストから通知を捕捉・ ログ情報を取得。
  23. 23. 動的ログ:レジストリアクセスログ Windows OS as huge state machine Registry access table SDT ・・・ ・・・ ZwCreateKey ZwDeleteKey ZwDeleteValueKe y ZwEnumerateKey ZwEnumerateVal ueKey ZwQueryKey ZwQueryValueKe Registry value Represents state of Windows OS
  24. 24. Windows レジストリアクセスフック ■windows/system32/ntoskrnl.exe にある SDT (service descriptor table) のレジストリ部分を修正する。 ■#define   SYSCALL_INDEX(f) *(PULONG)((PUCHAR)(f)+1) SDT でのシステムコールテーブルインデックスを 求めるためのマクロを用いる ■#define   SYSTEMSERVICE(f) KeServiceDescriptorTable-> ServiceTable[SYSCALL_INDEX(f)] システムコールコードへのアドレスを返すマクロ。 この値をフック関数のアドレスへ置き換える。
  25. 25. 自己組織化マップ ■ クラスタリング・次元削減のための教師なし学習アルゴ リズムのひとつ Wv(t + 1) = Wv(t) + Θ(t)α(t)(D(t) - Wv(t)) D(t): 入力  Wt: 重み係数 Θ(t):BMU からの近傍半径  α(t): 学習係数  ■k-mean 等に比べ、クラスタ数を与件としない、データ間 のトポロジーが変わらない等の特徴がある。
  26. 26. レジストリアクセス取得データと前処理 単位時間( SEC) あたりの上記10フィルタの頻度カウントを入力 :D(t) とす る。 Wv(t + 1) = Wv(t) + Θ(t)α(t)(D(t) - Wv(t))
  27. 27. Visualizing Windows Behavior Data for (before) SOM processing Running P2P application Running WEB(FireFox) application
  28. 28. Visualizing Windows behavior using SOM INSTALLING APPLICATION (text editor) MALWARE INFECTION INSTALLING Device driver (video card)
  29. 29. Visualizing Windows behavior using SOM Installing Application (text editor) Malware infection Running P2P application
  30. 30. Visualizing Windows behavior using SOM Running Internet Explorer Malware infection Running P2P application
  31. 31. まとめ • 本論文では仮想環境でのマルウェア挙動のデー タを取得し、自己組織化マップはマルウェアの 分類可視化を試みた。 • 自己組織化マップは、教師なし学習アルゴリズ ムの中でも処理時にクラスタ数を与件とせず、 学習時にトポロジーが変化しないことから、解 析初期段階での巨視的な分類や観測粒度、解析 の方向性の   検討に使いやすい。 • 実際に、SOM結果から、学習分類の結果、動 的ログと静的ログに関して、静的ログの可視化 は難しく、動的ログの分類可視化は 比較的良好 な結果になることが明らかになった。
  32. 32. 今後の課題 メモリダンプ • 本論文の結果は良好ではなかったが、メ モリダンプに関しては、分類可視化が成 功する可能性がある。 • メモリダンプは他のログにくらべて規模 が大きく、構造も複雑である。  → 適切な前処理を考案する  → 取得するダンプ数を増やす。
  33. 33. 今後の課題 メモリスナップショット クラスタ技術による大規模メモリダンプの解析 特徴抽出が容易にな る適切な前処理を考 案する必要がある。 Hadoop: Google のGFSの クローン。大規模データ処 理用のファイルシステム 機械学習アルゴリズム、 LSH などによるデータの 圧縮と格納 メモリダンプの複数 時点での取得

×