SlideShare a Scribd company logo
Research Institute
                     for Secure Systems




Bitvisorをベースとした
既存Windowsのドライバメモリ保護


  須崎 有康、八木 豊志樹、古原 和邦、
   石山 智祥、村上 純一、鵜飼 裕司
(独)産業技術総合研究所 セキュアシステム研究部門
      フォティーンフォティ技術研究所
概要                Research Institute
                                    for Secure Systems


• 背景
  • ドライバメモリを守る理由
• ドライバメモリ保護に必要な技術
  • インストール済みのOSの外部から挿入可能なハイパ
    ーバイザー
  • VM Introspection
  • 関連研究
• 現状
  • メモリの保護はStealth breakpointsを活用
• 改善計画
• まとめ
背景                                    Research Institute
                                                                                         for Secure Systems

• クライアントおよびサーバ双方からの情報漏えいを防止するアク
  セス制御技術の研究開発
      •      総務省による戦略的情報通信研究開発推進制度(SCOPE) H23-25
               •    産総研、サイエンスパーク、(FFRI)

• Windows上でアクセス制御を行うNonCopy (サイエンスパーク
  社製品)を活用
      •      NonCopyはドライバによりファイルコピー、Screen Cut&Paste、印刷な
             どを行うWindows APIを抑制する。
                                        Internet
                             ネットワーク
                                    メール添付、
                             利用禁止
                   プリンタ             FTP                            NonCopyアーキテクチャ
                          印刷禁止
                                    コピー&ペース                              アプリケーション
                                    ト
           デフォルトで
           は閲覧のみ
                                                                      オペレーティングシステム
                                   禁止
   NonCopy                                                         Driverwareコア・エンジン
                                                                    NonCopyアクセス制御
                                                          ネットワーク
                                                         制御モジュール     プリンタ    ファイルシステム      HID
       LBCAS                                                       制御モジュール   制御モジュール     制御モジュール


                          書き込み禁止
 This is     This is                        ライティング      ネットワーク       プリンタ    ストレージデバイス    マウス/キーボード
 a pen.      a pencil                       ソフト
                                                                            ハードウェア
ドライバへの攻撃                              Research Institute
                                                     for Secure Systems


• ドライバの中に暗号鍵がある。ドライバは長時間メモリに滞在す
  るため、漏えいの危険性がある。
 •   メモリに長期滞在するデータの危険性は[Chow, USENIX Sec 04]より指
     摘されている。
• ハイパーバイザーでOSの下位よりドライバを監視して不正アクセ
  スを防御する。      ユーザ空間

 • ハイパーバイザーで守るこ               アプリ            アプリ
   とで、OSをだます攻撃にも      カーネル空間
                                                    覗き見不可
   対応する。
                                                   ×
                            改ざん不可
                       カーネル
                                 ×       ドライバ 鍵
                                                  ×      ドライバ


                                                    鍵の格納メモリの
                      ドライバメモリのwrite監視。
                                                    read/writeを不可にする。
                      改ざん検知。
                                                    ドライバ自体の読出しの
                                                    み許可。
                                         ハイパーバイザー

                                         ハードウェア
ドライバメモリ保護に
           必要な技術
                      Research Institute
                      for Secure Systems




• ハイパーバイザーに必要な技術
 1. インストール済みのOSに対して外部から挿入可
    能なハイパーバイザー
 2. VM Introspection
• 関連研究
Windowsドライバ保護に必要
         な技術 1(デバイス管理問題)                      Research Institute
                                              for Secure Systems


• 多くのハイパーバイザーは複数OSを1台のマシンで起動
  するために使われている
 • 例:IaaSクラウド
• 問題点
 • ホストOSが必要
   • 管理ソフトウェアの大規模化
        • VMware ESXiは5.xよりホストOS無しになったが、管理サーバが必要
   • 基本的にデバイスがホストOSの管理下になる
 • VMデバイスモデルが固定
   • デバイスはVM中の仮想デバイスで共有される
   • プレインストールのOSとは異なる
   • Xen, KVM, QEMUはQEMU Deviceモデルが標準
既存のOSへの
      ハイパーバイザー挿入
                               Research Institute
                               for Secure Systems




• 既存のOSが想定している物理デバイスをVM
  環境内で提供する必要がある。
 • VMデバイスモデルが同じにできればよい
   • 各PC毎にデバイスをモデルを用意しなければならない
 • VMからデバイスを直接アクセス
   • I/O PassThrough。ハードウェアが限定。ハイパーバイ
     ザーでも対応が必要
   • Para-PassThrough。Bitvisorで提供される
Windowsドライバ保護に必要
    な技術 2(VM Introspection)            Research Institute
                                       for Secure Systems



• ハイパーバイザーがドライバの動作、メモリ空間
  を認識する必要がある。
 • 守るべきドライバが組み込まれたことの認識
   • Linux: create_module, init_module システムコールなど
   • Windows: NtLoadDriver システムコールなど。
 • 守るべきメモリ空間の認識
   • 各種の実装あり。
VM Introspection                      Research Institute
                                                     for Secure Systems



• Ether [GITech Wenke Leeグループ, CCS’08]
   • XenベースのVM Introspection。オープンソース。
     対象OSはWindows XP SP2
       • http://ether.gtisc.gatech.edu/source.html
• GreenKiller [FFRI Junichi Murakami, BlackHat’08]
   • BitvisorベースのVM Introspection。対象OSは
     Windows XP SP3
• Alkanet [立命館大学 大月さん、毛利先生, CSS’11]
   • Bitvisorベースのシステムコールトレース。対象OS
     はWindows XP SP3
ドライバ保護の類似研究            Research Institute
                               for Secure Systems



• Nooks [M.Swift, SOSP’03]
  • 障害時にリカバーがメイン。
• HUKO[NDSS’11]
  • 信頼できないドライバの保護。ドライバ用のメモリ空間とカ
    ーネル用のメモリ空間の分離。CR3の値を変える。
• Windows7の Driver Isolation
  • プリンタがメイン。
• OS2
  • IA32アーキテクチャの4つのリング構造でカーネルとデバイ
    スドライバを分ける。
ドライバメモリを保護する
         ハイパーバイザー
                              Research Institute
                              for Secure Systems



• 既存OSへの挿入可能性、VM Introspectionを
  考慮してGreen Killerベースで開発。
  • DriverGurad と命名。
• 動作手順
  • USBからハイパーバイザーを起動後、ハードディ
    スクOSの起動
  • ハイパーバイザーのドライバ認識
  • 保護するメモリ領域の認識
  • 攻撃に対する防御
    • Stealth Breakpoints技術
起動手順                               Research Institute
                                                         for Secure Systems


• ハードディスクにインストール済みのOSに対して、起
  動時にDriverGuardを挿入する
 • Chain load技術
 • 類似の技術にはLinuxのkexcシステムコールを使った
   kbootがある。PS3Linuxで使われていた。
     BIOS (USB is the first bootable device)
                 Go back to MBR


     USB(GRUB)                  DriverGuard (Bitvisor)
                                (resides in memory)
          chain loader


     HardDisk(NTLDR)              Windows
現在の実装 1/2             Research Institute
                                for Secure Systems



• DriverGuardではGreenKillerによるWindows
  の解析を利用
• 起動時に守るべきドライバの認識
  • ドライバのIDとしてはタイムスタンプをIDとする
  • ドライバはntkrnlpa.exeのLoadDriver関数を通る
    ため、この関数をフック。
    • フックはint 03H (0xCC)命令例に置き換えることで例外
      をDriverGuardに通知。
現在の実装 2/2            Research Institute
                                for Secure Systems



• 守るべきメモリ空間はドライバからのハイパーコール
  で通知
  • ドライバの改変が必要
• 現在対象のNonCopyではExAllocatePoolWithTagで
  保護対象のメモリを確保していたが、他の領域で保護
  対象にできる
保護手順                                       Research Institute
                                                                                   for Secure Systems

                                             ② System Call “IopLoadDriver” loads a driver

           Windows kernel                                          Driver A
                            Hooked by DriverGard                  (protected
                                                                       )
① Boot parameter                                                  ③ Hyper Call
  tells a driver identification to protect                          tells a data region to protect

           DriverGuard
                          All Code Section becomes        A part of Data Section
                          Write-protected                 becomes Write-protected


           Memory
                                         Driver A      Driver A
                                         Code          Data


                                       Write Protect       Read/Write Protect
攻撃モデル         Research Institute
                      for Secure Systems



• 本来のドライバ以外から攻撃を検出
 • カーネル内で同じメモリ空間のドライバからの攻撃
メモリの保護               Research Institute
                                   for Secure Systems


• Stealth Breakpoints [ACSAC’05]の技術の活用
  • INT 03H (0xCC)に置き換えずにBreakpointの機能を実現。
    メモリ内容を変えないため、攻撃者から検出され難い。
  • ハイパーバイザーが守るべきメモリを管理するページテーブ
    ルを空にし、アクセスが起こるたびにページフォルトを起こす
    。
  • ページフォルトをハイパーバイザーが捉え、正しいアクセスか
    検証。問題が無ければアクセスを許す。
  • 問題点
    • 保護対象は4KBページ単位。
    • 保護対象外でも4KBページ内のアクセスは全て検証されてしまう。
Stealth Breakpoints                                    Research Institute
                                                                            for Secure Systems

Process A (Normal)
CR3             Page Table Directory
             0x88001000    0x88001000
             0x88002000    0x88002000
                                                          Physical Memory
             0x88003000    0x88003000
                 …             …                              …
                 …             …                          0x41101000
                                                          0x41102000
Process B (Malicious)
                                                          0x41103000
CR3             Page Table Directory                          …
             0x88001000    0x88001000                         …
             0x88002000    0x88002000
             0x88003000    0x88003000            ③ Page fault which is
                 …             …                 trapped by DriverGuard
                 …             …

 ② Malicious Access
                                   ① Deleted by DriverGuard
                                   after kernel set up.
攻撃検出後の動作                  Research Institute
                                   for Secure Systems



• 問題を起こしたプロセスをとらえ、無限ループに
  する
 • Low IRQL(Interrupt ReQuest Level)で無限ルー
   プのすることにより、他のプロセスは実行可能。但
   し、現状ではCPUをかなり食うので他のプロセス
   は遅くなる。
動作例1                    Research Institute
                        for Secure Systems



ログ表示ツールによる
Bitvisor(DriverGuard)
      の動作確認
動作例2      Research Institute
               for Secure Systems




 保護アドレスの確認


             攻撃ツールのCPU
             攻撃前使用量 (0%)



攻撃ツールからの保護
アドレスへの書き込み
動作例3        Research Institute
                 for Secure Systems




 保護アドレスの確認



             攻撃ツールのCPU
               攻撃後使用量
             (98%)Low IRQLに
               よる無限ループ
攻撃ツールからの保護   他のアプリも使えま
アドレスへの書き込み   すが、遅くなります。
現在DriverGuardの制約事項          Research Institute
                                   for Secure Systems



• OSはWindowsXP SP3のみ
• BIOSの設定によりマルチプロセッサをDisabled(無効)とする
• OSの設定により仮想メモリ機能を無効の状態とする
• OSの設定によりPSE(Page Size Extension)を無効の状態と
  する
• 保護領域のアドレス通知をすべて受け取るまでは保護領域は
  守れない
• OSであるWindowsXP SP3をアップデートした場合は動作を保
  証できない
現状の課題           Research Institute
                          for Secure Systems



• ドライバのIDとしてタイムスタンプは不適切
 • 実装が容易だが、改ざんされる恐れあり。
• ドライバでHyperCallする必要がある
 • ドライバの改良が必要
• 警告確認がCPUの負荷の向上で判り難い
 • ユーザ空間にハイパーバイザーの状態をポーリン
   グする手法も考慮したが、これが改ざんされる(検
   出漏れ)恐れがある
改良予定                      Research Institute
                                          for Secure Systems



• ドライバの識別子としてドライバコードのSHA1とする
 • ハイバーバイザーでSHA1の計算が必要
• ドライバの守るべき領域をヒープメモリとする
 • ヒープメモリをハイパーバイザーが実行時に検出する必要あり
 • ヒープは頻繁にアクセスされないと想定
• OSと非依存の警告
 • 悪意のあるアクセスを検出した場合、OSと非依存の警告
 • ハイパーバイザーがビープ音を鳴らすことやビデオドライバへ
   の直接警告する
   • Bitvisor 1.3で入った機能。(電通大の大山先生のADvisor)
     • 現状では対象ビデオカードが限定。 Intel 945GMはちょっと古い?
まとめ             Research Institute
                              for Secure Systems



• Windowsを対象としたドライバメモリの情報漏
  えいを防ぐ、DriverGuardの提案
 • Bitvisorベースとすることで、任意のインストール済
   みOSに対して、起動時にハイパーバイザーを挿
   入する
 • Driverを理解するためにVM Introspection機能の
   あるGreenKillerの活用
 • Stealth Breakpointsによるアクセス検出

More Related Content

PDF
私立大学情報教育協会大学 情報セキュリティ研究講習会
PDF
Report for S4x14 (SCADA Security Scientific Symposium 2014)
PDF
システムコールフックを使用した攻撃検出
PDF
2021 03-09-ac ri-nngen
PDF
Exploring the x64
PDF
ASPLOS2017: Building Durable Transactions with Decoupling for Persistent Memory
PDF
仮想化技術によるマルウェア対策とその問題点
PDF
OSC2011 Tokyo/Fall 濃いバナ(virtio)
私立大学情報教育協会大学 情報セキュリティ研究講習会
Report for S4x14 (SCADA Security Scientific Symposium 2014)
システムコールフックを使用した攻撃検出
2021 03-09-ac ri-nngen
Exploring the x64
ASPLOS2017: Building Durable Transactions with Decoupling for Persistent Memory
仮想化技術によるマルウェア対策とその問題点
OSC2011 Tokyo/Fall 濃いバナ(virtio)

What's hot (20)

PDF
Appearances are deceiving: Novel offensive techniques in Windows 10/11 on ARM
PDF
2015年度GPGPU実践基礎工学 第7回 シングルコアとマルチコア
PDF
perfを使ったpostgre sqlの解析(後編)
PDF
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
PDF
2015年度GPGPU実践基礎工学 第8回 並列計算の概念 (プロセスとスレッド)
PDF
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性
PDF
4章 Linuxカーネル - 割り込み・例外 2
PDF
モバイル(エッジ)向け ニューラルネットワーク推論エンジンの紹介
PDF
4章 Linuxカーネル - 割り込み・例外 5
PDF
Inside Android Security
PDF
FPGAベースのソーティングアクセラレータの設計と実装
PDF
Split device driver による仮想マシンモニタ上のセキュアOSの機能拡張
PDF
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
PDF
2章 Linuxカーネル - メモリ管理1
PDF
4章 Linuxカーネル - 割り込み・例外 4
PDF
2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術
PDF
ワイヤレス技術をアタックで検証 by 堀合啓一 - CODE BLUE 2015
PDF
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
PPTX
地理分散DBについて
PDF
Reconf 201901
Appearances are deceiving: Novel offensive techniques in Windows 10/11 on ARM
2015年度GPGPU実践基礎工学 第7回 シングルコアとマルチコア
perfを使ったpostgre sqlの解析(後編)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
2015年度GPGPU実践基礎工学 第8回 並列計算の概念 (プロセスとスレッド)
[JPCERT/CC POC Meeting] 研究紹介 + DLLハイジャックの脆弱性
4章 Linuxカーネル - 割り込み・例外 2
モバイル(エッジ)向け ニューラルネットワーク推論エンジンの紹介
4章 Linuxカーネル - 割り込み・例外 5
Inside Android Security
FPGAベースのソーティングアクセラレータの設計と実装
Split device driver による仮想マシンモニタ上のセキュアOSの機能拡張
ZynqMPのブートとパワーマネージメント : (ZynqMP Boot and Power Management)
2章 Linuxカーネル - メモリ管理1
4章 Linuxカーネル - 割り込み・例外 4
2015年度GPGPU実践基礎工学 第6回 ソフトウェアによるCPUの高速化技術
ワイヤレス技術をアタックで検証 by 堀合啓一 - CODE BLUE 2015
2015年度GPGPU実践基礎工学 第5回 ハードウェアによるCPUの高速化技術
地理分散DBについて
Reconf 201901
Ad

Viewers also liked (7)

PDF
Technology Used in Virtual Machine (Jan 2008)
PDF
ACM SOSP11 & SOCC11 & PLOS11 Report
PDF
LinuxCon Japan 2010 suzaki
PDF
EuroSec2012 "Effects of Memory Randomization, Sanitization and Page Cache on ...
PDF
Hot sec10 slide-suzaki
PDF
Cloud ComputingにおけるVMのセキュリティ(14/Jan/2010)
PDF
EPT と TLB でしくじった話
Technology Used in Virtual Machine (Jan 2008)
ACM SOSP11 & SOCC11 & PLOS11 Report
LinuxCon Japan 2010 suzaki
EuroSec2012 "Effects of Memory Randomization, Sanitization and Page Cache on ...
Hot sec10 slide-suzaki
Cloud ComputingにおけるVMのセキュリティ(14/Jan/2010)
EPT と TLB でしくじった話
Ad

Similar to Bitvisorをベースとした既存Windowsのドライバメモリ保護 (20)

PDF
Cloud VM Security on Cloud Computingi 20090311
PDF
Virtual Machine Security on Cloud Computing 20090311
PDF
JITA(日本産業技術振興協会)講演会資料:クラウドコンピューティングにおける仮想マシンのセキュリティ
PDF
カーネル読書会:クラウドコンピューティングにおける仮想マシンのセキュリティ
PDF
HeapStats: Introduction and Technical Preview
PDF
オープンソース統合監視ソフトウェア Zabbix 2.0によるクラウド監視
PDF
2009-03-24 第3回セキュアVMシンポジウム
PDF
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
PDF
System Center Operations Managerによる仮想環境の高度な管理
PDF
Amazon Ec2 S3実践セミナー 2009.07
PDF
hbstudy#06
PDF
プラットフォームセキュリティin Windows ブートタイム保護 概要編
PDF
Rescale ScaleX講習会 ~AWSクラウド環境におけるHPC利用
PDF
Windows Azure で 2/29 に起こった問題のまとめ
PDF
仮想化技術の基本の基本
PPTX
Snapdragon-SCORER
PDF
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
PDF
[data security showcase Sapporo 2015] D22:今求められるセキュリティレベルとFireEye適応型防御 by ファイ...
PDF
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
PPTX
本当は恐ろしい分散システムの話
Cloud VM Security on Cloud Computingi 20090311
Virtual Machine Security on Cloud Computing 20090311
JITA(日本産業技術振興協会)講演会資料:クラウドコンピューティングにおける仮想マシンのセキュリティ
カーネル読書会:クラウドコンピューティングにおける仮想マシンのセキュリティ
HeapStats: Introduction and Technical Preview
オープンソース統合監視ソフトウェア Zabbix 2.0によるクラウド監視
2009-03-24 第3回セキュアVMシンポジウム
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
System Center Operations Managerによる仮想環境の高度な管理
Amazon Ec2 S3実践セミナー 2009.07
hbstudy#06
プラットフォームセキュリティin Windows ブートタイム保護 概要編
Rescale ScaleX講習会 ~AWSクラウド環境におけるHPC利用
Windows Azure で 2/29 に起こった問題のまとめ
仮想化技術の基本の基本
Snapdragon-SCORER
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
[data security showcase Sapporo 2015] D22:今求められるセキュリティレベルとFireEye適応型防御 by ファイ...
SaaS/クラウドコンピューティングでのオープンソース活用とセキュリティ
本当は恐ろしい分散システムの話

More from Kuniyasu Suzaki (20)

PDF
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
PDF
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
PDF
IETF111 RATS: Remote Attestation ProcedureS 報告
PDF
Slide presented at FIT 2021 Top Conference (Reboot Oriented IoT, ACSAC2021)
PDF
ACSAC2020 "Return-Oriented IoT" by Kuniyasu Suzaki
PDF
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
PDF
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
PDF
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
PDF
RISC-V-Day-Tokyo2018-suzaki
PDF
BMC: Bare Metal Container @Open Source Summit Japan 2017
PDF
USENIX NSDI17 Memory Disaggregation
PDF
Io t security-suzki-20170224
PDF
”Bare-Metal Container" presented at HPCC2016
PDF
Kernel Memory Protection by an Insertable Hypervisor which has VM Introspec...
PDF
Slide used at ACM-SAC 2014 by Suzaki
PDF
OSセキュリティチュートリアル
PDF
Nested Virtual Machines and Proxies
PDF
Security on cloud storage and IaaS (NSC: Taiwan - JST: Japan workshop)
PDF
Linux Symposium 2011 "Analysis of Disk Access Patterns on File Systems for Co...
PDF
EuroSec2011 Slide "Memory Deduplication as a Threat to the Guest OS" by Kuniy...
RISC-Vのセキュリティ技術(TEE, Root of Trust, Remote Attestation)
遠隔デバイスとの信頼を築くための技術とその標準(TEEP RATS)
IETF111 RATS: Remote Attestation ProcedureS 報告
Slide presented at FIT 2021 Top Conference (Reboot Oriented IoT, ACSAC2021)
ACSAC2020 "Return-Oriented IoT" by Kuniyasu Suzaki
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
Hardware-assisted Isolated Execution Environment to run trusted OS and applic...
RISC-V-Day-Tokyo2018-suzaki
BMC: Bare Metal Container @Open Source Summit Japan 2017
USENIX NSDI17 Memory Disaggregation
Io t security-suzki-20170224
”Bare-Metal Container" presented at HPCC2016
Kernel Memory Protection by an Insertable Hypervisor which has VM Introspec...
Slide used at ACM-SAC 2014 by Suzaki
OSセキュリティチュートリアル
Nested Virtual Machines and Proxies
Security on cloud storage and IaaS (NSC: Taiwan - JST: Japan workshop)
Linux Symposium 2011 "Analysis of Disk Access Patterns on File Systems for Co...
EuroSec2011 Slide "Memory Deduplication as a Threat to the Guest OS" by Kuniy...

Bitvisorをベースとした既存Windowsのドライバメモリ保護

  • 1. Research Institute for Secure Systems Bitvisorをベースとした 既存Windowsのドライバメモリ保護 須崎 有康、八木 豊志樹、古原 和邦、 石山 智祥、村上 純一、鵜飼 裕司 (独)産業技術総合研究所 セキュアシステム研究部門 フォティーンフォティ技術研究所
  • 2. 概要 Research Institute for Secure Systems • 背景 • ドライバメモリを守る理由 • ドライバメモリ保護に必要な技術 • インストール済みのOSの外部から挿入可能なハイパ ーバイザー • VM Introspection • 関連研究 • 現状 • メモリの保護はStealth breakpointsを活用 • 改善計画 • まとめ
  • 3. 背景 Research Institute for Secure Systems • クライアントおよびサーバ双方からの情報漏えいを防止するアク セス制御技術の研究開発 • 総務省による戦略的情報通信研究開発推進制度(SCOPE) H23-25 • 産総研、サイエンスパーク、(FFRI) • Windows上でアクセス制御を行うNonCopy (サイエンスパーク 社製品)を活用 • NonCopyはドライバによりファイルコピー、Screen Cut&Paste、印刷な どを行うWindows APIを抑制する。 Internet ネットワーク メール添付、 利用禁止 プリンタ FTP NonCopyアーキテクチャ 印刷禁止 コピー&ペース アプリケーション ト デフォルトで は閲覧のみ オペレーティングシステム 禁止 NonCopy Driverwareコア・エンジン NonCopyアクセス制御 ネットワーク 制御モジュール プリンタ ファイルシステム HID LBCAS 制御モジュール 制御モジュール 制御モジュール 書き込み禁止 This is This is ライティング ネットワーク プリンタ ストレージデバイス マウス/キーボード a pen. a pencil ソフト ハードウェア
  • 4. ドライバへの攻撃 Research Institute for Secure Systems • ドライバの中に暗号鍵がある。ドライバは長時間メモリに滞在す るため、漏えいの危険性がある。 • メモリに長期滞在するデータの危険性は[Chow, USENIX Sec 04]より指 摘されている。 • ハイパーバイザーでOSの下位よりドライバを監視して不正アクセ スを防御する。 ユーザ空間 • ハイパーバイザーで守るこ アプリ アプリ とで、OSをだます攻撃にも カーネル空間 覗き見不可 対応する。 × 改ざん不可 カーネル × ドライバ 鍵 × ドライバ 鍵の格納メモリの ドライバメモリのwrite監視。 read/writeを不可にする。 改ざん検知。 ドライバ自体の読出しの み許可。 ハイパーバイザー ハードウェア
  • 5. ドライバメモリ保護に 必要な技術 Research Institute for Secure Systems • ハイパーバイザーに必要な技術 1. インストール済みのOSに対して外部から挿入可 能なハイパーバイザー 2. VM Introspection • 関連研究
  • 6. Windowsドライバ保護に必要 な技術 1(デバイス管理問題) Research Institute for Secure Systems • 多くのハイパーバイザーは複数OSを1台のマシンで起動 するために使われている • 例:IaaSクラウド • 問題点 • ホストOSが必要 • 管理ソフトウェアの大規模化 • VMware ESXiは5.xよりホストOS無しになったが、管理サーバが必要 • 基本的にデバイスがホストOSの管理下になる • VMデバイスモデルが固定 • デバイスはVM中の仮想デバイスで共有される • プレインストールのOSとは異なる • Xen, KVM, QEMUはQEMU Deviceモデルが標準
  • 7. 既存のOSへの ハイパーバイザー挿入 Research Institute for Secure Systems • 既存のOSが想定している物理デバイスをVM 環境内で提供する必要がある。 • VMデバイスモデルが同じにできればよい • 各PC毎にデバイスをモデルを用意しなければならない • VMからデバイスを直接アクセス • I/O PassThrough。ハードウェアが限定。ハイパーバイ ザーでも対応が必要 • Para-PassThrough。Bitvisorで提供される
  • 8. Windowsドライバ保護に必要 な技術 2(VM Introspection) Research Institute for Secure Systems • ハイパーバイザーがドライバの動作、メモリ空間 を認識する必要がある。 • 守るべきドライバが組み込まれたことの認識 • Linux: create_module, init_module システムコールなど • Windows: NtLoadDriver システムコールなど。 • 守るべきメモリ空間の認識 • 各種の実装あり。
  • 9. VM Introspection Research Institute for Secure Systems • Ether [GITech Wenke Leeグループ, CCS’08] • XenベースのVM Introspection。オープンソース。 対象OSはWindows XP SP2 • http://ether.gtisc.gatech.edu/source.html • GreenKiller [FFRI Junichi Murakami, BlackHat’08] • BitvisorベースのVM Introspection。対象OSは Windows XP SP3 • Alkanet [立命館大学 大月さん、毛利先生, CSS’11] • Bitvisorベースのシステムコールトレース。対象OS はWindows XP SP3
  • 10. ドライバ保護の類似研究 Research Institute for Secure Systems • Nooks [M.Swift, SOSP’03] • 障害時にリカバーがメイン。 • HUKO[NDSS’11] • 信頼できないドライバの保護。ドライバ用のメモリ空間とカ ーネル用のメモリ空間の分離。CR3の値を変える。 • Windows7の Driver Isolation • プリンタがメイン。 • OS2 • IA32アーキテクチャの4つのリング構造でカーネルとデバイ スドライバを分ける。
  • 11. ドライバメモリを保護する ハイパーバイザー Research Institute for Secure Systems • 既存OSへの挿入可能性、VM Introspectionを 考慮してGreen Killerベースで開発。 • DriverGurad と命名。 • 動作手順 • USBからハイパーバイザーを起動後、ハードディ スクOSの起動 • ハイパーバイザーのドライバ認識 • 保護するメモリ領域の認識 • 攻撃に対する防御 • Stealth Breakpoints技術
  • 12. 起動手順 Research Institute for Secure Systems • ハードディスクにインストール済みのOSに対して、起 動時にDriverGuardを挿入する • Chain load技術 • 類似の技術にはLinuxのkexcシステムコールを使った kbootがある。PS3Linuxで使われていた。 BIOS (USB is the first bootable device) Go back to MBR USB(GRUB) DriverGuard (Bitvisor) (resides in memory) chain loader HardDisk(NTLDR) Windows
  • 13. 現在の実装 1/2 Research Institute for Secure Systems • DriverGuardではGreenKillerによるWindows の解析を利用 • 起動時に守るべきドライバの認識 • ドライバのIDとしてはタイムスタンプをIDとする • ドライバはntkrnlpa.exeのLoadDriver関数を通る ため、この関数をフック。 • フックはint 03H (0xCC)命令例に置き換えることで例外 をDriverGuardに通知。
  • 14. 現在の実装 2/2 Research Institute for Secure Systems • 守るべきメモリ空間はドライバからのハイパーコール で通知 • ドライバの改変が必要 • 現在対象のNonCopyではExAllocatePoolWithTagで 保護対象のメモリを確保していたが、他の領域で保護 対象にできる
  • 15. 保護手順 Research Institute for Secure Systems ② System Call “IopLoadDriver” loads a driver Windows kernel Driver A Hooked by DriverGard (protected ) ① Boot parameter ③ Hyper Call tells a driver identification to protect tells a data region to protect DriverGuard All Code Section becomes A part of Data Section Write-protected becomes Write-protected Memory Driver A Driver A Code Data Write Protect Read/Write Protect
  • 16. 攻撃モデル Research Institute for Secure Systems • 本来のドライバ以外から攻撃を検出 • カーネル内で同じメモリ空間のドライバからの攻撃
  • 17. メモリの保護 Research Institute for Secure Systems • Stealth Breakpoints [ACSAC’05]の技術の活用 • INT 03H (0xCC)に置き換えずにBreakpointの機能を実現。 メモリ内容を変えないため、攻撃者から検出され難い。 • ハイパーバイザーが守るべきメモリを管理するページテーブ ルを空にし、アクセスが起こるたびにページフォルトを起こす 。 • ページフォルトをハイパーバイザーが捉え、正しいアクセスか 検証。問題が無ければアクセスを許す。 • 問題点 • 保護対象は4KBページ単位。 • 保護対象外でも4KBページ内のアクセスは全て検証されてしまう。
  • 18. Stealth Breakpoints Research Institute for Secure Systems Process A (Normal) CR3 Page Table Directory 0x88001000 0x88001000 0x88002000 0x88002000 Physical Memory 0x88003000 0x88003000 … … … … … 0x41101000 0x41102000 Process B (Malicious) 0x41103000 CR3 Page Table Directory … 0x88001000 0x88001000 … 0x88002000 0x88002000 0x88003000 0x88003000 ③ Page fault which is … … trapped by DriverGuard … … ② Malicious Access ① Deleted by DriverGuard after kernel set up.
  • 19. 攻撃検出後の動作 Research Institute for Secure Systems • 問題を起こしたプロセスをとらえ、無限ループに する • Low IRQL(Interrupt ReQuest Level)で無限ルー プのすることにより、他のプロセスは実行可能。但 し、現状ではCPUをかなり食うので他のプロセス は遅くなる。
  • 20. 動作例1 Research Institute for Secure Systems ログ表示ツールによる Bitvisor(DriverGuard) の動作確認
  • 21. 動作例2 Research Institute for Secure Systems 保護アドレスの確認 攻撃ツールのCPU 攻撃前使用量 (0%) 攻撃ツールからの保護 アドレスへの書き込み
  • 22. 動作例3 Research Institute for Secure Systems 保護アドレスの確認 攻撃ツールのCPU 攻撃後使用量 (98%)Low IRQLに よる無限ループ 攻撃ツールからの保護 他のアプリも使えま アドレスへの書き込み すが、遅くなります。
  • 23. 現在DriverGuardの制約事項 Research Institute for Secure Systems • OSはWindowsXP SP3のみ • BIOSの設定によりマルチプロセッサをDisabled(無効)とする • OSの設定により仮想メモリ機能を無効の状態とする • OSの設定によりPSE(Page Size Extension)を無効の状態と する • 保護領域のアドレス通知をすべて受け取るまでは保護領域は 守れない • OSであるWindowsXP SP3をアップデートした場合は動作を保 証できない
  • 24. 現状の課題 Research Institute for Secure Systems • ドライバのIDとしてタイムスタンプは不適切 • 実装が容易だが、改ざんされる恐れあり。 • ドライバでHyperCallする必要がある • ドライバの改良が必要 • 警告確認がCPUの負荷の向上で判り難い • ユーザ空間にハイパーバイザーの状態をポーリン グする手法も考慮したが、これが改ざんされる(検 出漏れ)恐れがある
  • 25. 改良予定 Research Institute for Secure Systems • ドライバの識別子としてドライバコードのSHA1とする • ハイバーバイザーでSHA1の計算が必要 • ドライバの守るべき領域をヒープメモリとする • ヒープメモリをハイパーバイザーが実行時に検出する必要あり • ヒープは頻繁にアクセスされないと想定 • OSと非依存の警告 • 悪意のあるアクセスを検出した場合、OSと非依存の警告 • ハイパーバイザーがビープ音を鳴らすことやビデオドライバへ の直接警告する • Bitvisor 1.3で入った機能。(電通大の大山先生のADvisor) • 現状では対象ビデオカードが限定。 Intel 945GMはちょっと古い?
  • 26. まとめ Research Institute for Secure Systems • Windowsを対象としたドライバメモリの情報漏 えいを防ぐ、DriverGuardの提案 • Bitvisorベースとすることで、任意のインストール済 みOSに対して、起動時にハイパーバイザーを挿 入する • Driverを理解するためにVM Introspection機能の あるGreenKillerの活用 • Stealth Breakpointsによるアクセス検出