英特爾釋出新的技術規範去防禦 ROP 攻擊
英特爾長期同軟體社群合作,並且在執行在現代電腦系統上的作業系統和軟體的加固保護方面取得了很大進展。因為這些防禦發揮了作用,攻擊者們開始尋找創造性的替代攻擊方法來繞過這些防禦。Return Oriented Programming (也稱為 ROP)和 Jump Oriented Programming(也稱為 JOP)就是兩種正在日益流行的這類技術。JOP 和 ROP 特別難以檢測或防禦,因為攻擊者使用了可執行記憶體中的已有程式碼,以一種創造性的方式修改了程式的行為。ROP/JOP 難以防禦的原因就在於攻擊者使用的是可執行記憶體中的已有程式碼。已經開發和部署了一些基於軟體的檢測和防禦技術,只是收效甚微。
英特爾和微軟已經意識到 ROP 攻擊的危害性,以及開發防禦 ROP/JOP 的方法的難度。總之,我們評估過超過十項的技術創新來解決這些最近 7 年內新興起的威脅,並且將範圍縮小到 x86/x64 的 CET 標準來更有效地處理 ROP 威脅。基於之前定義指令集擴充套件方面的經驗,以及對採用新 ISA 帶來的挑戰,我們把目標定在一個用於 ROP/JOP 防禦而設計的 ISA,並且它對於大部分設計良好的軟體是透明的,只需要很小的修改,甚至零修改;也允許需要修改的軟體取消該功能。我們也想確認這個解決方案並不只是適用於應用,還適用於作業系統核心,並且對大多數程式語言寫的軟體也有益。我們也想確保開啟了 CET 的軟體可以無修改地在老的平臺系統上執行(雖然沒有任何安全益處)。最終,也是最重要的,我們想去解決所有已有的 ROP/JOP 攻擊。
雖然我們在這裡包含一個 CET 的簡要描述,但是並不應該取代對完整標準的仔細閱讀。這裡我們強調 ISA 的兩個關鍵方面來幫助你入門,即 shadow stack 和 indirect branch tracking。CET 是這兩者的結合,而這兩者都是為了處理 ROP 和 JOP 而設計的。
除了用於控制轉移和資料的傳統棧,CET 定義了第二個棧(shadow stack),專門用於控制轉移操作。當 CET 啟用的時候,CALL
指令除了完成把返回地址壓入普通棧的正常行為(對於傳統的棧操作沒有改變)之外,還把返回地址壓入到 shadow stack 中。而返回指令(比如說,RET
)會將 shadow stack 和傳統棧上的返回地址彈出,同時只有當兩個棧的返回地址相同時才會執行控制轉移為彈出來的地址。對於 shadow stack 的寫操作有諸多的限制,使得攻擊者透過修改頁表來修改兩個棧上的返回地址變得更加困難。因此限制 shadow stack 僅用於 call 和 return 操作就是為了只儲存返回地址。透過防禦非計劃中的或者惡意的切換 shadow stack 或者對於 shadow stack 的 overflow 和 underflow,shadow stack 的頁表保護機制也是設計用於保護 shadow stack 的完整性。
ENDBRANCH 指令是為了標記一個間接分支或者跳轉而新新增到 ISA 的指令。因此如果 ENDBRANCH 不是一個間接分支或者跳轉的目標,CPU 生成一個表明非計劃中的或者惡意的行為異常。為了後向相容和在軟體中提前啟用,這個特定的指令已經在當前的 Intel 處理器被實現為 NOP 指令(類似於一些 MPX 指令)。
正如我們過去有的,英特爾努力去減少安全特性所帶來效能影響,CET 也不例外,然而,請記住效能影響高度依賴於特定軟體和工作內容。
最後,我們想承認一點,這個標準受益於同微軟大量的合作。
相關文章
- WMI 的攻擊,防禦與取證分析技術之防禦篇
- WMI 的攻擊,防禦與取證分析技術之攻擊篇
- ARP病毒攻擊技術分析與防禦
- 運維和IT技術需知的DDOS攻擊防禦整理運維
- 如何防禦DDOS攻擊?網路安全技術學多久?
- WEB攻擊與防禦Web
- CSRF攻擊與防禦
- 淺談DDOS攻擊攻擊與防禦
- 【技術乾貨】XSS攻擊、CSRF攻擊基本概念及防範方法
- 3、攻擊防範
- 攻擊欺騙防禦技術在網路攻防實戰中的演化
- 高防伺服器主要防禦的攻擊伺服器
- DDOS 攻擊的防範教程
- 【容器安全防線】Docker攻擊方式與防範技術探究Docker
- CC攻擊的原理是什麼?如何防禦CC攻擊?
- cc攻擊防禦解決方法
- 網站被攻擊如何防禦網站
- 淺談DDos攻擊與防禦
- DDOS伺服器防禦的方法有哪些,如何防禦DDOS攻擊伺服器
- XXE攻擊攻擊原理是什麼?如何防禦XXE攻擊?
- CSRF攻擊與Django防範Django
- DDOS攻擊原理,種類及其防禦
- 伺服器如何防禦CC攻擊伺服器
- 跨域攻擊分析和防禦(中)跨域
- 欺騙防禦技術新功能:用郵件資料欺騙攻擊者
- CC攻擊的原理是什麼?防禦CC攻擊的方法有哪些?
- 高防伺服器如何防禦網路攻擊伺服器
- Akamai淺談網路攻擊的防禦AI
- Linux下防禦DDOS攻擊的操作梳理Linux
- 防禦XSS攻擊的七條原則
- 防禦 XSS 攻擊的七條原則
- XXE攻擊是什麼?如何有效防禦XXE攻擊?
- [專業術語]什麼是ARP攻擊?如何防範ARP攻擊?
- 直播行業如何防禦網路攻擊?行業
- 電商平臺如何防禦網路攻擊?
- CSS keylogger:攻擊與防禦CSS
- DevOps 團隊如何防禦 API 攻擊devAPI
- 生成樹欺騙攻擊與防禦策略