成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

操作系統/虛擬化安全知識域:用于內存保護的現代硬件擴展

安全 應用安全
每個表面積的晶體管數量不斷增加,使CPU供應商能夠在其芯片上放置越來越多的硬件擴展,而上面討論的那些絕不是現代處理器中唯一與安全相關的擴展。其他示例包括加密單元、內存加密、有效切換擴展頁表的說明以及指針身份驗證(硬件檢測到指針值的修改)。

用于內存保護的現代硬件擴展

此外,雖然分段大多已失效,但除了分頁之外,還有許多其他形式的硬件支持用于內存保護。例如,許多機器都支持緩沖區邊界檢查,有些可以追溯到四分之一世紀或更長時間。但是,為了說明相應的基元,我們將看看現代通用處理器中可用的內容,主要關注英特爾x86家族。這里的重點不是我們認為這個處理器更重要,甚至不是功能X或Y在未來會非常重要(這是有爭議的和很難預測),而是說明這仍然是當今硬件開發的一個非常活躍的領域。

作為第一個示例,考慮一下有點命運多舛的英特爾內存保護擴展(MPX),它增強了英特爾的主力處理器,以確保陣列指針不會偏離陣列邊界(阻止緩沖區溢出等漏洞被利用)。為此,一小組新寄存器可以存儲少量數組的下限和上限,而在取消引用指針之前,新的MPX指令檢查數組指針的值是否存在邊界沖突。即使在僅在用戶空間中使用MPX的系統中,操作系統也起著作用,例如,處理硬件在遇到緩沖區邊界時引發的異常違反。MPX因這些邊界寄存器太少而受到嚴厲批評,導致性能開銷很大。此外,MPX不支持多線程,這可能會導致舊代碼中的數據競爭。有人可能會說,MPX是硬件供應商嘗試為其CPU添加新內存安全功能的一個很好的例子,不幸的是,這并不總是成功的。

最近,英特爾在其處理器9中添加了內存保護密鑰(MPK)。英特爾MPK允許將PTE(圖2)中以前未使用的四個位設置為16個“鍵”值之一。此外,它還添加了一個新的32位寄存器,每個密鑰包含2位,以指示是否允許使用該密鑰標記的頁面進行讀寫。MPK允許開發人員在少量(在本例中為16個)保護域中對內存進行分區,例如,僅允許特定的加密庫訪問加密鑰匙。雖然非特權用戶進程可能會更新寄存器的值,但只有特權操作系統代碼才能使用密鑰標記內存頁。

一些處理器設計支持更高級的內存保護,使用ARM術語,我們將稱為內存標記擴展(MTE10)。這個想法簡單而強大。處理器為每個對齊的內存塊(其中塊是16字節)分配一個硬件中的所謂“標簽”。同樣,每個指針也會獲取一個標記。標簽通常不是很大,比如4位,所以它們可以存儲在64位指針值的最頂端字節中,反正我們并不真正使用(事實上,ARM支持頂字節忽略功能,使硬件顯式屏蔽最上面的字節)。每當程序分配N個字節的內存時,分配器都會將分配四舍五入為16個字節的倍數,并為其分配一個隨機標記。它還將相同的標記分配給指向內存的指針。從現在開始,僅當指針中的標記與其引用的內存的標記匹配時,才允許取消引用指針,從而有效地阻止大多數空間和時間內存錯誤。

同時,一些處理器,尤其是低功耗設備中的處理器,甚至根本沒有成熟的MMU。相反,它們有一個更簡單的內存保護單元(MPU),僅用于保護內存,其方式類似于上面討論的MPK功能。在MPU設計中,操作系統定義了許多具有特定內存訪問權限和內存屬性的內存區域。例如,ARMv8-M處理器上的MPU最多支持16個區域。同時,MPU監控處理器的所有內存訪問(包括指令提取和數據訪問),并在檢測到訪問沖突時觸發異常。

請注意,在上面,我們假設操作系統需要保護免受不受信任的用戶應用程序的侵害。當操作本身不受信任時,會出現特殊情況。也許您正在受感染的操作系統或云中運行安全敏感型應用程序,您不確定是否要信任云提供商。在一般情況下,您可能希望在不信任任何其他軟件的情況下保護您的數據和應用程序。為此,處理器可以提供硬件支持,以便在安全、隔離的環境中運行極其敏感的代碼,在ARM的“信任區”中稱為可信執行環境,或者英特爾軟件防護擴展(SGX)中的飛地。它們提供的基元略有不同。例如,在SGX安全區中運行的代碼旨在成為正常用戶進程的一部分。它使用的內存總是在離開處理器后立即加密。此外,SGX還提供硬件支持來執行證明,以便(可能是遠程)方可以驗證代碼是否在安全區中運行以及它是正確的代碼。另一方面,ARMTrustZone將運行正常操作系統和用戶應用程序的“正常世界”與通常運行自己的較小操作系統以及少量安全敏感應用程序的“安全世界”隔離開來。正常世界中的代碼可以調用安全世界中的代碼,其方式類似于應用程序調用操作系統的方式。特殊環境(如ARMTrustZone)(或英特爾的SMM模式,稍后討論)的一個有趣應用是使用它來監控常規操作系統的完整性-希望在它造成嚴重損害之前檢測到任何隱形惡意軟件或rootkit。盡管這些受信任環境的各個方面與操作系統安全性明顯重疊,但我們認為它們大多超出了此知識領域的范圍。我們還應該注意到,近年來,硬件可信執行環境提供的安全性一再被各種側信道刺穿,這些側信道從所謂的安全世界泄漏信息。

再次切換齒輪,可能是操作系統沒問題,但硬件不是。惡意或故障硬件可能會使用系統的直接內存訪問(DMA)來讀取或覆蓋內存中它們無法訪問的敏感數據。此外,對于某些標準(例如USB-C上的Thunderbolt),計算機的PCIe鏈路可能會直接暴露在用戶插入計算機的設備中。不幸的是,對于用戶來說,很難確定看起來像顯示器電纜或電源適配器的東西不包含一些旨在破壞計算機的惡意電路。作為部分補救措施,如今大多數架構都帶有特殊的MMU,用于與設備之間傳輸的數據。該硬件稱為IOMMU,用于將設備虛擬地址映射到物理地址,完全模仿圖2中所示的基于頁面的保護。2,但現在用于DMA設備。換句話說,設備可以訪問虛擬內存地址,IOMMU將其轉換為實際物理地址,檢查權限,并在頁面未映射到設備或保護位與請求的訪問不匹配時停止。雖然這樣做提供了一些針對惡意設備(或驅動程序)的保護措施,但重要的是要認識到IOMMU旨在促進虛擬化,實際上不應被視為適當的安全解決方案。有很多事情可能會出錯。例如,管理員可能想要撤銷設備對內存頁面的訪問權限。由于更新IOMMU頁表是一個緩慢的操作,因此操作系統延遲此操作并將其與其他操作一起批處理的情況并不少見。結果是,可能有一小段時間窗口,在此期間設備仍然可以訪問內存頁面,即使它看起來這些權利已被撤銷。

最后,我們可以觀察到,每個表面積的晶體管數量不斷增加,使CPU供應商能夠在其芯片上放置越來越多的硬件擴展,而上面討論的那些絕不是現代處理器中唯一與安全相關的擴展。其他示例包括加密單元、內存加密、有效切換擴展頁表的說明以及指針身份驗證(硬件檢測到指針值的修改)。毫無疑問,未來幾代將出現更多功能,操作系統將不得不進行調整才能以有意義的方式使用它們。這些問題的更廣泛觀點可以在硬件安全CyBOK知識領域中找到。

責任編輯:武曉燕 來源: 河南等級保護測評
相關推薦

2023-01-27 09:17:02

操作系統虛擬化內存

2023-01-09 00:08:37

2023-02-07 00:24:24

2023-01-08 00:31:14

2023-02-02 00:06:06

2023-01-31 00:10:32

2023-02-03 00:14:43

2018-07-27 05:08:58

2012-09-27 09:41:31

虛擬化

2010-11-17 10:14:13

Windows 8虛擬化

2009-06-17 15:39:00

本機內存硬件限制虛擬內存

2023-02-06 00:26:02

2010-04-14 17:54:06

2011-03-28 16:27:49

現代網絡操作系統網絡虛擬化

2013-03-22 09:05:48

操作系統虛擬化

2010-04-20 17:34:25

Unix操作系統

2009-02-17 17:09:59

虛擬化操作系統服務器

2020-12-02 17:58:33

LinuxKubernetes操作系統

2020-03-10 19:34:08

CPU虛擬化調度

2009-02-17 15:57:38

虛擬化傳統操作系統威脅
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: a级片网站 | 热久久999| 国产精品视频网站 | 成人区精品一区二区婷婷 | 欧美黑人体内she精在线观看 | 综合精品久久久 | 美女毛片免费看 | 一区二区三区精品 | 日本一二区视频 | 日韩精品久久久久 | 成人免费网站视频 | 精品视频一区二区三区 | 伊人精品一区二区三区 | www.成人.com | 久久亚洲一区 | 久久久中文 | 国产精品自拍视频 | 超碰精品在线观看 | 久久专区 | 国产日韩精品视频 | 99久久影院 | 亚洲一区二区三区在线视频 | 欧美日本在线 | 中文字幕第九页 | 91视频网址 | 自拍视频网 | 91大神在线资源观看无广告 | 欧美一级片在线观看 | 综合二区 | 综合五月 | 嫩草研究影院 | 国产精品一区二区三区在线播放 | 夫妻午夜影院 | 免费h在线 | 成人激情视频免费观看 | 逼逼视频 | 欧美久久久久久久 | 成人网在线观看 | 久久久久久免费看 | 久久精品日产第一区二区三区 | 在线欧美激情 |