[發(fā)明專利]控制流完整性在審
| 申請?zhí)枺?/td> | 201780053793.5 | 申請日: | 2017-08-30 |
| 公開(公告)號: | CN109643346A | 公開(公告)日: | 2019-04-16 |
| 發(fā)明(設(shè)計)人: | S.蘇爾塔納;S.布拉塔諾夫;D.M.德拉姆;B.C.斯特朗 | 申請(專利權(quán))人: | 英特爾公司 |
| 主分類號: | G06F21/54 | 分類號: | G06F21/54;G06F21/51 |
| 代理公司: | 中國專利代理(香港)有限公司 72001 | 代理人: | 徐紅燕;劉春元 |
| 地址: | 美國加利*** | 國省代碼: | 美國;US |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 控制流 目標地址 基本塊 運行時 分組 目標指令指針 驅(qū)動器 間接分支指令 解碼器電路 收集器電路 解碼 控制流圖 目標應(yīng)用 起始地址 數(shù)據(jù)包括 驗證器 處理器 捕獲 電路 標簽 追蹤 違反 | ||
一個實施例提供了一種裝置。所述裝置包括收集器電路,其用于從PT驅(qū)動器捕獲處理器追蹤(PT)數(shù)據(jù)。所述PT數(shù)據(jù)包括第一目標指令指針(TIP)分組,所述第一目標指令指針(TIP)分組包括在執(zhí)行的目標應(yīng)用的間接分支指令的第一運行時目標地址。所述裝置此外包括解碼器電路,其用于從PT數(shù)據(jù)中提取第一TIP分組,并且用于對第一TIP分組進行解碼以產(chǎn)生第一運行時目標地址。所述裝置此外包括控制流驗證器電路,其用于至少部分地基于控制流圖(CFG)來確定向第一運行時目標地址的控制流轉(zhuǎn)移是否對應(yīng)于控制流違反。所述CFG包括多個節(jié)點,每個節(jié)點包括第一基本塊的起始地址、第一基本塊的結(jié)束地址以及第二基本塊的下一個可能的地址,或“沒有找到”標簽。
技術(shù)領(lǐng)域
本公開內(nèi)容涉及控制流,具體地涉及控制流完整性。
背景技術(shù)
返回定向編程(ROP)和跳躍定向編程(JOP)各自是一種形式的控制流挾持型攻擊(hijacking attack)。這些攻擊利用存儲器劣化漏洞,例如緩沖器溢出,用于將控制流重定向到存儲器中所存儲的已經(jīng)存在的可執(zhí)行代碼。攻擊依賴于短指令序列,其被稱為“小工具(gadget)”,結(jié)束于間接分支指令(例如返回、跳躍*、調(diào)用*,其中*對應(yīng)于間接尋址)并且執(zhí)行攻擊者所選擇的操作。控制流完整性(CFI)驗證技術(shù)可以提供對抗控制流挾持性攻擊的防御。CFI驗證技術(shù)被配置成確保應(yīng)用中的合法控制流轉(zhuǎn)移。現(xiàn)存CFI驗證技術(shù)可能需要源代碼修改和/或二進制重儀表化(re-instrumentation)來在應(yīng)用二進制中插入運行時CFI檢查。此外,現(xiàn)存CFI驗證技術(shù)可引發(fā)性能懲罰和/或僅可以提供有限的歷史,因而限制準確性。
附圖說明
所要求保護的主題的特征和優(yōu)點從與其一致的實施例的以下詳細描述中將是顯而易見的,所述描述應(yīng)當參考附圖來被考慮,其中:
圖1圖示了與本公開內(nèi)容的若干實施例一致的、包括控制流完整性電路的系統(tǒng)的功能性框圖;
圖2是根據(jù)本公開內(nèi)容的各種實施例的預(yù)處理操作的流程圖;并且
圖3是根據(jù)本公開內(nèi)容的各種實施例的控制流完整性操作的流程圖。
盡管以下詳細描述將參考說明性實施例而進行,但是對于本領(lǐng)域技術(shù)人員而言,許多可替換方案、修改及其變型將是顯而易見的。
具體實施方式
指令追蹤工具(PT電路)、例如從英特爾公司可得到的英特爾處理器追蹤(PT)可以被配置成捕獲與目標應(yīng)用的執(zhí)行、多個應(yīng)用、所選存儲器范圍和/或整個系統(tǒng)有關(guān)的信息(即PT數(shù)據(jù))。PT數(shù)據(jù)被收集在數(shù)據(jù)分組中并且可以包括例如定時信息、程序流信息(例如分支目標、分支被采取/不被采取的指示符、函數(shù)返回地址)等等。數(shù)據(jù)分組可以由PT電路臨時存儲,并且然后可以被提供到存儲器和/或其它存儲裝置以用于分析。PT數(shù)據(jù)然后可以被利用以用于控制流分析操作,例如用以重構(gòu)程序流。
控制流圖(CFG)是通過使用圖記號來對控制流、即執(zhí)行路徑的表示,所述路徑可以在應(yīng)用的執(zhí)行期間通過應(yīng)用來被遍歷。在控制流圖中,圖中的每個節(jié)點對應(yīng)于基本塊。基本塊是指令的序列,其中控制僅僅在序列的開始處進入并且控制僅僅在序列的結(jié)束時離開。在基本塊的中間不存在任何分支進或出。例如,目的地地址可以對應(yīng)于基本塊的起始,并且間接分支指令可以對應(yīng)于塊的結(jié)束。間接分支指令的地址可以對應(yīng)于源地址。間接分支指令的目標地址可以對應(yīng)于CFG中的下一個基本塊的下一個可能的地址,即可以對應(yīng)于CFG中下一個/可達到的基本塊的開始地址。在兩個基本塊(例如第一塊和第二塊)之間的邊表示從第一塊的結(jié)束向第二塊的開始的控制流轉(zhuǎn)移。節(jié)點因而可以包括基本塊的起始地址、基本塊的結(jié)束地址以及下一個基本塊的下一個可能的起始地址,即下一個/可達到的基本塊的開始地址。可以通過例如源代碼分析、二進制分析、靜態(tài)二進制分析、執(zhí)行剖析等等來生成控制流圖。控制流圖于是可以包括多個合法執(zhí)行路徑。每個合法執(zhí)行路徑可以包括通過一個或多個邊被連接的多個節(jié)點。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于英特爾公司,未經(jīng)英特爾公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201780053793.5/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





