Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
ベアメタルクラウドにおける
物理ハードウェア保護に関する研究
深井貴明 (旧所属: 筑波大学 加藤研究室 / 東京大学 品川研究室)
2018/11/28 at BitVisor Summit 7
今日の発表目的
• BitVisor に関する研究で博士号取得できたので
その研究内容(の一部)を紹介
• BitVisor の Needs based な研究の紹介
2
Publication List
公表論文 ( 査読付き雑誌論文 )
• 1. Takaaki Fukai, Takahiro Shinagawa, Kazuhiko Kato, "Live Migration in
Bare-metal Cl...
ベアメタルクラウドにおける
物理ハードウェア保護に関する研究
深井貴明 (旧所属: 筑波大学 加藤研究室 / 東京大学 品川研究室)
2018/11/28 at BitVisor Summit 7
ベアメタルクラウド
5
ベアメタルクラウド
Data
Center
OS
一般的なIaaSクラウド
Data
Center
VMM
VM
OS
VM
OS
= 物理マシンを提供する IaaS クラウド
ベアメタルクラウド
6
ベアメタルクラウド
Data
Center
OS
物理マシンを提供
•マシンの最大性能
•物理ハードウェアの機能
一般的なIaaSクラウド
Data
Center
VMM
VM
OS
VM
OS
= 物理マシンを提供する...
ハードウェアへの攻撃の可能性
8
Malicious User
Rootkit インストール
ハードウェア動作不能
OS
User は OS の特権権限をもつため,
OS→デバイスのアクセスはやり放題
保護すべきデータ
9
不揮発で重要なデータ
• MAC アドレス
• ファームウェア
• スペック情報 etc…
Hardware
不揮発データ
これが改ざんされると…
正しく動作しない
/起動しない
ルートキットが
インストールされる
ベアメタルクラウドでの脅威モデル
10
Malicious User
Vendor
Rootkit インストール
不揮発データ破壊
OS
User
User は OS の特権権限をもつため,
OS→デバイスのアクセスはやり放題
ベアメタルクラウドでの脅威モデル
11
Malicious User
Vendor
OS
破壊 → 永続的なDoS
(Permanent DoS)
User
Rootkit インストール
不揮発データ破壊
ベアメタルクラウドでの脅威モデル
12
Malicious User
Vendor
OS
破壊 → 永続的なDoS
(Permanent DoS)
OS
User
データ盗難,
破壊
Rootkit
OS
Rootkit インストール
不揮発デ...
これまでの保護手法 (1/2)
ハードウェアによる保護機構
e.g.) チップセットによる BIOS ROM の保護
• 現実のマシンで有効にされていないものがある
• 脆弱性の可能性 [Kallenberg, et al. 2015]
htt...
これまでの保護手法 (2/2)
データ書き戻しの問題点
Idea: マシン返却後にデータを書き戻す
問題: 返却時に既に攻撃を受けており,書き戻し処理が
正常にできない可能性がある
14
不揮発
メモリ
Restore
Device
不揮発
メ...
ハードウェアセキュリティの
関連研究
• VIPER [Yanlin, et al. CCS 2011]
• デバイスのレスポンスタイムの測定によるマルウェア検知手法
• OS による手法
• IOCheck[Fengwei, et al. E...
提案手法
• 不揮発データへの書き込み I/O をブロック
• ハードウェアの保護機構を有効化
• その他機能への I/O は極力パススルー
16
Hardware
BitVisor
Guest OS
不揮発
データ
その他機能
= Read ...
提案手法
• 不揮発データへの書き込み I/O をブロック
• ハードウェアの保護機構を有効化
• その他機能への I/O は極力パススルー
17
Hardware
BitVisor
Guest OS
不揮発
データ
その他機能
= Read ...
不揮発データへのアクセス方法
18
不揮発データ
メモリ
OS
I/O 空間 コマンドキュー
メモリアクセス I/O 命令 コマンド転送
コマンド実行
デバイス
コマンド受信•Memory Mapped
不揮発データ
•レジスタ
レジスタ
メモリアクセスへの対応
19
不揮発
データ
ゲスト物理アドレス 実物理アドレス
ストレートマッピング
=Write access
Nested Paging によるメモリページ権限の管理
Write 権限なし
全アクセス権限あり
VMExit...
I/O 命令によるアクセスへの対応
20
不揮発
データ
I/O 空間
=Write access
I/O ポート単位でのアクセス制御
パススルー
レジスタ
レジスタ
レジスタ
レジスタ
レジスタゲスト
OS
VMExit の
トリガーを設定
...
コマンドを用いたアクセスへの対応
• コマンドキューをシャドーイング
• ファームウェアを変更し得るコマンドはダミーコマンドに
差し替える
21
Cmd Dummy Cmd
Cmd Cmd Cmd
Copy
Replace
Copy
Devic...
プロトタイプ実装
• BitVisor をベースに実装
• BIOS ROM と Intel NIC の保護に対応
• チップセット の BIOS ROM 保護機能の有効化
• BIOS ROM と NIC の不揮発データへのアクセスを遮断
22
有効化した保護機能
デバイス 保護機能
BIOS ROM 書き込み許可フラグ
BIOS ROM 書き込み保護
BIOS ROM SPI 領域保護
BIOS ROM SPI 設定ロック
23
書き込みをブロックした
インターフェイス
デバイス 保護機能
BIOS ROM SPI インターフェイス (レジスタ経由)
Intel NIC EERW (レジスタ)
Intel NIC SPI インターフェイス (レジスタ経由)
Intel ...
評価
保護の評価と性能の評価
<評価環境>
• CPU: Intel Xeon E5-2603 v4 (1.70GHz)
• Memory: 16GB
• ChipSet: Intel C610/X99
• NIC : Intel 82574L...
保護の評価
ハードウェアの保護機構について (CHIPSEC で評価)
• BitVisor 無 … 3つの機能が無効
• BitVisor 有 … 全ての機能が有効
NIC の不揮発データ書き換えテスト
(`ethtool` での MAC ア...
The protective functions
On bare metal: 3 “FAILED”s
27
# chipsec_main
[...]
[!] None of the SPI protected ranges write-pro...
The protective functions
On BitVisor: 3 “FAILED”s → 0 “FAILED”s
28
# chipsec_main
[...]
[+] PASSED: BIOS is write protecte...
NIC の不揮発性メモリの改変
29
˜# ethtool -e enp3s0 offset 0 length 6
Offset Values
------ ------
0x0000: 00 1b 21 53 84 3f
˜# ethtool...
NIC の不揮発性メモリの改変
30
˜# ethtool -e enp3s0 offset 0 length 6
Offset Values
------ ------
0x0000: 00 1b 21 53 84 3f
˜# ethtool...
ネットワークレイテンシ
31
TCP
UDP
Latency (us)
Netperf により測定
ネットワークレイテンシ
32
TCP
UDP
< 1% overhead
≈ 24% overhead
Latency (us)
Netperf により測定
VMExit の数
Proposal KVM
Write to MSR - 39854.7
External Interrupt - 33094.5
I/O instruction - 10473.5
EPT Violation 28239.3...
議論:
メモリアクセス権限設定の粒度の課題
34
実物理アドレス
無害なアクセスでも
VMExit 発生
4KB 単位で指定
不揮発
データ
その他
機能
不要なVMExitを避けるには
1.不揮発データのページに
他の機能を置かない
(デバイ...
まとめ
• ベアメタルクラウドでハードウェア保護するBitVisor
• 悪意のあるユーザーからの攻撃を想定
• 検知ではなく防止ができる
• 実際にハードウェア保護機構を実現
• ethtool などでの書き換えは防止
• ハードウェアがもつ...
今後の課題
• より多くのデバイスをサポート
• e.g. NVMe, 10 GbE
• デバイス設計による性能への影響の比較
• より実運用に近い環境での評価
• OpenStack などで管理された環境
• 実際のベアメタルクラウドでの評価...
余談: 研究の経緯
37
• 後輩が実験で I/O をランダムに改変
• なんかハードウェアが壊れた!
• もしかして: EEPROM ぶっ壊したんじゃね?
• それベアメタルクラウドで起きたらやばくね?
BitVisor Advent Calendar
振り返り & 宣伝 & お願い
38
Q.
BitVisor Advent Calendar
読んだことありますか?
https://qiita.com/advent-calendar/2017/bitvisor
39
2015年実績
40
2016年実績
41
2017年実績
42
2015年 Subscriptions Ranking
43
2016年 Subscriptions Ranking
44
2017 年 Subscriptions Ranking
45
2015年 Stocks Ranking
46
2016年 Stocks Ranking
47
2017年 Stocks Ranking
48
2015年 Contributors
• hdk_2: 9 本
• deep_tkkn: 8本
• shina: 3本
• y_oyama: 2本
• furandon_pig: 1本
• ioriveur: 1本
• nvsofts: 1本
...
2016年 Contributors
• hdk_2: 11 本
• deep_tkkn: 6本
• mmi: 3本
• RKX1209: 3本
• lti0: 2本
50
2017年 Contributors
• hdk_2: 10 本
• deep_tkkn: 6本
• mmi: 4本
• y_oyama: 2本
• retrage01: 1本
• RKX1209: 1本
• YsuOS: 1本
51
BitVisorタグの記事 Contributors
52
(Advent Calendar 以外も含む)
https://qiita.com/tags/bitvisor
今年も作りました!
53
今年は…
• 僕はあまりかけないので,皆さんにぜひ書いてほしい…
• 1本くらい書きたいけど…
• 来年は誰かとりまとめ引き継いでほしい…
54
記事案
• 本日の発表内容 (これで7本ですね)
• 本日の議論の内容
• telnet dbgsh の使い方
• NVMe ドライバの暗号化オプション指定方法
• BitVisor で tsc が常に 0 を返すようにするとどうなる?
• b...
Thank you
56
Upcoming SlideShare
Loading in …5
×

BitVisor Summit 7「8. ベアメタルクラウドにおけるハードウェア保護に関する研究 & Advent Calendar について」

195 views

Published on

深井 貴明(元 筑波大学)

BitVisor を用いた研究の一つとして、昨年12月のCloudComで発表した研究内容を紹介します(発表した論文はこちらです https://ieeexplore.ieee.org/document/8241126 )。内容はベアメタルクラウドで提供する物理マシンのハードウェアに対するユーザーからの攻撃の可能性についての説明、とその防御手法としてBitVisorを用いた手法を提案するものです。

また、これまで3年間続けてきましたAdvent Calendar の振り返りと今年分の寄稿のお願いをしたいと思います。

Published in: Software
  • Be the first to comment

  • Be the first to like this

BitVisor Summit 7「8. ベアメタルクラウドにおけるハードウェア保護に関する研究 & Advent Calendar について」

  1. 1. ベアメタルクラウドにおける 物理ハードウェア保護に関する研究 深井貴明 (旧所属: 筑波大学 加藤研究室 / 東京大学 品川研究室) 2018/11/28 at BitVisor Summit 7
  2. 2. 今日の発表目的 • BitVisor に関する研究で博士号取得できたので その研究内容(の一部)を紹介 • BitVisor の Needs based な研究の紹介 2
  3. 3. Publication List 公表論文 ( 査読付き雑誌論文 ) • 1. Takaaki Fukai, Takahiro Shinagawa, Kazuhiko Kato, "Live Migration in Bare-metal Clouds," IEEE Transactions on Cloud Computing (Accepted for publication). 公表論文 ( 査読付き国際会議論文 ) • 1. Takaaki Fukai, Satoru Takekoshi, Kohei Azuma, Takahiro Shinagawa, Kazuhiko Kato, “BMCArmor: A Hardware Protection Scheme for Bare- metal Clouds,” In Proceedings of the 9th IEEE International Conference on Cloud Computing Technology and Science on December 2017, IEEE. • 2. Takaaki Fukai, Yushi Omote, Takahiro Shinagawa, Kazuhiko Kato, “OS- Independent Live Migration Scheme for Bare-metal Clouds,” In Proceedings of the 8th IEEE/ACM International Conference on Utility and Cloud Computing on December 2015 (pp. 80-89). IEEE. Best Paper 3
  4. 4. ベアメタルクラウドにおける 物理ハードウェア保護に関する研究 深井貴明 (旧所属: 筑波大学 加藤研究室 / 東京大学 品川研究室) 2018/11/28 at BitVisor Summit 7
  5. 5. ベアメタルクラウド 5 ベアメタルクラウド Data Center OS 一般的なIaaSクラウド Data Center VMM VM OS VM OS = 物理マシンを提供する IaaS クラウド
  6. 6. ベアメタルクラウド 6 ベアメタルクラウド Data Center OS 物理マシンを提供 •マシンの最大性能 •物理ハードウェアの機能 一般的なIaaSクラウド Data Center VMM VM OS VM OS = 物理マシンを提供する IaaS クラウド VM の利用 •OS非依存のマシン管理 •資源の多重化
  7. 7. ハードウェアへの攻撃の可能性 8 Malicious User Rootkit インストール ハードウェア動作不能 OS User は OS の特権権限をもつため, OS→デバイスのアクセスはやり放題
  8. 8. 保護すべきデータ 9 不揮発で重要なデータ • MAC アドレス • ファームウェア • スペック情報 etc… Hardware 不揮発データ これが改ざんされると… 正しく動作しない /起動しない ルートキットが インストールされる
  9. 9. ベアメタルクラウドでの脅威モデル 10 Malicious User Vendor Rootkit インストール 不揮発データ破壊 OS User User は OS の特権権限をもつため, OS→デバイスのアクセスはやり放題
  10. 10. ベアメタルクラウドでの脅威モデル 11 Malicious User Vendor OS 破壊 → 永続的なDoS (Permanent DoS) User Rootkit インストール 不揮発データ破壊
  11. 11. ベアメタルクラウドでの脅威モデル 12 Malicious User Vendor OS 破壊 → 永続的なDoS (Permanent DoS) OS User データ盗難, 破壊 Rootkit OS Rootkit インストール 不揮発データ破壊
  12. 12. これまでの保護手法 (1/2) ハードウェアによる保護機構 e.g.) チップセットによる BIOS ROM の保護 • 現実のマシンで有効にされていないものがある • 脆弱性の可能性 [Kallenberg, et al. 2015] https://bromiumlabs.files.wordpress.com/2015/01/speed_racer_whitepaper.pdf • 多くの周辺デバイスは保護機構を持っていない 13
  13. 13. これまでの保護手法 (2/2) データ書き戻しの問題点 Idea: マシン返却後にデータを書き戻す 問題: 返却時に既に攻撃を受けており,書き戻し処理が 正常にできない可能性がある 14 不揮発 メモリ Restore Device 不揮発 メモリ Device Restore Does not work Blocked by rootkit
  14. 14. ハードウェアセキュリティの 関連研究 • VIPER [Yanlin, et al. CCS 2011] • デバイスのレスポンスタイムの測定によるマルウェア検知手法 • OS による手法 • IOCheck[Fengwei, et al. ESORICS 2014] • SMM によるデバイスとファームウェアの検査 (SMM = System Management Mode, CPU内の最高特権) • BIOSによる手法 15
  15. 15. 提案手法 • 不揮発データへの書き込み I/O をブロック • ハードウェアの保護機構を有効化 • その他機能への I/O は極力パススルー 16 Hardware BitVisor Guest OS 不揮発 データ その他機能 = Read access = Write access 保護機構有効化
  16. 16. 提案手法 • 不揮発データへの書き込み I/O をブロック • ハードウェアの保護機構を有効化 • その他機能への I/O は極力パススルー 17 Hardware BitVisor Guest OS 不揮発 データ その他機能 = Read access = Write access 保護機構有効化
  17. 17. 不揮発データへのアクセス方法 18 不揮発データ メモリ OS I/O 空間 コマンドキュー メモリアクセス I/O 命令 コマンド転送 コマンド実行 デバイス コマンド受信•Memory Mapped 不揮発データ •レジスタ レジスタ
  18. 18. メモリアクセスへの対応 19 不揮発 データ ゲスト物理アドレス 実物理アドレス ストレートマッピング =Write access Nested Paging によるメモリページ権限の管理 Write 権限なし 全アクセス権限あり VMExit が発生 (OS → BitVisor に処理が遷移) =Read access ゲスト OS
  19. 19. I/O 命令によるアクセスへの対応 20 不揮発 データ I/O 空間 =Write access I/O ポート単位でのアクセス制御 パススルー レジスタ レジスタ レジスタ レジスタ レジスタゲスト OS VMExit の トリガーを設定 =Read access VMExit が発生 (OS → BitVisor に処理が遷移)
  20. 20. コマンドを用いたアクセスへの対応 • コマンドキューをシャドーイング • ファームウェアを変更し得るコマンドはダミーコマンドに 差し替える 21 Cmd Dummy Cmd Cmd Cmd Cmd Copy Replace Copy Device BitVisor OS Cmd Cmd Cmd OS Device <シャドーイングなし> <シャドーイングあり>
  21. 21. プロトタイプ実装 • BitVisor をベースに実装 • BIOS ROM と Intel NIC の保護に対応 • チップセット の BIOS ROM 保護機能の有効化 • BIOS ROM と NIC の不揮発データへのアクセスを遮断 22
  22. 22. 有効化した保護機能 デバイス 保護機能 BIOS ROM 書き込み許可フラグ BIOS ROM 書き込み保護 BIOS ROM SPI 領域保護 BIOS ROM SPI 設定ロック 23
  23. 23. 書き込みをブロックした インターフェイス デバイス 保護機能 BIOS ROM SPI インターフェイス (レジスタ経由) Intel NIC EERW (レジスタ) Intel NIC SPI インターフェイス (レジスタ経由) Intel NIC Memory Mapped な不揮発領域データ 24
  24. 24. 評価 保護の評価と性能の評価 <評価環境> • CPU: Intel Xeon E5-2603 v4 (1.70GHz) • Memory: 16GB • ChipSet: Intel C610/X99 • NIC : Intel 82574L • OS: Ubuntu 16.04.2 with Linux 4.4.0 25
  25. 25. 保護の評価 ハードウェアの保護機構について (CHIPSEC で評価) • BitVisor 無 … 3つの機能が無効 • BitVisor 有 … 全ての機能が有効 NIC の不揮発データ書き換えテスト (`ethtool` での MAC アドレスの書き換えによる評価) • BitVisor 無 … 書き換え成功 • BitVisor 有 … 書き換え失敗 (保護成功) 26
  26. 26. The protective functions On bare metal: 3 “FAILED”s 27 # chipsec_main [...] [!] None of the SPI protected ranges write-protect BIOS region [...] [CHIPSEC] Modules failed 2: [-] FAILED: chipsec.modules.common.bios_wp [-] FAILED: chipsec.modules.common.spi_lock [...]
  27. 27. The protective functions On BitVisor: 3 “FAILED”s → 0 “FAILED”s 28 # chipsec_main [...] [+] PASSED: BIOS is write protected (by SMM and SPI Protected Ranges) [...] [CHIPSEC] Modules failed 0: [...] [+] PASSED: chipsec.modules.common.bios_wp [+] PASSED: chipsec.modules.common.spi_lock [...]
  28. 28. NIC の不揮発性メモリの改変 29 ˜# ethtool -e enp3s0 offset 0 length 6 Offset Values ------ ------ 0x0000: 00 1b 21 53 84 3f ˜# ethtool -E enp3s0 magic 0x10d38086 value 0x11 offset 0x0 ˜# ethtool -e enp3s0 offset 0 length 6 Offset Values ------ ------ 0x0000: 11 1b 21 53 84 3f ˜# On bare metal: Success the modification
  29. 29. NIC の不揮発性メモリの改変 30 ˜# ethtool -e enp3s0 offset 0 length 6 Offset Values ------ ------ 0x0000: 00 1b 21 53 84 3f ˜# ethtool -E enp3s0 magic 0x10d38086 value 0x11 offset 0x0 Cannot set EEPROM data: Operation not permitted ˜# ethtool -e enp3s0 offset 0 length 6 Offset Values ------ ------ 0x0000: 00 1b 21 53 84 3f ˜# On BitVisor: Blocked the modification
  30. 30. ネットワークレイテンシ 31 TCP UDP Latency (us) Netperf により測定
  31. 31. ネットワークレイテンシ 32 TCP UDP < 1% overhead ≈ 24% overhead Latency (us) Netperf により測定
  32. 32. VMExit の数 Proposal KVM Write to MSR - 39854.7 External Interrupt - 33094.5 I/O instruction - 10473.5 EPT Violation 28239.3 - Others 36.4 - Total 28275.7 83422.3 33 Netperf 動作中における 1 秒間のVMExit 数 KVM では約3倍少なくない
  33. 33. 議論: メモリアクセス権限設定の粒度の課題 34 実物理アドレス 無害なアクセスでも VMExit 発生 4KB 単位で指定 不揮発 データ その他 機能 不要なVMExitを避けるには 1.不揮発データのページに 他の機能を置かない (デバイス設計での工夫) 2.権限設定の粒度を小さくする (CPU,MMUの改良) が今後必要 1.は既に対応したデバイスあり 2.は今後対応CPU開発予定
  34. 34. まとめ • ベアメタルクラウドでハードウェア保護するBitVisor • 悪意のあるユーザーからの攻撃を想定 • 検知ではなく防止ができる • 実際にハードウェア保護機構を実現 • ethtool などでの書き換えは防止 • ハードウェアがもつ保護機構も有効化 • 性能劣化を抑えつつ保護を実現 • ハードウェア保護: ネットワークレイテンシの増加 1%以下 • NVMe も実験したかったけど… 35
  35. 35. 今後の課題 • より多くのデバイスをサポート • e.g. NVMe, 10 GbE • デバイス設計による性能への影響の比較 • より実運用に近い環境での評価 • OpenStack などで管理された環境 • 実際のベアメタルクラウドでの評価 36
  36. 36. 余談: 研究の経緯 37 • 後輩が実験で I/O をランダムに改変 • なんかハードウェアが壊れた! • もしかして: EEPROM ぶっ壊したんじゃね? • それベアメタルクラウドで起きたらやばくね?
  37. 37. BitVisor Advent Calendar 振り返り & 宣伝 & お願い 38
  38. 38. Q. BitVisor Advent Calendar 読んだことありますか? https://qiita.com/advent-calendar/2017/bitvisor 39
  39. 39. 2015年実績 40
  40. 40. 2016年実績 41
  41. 41. 2017年実績 42
  42. 42. 2015年 Subscriptions Ranking 43
  43. 43. 2016年 Subscriptions Ranking 44
  44. 44. 2017 年 Subscriptions Ranking 45
  45. 45. 2015年 Stocks Ranking 46
  46. 46. 2016年 Stocks Ranking 47
  47. 47. 2017年 Stocks Ranking 48
  48. 48. 2015年 Contributors • hdk_2: 9 本 • deep_tkkn: 8本 • shina: 3本 • y_oyama: 2本 • furandon_pig: 1本 • ioriveur: 1本 • nvsofts: 1本 49
  49. 49. 2016年 Contributors • hdk_2: 11 本 • deep_tkkn: 6本 • mmi: 3本 • RKX1209: 3本 • lti0: 2本 50
  50. 50. 2017年 Contributors • hdk_2: 10 本 • deep_tkkn: 6本 • mmi: 4本 • y_oyama: 2本 • retrage01: 1本 • RKX1209: 1本 • YsuOS: 1本 51
  51. 51. BitVisorタグの記事 Contributors 52 (Advent Calendar 以外も含む) https://qiita.com/tags/bitvisor
  52. 52. 今年も作りました! 53
  53. 53. 今年は… • 僕はあまりかけないので,皆さんにぜひ書いてほしい… • 1本くらい書きたいけど… • 来年は誰かとりまとめ引き継いでほしい… 54
  54. 54. 記事案 • 本日の発表内容 (これで7本ですね) • 本日の議論の内容 • telnet dbgsh の使い方 • NVMe ドライバの暗号化オプション指定方法 • BitVisor で tsc が常に 0 を返すようにするとどうなる? • bitvisor.ko のためのページング • 技術的なノウハウ,困ったこと,etc • 技術的な内容以外の研究的な知見,研究紹介 55
  55. 55. Thank you 56

×