SlideShare a Scribd company logo
1 of 51
Download to read offline
仮想化技術によるマルウェア対策と
     その問題点

 2012/07/09 @横浜国立大学

    産業技術総合研究所
   セキュアシステム研究部門
       須崎有康
自己紹介
• 所属:独立行政法人 産業技術総合研究所
  – 2001年に通産省傘下の15研究所等を統
    合してできた環境・エネルギー、ライフサ
    イエンス、情報通信・エレクトロニクス、ナ
    ノテクノロジー・材料・製造、標準・計測、
    地質という多様な6分野の研究を行う公
    的研究機関。本部を東京及びつくばに置
    き、つくばセンターを除く全国8ヶ所に地
    域センターを配置。総職員数は約3,000
•   情報セキュリティ研究センター (2005-2012) (研究顧問 松本勉教授)
•   セキュアシステム研究部門(2012- )
• CD/DVD LinuxのKNOPPIX日本語版
コンテンツ
• マルウェア解析に仮想マシンを使う理由
 – Anti-Debugger
• 仮想化技術の詳細
• マルウェア解析に必要な技術
    ウ  解析に必要な技術
 – InstrumentとIntrospection
• 具体例:Virt-ICE
• 問題点と現在の動向
• まとめ
マルウェア解析に仮想マシンを使う理由
• 最近のマルウェアはdebuggerによる解析を検出
  して、それを回避する技術を含んでいる(Anti-
  Debugger)
 – [Xu,NDSS08]によると93.9%のマルウェアはAnti-
   Debuggerの機能がある。
 – 多くはこの講義で紹介済みと予想。。。
• Debugger単独では検出し難いマルウェア技術
 – ステルス化が進むRootKit
 – Hidden Process
 – Memory Dual mapping
ステルス化が進むRootKit
• システム(OS)の外部で動作する
  – ファームウェア/BIOSルートキットやSMM(System Management
    Mode)ルートキット
                                                      ハイバネーションな
                 SMI (System Management Interrupt)     どの割り込み
      Protect                     SMM                    ハイバネーションj時の
       Mode                       Mode                   メモリ退避できるように
                                                         全メモリアクセスできる
                rsm Instrction                 SMRAM

                                        SMM handler
                                                       SMM Modeのみアクセス
                                                       できるメモリ。Handlerは
                                           Context       BIOSによってロード


• 仮想化の悪用BluePill [BlackHat 2006, Joanna Rutkowska]
  – ハードウェアの仮想化支援機能を悪用し、悪意のハイパーバイ
    ザー(仮想マシンモニタ)をインストール。通常のOSからは検出
    できない
Hidden Process (Windows)
• DKOM(direct kernel object manipulation)
  – プロセスは双方向のリンクリストで管理。リンクリ
    ストのリンクを故意に書き換えることで特定のプ
    ロセスエントリをリストから切り離して隠ぺい
  – プロセスはスレッドのコンテナ(入れもの)でしか
    なく処理自体はスレッドによって実行される。


     Process   Process   Process   Process
        A         B         C         D
Hidden Process (Linux)
• 多くのカーネル情報は/procファイルシステム
  から取得される。
              ps, top, freeコマンドなどのシステム
              情報は/proc FSを通して取得、表示

       /proc ファイルシステム
 ユーザ空間 カーネルのシステム情報を通知する特別なファイルシステム


             カーネル空間で偽の情報を出すような攻撃を
 カーネル空間      されるとmalware processを隠すことができる
                     malware
           Process             Process   Process
                     Process
              A                   C         D
                        B
Memory Dual mapping
• Matt “skape” Miller, Using dual-mappings to evade automated
  unpackers, 2008 より。
• 2つの仮想メモリページを1つ物理メモリページに割り当てる
   – Executable mapping            DEP, Debugger
                                   の監視対象は
      • コードが実行される。Debugger         コ ドのみ
                                   コードのみ
                                                   Virtual
                                                   Vi t l      Physical
        はここのみ監視
   – Editable mapping
      • Packerとして働き、コードを改                 Code
        変(Self-modification)する            Executable

• DEP(Data Execution Prevention)
  を回避して、コード改変
                                           Data
                                                             データとして実
                                           Editable          行コードを書き
                                                             換え
Anti-Debuggerへの対処法
• 高機能Debugger
  – Anti-Debuggerとのイタチごっご
     • 参考書籍:アナライジング・マルウェア、オライリー・ジャパン

• ICE (In-Circuit Emulator)
  – ハ ドウ アを使ったデバッグ
    ハードウェアを使ったデバッグ。
    ハードウェア情報は全て取れるが、
    解析に知識が必要。高価
• 仮想化(仮想マシン)技術
  – ICEより安価
  – 仮想マシンにも沢山の技術があり、
    Anti-Debuuger作成には考慮が必要
コンテンツ
• マルウェア解析に仮想マシンを使う理由
 – Anti-Debugger
• 仮想化技術の詳細
• マルウェア解析に必要な技術
    ウ  解析に必要な技術
 – InstrumentとIntrospection
• 具体例:Virt-ICE
• 問題点と現在の動向
• まとめ
仮想マシンソフトウェア(ハイバーバイザー or
  仮想マシンモニタ)はいくつあるか
• 挙げてみると
  –   VMware
  –   Xen
  –   VirtualPC
  –   KVM
  –   Parallels
           ll l
  –   VirtualBox
  –    QEMU
  –    Hyper-V
  –   BitVisor
  –   LilyVM
  –   Bochs, Plex86, coLinux, sHype, zVM, UserModeLinux, Solaris
      containers (zones), FreeBSD jail, Linux VServer, Virtuozzo, Cygwin,
      OpenVZ, SoftwarePod, pearPC, Wine, Tango-VP, Quick Transitive,
      FAT-Binary, SimOS, Simics, IBM LPAR,           ……
仮想マシンの歴史                                                         KVM
                                                                               Xen
                                                            仮想化支援              (Full-
                                                           (Intel VT, AMD-V)
                                                                               Virtualization)

                                                               Robin,Irvineによる仮想化の
                                        IA32                   IA32命令要件 USENIX Sec2000
                         x86                                VMware         Xen
                                                            Workstation (Para-Virtualization)
                                                            (Dynamic Translation)
                               ‘78 16bit       ‘85 32bit

              Popek,Goldbergによる
メインフレーム
              仮想化の命令要件
仮想化支援
              1974
           IBM     IBM                DEC                             IBM
          CP/67   370/VM            VAX/VMM                          z/VM



  1960            1970           1980              1990             2000
仮想化技術の歴史
• Mainframe
   • 1967 IBM CP-67 First Hypervisor

• IA32 Architecture
   • 1999 VMware workstation [by Mendel Ronsenblum @Stanford]
       – Binary Translation on IA32
   • 2002&2003 Denali[OSDI’02] Xen[SOSP’03]
               Denali[OSDI 02], Xen[SOSP 03]
       – Para-virtualizaiton
   • 2005&2006 Hardware Assist
       – Intel-VT/ AMD-SVM
       – 2006 KVM
            • [Qumranet(Isreal)->RedHat]
   • 2006 Amazon EC2 uses Xen
仮想化のメリット
• ハイパーバイザー(or 仮想マシンモニタ, Virtual
  Machine Monitor) は一台の物理マシン上で複
  数のOSを実行可能にする
• 仮想マシン(VM)は扱いやすい
 – VMが全く同じマシン環境を提供するのでOSイメー
   ジを手軽にコピー可能
 – ライブマイグレーション(移動)
   • ロードバランスはハードウェアメンテナンスに活用
 – スナップショットとロールバック
 – VMの操作がソフトウェアで行え、Debugに使える
IA32での仮想化の問題点
• 仮想化できない命令
 – Sensitiveで且つNon-privileged の命令
   • 状態を保存し、以降の命令実効に影響を与える。
   • 例外で捕捉できない。
• TLBの仮想化 (今回ここはメインではないのでスキップ)
 – TLB flashを制御できない。
 – TLBはハードウェア制御であり、且つ、アドレス空
   間にIDタグが付けられない。
   • SPARCでは仮想化可能。
• IOの仮想化    (今回ここはメインではないのでスキップ)
Sensitive&Non-privileged命令の仮想化問題

• Sensitiveな命令
  – CPUの真の姿が見えてしまう命令
    • GDT, LDT, IDTの読出し
  – 以後の実行に影響を与える命令
    • POPF, PUSHF
• Privilegedな命令ならトラップで捕捉すること
  ができるが、 IA32ではSensitiveで且つNon-
  privileged命令がある。
Sensitive&Non-privileged命令問題の解決手法
• ソフトウェアによる解決
 1. 命令をソフトでエミュレート。汎用だが遅い。
  • QEMU
 2. 動的に命令を置き換える
  • Binary Translation (VMware)
         y             (      )
 3. 問題となる命令を使うソフト(カーネル)を書き換える
  • Para-Virtualization (Xen), カーネルをring 1実行。
• ハードウェアの補助による解決
 4. 仮想化モード対応CPUを使う
  • Intel VT, AMD-V (2005年以降)
  • Sensitive且つNon-Privileged命令が実行されるとモードが
    切り替わり、処理をVMMが行なう。
エミュレーション
• 基本的には1命令づつソフトウェアで処理。異
  なる命令セットでも構わない。
 – 代表的な仮想マシンはQEMU (Main developer: Fabrice
  Bellard)
   • 中間コードを介した動的コンパイルを行うことにより、
     IA32、PowerPC、SPARCなどエミュレート可能
   • アクセラレータ技術(KQEMU)により、多くの命令を
     Native 実行することで高速化することもできる。
• 問題は遅いこと
Binary Translation
• 初期のVMware workstationで使われた。
   • 異なる特権レベルとセグメントを利用したフォールトハンド
     ラ経由の命令変換。想化で問題になる特権命令やセンシ
     ティブ命令を置き換える変換は再利用される。効率が良
     い実装。
     – 米国特許:6,397,242, Virtualization system including a virtual machine monitor
       for a computer with a segmented architecture, (Date of Patent: May 28, 2002,
       Filed: Oct 26, 1998)
Para-Virtualization (準仮想化)
• IA32の4レベルのリングプロテクションを活用。
 • Ring 0-2は特権、ring3は非特権
Para-Virtualization (準仮想化)
• ゲストOSのカーネル内で仮想化で問題となる部分を変更し、
  Ring1で実行するようにする。ハイパーバイザーはring0で実行

                  Normal OS                           Para-Virtualized
       ring3                               ring3
               App1              App2              App1               App2
               Process
               P                 Process
                                 P                 Process
                                                   P                  Process
                                                                      P




                                                        System Call
       ring2                               ring2
                   System Call




       ring1                               ring1         Guest OS
 3                                                    para-virtualized
 2                                                        Kernel




                                                        Hyper
                                                         Call
 1
 0     ring0      Guest OS                 ring0                 HyperVisor
                   Kernel
                                                                  (VMM)
ハードウェアの補助による解決
• Intel VT/AMD-SVM (2005,2006)で導入された機能
• Sensitive且つNon-Privileged命令が実行されるとモードが切
  り替わり、処理をハイパーバイザー(仮想マシンモニタ)が行
  なう
               ドで イ         イザ を動作させ、VMX non
• VMX rootモードでハイパーバイザーを動作させ、VMX non-
        root
  rootモードでゲストOSを動作させる。
• ゲストOSは何も変更せず、仮想化される。
          3           VM exit     3
          2                       2
          1                       1
          0                       0
                      VM entry


       VMX non-root              VMX root
ハードウェアの補助による解決
• KVM, Xen, Vmwareなどで活用されている
               Guest OS                                 Hypervisor(VMM)
    ring3                                     ring3
            App1                App2
            Process             Process


    ring2         Sys
                    stem Call                 ring2



    ring1                                     ring1



    ring0      Guest OS                       ring0         Hypervisor
                Kernel                    Hyper Call         (VMM)



   VMX non-root                                  VMX root
コンテンツ
• マルウェア解析に仮想マシンを使う理由
 – Anti-Debugger
• 仮想化技術の詳細
• マルウェア解析に必要な技術
    ウ  解析に必要な技術
 – InstrumentとIntrospection
• 具体例:Virt-ICE
• 問題点と現在の動向
• まとめ
Guest OS解析で必要となる技術
• Instrument (VMの操作)
  1.   Virtual/Physical mappingを理解したメモリ操作
  2.   Break Point (hardware/Software breakpoint)
  3.   STEP実行
  4.   レジスタ操作
  5.   VM Snapshot/Rollback
       1,2,3は仮想マシン実装法で問題を引き起こす
• Introspection (Guest OS解析)
  – Semantic gap 問題
  – メモリの内容解析 (Memory Forensic)
仮想マシンにおけるInstrumentの問題点
1. Virtual/Physical mappingを理解したメモリ操作
  – Page Table管理はOSのポリシーに依存するので、
    VM Introspectionとの連携が必要
2. Break Point (hardware/Software breakpoint)
  – IA32ではhardware BPの設定は4個まで。 Anti-
    Debuggerで検出可能。
  – Software BPのためにInt03(0xCC)を使うとAnti-
    Debuggerで検出されてしまう。
  – 命令にBreakPointがあることを隠す必要あり。
     • CPUエミュレーションの中に埋め込む
仮想マシンにおけるInstrumentの問題点
3. STEP実行
 – ハードウェアのTrap Flagを使った実行では隠した命
   令までSTEP実行されてしまう。 Anti-Debuggerで検
   出可能。
 – 各命令がSTEP実行されることを隠す必要あり。
   • CPUエミュレーションの中に埋め込む
仮想化技術とVM操作性
                 Memory       Break Point   STEP        Manipulate   VM
                 Manipulation               execution   Register     Snapshot
                                                                     Rollback
Emulator              ○
(QEMU)                             ○            ○           ○            ○
                 Inspectionと連携

Binary
Translator            ○            ?            ?           ○            ○
                 Inspectionと連携
(VMware)
Para-
Virtualization        ○            ×            ×           ○            ○
                 Inspectionと連携
(Xen)
Hardware
Assist
(KVM, Xen,            ○            ×            ×           ○            ○
VMware with      Inspectionと連携
Intel VT, AMD
SVM)
Semantic Gap問題
• Virtual Machineはハードウェアの仮想化のみ
  であり、ハードウェアの変更情報以外は取れ
  ない
• OSのポリシ で決める情報は取れない
  OSのポリシーで決める情報は取れない
 – Virtual Memory/Physical Memory Mapping
 – PID
 – Scheduling
 – Swap out/in
Semantic Gapの解決
• メモリ内の解析が必要
• Memory Forensicの技術を使う
 – Signature Scanning (locate objects)
    • VMでは生のメモリをアクセス出来るのみであり メモリ
      VMでは生のメモリをアクセス出来るのみであり、メモリ
      中のObjectデータ構造を見つける必要がある
 – Object Traversal
    • Objectデータ構造の理解
コンテンツ
• マルウェア解析に仮想マシンを使う理由
 – Anti-Debugger
• 仮想化技術の詳細
• マルウェア解析に必要な技術
    ウ  解析に必要な技術
 – InstrumentとIntrospection
• 具体例:Virt-ICE
• 問題点と現在の動向
• まとめ
Virt-ICE
• BlackHat2010で発表したマルウェア解析ツール
 – QEMUベース。2つのモジュールを組み込む
   • Instrument(VMの操作)としてのKobuta
   • Introspection (Guest OS解析)としてのEagleEye
             VM (QEMU)

         GuestOS (Windows)




           Virt-ICE Module
                                      Virt-ICE
    Introspection   Instrumentation
                                       Client
      (EagleEye)        (Kobuta)
Instrument(VMの操作)としてのKobuta
 • QEMUでのCPU操作の問題点
  – 高速化ために単純なインタプリタでなくJIT(Just-In-
    Time)による命令変換。
  – TCG(Tiny Code Generator)により中間表現 IR
    (Intermediate Representative)に置き換えてから
                  Representative)に置き換えてから、
    ホストCPU命令に変換。
 • KobutaのInstrumentはTCG IRレベルで行う。
  – CPUアーキテクチャ依存部分は例外として扱われ
    るので、それに対応したHookを書ける。
KobutaによるSYSENTERのHook
/* targeti386/op_helper.c */
void helper_sysenter(void)
{ ....
if (kobuta_ins_sysenter) { /* SYSENTER hook has been registered? */
    /* Then is it necessary to synchronize CPU context? */
    if (kobuta_ins_sysenter_cpusync == KOBUTA CPUSYNC ENABLE)
       (kobuta ins sysenter cpusync      KOBUTA_CPUSYNC_ENABLE)
        kobuta_syn_cpucontext(); /* Synchronize CPU context on demand*/
    kobuta_sysenter(); /*Finally, execute all registered handlers for SYSENTER*/
} ...
}
Kobuta Framework
• 有用な箇所にHookをかける
 –   Begin/end of instruction/block
 –   Jump/call
 –   Interrupt begin/end
 –   Sysenter/Sysexit/Syscall/Sysret
 –   Input/Output
 –   Update control registers (CR0, CR2, CR3, CR4)
 –   RDMSR, WRMSR (read/write to Model Specific Register)
 –   Memory access (read/write)
高速化
• QEMUは基本的にエミュレータなので遅い
• これを高速化するKQEMUが開発されている
 – 多くの命令を直接実行するモジュール
              0.12.0でサポ トされなくなった
 – KQEMUはQEMU 0 12 0でサポートされなくなった
   がKobutaが使う 0.12.04にforward-port
• 残念ながらKQEMUとKobutaとは共存できない
 – 動的にKobutaと切り替える機能を開発
   • Kobutaを使っていなければKQEMUを有効にする
Introspection (Guest OS解析)としてのEagleEye
• 必要な機能
  – Signature Scanning (locate objects)
  – Object Traversal
• 必要なオブジェクト(情報)
  –   Kernel modules
  –   Processes/threads
  –   System handles
  –   Registries
  –   DLLs
  –   Network connections/ports

• 問題点:Windowsではこれらの詳細情報が公開
  されていない
ReactOSの活用
• WindowsXP/2003 バイナリレベルおける互換性
  確保を目指して開発が進められているフリーソ
  フトウェア
 – http://www.reactos.org
• データ構造を表すHeader情報を活用する
サンプルReactOSコード
typedef struct _EPROCESS { … // removed some fields for brevity
#if (NTDDI_VERSION < NTDDI_WS03)
   FAST_MUTEX WorkingSetLock;
#endif
   ULONG WorkingSetPage;
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
   EX_PUSH_LOCK AddressCreationLock;
   PETHREAD RotateInProgress;
#else
   KGUARDED_MUTEX AddressCreationLock;
   KSPIN_LOCK HyperSpaceLock;
#endif
… } EPROCESS, *PEPROCESS;



• この情報からEPROCESSの構造体を推定
EagleEyeのAPI
/* <eagleye/windows.h> */
/* get process image filename, given its EPROCESS address */
int windows_task_imagename(ee_t h, unsigned long eprocess, char *name,
unsigned int count);

/* get process id, given its EPROCESS address */
int windows task pid(ee t h unsigned long eprocess unsigned long *pid);
    windows_task_pid(ee_t h,              eprocess,               pid);

/* get parent process id, given its EPROCESS address */
int windows_task_ppid(ee_t h, unsigned long eprocess, unsigned long
*ppid);

/* get process cmdline, given its EPROCESS address */
int windows_task_cmdline(ee_t h, unsigned long eprocess, char *cmdline,
unsigned int count);
Virt-ICEのデバッグ機能
• Virt-ICE Clientからデバッグコマンド送って解析

                                   Set execution breakpoint: db s <address>

                                   Singlestep: db s

         VM (QEMU)                 Run until RET: db R

     GuestOS (Windows)             Pause guest VM: db C

                                   Resume guest VM: db r




       Virt-ICE Module
                                            Virt-ICE
Introspection    Instrumentation
                                             Client
  (EagleEye)         (Kobuta)
コンテンツ
• マルウェア解析に仮想マシンを使う理由
 – Anti-Debugger
• 仮想化技術の詳細
• マルウェア解析に必要な技術
    ウ  解析に必要な技術
 – InstrumentとIntrospection
• 具体例:Virt-ICE
• 問題点と現在の動向
• まとめ
マルウェア解析に仮想マシンを使う問題点

• 仮想マシン検出技術を行うマルウェア
 – 外部時計を使った実行時間計測
  • Anti-Debuggerと同じ
 – 仮想マシンでも完全に仮想化している訳ではない
仮想マシンの検出技術
• CPUアーキテクチャが固定
 – 仮想マシン自体がVirtualと付けたデバイスも多い
    VMware
    # dmesg | grep -i virtual
       VMware vmxnet virtual NIC driver
          Vendor: VMware M d l Vi t l di k R 1 0
          V d VM            Model: Virtual disk Rev: 1.0
          hda: VMware Virtual IDE CDROM Drive, ATAPI CD/DVD-ROM
      drive
    QEMU
    # dmesg | grep -i virtual
      CPU: AMD QEMU Virtual CPU version 0.9.1 stepping 03 Virtal PC
    VirtualPC
    # dmesg | grep -i virtual
      hda: Virtual HD, ATA DISK drive
      hdc: Virtual CD, ATAPI CD/DVD-ROM drive
仮想マシンの検出技術
• ゲストOSとホストOSでのDrag&Dropするための
  BackDoor I/O port (VMware)
• Interrupt Descriptor Table(IDT) の差異検出
  (RedPillが利用)
• Local Descriptor Table(LDT) の差異検出
                        (    )
  (Confickerが利用)

• それぞれ対応が考えられているが、Anti-
  Degubberと同じでイタチごっこ
エミュレータ以外の実装[今後の課題]
• Intel VT/AMD SVM を使った仮想マシン(KVM,
  Xenなど)での実装
 – 問題は「Breakpointが制限されていること」と「
   STEP実行」だった。
 – Stealth Breakpoints[ACSAC05]の活用
   • 仮想記憶のページフォルトを利用したブレークポイント
     。数に制限はないが遅い。
 – Unlimited watachpoints [2012]
   • ハードウェア拡張した無制限のdata watchpointの提案
VM Instrumentの動向 1/2
• RAW Memoryからのデータ推測
 – DIMSUM [NDSS’12] Dongyan Xu, Purdue University
    • 構造体に入るデータの制約(ポインタが入る場合は4Bバイト
      で上位アドレスは同じものが入るなど)を利用して、Page
            無 も      持 デ タを  リ  取得
      Tableが無くてもプロセスの持つデータをメモリから取得
 – SigGraph[NDSS’11] Zhiqiang Lin, Purdue University
    • プロセスのデータ構造(ポインタのツリー構造)を使い,メモリ
      ダンプからプロセス情報を類推する.メモリフォレンジックの
      一つ.Volatilityより賢いらしい.ライバルはLiveDM[RAID09,
      J. Rhe]
 – Laika [OSDI’08] Anthony Cozzie, UIUC
    • 教師なしBayesian学習によるデータ構造推定
VM Introspectionの動向 2/2
 • GuestOS解析ルーチンを作る労力の低減

      最初のVMI実装。for IDS。            SBCFI                         VMST
      vmcore ダンプファイルを分             カスタマイズされたカーネル                 ユーザ&カーネルコード
      析するcrash utilityを活用。         ソースからの生成                      から自動生成
      [Garfinkel et al, NDSS’03]   [Petroni t l
                                   [P t i et al, CCS’07]         [Fu & Lin, IEEE SSP’12]




The Semantic Gap問題提起               VMWatcher               Virtuoso
[Chen et al, HotOS’01]             手作業の                    実行トレースされたコードから
                                   Instrospecionコード        半自動生成
                                   [Jiang et al, CCS’07]   [Dolan‐Gavitt et al., IEEE
                                                           SSP’11]
VMを使った解析の動向
• In-Kernel Dynamic binary translation (DBT), Peter Feiner (U.
  Toronto) [ASPLOS’12]
   – DynamoRIOをLinuxカーネル内に入れてドライバなどのコントロールフロ
     ー解析を可能にした。
• PinOS, P.P. Bungale(Intel)[Vee’07]
       ,         g (       )[      ]
   – Xenの中にコントロールフロー解析ツールPinを入れてシステム全体の解
     析を可能にした。
• Fiasco.OC microkernel, Aaron Pohle (Dresden工科大学)[Vee‘08]
   – Valgrindをmicrokernel内に入れて、 Object間のCapabilityテストを可能に
     した。
• ステルスデバッガ、川古谷(NTT PF研)[MWS’08]
   – QEMUにデバッガを入れてマルウェア解析を可能にした。
まとめ
• Anti-Debuggerを回避するための仮想化技術
 – 仮想化技術とDebuggerで要求される技術の両立
   の仕方
   • 4つの仮想化(Emulation, Binary Translation, Para-
     Virtualization,
     Virtualization Hardware Assist)
   • VM Instrument (Break Point, STEP 実行)と VM
     Introspection (Signature Scanning とObject Traversal)
• 具体例としてVirt-ICEを紹介
参考文献・ツール
• Nguyen Anh Quynh,Kuniyasu Suzaki, VirtICE: next generation debugger for
  malware analysis, BlackHat 2010
    – Paper: http://media.blackhat.com/bh-us-10/whitepapers/Anh/BlackHat-USA-2010-Anh-Virt-ICE-wp.pdf
    – Slide: https://media.blackhat.com/bh-us-10/presentations/Anh/BlackHat-USA-2010-Anh-Virt-ICE-slides.pdf
• 新井,岩村,古川谷,青木,星澤, アナライジング・マルウェア、オライリー・ジ
  ャパン
• VM Instropection ツール
   – insight-vmi [EuroSec 2011] https://code.google.com/p/insight-vmi/
   – TimeScope [SECURECOMM11]
     http://www4.ncsu.edu/~dsriniv/timescope/timescope.html
   – Ether[CCS2008] http://ether.gtisc.gatech.edu/

More Related Content

What's hot

3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)Kuniyasu Suzaki
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使うKazuhiro Suga
 
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)Kuniyasu Suzaki
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春VerMasahito Zembutsu
 
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnionThe Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnionYoshifumi Kawai
 
マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法Takuya ASADA
 
FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎ken_kitahara
 
仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディングTakuya ASADA
 
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術までAkihiro Suda
 
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...whywaita
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能Kohei Tokunaga
 
Rootlessコンテナ
RootlessコンテナRootlessコンテナ
RootlessコンテナAkihiro Suda
 
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)NTT DATA Technology & Innovation
 
Project ACRN hypervisor introduction
Project ACRN hypervisor introduction Project ACRN hypervisor introduction
Project ACRN hypervisor introduction Project ACRN
 
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤTakashi Hoshino
 

What's hot (20)

3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
 
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnionThe Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
 
initramfsについて
initramfsについてinitramfsについて
initramfsについて
 
マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法マルチコアとネットワークスタックの高速化技法
マルチコアとネットワークスタックの高速化技法
 
Nmapの真実(続)
Nmapの真実(続)Nmapの真実(続)
Nmapの真実(続)
 
FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎
 
仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング仮想化環境におけるパケットフォワーディング
仮想化環境におけるパケットフォワーディング
 
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
 
containerdの概要と最近の機能
containerdの概要と最近の機能containerdの概要と最近の機能
containerdの概要と最近の機能
 
Rootlessコンテナ
RootlessコンテナRootlessコンテナ
Rootlessコンテナ
 
Raspberry Piで始める自宅サーバー超入門
Raspberry Piで始める自宅サーバー超入門Raspberry Piで始める自宅サーバー超入門
Raspberry Piで始める自宅サーバー超入門
 
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
 
Project ACRN hypervisor introduction
Project ACRN hypervisor introduction Project ACRN hypervisor introduction
Project ACRN hypervisor introduction
 
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
 

Similar to 仮想化技術によるマルウェア対策とその問題点

エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)Takeshi HASEGAWA
 
2012-12-04 BitVisor Summit (公開版)「BitVisorの現状と今後」
2012-12-04 BitVisor Summit (公開版)「BitVisorの現状と今後」2012-12-04 BitVisor Summit (公開版)「BitVisorの現状と今後」
2012-12-04 BitVisor Summit (公開版)「BitVisorの現状と今後」Takahiro Shinagawa
 
2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)
2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)
2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)Takahiro Shinagawa
 
Technology Used in Virtual Machine (Jan 2008)
Technology Used in Virtual Machine (Jan 2008)Technology Used in Virtual Machine (Jan 2008)
Technology Used in Virtual Machine (Jan 2008)Kuniyasu Suzaki
 
私立大学情報教育協会大学 情報セキュリティ研究講習会
私立大学情報教育協会大学 情報セキュリティ研究講習会私立大学情報教育協会大学 情報セキュリティ研究講習会
私立大学情報教育協会大学 情報セキュリティ研究講習会Kuniyasu Suzaki
 
JITA(日本産業技術振興協会)講演会資料:クラウドコンピューティングにおける仮想マシンのセキュリティ
JITA(日本産業技術振興協会)講演会資料:クラウドコンピューティングにおける仮想マシンのセキュリティJITA(日本産業技術振興協会)講演会資料:クラウドコンピューティングにおける仮想マシンのセキュリティ
JITA(日本産業技術振興協会)講演会資料:クラウドコンピューティングにおける仮想マシンのセキュリティKuniyasu Suzaki
 
Bitvisorをベースとした既存Windowsのドライバメモリ保護
Bitvisorをベースとした既存Windowsのドライバメモリ保護Bitvisorをベースとした既存Windowsのドライバメモリ保護
Bitvisorをベースとした既存Windowsのドライバメモリ保護Kuniyasu Suzaki
 
2008-11-18 セキュアVMワークショップ
2008-11-18 セキュアVMワークショップ2008-11-18 セキュアVMワークショップ
2008-11-18 セキュアVMワークショップTakahiro Shinagawa
 
20120609 cod ws2012概要
20120609 cod ws2012概要20120609 cod ws2012概要
20120609 cod ws2012概要Osamu Takazoe
 
カーネル読書会:クラウドコンピューティングにおける仮想マシンのセキュリティ
カーネル読書会:クラウドコンピューティングにおける仮想マシンのセキュリティカーネル読書会:クラウドコンピューティングにおける仮想マシンのセキュリティ
カーネル読書会:クラウドコンピューティングにおける仮想マシンのセキュリティKuniyasu Suzaki
 
N110 ws12概要 osamut_公開版
N110 ws12概要 osamut_公開版N110 ws12概要 osamut_公開版
N110 ws12概要 osamut_公開版Osamu Takazoe
 
コンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかコンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかえむ ばーど
 
2009-03-24 第3回セキュアVMシンポジウム
2009-03-24 第3回セキュアVMシンポジウム2009-03-24 第3回セキュアVMシンポジウム
2009-03-24 第3回セキュアVMシンポジウムTakahiro Shinagawa
 
Virtual Machine Security on Cloud Computing 20090311
Virtual Machine Security on Cloud Computing 20090311Virtual Machine Security on Cloud Computing 20090311
Virtual Machine Security on Cloud Computing 20090311Kuniyasu Suzaki
 
Cloud VM Security on Cloud Computingi 20090311
Cloud VM Security on Cloud Computingi 20090311Cloud VM Security on Cloud Computingi 20090311
Cloud VM Security on Cloud Computingi 20090311guestec25d2
 
Osc2009 Sendai Xen 0124
Osc2009 Sendai Xen 0124Osc2009 Sendai Xen 0124
Osc2009 Sendai Xen 0124Kazuhisa Hara
 
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...NTT DATA Technology & Innovation
 
Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版Takuya Matsunaga
 

Similar to 仮想化技術によるマルウェア対策とその問題点 (20)

エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
 
2012-12-04 BitVisor Summit (公開版)「BitVisorの現状と今後」
2012-12-04 BitVisor Summit (公開版)「BitVisorの現状と今後」2012-12-04 BitVisor Summit (公開版)「BitVisorの現状と今後」
2012-12-04 BitVisor Summit (公開版)「BitVisorの現状と今後」
 
2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)
2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)
2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)
 
Technology Used in Virtual Machine (Jan 2008)
Technology Used in Virtual Machine (Jan 2008)Technology Used in Virtual Machine (Jan 2008)
Technology Used in Virtual Machine (Jan 2008)
 
私立大学情報教育協会大学 情報セキュリティ研究講習会
私立大学情報教育協会大学 情報セキュリティ研究講習会私立大学情報教育協会大学 情報セキュリティ研究講習会
私立大学情報教育協会大学 情報セキュリティ研究講習会
 
Osc2009 Do Xen Hara
Osc2009 Do Xen HaraOsc2009 Do Xen Hara
Osc2009 Do Xen Hara
 
JITA(日本産業技術振興協会)講演会資料:クラウドコンピューティングにおける仮想マシンのセキュリティ
JITA(日本産業技術振興協会)講演会資料:クラウドコンピューティングにおける仮想マシンのセキュリティJITA(日本産業技術振興協会)講演会資料:クラウドコンピューティングにおける仮想マシンのセキュリティ
JITA(日本産業技術振興協会)講演会資料:クラウドコンピューティングにおける仮想マシンのセキュリティ
 
Bitvisorをベースとした既存Windowsのドライバメモリ保護
Bitvisorをベースとした既存Windowsのドライバメモリ保護Bitvisorをベースとした既存Windowsのドライバメモリ保護
Bitvisorをベースとした既存Windowsのドライバメモリ保護
 
2008-11-18 セキュアVMワークショップ
2008-11-18 セキュアVMワークショップ2008-11-18 セキュアVMワークショップ
2008-11-18 セキュアVMワークショップ
 
20120609 cod ws2012概要
20120609 cod ws2012概要20120609 cod ws2012概要
20120609 cod ws2012概要
 
カーネル読書会:クラウドコンピューティングにおける仮想マシンのセキュリティ
カーネル読書会:クラウドコンピューティングにおける仮想マシンのセキュリティカーネル読書会:クラウドコンピューティングにおける仮想マシンのセキュリティ
カーネル読書会:クラウドコンピューティングにおける仮想マシンのセキュリティ
 
N110 ws12概要 osamut_公開版
N110 ws12概要 osamut_公開版N110 ws12概要 osamut_公開版
N110 ws12概要 osamut_公開版
 
コンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかコンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのか
 
2009-03-24 第3回セキュアVMシンポジウム
2009-03-24 第3回セキュアVMシンポジウム2009-03-24 第3回セキュアVMシンポジウム
2009-03-24 第3回セキュアVMシンポジウム
 
Virtual Machine Security on Cloud Computing 20090311
Virtual Machine Security on Cloud Computing 20090311Virtual Machine Security on Cloud Computing 20090311
Virtual Machine Security on Cloud Computing 20090311
 
Cloud VM Security on Cloud Computingi 20090311
Cloud VM Security on Cloud Computingi 20090311Cloud VM Security on Cloud Computingi 20090311
Cloud VM Security on Cloud Computingi 20090311
 
仮想化技術の今後の動向
仮想化技術の今後の動向仮想化技術の今後の動向
仮想化技術の今後の動向
 
Osc2009 Sendai Xen 0124
Osc2009 Sendai Xen 0124Osc2009 Sendai Xen 0124
Osc2009 Sendai Xen 0124
 
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
 
Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版
 

More from Kuniyasu Suzaki

RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)Kuniyasu Suzaki
 
IETF111 RATS: Remote Attestation ProcedureS 報告
IETF111 RATS: Remote Attestation ProcedureS 報告IETF111 RATS: Remote Attestation ProcedureS 報告
IETF111 RATS: Remote Attestation ProcedureS 報告Kuniyasu Suzaki
 
Slide presented at FIT 2021 Top Conference (Reboot Oriented IoT, ACSAC2021)
Slide presented at FIT 2021 Top Conference  (Reboot Oriented IoT, ACSAC2021)Slide presented at FIT 2021 Top Conference  (Reboot Oriented IoT, ACSAC2021)
Slide presented at FIT 2021 Top Conference (Reboot Oriented IoT, ACSAC2021)Kuniyasu Suzaki
 
ACSAC2020 "Return-Oriented IoT" by Kuniyasu Suzaki
ACSAC2020 "Return-Oriented IoT" by Kuniyasu SuzakiACSAC2020 "Return-Oriented IoT" by Kuniyasu Suzaki
ACSAC2020 "Return-Oriented IoT" by Kuniyasu SuzakiKuniyasu Suzaki
 
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?Kuniyasu Suzaki
 
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...Kuniyasu Suzaki
 
RISC-V-Day-Tokyo2018-suzaki
RISC-V-Day-Tokyo2018-suzakiRISC-V-Day-Tokyo2018-suzaki
RISC-V-Day-Tokyo2018-suzakiKuniyasu Suzaki
 
BMC: Bare Metal Container @Open Source Summit Japan 2017
BMC: Bare Metal Container @Open Source Summit Japan 2017BMC: Bare Metal Container @Open Source Summit Japan 2017
BMC: Bare Metal Container @Open Source Summit Japan 2017Kuniyasu Suzaki
 
USENIX NSDI17 Memory Disaggregation
USENIX NSDI17 Memory DisaggregationUSENIX NSDI17 Memory Disaggregation
USENIX NSDI17 Memory DisaggregationKuniyasu Suzaki
 
Io t security-suzki-20170224
Io t security-suzki-20170224Io t security-suzki-20170224
Io t security-suzki-20170224Kuniyasu Suzaki
 
”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016Kuniyasu Suzaki
 
Kernel Memory Protection by an Insertable Hypervisor which has VM Introspec...
Kernel Memory Protection by an Insertable Hypervisor which has VM Introspec...Kernel Memory Protection by an Insertable Hypervisor which has VM Introspec...
Kernel Memory Protection by an Insertable Hypervisor which has VM Introspec...Kuniyasu Suzaki
 
Report for S4x14 (SCADA Security Scientific Symposium 2014)
Report for S4x14 (SCADA Security Scientific Symposium 2014)Report for S4x14 (SCADA Security Scientific Symposium 2014)
Report for S4x14 (SCADA Security Scientific Symposium 2014)Kuniyasu Suzaki
 
Slide used at ACM-SAC 2014 by Suzaki
Slide used at ACM-SAC 2014 by SuzakiSlide used at ACM-SAC 2014 by Suzaki
Slide used at ACM-SAC 2014 by SuzakiKuniyasu Suzaki
 
OSセキュリティチュートリアル
OSセキュリティチュートリアルOSセキュリティチュートリアル
OSセキュリティチュートリアルKuniyasu Suzaki
 
Nested Virtual Machines and Proxies
Nested Virtual Machines and Proxies Nested Virtual Machines and Proxies
Nested Virtual Machines and Proxies Kuniyasu Suzaki
 
Security on cloud storage and IaaS (NSC: Taiwan - JST: Japan workshop)
Security on cloud storage and IaaS (NSC: Taiwan - JST: Japan workshop)Security on cloud storage and IaaS (NSC: Taiwan - JST: Japan workshop)
Security on cloud storage and IaaS (NSC: Taiwan - JST: Japan workshop)Kuniyasu Suzaki
 
EuroSec2012 "Effects of Memory Randomization, Sanitization and Page Cache on ...
EuroSec2012 "Effects of Memory Randomization, Sanitization and Page Cache on ...EuroSec2012 "Effects of Memory Randomization, Sanitization and Page Cache on ...
EuroSec2012 "Effects of Memory Randomization, Sanitization and Page Cache on ...Kuniyasu Suzaki
 
ACM SOSP11 & SOCC11 & PLOS11 Report
ACM SOSP11 & SOCC11 & PLOS11 ReportACM SOSP11 & SOCC11 & PLOS11 Report
ACM SOSP11 & SOCC11 & PLOS11 ReportKuniyasu Suzaki
 
Linux Symposium 2011 "Analysis of Disk Access Patterns on File Systems for Co...
Linux Symposium 2011 "Analysis of Disk Access Patterns on File Systems for Co...Linux Symposium 2011 "Analysis of Disk Access Patterns on File Systems for Co...
Linux Symposium 2011 "Analysis of Disk Access Patterns on File Systems for Co...Kuniyasu Suzaki
 

More from Kuniyasu Suzaki (20)

RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
 
IETF111 RATS: Remote Attestation ProcedureS 報告
IETF111 RATS: Remote Attestation ProcedureS 報告IETF111 RATS: Remote Attestation ProcedureS 報告
IETF111 RATS: Remote Attestation ProcedureS 報告
 
Slide presented at FIT 2021 Top Conference (Reboot Oriented IoT, ACSAC2021)
Slide presented at FIT 2021 Top Conference  (Reboot Oriented IoT, ACSAC2021)Slide presented at FIT 2021 Top Conference  (Reboot Oriented IoT, ACSAC2021)
Slide presented at FIT 2021 Top Conference (Reboot Oriented IoT, ACSAC2021)
 
ACSAC2020 "Return-Oriented IoT" by Kuniyasu Suzaki
ACSAC2020 "Return-Oriented IoT" by Kuniyasu SuzakiACSAC2020 "Return-Oriented IoT" by Kuniyasu Suzaki
ACSAC2020 "Return-Oriented IoT" by Kuniyasu Suzaki
 
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
 
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
 
RISC-V-Day-Tokyo2018-suzaki
RISC-V-Day-Tokyo2018-suzakiRISC-V-Day-Tokyo2018-suzaki
RISC-V-Day-Tokyo2018-suzaki
 
BMC: Bare Metal Container @Open Source Summit Japan 2017
BMC: Bare Metal Container @Open Source Summit Japan 2017BMC: Bare Metal Container @Open Source Summit Japan 2017
BMC: Bare Metal Container @Open Source Summit Japan 2017
 
USENIX NSDI17 Memory Disaggregation
USENIX NSDI17 Memory DisaggregationUSENIX NSDI17 Memory Disaggregation
USENIX NSDI17 Memory Disaggregation
 
Io t security-suzki-20170224
Io t security-suzki-20170224Io t security-suzki-20170224
Io t security-suzki-20170224
 
”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016
 
Kernel Memory Protection by an Insertable Hypervisor which has VM Introspec...
Kernel Memory Protection by an Insertable Hypervisor which has VM Introspec...Kernel Memory Protection by an Insertable Hypervisor which has VM Introspec...
Kernel Memory Protection by an Insertable Hypervisor which has VM Introspec...
 
Report for S4x14 (SCADA Security Scientific Symposium 2014)
Report for S4x14 (SCADA Security Scientific Symposium 2014)Report for S4x14 (SCADA Security Scientific Symposium 2014)
Report for S4x14 (SCADA Security Scientific Symposium 2014)
 
Slide used at ACM-SAC 2014 by Suzaki
Slide used at ACM-SAC 2014 by SuzakiSlide used at ACM-SAC 2014 by Suzaki
Slide used at ACM-SAC 2014 by Suzaki
 
OSセキュリティチュートリアル
OSセキュリティチュートリアルOSセキュリティチュートリアル
OSセキュリティチュートリアル
 
Nested Virtual Machines and Proxies
Nested Virtual Machines and Proxies Nested Virtual Machines and Proxies
Nested Virtual Machines and Proxies
 
Security on cloud storage and IaaS (NSC: Taiwan - JST: Japan workshop)
Security on cloud storage and IaaS (NSC: Taiwan - JST: Japan workshop)Security on cloud storage and IaaS (NSC: Taiwan - JST: Japan workshop)
Security on cloud storage and IaaS (NSC: Taiwan - JST: Japan workshop)
 
EuroSec2012 "Effects of Memory Randomization, Sanitization and Page Cache on ...
EuroSec2012 "Effects of Memory Randomization, Sanitization and Page Cache on ...EuroSec2012 "Effects of Memory Randomization, Sanitization and Page Cache on ...
EuroSec2012 "Effects of Memory Randomization, Sanitization and Page Cache on ...
 
ACM SOSP11 & SOCC11 & PLOS11 Report
ACM SOSP11 & SOCC11 & PLOS11 ReportACM SOSP11 & SOCC11 & PLOS11 Report
ACM SOSP11 & SOCC11 & PLOS11 Report
 
Linux Symposium 2011 "Analysis of Disk Access Patterns on File Systems for Co...
Linux Symposium 2011 "Analysis of Disk Access Patterns on File Systems for Co...Linux Symposium 2011 "Analysis of Disk Access Patterns on File Systems for Co...
Linux Symposium 2011 "Analysis of Disk Access Patterns on File Systems for Co...
 

仮想化技術によるマルウェア対策とその問題点

  • 1. 仮想化技術によるマルウェア対策と その問題点 2012/07/09 @横浜国立大学 産業技術総合研究所 セキュアシステム研究部門 須崎有康
  • 2. 自己紹介 • 所属:独立行政法人 産業技術総合研究所 – 2001年に通産省傘下の15研究所等を統 合してできた環境・エネルギー、ライフサ イエンス、情報通信・エレクトロニクス、ナ ノテクノロジー・材料・製造、標準・計測、 地質という多様な6分野の研究を行う公 的研究機関。本部を東京及びつくばに置 き、つくばセンターを除く全国8ヶ所に地 域センターを配置。総職員数は約3,000 • 情報セキュリティ研究センター (2005-2012) (研究顧問 松本勉教授) • セキュアシステム研究部門(2012- ) • CD/DVD LinuxのKNOPPIX日本語版
  • 3. コンテンツ • マルウェア解析に仮想マシンを使う理由 – Anti-Debugger • 仮想化技術の詳細 • マルウェア解析に必要な技術 ウ 解析に必要な技術 – InstrumentとIntrospection • 具体例:Virt-ICE • 問題点と現在の動向 • まとめ
  • 4. マルウェア解析に仮想マシンを使う理由 • 最近のマルウェアはdebuggerによる解析を検出 して、それを回避する技術を含んでいる(Anti- Debugger) – [Xu,NDSS08]によると93.9%のマルウェアはAnti- Debuggerの機能がある。 – 多くはこの講義で紹介済みと予想。。。 • Debugger単独では検出し難いマルウェア技術 – ステルス化が進むRootKit – Hidden Process – Memory Dual mapping
  • 5. ステルス化が進むRootKit • システム(OS)の外部で動作する – ファームウェア/BIOSルートキットやSMM(System Management Mode)ルートキット ハイバネーションな SMI (System Management Interrupt) どの割り込み Protect SMM ハイバネーションj時の Mode Mode メモリ退避できるように 全メモリアクセスできる rsm Instrction SMRAM SMM handler SMM Modeのみアクセス できるメモリ。Handlerは Context BIOSによってロード • 仮想化の悪用BluePill [BlackHat 2006, Joanna Rutkowska] – ハードウェアの仮想化支援機能を悪用し、悪意のハイパーバイ ザー(仮想マシンモニタ)をインストール。通常のOSからは検出 できない
  • 6. Hidden Process (Windows) • DKOM(direct kernel object manipulation) – プロセスは双方向のリンクリストで管理。リンクリ ストのリンクを故意に書き換えることで特定のプ ロセスエントリをリストから切り離して隠ぺい – プロセスはスレッドのコンテナ(入れもの)でしか なく処理自体はスレッドによって実行される。 Process Process Process Process A B C D
  • 7. Hidden Process (Linux) • 多くのカーネル情報は/procファイルシステム から取得される。 ps, top, freeコマンドなどのシステム 情報は/proc FSを通して取得、表示 /proc ファイルシステム ユーザ空間 カーネルのシステム情報を通知する特別なファイルシステム カーネル空間で偽の情報を出すような攻撃を カーネル空間 されるとmalware processを隠すことができる malware Process Process Process Process A C D B
  • 8. Memory Dual mapping • Matt “skape” Miller, Using dual-mappings to evade automated unpackers, 2008 より。 • 2つの仮想メモリページを1つ物理メモリページに割り当てる – Executable mapping DEP, Debugger の監視対象は • コードが実行される。Debugger コ ドのみ コードのみ Virtual Vi t l Physical はここのみ監視 – Editable mapping • Packerとして働き、コードを改 Code 変(Self-modification)する Executable • DEP(Data Execution Prevention) を回避して、コード改変 Data データとして実 Editable 行コードを書き 換え
  • 9. Anti-Debuggerへの対処法 • 高機能Debugger – Anti-Debuggerとのイタチごっご • 参考書籍:アナライジング・マルウェア、オライリー・ジャパン • ICE (In-Circuit Emulator) – ハ ドウ アを使ったデバッグ ハードウェアを使ったデバッグ。 ハードウェア情報は全て取れるが、 解析に知識が必要。高価 • 仮想化(仮想マシン)技術 – ICEより安価 – 仮想マシンにも沢山の技術があり、 Anti-Debuuger作成には考慮が必要
  • 10. コンテンツ • マルウェア解析に仮想マシンを使う理由 – Anti-Debugger • 仮想化技術の詳細 • マルウェア解析に必要な技術 ウ 解析に必要な技術 – InstrumentとIntrospection • 具体例:Virt-ICE • 問題点と現在の動向 • まとめ
  • 11. 仮想マシンソフトウェア(ハイバーバイザー or 仮想マシンモニタ)はいくつあるか • 挙げてみると – VMware – Xen – VirtualPC – KVM – Parallels ll l – VirtualBox – QEMU – Hyper-V – BitVisor – LilyVM – Bochs, Plex86, coLinux, sHype, zVM, UserModeLinux, Solaris containers (zones), FreeBSD jail, Linux VServer, Virtuozzo, Cygwin, OpenVZ, SoftwarePod, pearPC, Wine, Tango-VP, Quick Transitive, FAT-Binary, SimOS, Simics, IBM LPAR, ……
  • 12. 仮想マシンの歴史 KVM Xen 仮想化支援 (Full- (Intel VT, AMD-V) Virtualization) Robin,Irvineによる仮想化の IA32 IA32命令要件 USENIX Sec2000 x86 VMware Xen Workstation (Para-Virtualization) (Dynamic Translation) ‘78 16bit ‘85 32bit Popek,Goldbergによる メインフレーム 仮想化の命令要件 仮想化支援 1974 IBM IBM DEC IBM CP/67 370/VM VAX/VMM z/VM 1960 1970 1980 1990 2000
  • 13. 仮想化技術の歴史 • Mainframe • 1967 IBM CP-67 First Hypervisor • IA32 Architecture • 1999 VMware workstation [by Mendel Ronsenblum @Stanford] – Binary Translation on IA32 • 2002&2003 Denali[OSDI’02] Xen[SOSP’03] Denali[OSDI 02], Xen[SOSP 03] – Para-virtualizaiton • 2005&2006 Hardware Assist – Intel-VT/ AMD-SVM – 2006 KVM • [Qumranet(Isreal)->RedHat] • 2006 Amazon EC2 uses Xen
  • 14. 仮想化のメリット • ハイパーバイザー(or 仮想マシンモニタ, Virtual Machine Monitor) は一台の物理マシン上で複 数のOSを実行可能にする • 仮想マシン(VM)は扱いやすい – VMが全く同じマシン環境を提供するのでOSイメー ジを手軽にコピー可能 – ライブマイグレーション(移動) • ロードバランスはハードウェアメンテナンスに活用 – スナップショットとロールバック – VMの操作がソフトウェアで行え、Debugに使える
  • 15. IA32での仮想化の問題点 • 仮想化できない命令 – Sensitiveで且つNon-privileged の命令 • 状態を保存し、以降の命令実効に影響を与える。 • 例外で捕捉できない。 • TLBの仮想化 (今回ここはメインではないのでスキップ) – TLB flashを制御できない。 – TLBはハードウェア制御であり、且つ、アドレス空 間にIDタグが付けられない。 • SPARCでは仮想化可能。 • IOの仮想化 (今回ここはメインではないのでスキップ)
  • 16. Sensitive&Non-privileged命令の仮想化問題 • Sensitiveな命令 – CPUの真の姿が見えてしまう命令 • GDT, LDT, IDTの読出し – 以後の実行に影響を与える命令 • POPF, PUSHF • Privilegedな命令ならトラップで捕捉すること ができるが、 IA32ではSensitiveで且つNon- privileged命令がある。
  • 17. Sensitive&Non-privileged命令問題の解決手法 • ソフトウェアによる解決 1. 命令をソフトでエミュレート。汎用だが遅い。 • QEMU 2. 動的に命令を置き換える • Binary Translation (VMware) y ( ) 3. 問題となる命令を使うソフト(カーネル)を書き換える • Para-Virtualization (Xen), カーネルをring 1実行。 • ハードウェアの補助による解決 4. 仮想化モード対応CPUを使う • Intel VT, AMD-V (2005年以降) • Sensitive且つNon-Privileged命令が実行されるとモードが 切り替わり、処理をVMMが行なう。
  • 18. エミュレーション • 基本的には1命令づつソフトウェアで処理。異 なる命令セットでも構わない。 – 代表的な仮想マシンはQEMU (Main developer: Fabrice Bellard) • 中間コードを介した動的コンパイルを行うことにより、 IA32、PowerPC、SPARCなどエミュレート可能 • アクセラレータ技術(KQEMU)により、多くの命令を Native 実行することで高速化することもできる。 • 問題は遅いこと
  • 19. Binary Translation • 初期のVMware workstationで使われた。 • 異なる特権レベルとセグメントを利用したフォールトハンド ラ経由の命令変換。想化で問題になる特権命令やセンシ ティブ命令を置き換える変換は再利用される。効率が良 い実装。 – 米国特許:6,397,242, Virtualization system including a virtual machine monitor for a computer with a segmented architecture, (Date of Patent: May 28, 2002, Filed: Oct 26, 1998)
  • 21. Para-Virtualization (準仮想化) • ゲストOSのカーネル内で仮想化で問題となる部分を変更し、 Ring1で実行するようにする。ハイパーバイザーはring0で実行 Normal OS Para-Virtualized ring3 ring3 App1 App2 App1 App2 Process P Process P Process P Process P System Call ring2 ring2 System Call ring1 ring1 Guest OS 3 para-virtualized 2 Kernel Hyper Call 1 0 ring0 Guest OS ring0 HyperVisor Kernel (VMM)
  • 22. ハードウェアの補助による解決 • Intel VT/AMD-SVM (2005,2006)で導入された機能 • Sensitive且つNon-Privileged命令が実行されるとモードが切 り替わり、処理をハイパーバイザー(仮想マシンモニタ)が行 なう ドで イ イザ を動作させ、VMX non • VMX rootモードでハイパーバイザーを動作させ、VMX non- root rootモードでゲストOSを動作させる。 • ゲストOSは何も変更せず、仮想化される。 3 VM exit 3 2 2 1 1 0 0 VM entry VMX non-root VMX root
  • 23. ハードウェアの補助による解決 • KVM, Xen, Vmwareなどで活用されている Guest OS Hypervisor(VMM) ring3 ring3 App1 App2 Process Process ring2 Sys stem Call ring2 ring1 ring1 ring0 Guest OS ring0 Hypervisor Kernel Hyper Call (VMM) VMX non-root VMX root
  • 24. コンテンツ • マルウェア解析に仮想マシンを使う理由 – Anti-Debugger • 仮想化技術の詳細 • マルウェア解析に必要な技術 ウ 解析に必要な技術 – InstrumentとIntrospection • 具体例:Virt-ICE • 問題点と現在の動向 • まとめ
  • 25. Guest OS解析で必要となる技術 • Instrument (VMの操作) 1. Virtual/Physical mappingを理解したメモリ操作 2. Break Point (hardware/Software breakpoint) 3. STEP実行 4. レジスタ操作 5. VM Snapshot/Rollback 1,2,3は仮想マシン実装法で問題を引き起こす • Introspection (Guest OS解析) – Semantic gap 問題 – メモリの内容解析 (Memory Forensic)
  • 26. 仮想マシンにおけるInstrumentの問題点 1. Virtual/Physical mappingを理解したメモリ操作 – Page Table管理はOSのポリシーに依存するので、 VM Introspectionとの連携が必要 2. Break Point (hardware/Software breakpoint) – IA32ではhardware BPの設定は4個まで。 Anti- Debuggerで検出可能。 – Software BPのためにInt03(0xCC)を使うとAnti- Debuggerで検出されてしまう。 – 命令にBreakPointがあることを隠す必要あり。 • CPUエミュレーションの中に埋め込む
  • 27. 仮想マシンにおけるInstrumentの問題点 3. STEP実行 – ハードウェアのTrap Flagを使った実行では隠した命 令までSTEP実行されてしまう。 Anti-Debuggerで検 出可能。 – 各命令がSTEP実行されることを隠す必要あり。 • CPUエミュレーションの中に埋め込む
  • 28. 仮想化技術とVM操作性 Memory Break Point STEP Manipulate VM Manipulation execution Register Snapshot Rollback Emulator ○ (QEMU) ○ ○ ○ ○ Inspectionと連携 Binary Translator ○ ? ? ○ ○ Inspectionと連携 (VMware) Para- Virtualization ○ × × ○ ○ Inspectionと連携 (Xen) Hardware Assist (KVM, Xen, ○ × × ○ ○ VMware with Inspectionと連携 Intel VT, AMD SVM)
  • 29. Semantic Gap問題 • Virtual Machineはハードウェアの仮想化のみ であり、ハードウェアの変更情報以外は取れ ない • OSのポリシ で決める情報は取れない OSのポリシーで決める情報は取れない – Virtual Memory/Physical Memory Mapping – PID – Scheduling – Swap out/in
  • 30. Semantic Gapの解決 • メモリ内の解析が必要 • Memory Forensicの技術を使う – Signature Scanning (locate objects) • VMでは生のメモリをアクセス出来るのみであり メモリ VMでは生のメモリをアクセス出来るのみであり、メモリ 中のObjectデータ構造を見つける必要がある – Object Traversal • Objectデータ構造の理解
  • 31. コンテンツ • マルウェア解析に仮想マシンを使う理由 – Anti-Debugger • 仮想化技術の詳細 • マルウェア解析に必要な技術 ウ 解析に必要な技術 – InstrumentとIntrospection • 具体例:Virt-ICE • 問題点と現在の動向 • まとめ
  • 32. Virt-ICE • BlackHat2010で発表したマルウェア解析ツール – QEMUベース。2つのモジュールを組み込む • Instrument(VMの操作)としてのKobuta • Introspection (Guest OS解析)としてのEagleEye VM (QEMU) GuestOS (Windows) Virt-ICE Module Virt-ICE Introspection Instrumentation Client (EagleEye) (Kobuta)
  • 33. Instrument(VMの操作)としてのKobuta • QEMUでのCPU操作の問題点 – 高速化ために単純なインタプリタでなくJIT(Just-In- Time)による命令変換。 – TCG(Tiny Code Generator)により中間表現 IR (Intermediate Representative)に置き換えてから Representative)に置き換えてから、 ホストCPU命令に変換。 • KobutaのInstrumentはTCG IRレベルで行う。 – CPUアーキテクチャ依存部分は例外として扱われ るので、それに対応したHookを書ける。
  • 34. KobutaによるSYSENTERのHook /* targeti386/op_helper.c */ void helper_sysenter(void) { .... if (kobuta_ins_sysenter) { /* SYSENTER hook has been registered? */ /* Then is it necessary to synchronize CPU context? */ if (kobuta_ins_sysenter_cpusync == KOBUTA CPUSYNC ENABLE) (kobuta ins sysenter cpusync KOBUTA_CPUSYNC_ENABLE) kobuta_syn_cpucontext(); /* Synchronize CPU context on demand*/ kobuta_sysenter(); /*Finally, execute all registered handlers for SYSENTER*/ } ... }
  • 35. Kobuta Framework • 有用な箇所にHookをかける – Begin/end of instruction/block – Jump/call – Interrupt begin/end – Sysenter/Sysexit/Syscall/Sysret – Input/Output – Update control registers (CR0, CR2, CR3, CR4) – RDMSR, WRMSR (read/write to Model Specific Register) – Memory access (read/write)
  • 36. 高速化 • QEMUは基本的にエミュレータなので遅い • これを高速化するKQEMUが開発されている – 多くの命令を直接実行するモジュール 0.12.0でサポ トされなくなった – KQEMUはQEMU 0 12 0でサポートされなくなった がKobutaが使う 0.12.04にforward-port • 残念ながらKQEMUとKobutaとは共存できない – 動的にKobutaと切り替える機能を開発 • Kobutaを使っていなければKQEMUを有効にする
  • 37. Introspection (Guest OS解析)としてのEagleEye • 必要な機能 – Signature Scanning (locate objects) – Object Traversal • 必要なオブジェクト(情報) – Kernel modules – Processes/threads – System handles – Registries – DLLs – Network connections/ports • 問題点:Windowsではこれらの詳細情報が公開 されていない
  • 38. ReactOSの活用 • WindowsXP/2003 バイナリレベルおける互換性 確保を目指して開発が進められているフリーソ フトウェア – http://www.reactos.org • データ構造を表すHeader情報を活用する
  • 39. サンプルReactOSコード typedef struct _EPROCESS { … // removed some fields for brevity #if (NTDDI_VERSION < NTDDI_WS03) FAST_MUTEX WorkingSetLock; #endif ULONG WorkingSetPage; #if (NTDDI_VERSION >= NTDDI_LONGHORN) EX_PUSH_LOCK AddressCreationLock; PETHREAD RotateInProgress; #else KGUARDED_MUTEX AddressCreationLock; KSPIN_LOCK HyperSpaceLock; #endif … } EPROCESS, *PEPROCESS; • この情報からEPROCESSの構造体を推定
  • 40. EagleEyeのAPI /* <eagleye/windows.h> */ /* get process image filename, given its EPROCESS address */ int windows_task_imagename(ee_t h, unsigned long eprocess, char *name, unsigned int count); /* get process id, given its EPROCESS address */ int windows task pid(ee t h unsigned long eprocess unsigned long *pid); windows_task_pid(ee_t h, eprocess, pid); /* get parent process id, given its EPROCESS address */ int windows_task_ppid(ee_t h, unsigned long eprocess, unsigned long *ppid); /* get process cmdline, given its EPROCESS address */ int windows_task_cmdline(ee_t h, unsigned long eprocess, char *cmdline, unsigned int count);
  • 41. Virt-ICEのデバッグ機能 • Virt-ICE Clientからデバッグコマンド送って解析 Set execution breakpoint: db s <address> Singlestep: db s VM (QEMU) Run until RET: db R GuestOS (Windows) Pause guest VM: db C Resume guest VM: db r Virt-ICE Module Virt-ICE Introspection Instrumentation Client (EagleEye) (Kobuta)
  • 42. コンテンツ • マルウェア解析に仮想マシンを使う理由 – Anti-Debugger • 仮想化技術の詳細 • マルウェア解析に必要な技術 ウ 解析に必要な技術 – InstrumentとIntrospection • 具体例:Virt-ICE • 問題点と現在の動向 • まとめ
  • 43. マルウェア解析に仮想マシンを使う問題点 • 仮想マシン検出技術を行うマルウェア – 外部時計を使った実行時間計測 • Anti-Debuggerと同じ – 仮想マシンでも完全に仮想化している訳ではない
  • 44. 仮想マシンの検出技術 • CPUアーキテクチャが固定 – 仮想マシン自体がVirtualと付けたデバイスも多い VMware # dmesg | grep -i virtual VMware vmxnet virtual NIC driver Vendor: VMware M d l Vi t l di k R 1 0 V d VM Model: Virtual disk Rev: 1.0 hda: VMware Virtual IDE CDROM Drive, ATAPI CD/DVD-ROM drive QEMU # dmesg | grep -i virtual CPU: AMD QEMU Virtual CPU version 0.9.1 stepping 03 Virtal PC VirtualPC # dmesg | grep -i virtual hda: Virtual HD, ATA DISK drive hdc: Virtual CD, ATAPI CD/DVD-ROM drive
  • 45. 仮想マシンの検出技術 • ゲストOSとホストOSでのDrag&Dropするための BackDoor I/O port (VMware) • Interrupt Descriptor Table(IDT) の差異検出 (RedPillが利用) • Local Descriptor Table(LDT) の差異検出 ( ) (Confickerが利用) • それぞれ対応が考えられているが、Anti- Degubberと同じでイタチごっこ
  • 46. エミュレータ以外の実装[今後の課題] • Intel VT/AMD SVM を使った仮想マシン(KVM, Xenなど)での実装 – 問題は「Breakpointが制限されていること」と「 STEP実行」だった。 – Stealth Breakpoints[ACSAC05]の活用 • 仮想記憶のページフォルトを利用したブレークポイント 。数に制限はないが遅い。 – Unlimited watachpoints [2012] • ハードウェア拡張した無制限のdata watchpointの提案
  • 47. VM Instrumentの動向 1/2 • RAW Memoryからのデータ推測 – DIMSUM [NDSS’12] Dongyan Xu, Purdue University • 構造体に入るデータの制約(ポインタが入る場合は4Bバイト で上位アドレスは同じものが入るなど)を利用して、Page 無 も 持 デ タを リ 取得 Tableが無くてもプロセスの持つデータをメモリから取得 – SigGraph[NDSS’11] Zhiqiang Lin, Purdue University • プロセスのデータ構造(ポインタのツリー構造)を使い,メモリ ダンプからプロセス情報を類推する.メモリフォレンジックの 一つ.Volatilityより賢いらしい.ライバルはLiveDM[RAID09, J. Rhe] – Laika [OSDI’08] Anthony Cozzie, UIUC • 教師なしBayesian学習によるデータ構造推定
  • 48. VM Introspectionの動向 2/2 • GuestOS解析ルーチンを作る労力の低減 最初のVMI実装。for IDS。 SBCFI VMST vmcore ダンプファイルを分 カスタマイズされたカーネル ユーザ&カーネルコード 析するcrash utilityを活用。 ソースからの生成 から自動生成 [Garfinkel et al, NDSS’03] [Petroni t l [P t i et al, CCS’07] [Fu & Lin, IEEE SSP’12] The Semantic Gap問題提起 VMWatcher Virtuoso [Chen et al, HotOS’01] 手作業の 実行トレースされたコードから Instrospecionコード 半自動生成 [Jiang et al, CCS’07] [Dolan‐Gavitt et al., IEEE SSP’11]
  • 49. VMを使った解析の動向 • In-Kernel Dynamic binary translation (DBT), Peter Feiner (U. Toronto) [ASPLOS’12] – DynamoRIOをLinuxカーネル内に入れてドライバなどのコントロールフロ ー解析を可能にした。 • PinOS, P.P. Bungale(Intel)[Vee’07] , g ( )[ ] – Xenの中にコントロールフロー解析ツールPinを入れてシステム全体の解 析を可能にした。 • Fiasco.OC microkernel, Aaron Pohle (Dresden工科大学)[Vee‘08] – Valgrindをmicrokernel内に入れて、 Object間のCapabilityテストを可能に した。 • ステルスデバッガ、川古谷(NTT PF研)[MWS’08] – QEMUにデバッガを入れてマルウェア解析を可能にした。
  • 50. まとめ • Anti-Debuggerを回避するための仮想化技術 – 仮想化技術とDebuggerで要求される技術の両立 の仕方 • 4つの仮想化(Emulation, Binary Translation, Para- Virtualization, Virtualization Hardware Assist) • VM Instrument (Break Point, STEP 実行)と VM Introspection (Signature Scanning とObject Traversal) • 具体例としてVirt-ICEを紹介
  • 51. 参考文献・ツール • Nguyen Anh Quynh,Kuniyasu Suzaki, VirtICE: next generation debugger for malware analysis, BlackHat 2010 – Paper: http://media.blackhat.com/bh-us-10/whitepapers/Anh/BlackHat-USA-2010-Anh-Virt-ICE-wp.pdf – Slide: https://media.blackhat.com/bh-us-10/presentations/Anh/BlackHat-USA-2010-Anh-Virt-ICE-slides.pdf • 新井,岩村,古川谷,青木,星澤, アナライジング・マルウェア、オライリー・ジ ャパン • VM Instropection ツール – insight-vmi [EuroSec 2011] https://code.google.com/p/insight-vmi/ – TimeScope [SECURECOMM11] http://www4.ncsu.edu/~dsriniv/timescope/timescope.html – Ether[CCS2008] http://ether.gtisc.gatech.edu/