與Mac不同,許多PC可能易受到針對UEFI的預引導直接內存訪問(DMA)攻擊。如果在配置了安全引導的系統上發生攻擊,那么信任鏈就會損壞,安全引導會變得不安全。
如果在操作系統啟動之前獲得代碼執行,那么尚未加載的操作系統的進一步妥協是可能的。作為示例,可能會使用Device Guard危及運行基于虛擬化的安全性(VBS)的Windows 10系統。這已經由Dmytro Oleksiuk研究。
這個帖子將重點是通過DMA攻擊UEFI,而不是潛在的進一步妥協的系統。
什么是UEFI?
UEFI是統一的可擴展固件接口的縮寫。在操作系統引導之前,它是在計算機上運行的固件。 UEFI負責檢測引導操作系統所需的內存,磁盤和其他硬件。 UEFI本身就是一個小型的操作系統。有時候還有一點叫做BIOS。
目標
英特爾NUC i3“Kaby Lake”全新購入6月。 8GB內存,Win10 1703安全引導,Bitlocker + TPM,基于虛擬化的安全(VBS)Device Guard已啟用。 BIOS版本:BNKBL357.86A.0036.2017.0105.1112。通過內部M.2插槽訪問DMA。
一個較舊的聯想T430,8GB內存,Win10 1703與安全引導,Bitlocker + TPM,基于虛擬化的安全(VBS)設備防護已啟用。通過ExpressCard插槽進行DMA訪問。
問題
根本的問題是,許多UEFI仍然不能保護自己免受DMA攻擊,盡管硬件(VT-d / IOMMU)多年來一直被包括在所有的CPU中。下面的屏幕截圖顯示,PCILeech首先通過DMA搜索目標計算機的內存,嘗試找到哪里可以掛接到UEFI。一旦進入,它很容易轉儲內存(也顯示),并做其他的惡行 - 如執行任意代碼,盡管安全啟動被啟用。
攻擊
如果允許DMA訪問,控制是一個簡單的事情,找到正確的內存結構并覆蓋它們。 PCILeech自動執行此過程??梢宰詣铀阉鱁FI系統表“IBI SYST”的內存地址 - 或者更好地直接指定給PCILeech。 EFI系統表包含EFI引導服務表“BOOTSERV”的位置,其中包含許多有用的函數指針。引導服務功能對于鉤住并且也從我們植入的模塊調用是有用的。
在下面的示例中,引導服務函數SignalEvent()被掛接。一旦插入了用于UEFI的PCILeech“內核”模塊,就可以使用它來轉儲內存并執行代碼 - 就像任何正常的PCILeech內核模塊一樣。在下面的例子中,PCILeech UEFI種植體uefi_textout被稱為多次。輸出打印在受害者計算機的屏幕上。
攻擊完成后,向PCILeech發出了kmdexit命令,并卸下了UEFI植入物。在這種情況下,Windows將開始啟動,如下所示。如果針對加載的操作系統,最好鉤住ExitBootServices() - 當操作系統從UEFI接管計算機的控制時,由EFI的操作系統加載程序調用。在這個時間點上,惡意代碼可能會修改操作系統加載程序。
我可以自己試試嗎?
絕對!該代碼可用作Github上的開源PCILeech直接內存訪問攻擊工具包的一部分。
結論
PCILeech的UEFI DMA攻擊現在公開,價格便宜,易于執行。對DMAFI的恐懼已經不再是理論上的了。
供應商應該使VT-d能夠防止DMA攻擊。
操作系統的進一步妥協是可能的。如果有易受傷害的UEFI,可能無法依賴基于虛擬化的安全性?! ?/p> 人妻精品一区二区三区_好紧好湿好硬国产在线视频_亚洲精品无码mv在线观看_国内激情精品久久久
責任編輯:韓希宇
免責聲明:
中國電子銀行網發布的專欄、投稿以及征文相關文章,其文字、圖片、視頻均來源于作者投稿或轉載自相關作品方;如涉及未經許可使用作品的問題,請您優先聯系我們(聯系郵箱:cebnet@cfca.com.cn,電話:400-880-9888),我們會第一時間核實,謝謝配合。