[發明專利]一種抵抗實時代碼復用攻擊的防御方法在審
| 申請號: | 201811343644.5 | 申請日: | 2018-11-13 |
| 公開(公告)號: | CN109446802A | 公開(公告)日: | 2019-03-08 |
| 發明(設計)人: | 周超;黃偉;郭雅娟;姜海濤;王梓瑩;郭靜;朱道華;李巖 | 申請(專利權)人: | 國網江蘇省電力有限公司電力科學研究院;國家電網有限公司;江蘇省電力試驗研究院有限公司 |
| 主分類號: | G06F21/54 | 分類號: | G06F21/54 |
| 代理公司: | 南京縱橫知識產權代理有限公司 32224 | 代理人: | 董建林;張歡歡 |
| 地址: | 210000 江蘇*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 頁面 原有的 共享庫代碼 滑動窗口 實時代碼 復用 進程地址空間 防御能力 抵抗 持續檢測 防御 攻擊 加載 記錄 內存 檢測 非法 | ||
本發明公開了一種抵抗實時代碼復用攻擊的防御方法,包括以下步驟:S1,獲取共享庫代碼原有的頁面流向圖;S2,在原有的XnR滑動窗口增加頁面流向的記錄;S3,對比共享庫代碼原有的頁面流向圖和滑動窗口內的頁面流向的記錄,檢測非法流。本發明能夠提高原始XnR的防御能力,避免已加載到進程地址空間的內存頁無法被持續檢測的缺陷。
技術領域
本發明屬于計算機代碼安全防御技術領域,具體涉及一種抵抗實時代碼復用攻擊的防御方法。
背景技術
實時代碼復用攻擊是利用內存頁可讀的漏洞截獲某一內存頁,盡可能多的通過控制流分析獲取其他頁的二進制內容。具體是基于得到的頁面信息,實時代碼復用攻擊構建了一個動態編譯引擎,搜集短序列構造gadgets并編譯攻擊代碼。
針對代碼復用攻擊的防御,現有技術中的可執行不可讀(XnR)方案,將內存頁的執行權限和讀權限分割成兩個不相交的集合,做互斥管理,能夠防御大部分利用內存頁可讀漏洞的攻擊。但是如果一個內存頁已經被加載到了進程的地址空間里,后續的檢測都無法實現,直到它被移出地址空間。假設窺視內存的行為以函數為單位,對于某一個函數,若每次該函數先被調用,再被惡意程序讀取,則該行為不會觸發XnR防御機制。因此,XnR方案存在固有缺陷。
發明內容
本發明的目的在于克服現有技術中的不足,提供了一種抵抗實時代碼復用攻擊的防御方法,實現內存頁的防御。
為解決上述技術問題,本發明提供了一種抵抗實時代碼復用攻擊的防御方法,其特征是,包括以下步驟:
S1,獲取共享庫代碼原有的頁面流向圖;
S2,在原有的XnR滑動窗口增加頁面流向的記錄;
S3,對比共享庫代碼原有的頁面流向圖和滑動窗口內的頁面流向的記錄,檢測非法流。
進一步的,S1中,獲取共享庫代碼原有的頁面流向結果的具體過程為:
將共享庫代碼轉換為SSA形式的中間語句;
分析SSA形式的中間語句獲得基本塊之間的跳轉關系;
獲取每條指令的偏移量,將各指令的偏移量映射為一個線性頁號;
在SSA形式的中間語句中標記上對應的頁號,由語句間的跳轉關系獲得頁間的跳轉關系,即獲得共享庫代碼原有的頁面流向圖。
進一步的,共享庫代碼利用BAP平臺轉換為SSA形式的中間語句。
進一步的,利用靜態分析算法分析SSA形式的中間語句獲得基本塊之間的跳轉關系。
進一步的,當缺頁異常觸發時,提取觸發缺頁異常的當前指令及其所在頁的信息,形成頁面流向的記錄。
進一步的,頁的信息包括頁號、內存頁面的偏移量,以及該頁所屬的共享庫名稱。
進一步的,獲取非法流的具體過程為:
當一個內存頁面流滿足以下條件時,會被定義為非法流:
(1)滑動窗口的活動頁中不存在不能識別的跳轉指令;
(2)滑動窗口中的活動頁與缺頁異常觸發頁面流向的記錄之間的關聯在共享庫原有的頁面流向圖中未出現。
與現有技術相比,本發明所達到的有益效果是:該發明能夠提高原始XnR的防御能力,避免已加載到進程地址空間的內存頁無法被持續檢測的缺陷。
附圖說明
圖1是本發明方法的流程示意圖。
具體實施方式
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于國網江蘇省電力有限公司電力科學研究院;國家電網有限公司;江蘇省電力試驗研究院有限公司,未經國網江蘇省電力有限公司電力科學研究院;國家電網有限公司;江蘇省電力試驗研究院有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811343644.5/2.html,轉載請聲明來源鉆瓜專利網。





