亚洲精品不卡久久久久久_色视频线观看在线 _妽妽夹得我好舒服_国产真人一级a爱做片高潮_亚洲aⅴ无码专区在线观看q

當(dāng)前位置: 首頁 >綜合 > 正文

軟件安全知識(shí)之??減少漏洞利用

2023-06-04 09:15:00 來源:河南等級(jí)保護(hù)測評(píng)

減少漏洞利用

即使有很好的技術(shù)來防止在新代碼中引入漏洞,或者檢測現(xiàn)有代碼中的漏洞,也必然會(huì)有大量的遺留代碼。在可預(yù)見的未來,漏洞正在積極使用。因此,漏洞預(yù)防和檢測技術(shù)可以輔之以減輕對剩余漏洞的利用的技術(shù)。這種緩解技術(shù)通常在執(zhí)行基礎(chǔ)結(jié)構(gòu)中實(shí)現(xiàn),即硬件、操作系統(tǒng)、加載程序或虛擬機(jī),或者由編譯器(所謂的“內(nèi)聯(lián)引用監(jiān)視器”)。這些技術(shù)的一個(gè)重要目標(biāo)是限制對性能的影響,并最大限度地提高與舊程序的兼容性。

攻擊的運(yùn)行時(shí)檢測


(相關(guān)資料圖)

程序執(zhí)行的運(yùn)行時(shí)監(jiān)視是檢測攻擊的強(qiáng)大技術(shù)。原則上,在測試期間檢測漏洞的程序監(jiān)視器(在3.2動(dòng)態(tài)檢測中討論)也可以在運(yùn)行時(shí)用于檢測攻擊。例如,動(dòng)態(tài)污點(diǎn)分析與動(dòng)態(tài)檢查受污染的數(shù)據(jù)是否影響生成的輸出的解析樹相結(jié)合,也被提議作為SQL注入攻擊的運(yùn)行時(shí)緩解技術(shù)。

但是,測試期間使用的監(jiān)視器(在主題3中討論)和運(yùn)行時(shí)用于緩解攻擊的監(jiān)視器的性能要求存在重要差異。對于攻擊的運(yùn)行時(shí)檢測,挑戰(zhàn)在于識(shí)別可有效檢測的屬性沖突,這些沖突預(yù)期在程序的執(zhí)行跟蹤中保持不變。使用了多種技術(shù):

?堆棧Canary檢測調(diào)用堆棧上激活記錄完整性的違規(guī)行為,從而檢測一些利用內(nèi)存管理漏洞修改返回地址的攻擊。

?無執(zhí)行(NX)數(shù)據(jù)存儲(chǔ)器檢測到將程序計(jì)數(shù)器定向到數(shù)據(jù)存儲(chǔ)器而不是代碼存儲(chǔ)器的嘗試,因此可檢測許多直接代碼注入攻擊。

?控制流完整性(CFI)是一類技術(shù),用于監(jiān)視程序的運(yùn)行時(shí)控制流是否符合預(yù)期控制流的某些規(guī)范,并且因此可以檢測到許多代碼重用攻擊。

檢測到攻擊時(shí),運(yùn)行時(shí)監(jiān)視器必須做出適當(dāng)?shù)姆磻?yīng),通常是終止受到攻擊的程序。終止是確保攻擊不會(huì)造成進(jìn)一步損害的良好反應(yīng),但它當(dāng)然會(huì)對可用性屬性產(chǎn)生負(fù)面影響。

自動(dòng)化軟件多樣性

漏洞的利用通常依賴于受攻擊軟件的實(shí)現(xiàn)細(xì)節(jié)。例如,利用內(nèi)存管理漏洞通常依賴于運(yùn)行時(shí)程序內(nèi)存布局的詳細(xì)信息。SQL注入攻擊可能依賴于SQL查詢發(fā)送到的數(shù)據(jù)庫的詳細(xì)信息。

因此,使漏洞更難利用的通用對策是使這些實(shí)現(xiàn)細(xì)節(jié)多樣化。這以兩種方式提高了攻擊的標(biāo)準(zhǔn)。首先,攻擊者更難在相同的系統(tǒng)上準(zhǔn)備和測試他/她的攻擊。由于多樣化,針對攻擊者計(jì)算機(jī)上安裝的Web服務(wù)器的攻擊可能會(huì)對受害計(jì)算機(jī)上的同一Web服務(wù)器失敗。其次,構(gòu)建同時(shí)針對多個(gè)系統(tǒng)的攻擊更難。攻擊者現(xiàn)在必須為他們想要攻擊的每個(gè)系統(tǒng)構(gòu)建定制的漏洞,而不是構(gòu)建一次漏洞,然后對許多系統(tǒng)使用它。

這個(gè)想法最重要的實(shí)現(xiàn)是地址空間布局隨機(jī)化(ASLR),其中代碼,堆棧和/或堆內(nèi)存的布局在加載或加載時(shí)隨機(jī)化。運(yùn)行。這種隨機(jī)化可以是粗粒度的,例如,通過隨機(jī)重新定位代碼、堆棧和堆段的基址,或者細(xì)粒度地將代碼存儲(chǔ)器中各個(gè)函數(shù)的地址、激活記錄在堆棧,或堆中的對象是隨機(jī)選擇的。

研究界已經(jīng)研究了許多其他在編譯時(shí)或安裝時(shí)自動(dòng)創(chuàng)建多樣性的方法[28],但這種自動(dòng)多樣化也會(huì)給軟件維護(hù)帶來重要的挑戰(zhàn),如錯(cuò)誤報(bào)告。可能更難解釋,軟件更新可能也必須多樣化。

限制權(quán)限

利用軟件漏洞會(huì)影響受攻擊軟件的行為,從而違反某些安全目標(biāo)。通過對軟件可以做什么施加一般限制,可以大大降低攻擊的潛在損害。

沙盒是一種安全機(jī)制,其中軟件在受控環(huán)境(“沙盒”)中執(zhí)行,并且可以對沙盒中的軟件可以訪問的資源強(qiáng)制執(zhí)行策略。沙盒可用于限制不受信任的軟件,但也可用于減輕利用對易受攻擊軟件的影響:在成功利用軟件后,攻擊者仍受到沙盒。

沙盒的通用概念可以使用現(xiàn)代計(jì)算機(jī)系統(tǒng)提供的任何隔離機(jī)制進(jìn)行實(shí)例化:沙盒可以是在虛擬機(jī)監(jiān)視器的監(jiān)督下運(yùn)行的虛擬機(jī),也可以是操作系統(tǒng)施加訪問控制策略的進(jìn)程。此外,已經(jīng)為特定類別的軟件開發(fā)了幾種特定于目的的沙盒機(jī)制,例如,可以在虛擬主機(jī)環(huán)境中對網(wǎng)絡(luò)和文件系統(tǒng)訪問進(jìn)行沙盒處理的監(jiān)獄。Java運(yùn)行時(shí)環(huán)境實(shí)現(xiàn)了一種沙盒機(jī)制,旨在包含不受信任的Java代碼,或?qū)⒋a與同一Java虛擬機(jī)中的不同利益相關(guān)者隔離開來,但多年來在該沙盒機(jī)制中發(fā)現(xiàn)了幾個(gè)重大漏洞[29]。

分化是一種相關(guān)但更細(xì)粒度的安全機(jī)制,其中軟件本身被劃分為多個(gè)隔間,并且對每個(gè)隔間的特權(quán)強(qiáng)制執(zhí)行一些界限。這再次需要一些底層機(jī)制來強(qiáng)制執(zhí)行這些邊界。例如,一個(gè)部分化的瀏覽器可以依靠操作系統(tǒng)進(jìn)程訪問控制,通過拒絕其文件系統(tǒng)訪問來綁定其渲染引擎的權(quán)限?,F(xiàn)在,渲染引擎中的軟件漏洞利用已得到緩解,即使成功利用此漏洞,攻擊者仍被阻止訪問文件系統(tǒng)。非常細(xì)粒度的分化形式可以通過對象能力系統(tǒng)[22]實(shí)現(xiàn),其中每個(gè)應(yīng)用程序級(jí)對象都可以是一個(gè)單獨(dú)的保護(hù)域。

為了緩解側(cè)信道漏洞,可以將易受攻擊的代碼隔離在單獨(dú)的內(nèi)核或單獨(dú)的硬件上,這樣通過側(cè)信道泄漏的信息就不再存在。攻擊者可觀察到。

軟件完整性檢查

在“可信計(jì)算”這一總稱下,已經(jīng)開發(fā)了廣泛的技術(shù)來測量計(jì)算機(jī)系統(tǒng)的狀態(tài),并在該狀態(tài)被認(rèn)為不安全時(shí)采取適當(dāng)?shù)拇胧?。一種代表性的技術(shù)是可信引導(dǎo),其中為每個(gè)執(zhí)行的程序累積測量值。對程序的任何修改(例如,由于成功的攻擊)都將導(dǎo)致不同的測量。然后,可以強(qiáng)制規(guī)定,例如,只能從具有指定測量值的狀態(tài)訪問密鑰。

Parnoetal.[30]對這類技術(shù)進(jìn)行了很好的概述。

結(jié)論

軟件實(shí)現(xiàn)漏洞有多種形式,可以通過各種對策來緩解。表1總結(jié)了本章中討論的漏洞類別之間的關(guān)系,以及通常用于應(yīng)對這些漏洞的相關(guān)預(yù)防、檢測和緩解技術(shù)。

標(biāo)簽:

返回頂部