虚拟化:侧信道攻击案例
具體實例:一個真實的在線醫療系統
在線醫療是一個很私人的信息服務系統,它由信譽最好的企業研發,并且在數據傳輸的過程中采用了HTTPS協議對用戶的信息進行了加密傳輸。一旦登陸,用戶可以建立自己的健康檔案,包括癥狀、用藥、療程等內容,甚至還可以尋找醫生。在研究中發現,入侵者可以完全可以推斷出一個用戶服用的藥物,療程以及他尋找的醫生的類型。
如上圖所示,是該醫療系統的添加病例的頁面。此時用戶所選擇的是癥狀標簽,用戶可以在這個界面中鍵入自己的癥狀,在鍵入的過程中,系統會幫助用戶彈出一個小的提示窗口。對于其他的用藥、療程等標簽,輸入的狀態也是一樣的。
而這標簽欄的設計,就已經會泄露用戶當前填寫記錄的類型信息了,因為點擊每個標簽,就會產生一個Web數據流向量:(1515±1 ->, 266±1 ->, <- 583±1, <- x),這里x的值分別是4855,30154, 20567, 1773, 2757和2299,代表著癥狀(Conditions),用藥(Medications),過敏(Allergies),療程(Procedures),測試結果(Test Result)和免疫接種(Immunizations)(其中±代表著不同用戶操作時產生的流量大小的差異)。
當用戶鍵入信息時,提示列表就會在輸入框的下面出現。這個輸入框大約有十條記錄,會對鍵入的內容及時的更新。如上圖所示的提示列表是鍵入“ac”后的結果。可怕的是,這個自動提示會引發對用戶信息的災難性的泄露,因為攻擊者可以通過匹配提示信息響應包的大小推斷出用戶輸入的內容。更明確的,每個擊鍵都會產生如下的Web數據流向量:(253±1 ->,<- 581,<- x),x能夠精確地指示出提示列表的大小,并且對于所有的用戶來說都是一樣的。
隨后收集了在癥狀記錄填寫時,英文中的所有26個字母在作為第一個字母之后的x值,在[273,519]之間。除了字母“h”和“m”對應的x值相同外,其他的均不相同。但是隨后他們證實了,當輸入的字母增加時,就可以消除類似上面“h”和“m”的歧義,進而推測出用戶的輸入,也就獲得到用戶十分敏感的醫療隱私數據了。
防范方法
針對樣例中根據數據包大小不同的攻擊手段,最簡單有效地手段就是對應答的數據包進行填充處理,可以參考兩種填充的思想。一種是將數據包填充到最接近的Det大小的整數倍,另一種方法是填充增加(0,Det)大小。但是這樣的填充,還是可以根據接收到的數據包的大小推斷出輸入內容的集合,當差異度增大時或許依舊可以推斷出用戶輸入的內容。更加有效安全的做法,就是根據具體的Web應用的特點分析可能造成的側信道攻擊的潛在威脅加以防范了。
推薦閱讀:明辰智航云安網絡與虛擬化性能管理系統
總結
以上是生活随笔為你收集整理的虚拟化:侧信道攻击案例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: plecs一些细节
- 下一篇: CTF之做题总结(二)