Re: [討論] 雲端與掃毒=掃走機密資訊怎麼辦?!
先把問題放著:
放在 PC 上的私人資料會不會被冒充或惡意的掃毒軟體掃走? (不用扯雲端掃毒)
租用雲端的虛擬機跑需要 license key 的 CADtool, license key 在雲端虛擬
機上會不會被管雲端的 操作管理人員 掃(偷看)走?
技術上要怎麼打開 license key 來用, 又不必怕被掃走?
留著底下相關的 key words
-TPM, IBM vTPM sHype, Intel TXT, Trusted Computing, Secure Migration
-及現在的雲端安全也都提到 remote operator's interference, 相關的做法
-就是 Secure Hypervisor.雲端 operator 掃走 license key, 這問題一點都
-不是我劃的大餅. 雲端就是已有這類解答提案, 一切也就在往前走了.
================================
舉個簡單的需求:
正在個人的PC上執行某個要 License key 的軟體, 處理某個機密資訊.
假設這個軟體是在 hostos 上用某個軟體(或有硬體支援的)Hypervisor
產生 VM, 再於該 VM 啟動 guestOS 由之執行 Key Licensed software
與處理 機密資訊. 使用者將VM相關資訊及其上的 guestOS 與 AP 都
以瞬間快照存到一個加密檔.
現在這使用者想讓這個 VM 搬到雲端提供的虛擬機上執行, 但又不洩密.
→
06/10 02:44, , 1F
06/10 02:44, 1F
→
06/10 02:44, , 2F
06/10 02:44, 2F
→
06/10 02:45, , 3F
06/10 02:45, 3F
→
06/10 02:46, , 4F
06/10 02:46, 4F
→
06/10 02:46, , 5F
06/10 02:46, 5F
→
06/10 02:47, , 6F
06/10 02:47, 6F
→
06/10 02:47, , 7F
06/10 02:47, 7F
→
06/10 02:48, , 8F
06/10 02:48, 8F
假如 vmm 是可信的, 而全硬體的老式 IBM VMM 管 Virtual memory mapper, 並
提供所有 iommu 及 I/O driver, 此時, hostos 與 guestos 都工作在各自隔離
的空間, hostos 是在虛擬的 priviledge mode 上工作. 而因為這是個硬體的
vmm 除了用硬體手段外, 很難將竊聽軟體接進去. 這是假設硬體VMM及硬體是可
信的.
→
06/10 02:48, , 9F
06/10 02:48, 9F
→
06/10 02:49, , 10F
06/10 02:49, 10F
→
06/10 02:49, , 11F
06/10 02:49, 11F
→
06/10 02:50, , 12F
06/10 02:50, 12F
→
06/10 02:52, , 13F
06/10 02:52, 13F
→
06/10 02:52, , 14F
06/10 02:52, 14F
生產的硬體 其功能 當然有其檢驗的程序以確保合乎規範. 換言之, 除了事前
邏輯分析驗證, 生產之後還是得接受功能核驗. 如果 secure VMM(或 Hypervisor)
功能規範被確定, 是否有這功能? 是否正確無誤? 這都是能被查驗的.
→ askeing:何況光是老師上面回的DomU不想讓Dom0看封包的例子就可看出 06/10 02:54
→
06/10 02:54, , 15F
06/10 02:54, 15F
→
06/10 02:54, , 16F
06/10 02:54, 16F
→
06/10 02:57, , 17F
06/10 02:57, 17F
→
06/10 02:57, , 18F
06/10 02:57, 18F
這是 XEN 與 VMware 用修改軟體碼的方法代替硬體的指令攔截技術以後,
因為並沒有更低一層的 Hypervisor(VMM)隔離, 使得 hostos 與 VMM 都
工作在同一個 priviledged mode 以至於沒有 mapper(mmu , iommu) 隔
離. 由 VMM 對 hostsos 對其他 vm 的資訊存取做加密的原因就是隔離.
如果是 封包, 那是不用真的搬遷加解密, 實況是 pointer 與 descripor
在被 check 與移動, 真的搬出 VMM 才有實質加解密. 每個 VM(含 Dom0)
都有其 configuration, 真正的資源分配理論上就是 VMM 該知曉實況.
效率問題本就是虛擬機技術該持續改善的地方.
→
06/10 02:58, , 19F
06/10 02:58, 19F
→
06/10 02:59, , 20F
06/10 02:59, 20F
全軟體的 Emulator 就是道地的 掃瞄 所有程式指令, VMware用的就是 patch
技術. 也被微軟認為是病毒的感染手法.
資訊隔離技術 就跟 VM之間 需要相互隔離一樣, 一直就是存在的需求. 這理
想不太可能是高不可攀, secure hypervisor 只是個機制或工具, 其功能從外
部就能被檢核. 隔離遮蔽就如同人類的外衣, 該穿就穿, 該脫就脫, 核驗就如
同照鏡子, 由穿戴者就能自行檢驗. 至於衣服是否會在泡水後會被紅外照相機
攝相使之失效, 那仍然也是可以被檢驗的. 某種程度的防護是有必要的需求.
===========
正在雲端執行的程式應該是被解開來了, 假設雲端設備緊急停電, 立即要做
checkpoint 瞬間照相存檔, 這個太上要求, 假設就是要求 secure hypervisor
緊急配合, 不要遮蔽讓 OP 抄了備援. 那OP 豈不可以靠那份慢慢偷用偷看?
如遮蔽與軟體的執行都靠加解密, 當key離開車子, 通常就不能發動車子. 這
種有時效性的key也是常被用到, 針對租用者vm資訊做必要隔離加密的s-VMM
就可利用網路從使用者那裡取得有時效性的key, 這也能防被全抄挪用.
推
06/10 14:24, , 21F
06/10 14:24, 21F
→
06/10 14:24, , 22F
06/10 14:24, 22F
→
06/10 18:21, , 23F
06/10 18:21, 23F
→
06/10 18:21, , 24F
06/10 18:21, 24F
XEN 是改 hostos 的 source code, 沒有 HVM support 前, guestos
也得改.
→
06/10 18:22, , 25F
06/10 18:22, 25F
→
06/10 18:23, , 26F
06/10 18:23, 26F
→
06/10 18:23, , 27F
06/10 18:23, 27F
→
06/10 18:24, , 28F
06/10 18:24, 28F
hostos是被拿來利用其已有的各類配合硬體的 driver, scheduler, tool 與 ui,
減少發展 VMM 的難度. 最老爺的 IBM VMM 是 Microprogramming 支援的, 其上
就是支援變出各個獨立分割Virtual Machine 的 control program. 這個部份不
必要是完整的OS, 但要能控制實際的整個硬體, 但用一個完整的 OS 來支援那是
省事太多. 現在的 Hardware Supported VM 仍然是支援這種利用現成 OS 與
driver 的方法.
商用的 system VM 都是跑 native code , guestOS 也是 native code. 只有部份
process VM 其指令集(如 MIPS) 跟硬體指令(如 X86)不同.
不知以 native 來說, 是何種說法? 不過, 沒有現成 hostOS 支援, 實際控制硬
體的 i/o driver 是來自何處? 還是您認為 XEN 的 Dom0 跑的不是 os ?
→
06/10 18:25, , 29F
06/10 18:25, 29F
→
06/10 18:25, , 30F
06/10 18:25, 30F
→
06/10 18:26, , 31F
06/10 18:26, 31F
→
06/10 18:26, , 32F
06/10 18:26, 32F
→
06/10 18:27, , 33F
06/10 18:27, 33F
還有 34 則推文
還有 2 段內文
→
06/10 21:35, , 68F
06/10 21:35, 68F
→
06/10 21:35, , 69F
06/10 21:35, 69F
→
06/10 21:36, , 70F
06/10 21:36, 70F
→
06/10 21:37, , 71F
06/10 21:37, 71F
推
06/10 21:47, , 72F
06/10 21:47, 72F
→
06/10 21:47, , 73F
06/10 21:47, 73F
→
06/10 21:47, , 74F
06/10 21:47, 74F
推
06/10 21:55, , 75F
06/10 21:55, 75F
→
06/10 21:56, , 76F
06/10 21:56, 76F
→
06/10 21:57, , 77F
06/10 21:57, 77F
→
06/10 21:57, , 78F
06/10 21:57, 78F
→
06/10 22:01, , 79F
06/10 22:01, 79F
→
06/10 22:01, , 80F
06/10 22:01, 80F
→
06/10 22:16, , 81F
06/10 22:16, 81F
================
→ askeing:我說的HostOS是Host Based Virtualization的名詞 06/10 21:13
→ askeing:他位置在VMM下面,Dom0跑的架構根本不同,用hostOS很怪 06/10 21:13
你說的是這個:
host based virtualization: Virtualization implemented in a host
computer rather than in a storage subsystem or storage appliance.
Virtualization can be implemented either in host computers, in
storage subsystems or storage appliances, or in specific virtualization
appliances in the storage interconnect fabric.
這是 storage virtualization 不是系統虛擬機 (System Virtual Machine).
INTEL 的 hardware supported hypervisor 主要在對敏感指令的自動攔截
但面對各種硬體組合, 仍然是依賴現有OS是最方便可能. 而高速IO一定動
用到 DMA, DMA 就能干擾到 real memory 內容, 目前做法是 software的
iommu, 這就是鉗入機制於 hypervisor 使之隔離.
=======================================================
敏感性指令意涵很清楚: 使 VM 的執行受到影響干擾的動作都是.
Control sensitive instructions
Those that attempt to change the configuration of resources in the system.
Behavior sensitive instructions
configuration of resource 最明顯的例子就是 Virtual Memory 的 mapping
table 內容,這是 memory table 的接取與更改. VMM 上層的hostos guestos
都不能直接進去改, 必須由 VMM 看狀況對象處理.
Those whose behavior or result depends on the configuration of resources
(the content of the relocation register or the processor's mode).
換言之, 一旦 VMM 掌控上來後, 某些影響到其他 VM 的 table access 就必
須被攔截, 再由 VMM 看狀況給予隨對象而異的結果.
==============
→
06/10 22:17, , 82F
06/10 22:17, 82F
推
06/10 22:34, , 83F
06/10 22:34, 83F
→
06/10 22:34, , 84F
06/10 22:34, 84F
→
06/10 22:38, , 85F
06/10 22:38, 85F
→
06/10 22:39, , 86F
06/10 22:39, 86F
→
06/10 22:58, , 87F
06/10 22:58, 87F
→
06/10 22:59, , 88F
06/10 22:59, 88F
→
06/10 23:04, , 89F
06/10 23:04, 89F
→
06/10 23:05, , 90F
06/10 23:05, 90F
→
06/10 23:05, , 91F
06/10 23:05, 91F
推
06/10 23:53, , 92F
06/10 23:53, 92F
→
06/10 23:54, , 93F
06/10 23:54, 93F
===========
你要說的是這個:
Type 1 (or native, bare metal) hypervisors run directly on the host's
hardware to control the hardware and to manage guest operating systems.
A guest operating system thus runs on another level above the hypervisor.
在 INTEL 還沒提供 Hardware support 的 CPU 時, 好幾個商用VM 系統
就已宣稱是 Type1, 此時, guestos 是在 user mode. 部份敏感的 i/o
指令 有一部份 靠舊有的 v86 mode 可以配合, 但若超越 8086 架構指令
就不行了, 此做法的 hypervisor 還是跟一個使用 priviledge mode 的
hostOS 擺在一起, hypervisor 就是要透過 hostos 控制硬體. hostos
的 operator 還是可以干擾到 hypervisor 的執行. 這跟 hypervisor
直接掌控硬體進行管理還是有所不同.
敏感指令或動作需要被攔截到 Hypervisor 由之查核後再執行, 不就是
為了避免相互干擾出錯? 隔離不就是可避免干擾?
推
06/11 09:33, , 94F
06/11 09:33, 94F
→
06/11 09:33, , 95F
06/11 09:33, 95F
→
06/11 12:00, , 96F
06/11 12:00, 96F
→
06/11 12:00, , 97F
06/11 12:00, 97F
→
06/11 12:01, , 98F
06/11 12:01, 98F
→
06/11 12:02, , 99F
06/11 12:02, 99F
→
06/11 12:03, , 100F
06/11 12:03, 100F
→
06/11 12:03, , 101F
06/11 12:03, 101F
→
06/11 12:03, , 102F
06/11 12:03, 102F
→
06/11 12:04, , 103F
06/11 12:04, 103F
假設 hypervisor 在最底層, 其上的有 kernel space 的 hostos, 也有
user space 的 guestos(理論上也可以在 kernel space, 以支援 recursive
VM).
Hypervisor 該管實體 mmu 的 mapper, 是吧? 但 hypervisor 是否該將
某 VM 裡的實際記憶體內容或位址交給 kernel space 的 VM(或者說
operator 使用的 hostos)?
隔離就是看不見, 拿不到, 跟該資訊相關的指令拿不到資訊就起不了作用,
也就是不能影響. 這是共用資源的老問題, 但 VMM 不是只提供隔離後不理,
還要做出各 vm 想要的效果, 碰到極端反面,就保護的立場則是不給做.
跟資安是否有關? 那就隨認知有所不同是很正常的.
正確說是不互相"干擾", 也就是不造成失誤.
※ 編輯: ggg12345 來自: 140.115.5.45 (06/11 13:08)
討論串 (同標題文章)
完整討論串 (本文為第 5 之 7 篇):
討論
19
156