( 億 種 ) マルウェアが 急 速 に 増 加! 短 時 間 で 解 析 し, マルウェアの 意 図 や 概 略 を 把 握 したい マルウェアを 実 行 し, 挙 動 を 観 測 することで 解 析 する 動 的 解 析 が 有 効 しかし, マルウェアの 巧 妙 化 により, 観 測 自 体

Similar documents
大月勇人, 若林大晃, 瀧本栄二, 齋藤彰一, 毛利公一 立命館大学 名古屋工業大学

1 BitVisor [3] Alkanet[1] Alkanet (DLL) DLL 2 Alkanet Alkanet Alkanet VMM VMM Alkanet Windows [2] マルウェア 観 測 用 VM SystemCall Windows System

今週の進捗

Computer Security Symposium October ,a) API API API Alkanet IDA MWS API Proposal of static analysis assistance method utilizi

text

(Microsoft PowerPoint - Ver12\203o\201[\203W\203\207\203\223\203A\203b\203v\216\221\227\277.ppt)

目 次. WEB メールへのログイン.... メール 送 信 手 順.... メール 受 信 手 順 アドレス 帳 の 操 作 手 順 フォルダーの 操 作 手 順 メール 発 信 者 登 録 署 名 登 録 手 順 基 本 的 な 設 定

スライド 1

Microsoft PowerPoint - 報告書(概要).ppt

Alkanet[1, 2] Alkanet CPU CPU 2 Alkanet Alkanet (VMM) VMM Alkanet Windows Alkanet 1 Alkanet VMM BitVisor[3] BitVisor OS ユーザモード カーネルモード マルウェア観測用 PC VM

<4D F736F F D2095CA8E A90DA91B18C9F93A289F1939A8F D8288B3816A5F E646F63>

CSV_Backup_Guide

TIPS - 棚 割 りを 開 始 するまで Liteを 起 動 し 企 業 情 報 の 追 加 を 行 い 棚 割 を 行 う 企 業 の 追 加 をして 下 さい 企 業 情 報 の 追 加 時 に エラーメッセージが 表 示 された 場 合 別 途 TIPS トラブルが 発 生 した 場 合


預 金 を 確 保 しつつ 資 金 調 達 手 段 も 確 保 する 収 益 性 を 示 す 指 標 として 営 業 利 益 率 を 採 用 し 営 業 利 益 率 の 目 安 となる 数 値 を 公 表 する 株 主 の 皆 様 への 還 元 については 持 続 的 な 成 長 による 配 当 可

新ひだか町住宅新築リフォーム等緊急支援補助金交付要綱

事 業 概 要 利 用 時 間 休 館 日 使 用 方 法 使 用 料 施 設 を 取 り 巻 く 状 況 や 課 題 < 松 山 駅 前 駐 輪 場 > JR 松 山 駅 を 利 用 する 人 の 自 転 車 原 付 を 収 容 する 施 設 として 設 置 され 有 料 駐 輪 場 の 利 用

する ( 評 定 の 時 期 ) 第 条 成 績 評 定 の 時 期 は 第 3 次 評 定 者 にあっては 完 成 検 査 及 び 部 分 引 渡 しに 伴 う 検 査 の 時 とし 第 次 評 定 者 及 び 第 次 評 定 者 にあっては 工 事 の 完 成 の 時 とする ( 成 績 評 定

文化政策情報システムの運用等

<4D F736F F D E598BC68A8897CD82CC8DC490B68B7982D18E598BC68A8893AE82CC8A C98AD682B782E993C195CA915B C98AEE82C382AD936F985E96C68B9690C582CC93C197E1915B927582CC898492B75F8E96914F955D89BF8F915F2E646F6

<4D F736F F F696E74202D20838C837C815B B F A2E B93C782DD8EE682E890EA97705D>

2015年度ワイヤレスソリューションセミナー「AlaxalA x 4ipnetで実現する連携ソリューションのご紹介」

製 品 設 計 のための3 次 元 検 証 技 術 (ソリッド 編 ) ~ 製 品 設 計 の 考 え 方 に 基 づいた3 次 元 CADの 使 い 方 をマスターしよう!~ 受 講 料 11,500 円 /28,29.30 ( 金 土 日 ) 筆 記 製 品 設 計 業 務 において

KINGSOFT Office 2016 動 作 環 境 対 応 日 本 語 版 版 共 通 利 用 上 記 動 作 以 上 以 上 空 容 量 以 上 他 接 続 環 境 推 奨 必 要 2

WEB版「新・相続対策マスター」(ご利用の手引き)

<4D F736F F F696E74202D2093FA8C6F939D8D EA68E9197BF>

(2) 単 身 者 向 け 以 外 の 賃 貸 共 同 住 宅 等 当 該 建 物 に 対 して 新 たに 固 定 資 産 税 等 が 課 税 される 年 から 起 算 して5 年 間 とする ( 交 付 申 請 及 び 決 定 ) 第 5 条 補 助 金 の 交 付 を 受 けようとする 者 は

その 他 事 業 推 進 体 制 平 成 20 年 3 月 26 日 に 石 垣 島 国 営 土 地 改 良 事 業 推 進 協 議 会 を 設 立 し 事 業 を 推 進 ( 構 成 : 石 垣 市 石 垣 市 議 会 石 垣 島 土 地 改 良 区 石 垣 市 農 業 委 員 会 沖 縄 県 農

Microsoft PowerPoint - OS08 [互換モード]


佐渡市都市計画区域の見直し

Transcription:

大 月 勇 人, 瀧 本 栄 二, 毛 利 公 一 立 命 館 大 学

( 億 種 ) マルウェアが 急 速 に 増 加! 短 時 間 で 解 析 し, マルウェアの 意 図 や 概 略 を 把 握 したい マルウェアを 実 行 し, 挙 動 を 観 測 することで 解 析 する 動 的 解 析 が 有 効 しかし, マルウェアの 巧 妙 化 により, 観 測 自 体 が 困 難 となっている アンチデバッグ: 観 測 ツールを 検 知 し, 観 測 解 析 を 妨 害 する コードインジェクション: 一 般 のプロセスに 感 染 し, 悪 意 あるスレッド を 潜 ませる http://www.symantec.com/ja/jp/about/news/release/article.jsp?prid=20100428_02, http://www.symantec.com/ja/jp/about/news/release/article.jsp?prid=20110412_01, http://www.symantec.com/ja/jp/about/news/release/article.jsp?prid=20120501_01 立 命 館 大 学 2 2012 年 12 月 4 日 ( 年 ) 2011 年 には4 億 300 万 種 の 新 種 や 亜 種 が 出 現! (Symantec のデータより )

マルウェアに 検 知 されない 観 測 システムの 実 現 マルウェアよりも 高 い 権 限 で 動 作 マルウェア 動 作 環 境 への 影 響 を 抑 制 VMM を 検 出 されないために ハードウェア 構 成 を 固 定 しない ゲスト OS と 通 信 せずに 内 部 の 情 報 を 得 る 立 命 館 大 学 3 2012 年 12 月 4 日

実 環 境 に 近 い ゲスト OS は 実 マシンのハードウェアを 認 識 する マルウェアに 検 出 されにくい オーバヘッドが 小 さい 1 体 辺 りの 解 析 時 間 の 短 縮, 時 間 計 測 を 用 いたアンチデバッグの 回 避 などが 見 込 める 脆 弱 性 が 潜 在 する 可 能 性 が 低 い マルウェアに 乗 っとられる 可 能 性 が 低 くなる VM が1つのみ 解 析 中 に 他 の VM の 影 響 を 受 けない 立 命 館 大 学 4 2012 年 12 月 4 日

マルウェアの 意 図 を 理 解 しやすい 情 報 を 提 供 粒 度 の 観 点 から 命 令 単 位 よりもAPI 単 位 の 観 測 が 有 効 悪 意 あるスレッドがシステムに 影 響 を 与 えるには システムコールが 必 要 悪 意 あるスレッドを 追 跡 し, 挙 動 を 観 測 コードインジェクションを 構 成 する 挙 動 を 観 測 別 プロセスへのメモリ 書 換 え, DLL 挿 入, スレッド 作 成 など システムコールの 発 行 元 をスレッドレベルで 区 別 立 命 館 大 学 5 2012 年 12 月 4 日

マルウェア 観 測 用 ロギング 用 ユーザ モード VM SystemCall ログ 分 析 挙 動 抽 出 LogViewer 立 命 館 大 学 カーネル モード システムコール 観 測 部 Alkanet BitVisor Windows システムコールを フックし, 情 報 取 得 ログ メモリから 直 接 ログを 取 得 BitVisor core 内 の VM-Exit をハンドルする 部 分 に 実 装 6 表 示 保 存 Logger 2012 年 12 月 4 日

1 9 ntdll.dll sysenter 3 2 sysexit 6 7 4 立 命 館 大 学 NtCreateFile KiFastSystem Call KiFastCall Entry 5 システムコールの スタブ NtCreateFile KiFastSystem CallRet KiSystemCall Exit2 Windows Kernel 8 7 1. マルウェアが システムコールを 発 行 する 2. ブレイクポイントにより, VM-Exit を 発 生 させ Alkanet に 制 御 を 移 す HWBP を 使 用 BitVisor にDR 隠 蔽 機 能 を 追 加 3. 必 要 な 情 報 の 取 得 する システムコール 発 行 元 プロセスとスレッドの 情 報 プロセスID, スレッドID, プロセスの 名 前 システムコール 番 号 システムコールの 引 数 固 有 のデータ 構 造 に 対 する 補 足 情 報 4. Windows に 制 御 を 戻 す 2012 年 12 月 4 日

1 9 ntdll.dll sysenter 3 2 sysexit 6 7 4 立 命 館 大 学 NtCreateFile KiFastSystem Call KiFastCall Entry 5 システムコールの スタブ NtCreateFile KiFastSystem CallRet KiSystemCall Exit2 Windows Kernel 8 8 5. システムコールが 実 行 される 6. ブレイクポイントにより Alkanet に 制 御 を 移 す 7. システムコールの 結 果 を 取 得 する 戻 り 値 や 生 成 された オブジェクトの 情 報 など スレッド 作 成 の 挙 動 の 場 合, 作 成 されたスレッドの 情 報 8. Windows に 制 御 を 戻 す 9. マルウェアに 制 御 が 戻 る 2012 年 12 月 4 日

ntdll.dll NtCreateFile KiFastSystem Call システムコールの スタブ KiFastSystem CallRet 各 システムコールに 対 応 するスタブへの 戻 りアドレス 戻 りアドレス (システムコールのスタブ) アドレスから システムコールを 特 定 できる sysenter KiFastCall Entry sysexit NtCreateFile KiSystemCall Exit2 Windows Kernel 戻 りアドレス (Windows API など) 第 1 引 数 第 2 引 数 ユーザモードのスタック sysenter 時 には EDX, sysexit 時 には ECX に 保 持 立 命 館 大 学 9 2012 年 12 月 4 日

PCR: 各 プロセッサの 状 態 を 保 持 するデータ 構 造 カーネルや HAL, ドライバから 利 用 される カーネルモードでは FS セグメントにマップされている Alkanet では, このデータ 構 造 を 解 釈 利 用 する 現 在 実 行 中 のスレッドオブジェクトへのポインタ カーネルデバッガ 用 の 構 造 体 へのポインタ...など FS KPCR ETHREAD +0x000 Tcb EPROCESS +0x034 KdVersionBlock +0x034 ApcState +0x120 PrcbData +0x010 Process +0x004 CurrentThread +0x1ec Cid +0x174 ImageFileName 立 命 館 大 学 10 2012 年 12 月 4 日

引 数 IN: カーネル 側 に 渡 す 値 OUT: カーネル 側 が 返 す 結 果 を 受 け 取 る 変 数 へのポインタ 戻 り 値 (NTSTATUS): システムコールの 成 否, 失 敗 の 理 由 などを 示 す 値 立 命 館 大 学 NTSYSAPI NTSTATUS NTAPI NtCreateThread( OUT PHANDLE ThreadHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN HANDLE ProcessHandle, OUT PCLIENT_ID ClientId, IN PCONTEXT ThreadContext, IN PUSER_STACK UserStack, IN BOOLEAN CreateSuspended ); 11 作 成 されたスレッドの ハンドルを 受 け 取 る 変 数 スレッドを 作 成 するプロセスを 示 すハンドル 2012 年 12 月 4 日

挙 動 ファイル レジストリ 仮 想 メモリ ファイルマッピング プロセス システムコールの 例 NtCreateFile, NtReadFile, NtWriteFile, NtQueryValueKey,NtSetValueKey, NtWriteVirtualMemory, NtProtectVirtualMemory, NtCreateSection, NtOpenSection, NtMapViewOfSection, NtCreateProcessEx, NtTerminateProcess, スレッド ネットワーク ドライバ 立 命 館 大 学 NtCreateThread,NtTerminateThread, NtSetContextThread, NtDeviceIoControlFile, NtLoadDriver, NtUnloadDriver 12 2012 年 12 月 4 日

挙 動 ファイル レジストリ 仮 想 メモリ ファイルマッピング プロセス システムコールの 例 NtCreateFile, NtReadFile, NtWriteFile, NtQueryValueKey,NtSetValueKey, NtWriteVirtualMemory, NtProtectVirtualMemory, コードインジェクションに 用 いられる システムコールへ 対 応 NtCreateSection, NtOpenSection, NtMapViewOfSection, NtCreateProcessEx, NtTerminateProcess, スレッド ネットワーク ドライバ 立 命 館 大 学 NtCreateThread,NtTerminateThread, NtSetContextThread, NtDeviceIoControlFile, NtLoadDriver, NtUnloadDriver 13 2012 年 12 月 4 日

以 下 は Polipos というマルウェアを 解 析 したときのログ 2 分 程 度 のトレースで 24,000 エントリのログを 取 得 No. / Time 6337 / 689820579 No. / Time 6339 / 689820849 Type sysenter Type sysenter SNo. 115 (NtWriteVirtualMemory) SNo. 35 (NtCreateThread) Invoker bc.304, Polipos.exe Invoker bc.304, Polipos.exe Note PID: b0, ProcessName: explorer.exe Note PID: b0, ProcessName: explorer.exe No. / Time 6338 / 689820647 No. / Time 6340 / 689820959 Type sysexit Type sysexit Ret 0 (STATUS_SUCCESS) Ret 0 (STATUS_SUCCESS) SNo. 115 (NtWriteVirtualMemory) SNo. 35 (NtCreateThread) Invoker bc.304, Polipos.exe Invoker bc.304, Polipos.exe Note PID: b0, ProcessName: explorer.exe Note Cid: b0.1e8, ProcessName: explorer.exe 立 命 館 大 学 14 2012 年 12 月 4 日

1. スレッド 作 成 108.118 Polipos.exe NtCreateThread 370.11c winlogon.exe => STATUS_SUCCESS 2. スレッドのコンテキスト 取 得 108.118 Polipos.exe NtGetContextThread 370.11c winlogon.exe => STATUS_SUCCESS 3. メモリ 確 保 & 権 限 設 定 108.118 Polipos.exe NtAllocateVirtualMemory 370 winlogon.exe, BaseAddress: 0xd90000, Protect: 0x40 (PAGE_EXECUTE_READWRITE), => STATUS_SUCCESS 108.118 Polipos.exe NtProtectVirtualMemory 370 winlogon.exe, BaseAddress: 0xd90000, NewProtect: 0x40 (PAGE_EXECUTE_READWRITE), => STATUS_SUCCESS 4. メモリ 書 込 み 108.118 Polipos.exe NtWriteVirtualMemory 370 winlogon.exe => STATUS_SUCCESS 5. スレッドのコンテキスト 設 定 108.118 Polipos.exe NtSetContextThread 370.11c winlogon.exe => STATUS_SUCCESS 6. スレッドの 実 行 開 始 108.118 Polipos.exe NtResumeThread 370.11c winlogon.exe => STATUS_SUCCESS 立 命 館 大 学 15 2012 年 12 月 4 日

No. [5212, 5213]: Polipos.exe (Cid: 54c.18c) -> svchost.exe (Cid: 480.2c4) (Code Injection) No. [5288, 5289]: svchost.exe (Cid: 480.2c4) -> svchost.exe (Cid: 480.22c) No. [5959, 5960]: svchost.exe (Cid: 480.22c) -> svchost.exe (Cid: 480.38c) No. [6392, 6393]: svchost.exe (Cid: 480.22c) -> svchost.exe (Cid: 480.360) No. [11340, 11341]: svchost.exe (Cid: 480.22c) -> svchost.exe (Cid: 480.720) No. [14368, 14369]: svchost.exe (Cid: 480.720) -> rundll32.exe (Cid: 220.7f8) (Code Injection) No. [14546, 14547]: rundll32.exe (Cid: 220.7f8) -> rundll32.exe (Cid: 220.488)... No. [11844, 11845]: svchost.exe (Cid: 480.22c) -> svchost.exe (Cid: 480.24c) No. [15080, 15081]: svchost.exe (Cid: 480.24c) -> alg.exe (Cid: 34c.1c8) (Code Injection) No. [15240, 15241]: alg.exe (Cid: 34c.1c8) -> alg.exe (Cid: 34c.5ac)... No. [13214, 13215]: svchost.exe (Cid: 480.22c) -> svchost.exe (Cid: 480.7e0) No. [16586, 16587]: svchost.exe (Cid: 480.7e0) -> explorer.exe (Cid: 538.510) (Code Injection) No. [16744, 16745]: explorer.exe (Cid: 538.510) -> explorer.exe (Cid: 538.6ac)... No. [13802, 13803]: svchost.exe (Cid: 480.22c) -> svchost.exe (Cid: 480.308) No. [14422, 14423]: svchost.exe (Cid: 480.22c) -> svchost.exe (Cid: 480.2d0)... システムコールのログから, 別 プロセスへ 挿 入 された スレッドを 追 跡 可 能 であることを 確 認 ログ 分 析 ツールを 利 用 することで, マルウェアの 挙 動 をさらに 理 解 しやすくできる 立 命 館 大 学 16 2012 年 12 月 4 日

Polipos.exe が svchost.exe にスレッド 作 成 No. [5212, 5213]: Polipos.exe (Cid: 54c.18c) -> svchost.exe (Cid: 480.2c4) (Code Injection) No. [5288, 5289]: svchost.exe (Cid: 480.2c4) -> svchost.exe (Cid: 480.22c) No. [5959, 5960]: svchost.exe (Cid: 480.22c) -> svchost.exe (Cid: 480.38c) No. [6392, 6393]: svchost.exe (Cid: 480.22c) -> svchost.exe (Cid: 480.360) No. [11340, 11341]: svchost.exe (Cid: 480.22c) -> svchost.exe (Cid: 480.720) スレッドが 派 生 No. [14368, 14369]: svchost.exe (Cid: 480.720) -> rundll32.exe (Cid: 220.7f8) (Code Injection) No. [14546, 14547]: rundll32.exe (Cid: 220.7f8) -> rundll32.exe (Cid: 220.488)... さらに 別 のプロセスへ 感 染 No. [11844, 11845]: svchost.exe (Cid: 480.22c) -> svchost.exe (Cid: 480.24c) No. [15080, 15081]: svchost.exe (Cid: 480.24c) -> alg.exe (Cid: 34c.1c8) (Code Injection) No. [15240, 15241]: alg.exe (Cid: 34c.1c8) -> alg.exe (Cid: 34c.5ac)... No. [13214, 13215]: svchost.exe (Cid: 480.22c) -> svchost.exe (Cid: 480.7e0) No. [16586, 16587]: svchost.exe (Cid: 480.7e0) -> explorer.exe (Cid: 538.510) (Code Injection) No. [16744, 16745]: explorer.exe (Cid: 538.510) -> explorer.exe (Cid: 538.6ac)... No. [13802, 13803]: svchost.exe (Cid: 480.22c) -> svchost.exe (Cid: 480.308) No. [14422, 14423]: svchost.exe (Cid: 480.22c) -> svchost.exe (Cid: 480.2d0)... システムコールのログから, 別 プロセスへ 挿 入 された スレッドを 追 跡 可 能 であることを 確 認 ログ 分 析 ツールを 利 用 することで, マルウェアの 挙 動 をさらに 理 解 しやすくできる 立 命 館 大 学 17 2012 年 12 月 4 日

Benchmark Native BitVisor1.2 (512MB) Alkanet (hook のみ) Alkanet System Test Suite (PCMarks) 5324 5097 4749 4480 HDD - XP Startup (MB/s) 7.67 7.66 7.63 7.68 Physics and 3D (FPS) 150.29 128.75 127.57 126.06 Transparent Windows (windows/s) 301.66 307.17 304.87 299.63 3D - Pixel Shader (FPS) 57.33 57.04 57.05 56.86 Web Page Rendering (pages/s) 4.09 2.82 2.36 1.75 File Decryption (MB/s) 66.51 66.27 66.33 66.4 Graphics Memory - 64 lines (FPS) 484.61 484.42 485.71 487.57 HDD - General Usage (MB/s) 4.91 4.9 4.85 4.89 Audio Compression (MB/s) 3060.92 3036.65 2979.92 3012.35 Video Encoding (MB/s) 430.65 373.05 344.86 344 Text edit (pages/s) 147.53 144.61 114.91 91.72 Image Decompression (pixels/s) 34.55 34.14 34.24 34.24 File Compression (MB/s) 9.14 9.24 9.03 10.4 File Encryption (MB/s) 63.28 63.54 62.87 62.97 HDD - Virus Scan (MB/s) 69.94 67.26 64.18 64.96 Memory Latency - Random 16 MB (accesses/s) 11.03 11.4 6.74 3.85 立 命 館 大 学 18 2012 年 12 月 4 日

System Test Suite (PCMarks) Physics and 3D (FPS) Web Page Rendering (pages/s) Video Encoding (MB/s) 43% 84% 84% 80% Native BitVisor1.2 (512MB) Alkanet (hook のみ) Text edit (pages/s) Memory Latency - Random 16 MB (accesses/s) 35% 62% Alkanet 立 命 館 大 学 0% 20% 40% 60% 80% 100% 19 2012 年 12 月 4 日

Memory Latency - Random 16 MB (accesses/s) 35% 61% 100% 103% 0% 20% 40% 60% 80% 100% Native BitVisor1.2 (512MB) Alkanet (hook のみ) Alkanet : メモリ 確 保 操 作 のシステムコールのフック Alkanet による Windows のメモリ 領 域 の 読 み 取 り ログのバッファリング IEEE1394 の DMA によるログ 取 得 立 命 館 大 学 20 2012 年 12 月 4 日

Alkanet VMM を 用 いてアンチデバッグを 回 避 する BitVisor を 用 いることで 実 環 境 に 近 いマルウェア 実 行 環 境, 速 度 が 実 現 可 能 スレッド 単 位 でマルウェアを 追 跡 し, システムコールをトレースする ログを 元 にマルウェアの 特 徴 的 な 挙 動 を 抽 出 するツール 群 も 作 成 別 プロセス 内 に 作 成 されたスレッドも 追 跡 可 能 であることを 確 認 PCMark 05 によるベンチマーク 総 合 では16% 程 度 のオーバヘッド, 特 に Memory Latency が65% 低 下 今 後 の 課 題 評 価 の 続 き オーバヘッドの 評 価 アンチデバッグに 対 する 評 価 ネットワークを 用 いた 挙 動 を 観 測 する 機 能 の 強 化 別 のコンピュータに 攻 撃 させないように 配 慮 する 必 要 がある 既 存 のハニーポットとの 連 携 システムコールトレースログを 元 にした 既 存 手 法 に Alkanet のログが 利 用 できるか 評 価 を 行 う 異 常 検 知 やマルウェアのクラスタリングなど 立 命 館 大 学 21 2012 年 12 月 4 日