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

操作系統(tǒng)/虛擬化安全知識域:系統(tǒng)強(qiáng)化之控制流限制

安全 應(yīng)用安全
CFI非常簡單:我們確保代碼中的控制流始終遵循靜態(tài)控制流圖。例如,一個(gè)函數(shù)的返回指令應(yīng)該只允許返回到它的調(diào)用站點(diǎn),而使用C中的函數(shù)指針或C++中的虛函數(shù)的間接調(diào)用應(yīng)該只能夠定位它應(yīng)該能夠調(diào)用的合法函數(shù)的入口點(diǎn)。

控制流限制

正交防線是調(diào)節(jié)操作系統(tǒng)的控制流。通過確保攻擊者無法將控制權(quán)轉(zhuǎn)移到他們選擇的代碼上,即使我們不刪除內(nèi)存錯誤,我們也使利用內(nèi)存錯誤變得更加困難。最好的例子被稱為控制流完整性(CFI),現(xiàn)在許多編譯器工具鏈(如LLVM和微軟的VisualStudio),并于2017年以ControlFlowGuard的名義并入Windows內(nèi)核-另見軟件安全CyBOK知識領(lǐng)域。

從概念上講,CFI非常簡單:我們確保代碼中的控制流始終遵循靜態(tài)控制流圖。例如,一個(gè)函數(shù)的返回指令應(yīng)該只允許返回到它的調(diào)用站點(diǎn),而使用C中的函數(shù)指針或C++中的虛函數(shù)的間接調(diào)用應(yīng)該只能夠定位它應(yīng)該能夠調(diào)用的合法函數(shù)的入口點(diǎn)。為了實(shí)現(xiàn)這種保護(hù),我們可以標(biāo)記間接控制轉(zhuǎn)移指令的所有合法目標(biāo)(返回、間接調(diào)用和間接跳轉(zhuǎn)),并將這些標(biāo)簽添加到特定于此指令的集合。在運(yùn)行時(shí),我們檢查指令即將進(jìn)行的控制轉(zhuǎn)移是否是到集合中的目標(biāo)。否則,CFI會發(fā)出警報(bào)和/或使程序崩潰。

與ASLR一樣,CFI有多種口味,從粗粒度到細(xì)粒度,從上下文敏感到上下文不敏感。就像在ASLR中一樣,今天的大多數(shù)實(shí)現(xiàn)只采用最簡單,最粗粒度的保護(hù)。粗粒度CFI意味著為了性能而稍微放寬規(guī)則。例如,它不是將函數(shù)的返回指令限制為可能調(diào)用此函數(shù)的僅目標(biāo)合法調(diào)用站點(diǎn),而是可以針對任何調(diào)用站點(diǎn)。雖然不如細(xì)粒度CFI安全,但它仍然極大地限制了攻擊者的回旋余地,并且具有更快的運(yùn)行時(shí)檢查。

在現(xiàn)代機(jī)器上,某些形式的CFI甚至(或?qū)⒁┑玫接布闹С帧@?,英特爾控制流?qiáng)制技術(shù)(CET)支持影子堆棧和間接分支跟蹤,以幫助分別強(qiáng)制實(shí)施退貨和前向控制傳輸?shù)耐暾裕ㄒ苑浅4至6鹊姆绞剑?。ARM也不甘示弱,它提供了指針身份驗(yàn)證,以防止對指針值進(jìn)行非法修改—主要是通過使用指針的上位來存儲指針身份驗(yàn)證代碼(PAC),其功能類似于加密指針值上的簽名(除非您獲得正確的PAC,否則您的指針無效)。

遺憾的是,CFI只能通過破壞返回地址、函數(shù)指針和跳轉(zhuǎn)目標(biāo)等控制數(shù)據(jù)來幫助抵御改變控制流的攻擊,但對非控制數(shù)據(jù)攻擊卻無能為力。例如,它無法阻止覆蓋當(dāng)前進(jìn)程的權(quán)限級別并將其設(shè)置為“root”的內(nèi)存損壞(例如,通過將有效用戶ID設(shè)置為root用戶的ID)。但是,如果對控制流的限制在實(shí)踐中如此成功,您可能想知道數(shù)據(jù)流是否也可以進(jìn)行類似的限制。事實(shí)上,它們確實(shí)如此,這被稱為數(shù)據(jù)流完整性(DFI)。在DFI中,我們靜態(tài)地確定每個(gè)加載指令(即從內(nèi)存中讀取的指令)存儲指令可能合法地產(chǎn)生了數(shù)據(jù),并且我們標(biāo)記這些指令并將這些標(biāo)簽保存在一組中。在運(yùn)行時(shí),對于內(nèi)存中的每個(gè)字節(jié),我們記住該位置的最后一個(gè)存儲的標(biāo)簽。當(dāng)我們遇到加載指令時(shí),我們會檢查該地址的最后一個(gè)存儲是否在合法存儲集中,如果不是,我們會發(fā)出警報(bào)。與CFI不同,DFI在實(shí)踐中并未被廣泛采用,可能是因?yàn)槠滹@著的性能開銷。

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

2023-02-02 00:06:06

2023-02-07 00:24:24

2023-01-09 00:08:37

2023-02-06 00:26:02

2023-01-08 00:31:14

2023-01-27 09:17:02

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

2023-01-30 00:05:02

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

2023-01-31 00:10:32

2019-01-28 10:00:42

CPU操作系統(tǒng)存儲器

2010-04-14 17:54:06

2021-12-08 00:02:46

網(wǎng)絡(luò)安全計(jì)算機(jī)

2009-02-17 17:09:59

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

2010-04-29 14:08:38

Unix操作系統(tǒng)

2013-03-22 09:05:48

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

2009-02-17 15:57:38

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

2012-09-27 09:41:31

虛擬化

2010-04-19 16:57:09

Unix操作系統(tǒng)

2010-04-19 10:54:33

Unix操作系統(tǒng)

2010-04-19 17:39:50

Unix操作系統(tǒng)

2023-04-05 00:08:03

點(diǎn)贊
收藏

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