自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

操作系統(tǒng)/虛擬化安全知識域:攻擊者模型

安全 應(yīng)用安全
在某些情況下,我們會顯式擴展攻擊者模型,以包括惡意操作系統(tǒng)或惡意虛擬機監(jiān)控程序。這些攻擊者可能與基于云的系統(tǒng)相關(guān),其中云提供商不受信任,或者操作系統(tǒng)本身已受到損害。

攻擊者模型

我們假設(shè)攻擊者有興趣違反操作系統(tǒng)或虛擬機監(jiān)控程序提供的安全保證:泄露機密數(shù)據(jù)(例如,加密密鑰),修改不應(yīng)訪問的數(shù)據(jù)(例如,提升權(quán)限)或限制系統(tǒng)及其服務(wù)的可用性(例如,通過崩潰系統(tǒng)或占用其資源)。在這個知識領(lǐng)域,我們專注于安全的技術(shù)方面,撇開內(nèi)部威脅、人類行為、物理攻擊、項目管理、公司政策等。不是因為它們不重要,而是因為它們超出了操作系統(tǒng)的控制范圍,并且需要自己的知識領(lǐng)域。表1列出了我們考慮的一些威脅和攻擊方法。

危害系統(tǒng)的最簡單方法是將惡意擴展注入操作系統(tǒng)的核心。例如,在Linux和Windows等單片系統(tǒng)中,這可能是惡意驅(qū)動程序或內(nèi)核模塊,可能無意中加載為特洛伊木馬,可以訪問所有特權(quán)功能。無論操作系統(tǒng)或虛擬機管理程序可能做什么,為了以隱蔽的方式保持對系統(tǒng)的控制,攻擊者可能會進一步感染系統(tǒng)的啟動過程(例如,通過覆蓋主啟動記錄或統(tǒng)一可擴展固件接口)(UEFI),固件)—在每次重新啟動時(甚至在操作系統(tǒng)運行之前)讓惡意代碼控制引導(dǎo)過程,從而允許其繞過任何和所有操作系統(tǒng)等級防御。

除了使用特洛伊木馬外,攻擊者還經(jīng)常利用漏洞在沒有任何用戶幫助的情況下違反安全屬性。事實上,攻擊者可能會使用多種方法。例如,他們通常濫用軟件中的漏洞,例如內(nèi)存錯誤來更改操作系統(tǒng)中的代碼指針或數(shù)據(jù),并違反其完整性,機密性或可用性。通過損壞代碼指針,它們控制程序在使用損壞的代碼指針的調(diào)用、跳轉(zhuǎn)或返回指令后恢復(fù)執(zhí)行的位置。更改數(shù)據(jù)或數(shù)據(jù)指針開辟了其他可能性,例如將非特權(quán)進程的特權(quán)級別提升為“root”(提供全能的“系統(tǒng)”特權(quán))或修改頁表以允許進程訪問任意內(nèi)存頁。同樣,他們可能會使用此類錯誤通過更改系統(tǒng)調(diào)用或網(wǎng)絡(luò)請求返回的數(shù)據(jù)量或數(shù)據(jù)量來從操作系統(tǒng)泄漏信息。

攻擊

描述

惡意擴展

攻擊者設(shè)法誘使系統(tǒng)加載惡意驅(qū)動程序或內(nèi)核模塊(例如,作為特洛伊木馬)。

Bootkit

攻擊者甚至在操作系統(tǒng)開始運行之前就破壞了啟動過程以獲得控制權(quán)。

內(nèi)存錯誤(軟件)

空間和時間內(nèi)存錯誤允許攻擊者(本地或遠程)轉(zhuǎn)移控制流或泄露敏感信息。

內(nèi)存損壞(硬件)

DRAM中的Rowhammer等漏洞允許攻擊者(本地或遠程)修改他們無法訪問的數(shù)據(jù)。

統(tǒng)一數(shù)據(jù)泄露

操作系統(tǒng)將數(shù)據(jù)返回到未正確初始化且可能包含敏感數(shù)據(jù)的用戶程序。

并發(fā)錯誤和雙重提取

示例:操作系統(tǒng)兩次使用用戶空間中的值(例如,大小值使用一次來分配緩沖區(qū),然后復(fù)制到該緩沖區(qū)中),并且該值在兩次使用之間發(fā)生變化。

側(cè)通道(硬件)

攻擊者使用共享資源(如緩存和TLB)的訪問時間來檢測另一個安全域是否使用了該資源,從而允許他們泄露敏感數(shù)據(jù)。

側(cè)通道(推測)

在推測或亂序執(zhí)行中會繞過安全檢查,當(dāng)結(jié)果被壓縮時,它們會在機器的微架構(gòu)狀態(tài)中留下可測量的痕跡。

側(cè)通道(軟件)

示例:當(dāng)操作系統(tǒng)/虛擬機管理程序使用內(nèi)存重復(fù)數(shù)據(jù)刪除等功能時,攻擊者可以判斷另一個安全域是否具有相同的內(nèi)容。

資源枯竭

通過占用資源(內(nèi)存、CPU、總線等),攻擊者阻止其他程序取得進展,從而導(dǎo)致拒絕服務(wù)。

死鎖/掛起(DoS

攻擊者使系統(tǒng)處于軟件的某些部分無法取得進展的狀態(tài),例如,由于死鎖(DoS)。


表1:現(xiàn)代操作系統(tǒng)的已知攻擊方法/安全威脅

攻擊者還可能濫用硬件中的漏洞,例如許多DRAM芯片中存在的Rowhammer錯誤。由于內(nèi)存芯片中的位是按行組織并非常緊密地打包在一起的,因此訪問一行中的位可能會導(dǎo)致相鄰位中的相鄰位行,將少量電荷泄漏到其電容器上-即使該位位于內(nèi)存中完全不同的頁面中。通過以高頻(“錘擊”)反復(fù)訪問該行,干擾會累積,因此在某些情況下,相鄰位可能會翻轉(zhuǎn)。我們事先不知道連續(xù)哪個位(如果有的話)會翻轉(zhuǎn),但是一旦一個位翻轉(zhuǎn),如果我們重復(fù)實驗,它會再次翻轉(zhuǎn)。如果攻擊者成功翻轉(zhuǎn)內(nèi)核內(nèi)存中的位,他們就會啟用類似于基于軟件的內(nèi)存損壞的攻擊。例如,損壞頁表以獲取對其他域內(nèi)存的訪問權(quán)限。

另一類攻擊是并發(fā)錯誤和雙重獲取。雙重獲取對于操作系統(tǒng)來說是一個重要的問題,當(dāng)它兩次使用用戶空間中的值時就會發(fā)生(例如,大小值一次用于分配緩沖區(qū),然后復(fù)制到該緩沖區(qū)中)。如果操作系統(tǒng)和攻擊者之間存在爭用,并且攻擊者在兩次訪問之間更改用戶空間值并使其更小,則會出現(xiàn)內(nèi)存損壞等安全問題。它類似于檢查使用時間(TOCTOU)攻擊,不同之處在于修改的值被使用了兩次。

除了直接攻擊之外,攻擊者還可以使用側(cè)信道間接泄漏信息,例如通過緩存?zhèn)刃诺?。有許多變體,但常見的變體包括攻擊者用自己的數(shù)據(jù)或代碼填充緩存集,然后定期訪問這些地址。如果任何訪問明顯變慢,他們將知道其他人(可能是受害者)也訪問了屬于同一緩存集中的數(shù)據(jù)/代碼?,F(xiàn)在假設(shè)受害者代碼以秘密依賴的方式調(diào)用函數(shù)。例如,加密例程逐位處理密鑰,如果位為0,則調(diào)用函數(shù)foo,如果為1,則調(diào)用bar,其中foo和bar位于不同的緩存集中。通過監(jiān)控側(cè)信道使用哪些緩存集,攻擊者可以快速了解密鑰。

另一個著名的硬件側(cè)信道家族濫用投機和無序執(zhí)行。為了提高性能,現(xiàn)代CPU可能會在上述指令完成之前提前執(zhí)行指令。例如,在等待條件分支的條件被解析時,分支預(yù)測器可能會推測結(jié)果將是“分支被接受”(因為那是最后n次的結(jié)果),并推測性地執(zhí)行與taken分支對應(yīng)的指令。如果事實證明它是錯誤的,CPU將壓縮推測執(zhí)行指令的所有結(jié)果,以便沒有任何存儲存在于寄存器或內(nèi)存中。但是,在微架構(gòu)狀態(tài)下可能仍然存在執(zhí)行的痕跡(例如在指令集架構(gòu)中不直接可見的緩存、TLB和分支預(yù)測器的內(nèi)容)。例如,如果用戶程序中的推測指令從寄存器中的內(nèi)存中讀取一個敏感且通常無法訪問的字節(jié),隨后將其用作用戶空間數(shù)組中的偏移量,該偏移量的數(shù)組元素將位于緩存中,即使一旦CPU發(fā)現(xiàn)寄存器中的值不應(yīng)該允許訪問,寄存器中的值就會被壓縮。攻擊者可以對數(shù)組中每個元素的訪問進行計時,并查看一個元素是否明顯更快(在緩存中)。該元素的偏移量將是機密字節(jié)。換句話說,攻擊者可以使用緩存?zhèn)韧ǖ纴硖崛⊥茰y訪問的數(shù)據(jù)。

最近的攻擊表明,與推測和亂序執(zhí)行相關(guān)的硬件漏洞可能比我們想象的更具災(zāi)難性。Foreshadow攻擊濫用了這樣一個事實,即每當(dāng)內(nèi)存頁被標記為不存在時,英特爾CPU就會在推測執(zhí)行下從1級高速緩存中讀取數(shù)據(jù),而沒有正確檢查該物理地址上數(shù)據(jù)的所有權(quán)。更糟糕的是,被稱為流氓飛行數(shù)據(jù)(RIDL)的漏洞(攻擊者可以在沒有權(quán)限的情況下利用該漏洞,甚至可以從瀏覽器中的JavaScript中利用)并且不關(guān)心地址,這表明英特爾CPUs通過各種臨時微架構(gòu)緩沖區(qū),不斷向推測執(zhí)行指令提供來自任意安全域的數(shù)據(jù)。

緩解這些攻擊不僅需要更改硬件,還需要操作系統(tǒng)的深入且通常復(fù)雜的參與。例如,操作系統(tǒng)可能需要刷新可能泄漏數(shù)據(jù)的緩存和緩沖區(qū),保證某些分支之間不會發(fā)生推測,或者安排不同的時間不同內(nèi)核上的安全域等。

除了緩存之外,硬件側(cè)通道還可以使用各種共享資源,包括TLB、MMU和許多其他組件[17]。實際上,側(cè)信道根本不需要與硬件相關(guān)。例如,在操作系統(tǒng)中實現(xiàn)的內(nèi)存重復(fù)數(shù)據(jù)刪除和頁面緩存是眾所周知的側(cè)通道源。為了便于說明,重點介紹前者,請考慮一個主動刪除重復(fù)內(nèi)存頁的系統(tǒng):每當(dāng)它看到兩個頁面具有相同的內(nèi)容時,它就會調(diào)整虛擬內(nèi)存布局,以便兩個虛擬頁面都指向同一物理頁面。這樣,它只需要保留一個物理頁面來存儲內(nèi)容,它可以以寫入時復(fù)制的方式共享內(nèi)容。在這種情況下,寫入該頁需要更長的時間(因為操作系統(tǒng)必須再次復(fù)制該頁并調(diào)整其頁表映射),攻擊者可以測量這一點。因此,如果寫入頁面花費的時間要長得多,攻擊者就會知道其他某個程序也有該內(nèi)容的副本-一個側(cè)信道,告訴攻擊者有關(guān)受害者數(shù)據(jù)的一些信息。研究人員已經(jīng)表明,攻擊者可能會使用這種粗粒度的側(cè)信道來泄露非常細粒度的秘密[18]。在許多側(cè)信道中,問題在于軟件和硬件中的安全域之間缺乏隔離(例如,在硬件實現(xiàn)的推測執(zhí)行期間可能沒有隔離或隔離太少)。重要的是要認識到域隔離問題擴展到硬件/軟件接口。

特別是為了保密,信息泄露可能是微妙的,看似無害的,仍然會導(dǎo)致嚴重的安全問題。例如,對象的物理甚至虛擬地址可能看起來都不像非常敏感的信息,直到我們考慮到代碼重用或Rowhammer攻擊,濫用地址知識將控制流轉(zhuǎn)移到特定地址或翻轉(zhuǎn)特定位。

至于攻擊的來源,它們可能是從用戶空間中受害者機器上本機運行的本地代碼、(惡意)操作系統(tǒng)擴展、通過網(wǎng)絡(luò)獲取并在本地執(zhí)行的腳本代碼(例如瀏覽器中的JavaScript)、惡意外圍設(shè)備甚至遠程系統(tǒng)發(fā)起的(攻擊者通過網(wǎng)絡(luò)發(fā)起攻擊)。顯然,遠程攻擊比本地攻擊更難執(zhí)行。

在某些情況下,我們會顯式擴展攻擊者模型,以包括惡意操作系統(tǒng)或惡意虛擬機監(jiān)控程序。這些攻擊者可能與基于云的系統(tǒng)相關(guān),其中云提供商不受信任,或者操作系統(tǒng)本身已受到損害。在這些情況下,目標是保護敏感應(yīng)用程序(或其片段),這些應(yīng)用程序可能在特殊的受硬件保護的受信任執(zhí)行環(huán)境或安全區(qū)中運行,免受內(nèi)核或虛擬機監(jiān)控程序的影響。

估計系統(tǒng)安全性的一個有用指標是攻擊面,攻擊者可以到達或獲取數(shù)據(jù)的所有不同點。為了嘗試破壞系統(tǒng)。例如,對于本地運行的本機代碼,攻擊面包括攻擊者可以執(zhí)行的所有系統(tǒng)調(diào)用以及系統(tǒng)調(diào)用的參數(shù)和返回值,以及實現(xiàn)攻擊者可以訪問的系統(tǒng)調(diào)用的所有代碼。對于遠程攻擊者,攻擊面包括網(wǎng)絡(luò)設(shè)備驅(qū)動程序、網(wǎng)絡(luò)堆棧的一部分以及處理請求的所有應(yīng)用程序代碼。對于惡意設(shè)備,攻擊面可能包括設(shè)備可能使用DMA訪問的所有內(nèi)存或設(shè)備可能與之交互的代碼和硬件功能。但請注意,向攻擊者暴露更多代碼只是一個代理指標,因為代碼的質(zhì)量不同。在極端情況下,系統(tǒng)會經(jīng)過正式驗證,因此不再可能出現(xiàn)各種常見漏洞。


責(zé)任編輯:武曉燕 來源: 河南等級保護測評
相關(guān)推薦

2023-02-07 00:24:24

2023-01-09 00:08:37

2023-02-02 00:06:06

2023-02-03 00:14:43

2023-01-27 09:17:02

操作系統(tǒng)虛擬化內(nèi)存

2023-01-30 00:05:02

操作系統(tǒng)虛擬化安全

2023-01-31 00:10:32

2023-02-06 00:26:02

2023-08-30 12:14:05

2010-04-14 17:54:06

2024-02-04 09:45:56

2014-08-20 09:44:57

2009-02-17 17:09:59

虛擬化操作系統(tǒng)服務(wù)器

2014-10-08 09:25:30

2020-07-21 10:59:49

網(wǎng)絡(luò)安全IT技術(shù)

2024-09-13 17:10:40

2021-04-29 09:36:23

攻擊漏洞Kubernetes

2009-02-17 15:57:38

虛擬化傳統(tǒng)操作系統(tǒng)威脅

2012-09-27 09:41:31

虛擬化

2013-03-22 09:05:48

操作系統(tǒng)虛擬化
點贊
收藏

51CTO技術(shù)棧公眾號