色婷婷国产精品免费网站_av在线官网_色综合色综合_欧美精品一区二区三区蜜桃视频_成人免费视频观看视频_国产午夜精品一区二区三区视频

17站長(zhǎng)網(wǎng)

17站長(zhǎng)網(wǎng) 首頁(yè) 安全 安全教程 查看內(nèi)容

怎么利用硬件防御ROP,詳解HA-CFI技術(shù)

2022-9-24 08:44| 查看: 2002 |來(lái)源: 互聯(lián)網(wǎng)

Rop是借鑒淘寶開(kāi)發(fā)平臺(tái)實(shí)現(xiàn)的全功能Rest Web Service 開(kāi)源框架,提供了請(qǐng)求/響應(yīng)序列化、數(shù)據(jù)檢驗(yàn)、會(huì)話(huà)管理、安全管理等高級(jí)主題的東西。 前言 隨著漏洞緩解 ...

Rop是借鑒淘寶開(kāi)發(fā)平臺(tái)實(shí)現(xiàn)的全功能Rest Web Service 開(kāi)源框架,提供了請(qǐng)求/響應(yīng)序列化、數(shù)據(jù)檢驗(yàn)、會(huì)話(huà)管理、安全管理等高級(jí)主題的東西。

前言

隨著漏洞緩解技術(shù)的不斷發(fā)展,常用的一些漏洞利用手段如ROP變得越來(lái)越困難,來(lái)自ENDGAME的Cody Pierce發(fā)表了一篇[博客],稱(chēng)ROP的末日已經(jīng)來(lái)臨,新的漏洞緩解技術(shù)將有效應(yīng)對(duì)未知的漏洞威脅,并宣布他們實(shí)現(xiàn)了一種全新利用硬件輔助的控制流完整性的防御機(jī)制——HA-CFI。

不過(guò)這種論調(diào)向來(lái)是要打自己臉的,因?yàn)榭傆行碌穆┒蠢梅绞匠鰻t,永遠(yuǎn)不能低估黑客的想象力。比如Flash推出的一系列漏洞緩解機(jī)制中仍然存在漏洞,這就很尷尬了(CVE-2016-4249,詳情可參考古河在HitCon上的演講)。

知己知彼,百戰(zhàn)不殆。只有充分了解新的漏洞緩解機(jī)制,才能有更好的思路去繞過(guò),才能對(duì)未來(lái)發(fā)展新的防御機(jī)制更有啟發(fā)。

控制流完整性

控制流完整性(Control Flow Integrity, CFI)是由加州大學(xué)和微軟公司于2005年提出的一種防御控制流劫持攻擊的安全機(jī)制。通過(guò)監(jiān)視程序運(yùn)行過(guò)程中的控制流轉(zhuǎn)移過(guò)程,使其始終處于原有控制流圖所限定的合法范圍內(nèi)。

具體的做法是分析程序的控制流圖,重點(diǎn)關(guān)注間接轉(zhuǎn)移指令,如間接跳轉(zhuǎn)、間接調(diào)用和函數(shù)返回等指令,獲取相應(yīng)的白名單。在程序運(yùn)行過(guò)程中對(duì)間接轉(zhuǎn)移指令的目標(biāo)進(jìn)行檢查核對(duì),而攻擊者對(duì)控制流的劫持會(huì)導(dǎo)致目標(biāo)不在白名單中,此時(shí)CFI可迅速進(jìn)行阻斷,保證系統(tǒng)安全。

一般來(lái)說(shuō),控制流完整性可分為細(xì)粒度和粗粒度兩種實(shí)現(xiàn)方式。細(xì)粒度CFI嚴(yán)格檢查每一個(gè)間接轉(zhuǎn)移指令的轉(zhuǎn)移目標(biāo),但會(huì)嚴(yán)重影響程序的執(zhí)行效率;粗粒度CFI將一組或相近類(lèi)型的目標(biāo)歸到一起進(jìn)行檢查,可在一定程度上降低開(kāi)銷(xiāo),但會(huì)使安全性降低。

基于硬件的CFI

早期一些CFI思路是基于二進(jìn)制插樁的,最簡(jiǎn)單粗暴的方式是在每條控制流轉(zhuǎn)移指令前插入檢驗(yàn)代碼,判斷目標(biāo)地址的合法性。但這種方式的開(kāi)銷(xiāo)實(shí)在太大,難以在實(shí)際中部署。因此研究人員提出的一些改進(jìn)方法均在效率上進(jìn)行了妥協(xié),放寬了檢查條件。實(shí)質(zhì)上都是粗粒度的CFI,實(shí)際效果會(huì)打折扣,可被攻擊者利用繞過(guò)。

既然CFI受制于效率,那么是否可以引入硬件機(jī)制來(lái)提高效率呢?畢竟相比二進(jìn)制插樁的方式,硬件的開(kāi)銷(xiāo)幾乎是可以忽略的,但前提是我們必須找到可行的實(shí)施方案。這就需要對(duì)處理器平臺(tái)上的一些技術(shù)細(xì)節(jié)有所了解。

Intel為了讓用戶(hù)能夠更好的對(duì)應(yīng)用程序的性能進(jìn)行優(yōu)化,提供了一系列輔助調(diào)試的硬件支持,這里著重介紹LBR(Last Branch Record)、BTS(Branch Trace Store)和PMU(Performance Monitoring Unit),早期的一些研究都是在這些基礎(chǔ)上開(kāi)展的。

LBR

LBR是Intel提供的一組用于記錄和追蹤程序最近的若干次跳轉(zhuǎn)信息的循環(huán)寄存器組,這些寄存器的數(shù)量與Intel處理器的微架構(gòu)相關(guān),在早幾年的Haswell架構(gòu)中有16個(gè)這樣的寄存器,也就是說(shuō)可以記錄程序最近的16條跳轉(zhuǎn)指令的信息(包括從哪跳轉(zhuǎn)過(guò)來(lái)的,將要跳轉(zhuǎn)到哪去),而在最新的Skylake架構(gòu)中有32個(gè)。LBR寄存器的強(qiáng)大之處在于其定制性很強(qiáng),能夠過(guò)濾掉一些不重要的跳轉(zhuǎn)指令,而保留需要重點(diǎn)關(guān)注的跳轉(zhuǎn)指令。

BTS

BTS是另一個(gè)用于記錄程序分支信息的功能單元,但與LBR不同的是,BTS不會(huì)將程序的跳轉(zhuǎn)指令信息存儲(chǔ)到寄存器中,而是將其存儲(chǔ)至CAR(cache-as-RAM)中或是系統(tǒng)的DRAM中,這里就沒(méi)有條數(shù)的限制了,只要空間足夠,BTS可以存儲(chǔ)大量跳轉(zhuǎn)指令的信息。

但另一方面,BTS的時(shí)間開(kāi)銷(xiāo)要比LBR高出許多。

PMU

PMU是Intel引入的用于記錄處理器事件的功能單元。PMU事件有好幾百個(gè),非常詳盡,包含了處理器在運(yùn)行過(guò)程中可能遇到的所有情形,例如指令計(jì)數(shù)、浮點(diǎn)運(yùn)算指令計(jì)數(shù)、L2緩存未命中的時(shí)鐘周期等。當(dāng)然其中也有一個(gè)在HA-CFI中非常有用的事件,分支預(yù)測(cè)失敗事件。

HA-CFI基本思路

如果大家對(duì)計(jì)算機(jī)體系結(jié)構(gòu)稍有了解就會(huì)知道,現(xiàn)代處理器都是采用流水線(xiàn)的方式執(zhí)行指令,而分支預(yù)測(cè)是保證其高效的一個(gè)非常重要的技術(shù)。

當(dāng)包含流水線(xiàn)技術(shù)的處理器處理分支指令時(shí)會(huì)遇到一個(gè)問(wèn)題,根據(jù)判定條件的真/假的不同,有可能會(huì)產(chǎn)生轉(zhuǎn)跳,而這會(huì)打斷流水線(xiàn)中指令的處理,因?yàn)樘幚砥鳠o(wú)法確定該指令的下一條指令。流水線(xiàn)越長(zhǎng),處理器等待的時(shí)間便越長(zhǎng),因?yàn)樗仨毜却种е噶钐幚硗戤叄拍艽_定下一條進(jìn)入流水線(xiàn)的指令。分支預(yù)測(cè)就是預(yù)測(cè)一條可能的分支,讓處理器沿著這條分支流水執(zhí)行下去而不用等待。若預(yù)測(cè)成功,那么皆大歡喜,處理器繼續(xù)執(zhí)行下去即可;若預(yù)測(cè)失敗,處理器則需要回退到分支位置,重新沿著正確的分支方向執(zhí)行。

分支預(yù)測(cè)有許多種策略,如靜態(tài)預(yù)測(cè)和動(dòng)態(tài)預(yù)測(cè)等,當(dāng)然學(xué)術(shù)界還有很多其他非常高端的方法。但無(wú)論采用何種方式進(jìn)行分支預(yù)測(cè),攻擊者劫持指令流后,其目標(biāo)地址顯然不是處理器能夠預(yù)測(cè)到的,必然會(huì)產(chǎn)生一個(gè)分支預(yù)測(cè)失敗的PMU事件,這相當(dāng)于一個(gè)預(yù)警信息,接下來(lái)要做的就是從這類(lèi)PMU事件中甄別出哪些是正常的分支預(yù)測(cè)失敗,哪些是由于攻擊者劫持指令流造成的分支預(yù)測(cè)失敗。

僅僅預(yù)警是不夠的,HA-CFI還希望能夠準(zhǔn)確定位指令流被劫持的位置,并及時(shí)進(jìn)行阻斷。此時(shí)PMU就幫不上什么忙了,因?yàn)镻MU只負(fù)責(zé)報(bào)告處理器事件,而不記錄產(chǎn)生該事件的具體指令。當(dāng)某一時(shí)刻PMU報(bào)告一個(gè)分支預(yù)測(cè)失敗的事件時(shí),此時(shí)的指令指針可能早已越過(guò)了跳轉(zhuǎn)指令,很難回溯定位發(fā)生分支預(yù)測(cè)失敗的指令位置。

因此,為了精確定位造成分支預(yù)測(cè)失敗的指令,還需要借助LBR的幫助。當(dāng)分支預(yù)測(cè)失敗的PMU事件觸發(fā)中斷服務(wù)程序(ISR, Interrupt Service Routines)時(shí),ISR將從LBR中取出最新的若干條間接跳轉(zhuǎn)指令,其中必然包含造成分支預(yù)測(cè)失敗的間接跳轉(zhuǎn)指令。而且LBR中還記錄了更為詳細(xì)的信息,可方便ISR核對(duì)該間接跳轉(zhuǎn)指令的目標(biāo)地址是否在白名單中。若跳轉(zhuǎn)指令的目標(biāo)不在白名單之中,說(shuō)明指令流可能遭到劫持,可及時(shí)阻斷。示意圖如下所示:

HA-CFI示意圖

此外,為了進(jìn)一步保證HA-CFI的效率,可以根據(jù)當(dāng)前進(jìn)程的重要性選擇性的開(kāi)啟或關(guān)閉PMU,如當(dāng)前進(jìn)程為IE或Firefox瀏覽器時(shí),開(kāi)啟PMU;若當(dāng)前進(jìn)程為Calc.exe這樣不太容易遭受攻擊的進(jìn)程,則關(guān)閉PMU,如圖所示:

選擇性開(kāi)啟PMU

效果與展望

Cody Pierce等人選取了多個(gè)經(jīng)典的CVE漏洞,與EMET進(jìn)行了比較:

實(shí)驗(yàn)結(jié)果1

實(shí)驗(yàn)結(jié)果2

可以肯定的是,隨著對(duì)抗的不斷升級(jí),未來(lái)漏洞利用的門(mén)檻將越來(lái)越高,與防御機(jī)制斗法也將也成為常態(tài)。

除了剛才提到的微軟的EMET,Intel在今年6月發(fā)布了一份關(guān)于CET的技術(shù)前瞻:[Control-flow Enforcement Technology Preview],準(zhǔn)備從硬件層面入手防止ROP和JOP攻擊。通過(guò)引入一個(gè)shadow stack(類(lèi)似的[想法]幾年前也有人提出),專(zhuān)門(mén)用于存儲(chǔ)返回地址,每當(dāng)發(fā)生函數(shù)調(diào)用時(shí),除了向當(dāng)前線(xiàn)程棧內(nèi)壓入返回地址,還要向shadow stack中壓入返回地址。返回時(shí)需要檢查線(xiàn)程棧中的返回地址是否與shadow stack中一致,若不一致,說(shuō)明線(xiàn)程棧可能遭到攻擊者破壞,程序中止。此外,shadow stack處于層層嚴(yán)密防護(hù)之中,普通代碼是無(wú)法修改shadow stack的,除非攻擊者能控制內(nèi)核,當(dāng)然這并非不可能,只是攻擊門(mén)檻變得很高了。

CET目前仍是一個(gè)前瞻性的技術(shù),距離真正實(shí)現(xiàn)還需要時(shí)間。即使實(shí)現(xiàn)了,也不意味著高枕無(wú)憂(yōu),HA-CFI也是如此,總有能繞過(guò)的方法,總有其未考慮到的情況,甚至可能它本身也存在著缺陷。

tag標(biāo)簽:硬件防御 HA-CFI
本文最后更新于 2022-9-24 08:44,某些文章具有時(shí)效性,若有錯(cuò)誤或已失效,請(qǐng)?jiān)诰W(wǎng)站留言或聯(lián)系站長(zhǎng):17tui@17tui.com
·END·
站長(zhǎng)網(wǎng)微信號(hào):w17tui,關(guān)注站長(zhǎng)、創(chuàng)業(yè)、關(guān)注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營(yíng)銷(xiāo)服務(wù)中心

免責(zé)聲明:本站部分文章和圖片均來(lái)自用戶(hù)投稿和網(wǎng)絡(luò)收集,旨在傳播知識(shí),文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請(qǐng)勿用于商業(yè)用途,如果損害了您的權(quán)利,請(qǐng)聯(lián)系我們及時(shí)修正或刪除。謝謝!

17站長(zhǎng)網(wǎng)微信二維碼

始終以前瞻性的眼光聚焦站長(zhǎng)、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長(zhǎng)轉(zhuǎn)型升級(jí),為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營(yíng)銷(xiāo)服務(wù),與站長(zhǎng)一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨(dú)!

掃一掃,關(guān)注站長(zhǎng)網(wǎng)微信

大家都在看

    熱門(mén)排行

      最近更新

        返回頂部
        主站蜘蛛池模板: 日韩黄视频 | 亚洲aaaaaa | 国产精久久 | 亚洲精品视频一区 | 国产日韩一区 | 国产精品一品二区三区的使用体验 | 日韩二三区 | 日本精品网站 | 欧美视频一区二区 | 91精品免费 | 破处视频在线观看 | 亚洲国产精品av | 中文字幕在线观看一区二区三区 | 免费看91 | 国产伦精品一区二区三区88av | 91二区| 国产亚洲天堂 | 日韩中文字幕一区二区三区 | 老司机午夜免费精品视频 | 一区二区三区免费在线观看 | 日本三级大片 | 青青五月天 | 四虎影院最新地址 | 亚洲精品一区二区三区在线 | 在线免费看毛片 | 色天堂影院 | 午夜视频在线 | 一区二区视频网站 | 欧美日韩在线精品 | 久久亚洲成人 | 成人蜜桃视频 | 亚洲欧美在线视频 | 国产麻豆91 | 91久久国产综合久久91精品网站 | 福利视频一区 | 日韩一级片在线观看 | 麻豆国产91| 中文字幕婷婷 | 国产精品久久久久久久久久辛辛 | 亚洲午夜天堂 | 久久午夜视频 |