[發明專利]一種基于硬件機制的內核控制流異常檢測方法有效
| 申請號: | 201710674436.2 | 申請日: | 2017-08-09 |
| 公開(公告)號: | CN107506638B | 公開(公告)日: | 2020-10-16 |
| 發明(設計)人: | 曾慶凱;焦賀賀 | 申請(專利權)人: | 南京大學 |
| 主分類號: | G06F21/52 | 分類號: | G06F21/52;G06F11/36 |
| 代理公司: | 南京鐘山專利代理有限公司 32252 | 代理人: | 戴朝榮 |
| 地址: | 210000 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 硬件 機制 內核 控制 異常 檢測 方法 | ||
1.一種基于硬件機制的內核控制流異常檢測方法,其特征在于,包括以下步驟:
進入VMM環境:在Intel處理器啟動后進行配置,使系統進入VMM環境執行;
生成合法跳轉目的地址集合:通過對目標操作系統內核進行解析,并運行預先準備的測試程序,分別產生三種指令的合法跳轉目的地址集合,三種指令的合法跳轉目的地址集合分別為call指令合法跳轉目的地址集合、jump指令合法跳轉目的地址集合和ret指令合法跳轉目的地址集合;所述生成合法跳轉目的地址集合的過程包括:收集內核函數入口地址;運行預先準備的測試程序;根據測試程序的執行情況設置白名單;生成call指令合法跳轉目的地址集合;生成jump指令合法跳轉目的地址集合;生成ret指令合法跳轉目的地址集合;
配置VMCS區域:配置目標操作系統運行的VMCS區域,使其能夠捕捉記錄寫滿時產生的不可屏蔽中斷,設置此不可屏蔽中斷的中斷處理程序地址;所述配置VMCS區域的過程包括:分配VMCS區域地址空間;寫入VMCS ID值;配置I/O位圖;配置MSR位圖;配置捕捉NMI中斷:設置系統使其能夠捕捉記錄寫滿時產生的NMI中斷,而其它類型的中斷則由目標操作系統自行處理,并且設置好此NMI中斷的中斷處理程序地址;配置擴展頁表;開啟擴展頁表;
配置LBR:配置控制著LBR機制行為方式的IA32_DEBUGCTL寄存器和IA32_LASTBRANCH_TOS寄存器,使LBR在系統運行期間記錄所需的分支跳轉的源地址和目的地址;所述配置LBR的過程包括:檢測處理器是否支持所需LBR功能;配置分支記錄存放地址:分支記錄的基地址是通過IA32_LASTBRANCH_TO寄存器來設定的;配置分支過濾功能:通過設置MSR_LBR_SELECT寄存器來配置分支過濾功能,使LBR只記錄內核間接call、內核間接jump和內核ret;開啟LBR機制:設置IA32_DEBUGCTL寄存器開始LBR記錄功能;
配置PMU:配置控制著PMU機制行為方式的IA32_PMCI寄存器和IA32_PERFEVTSEL1寄存器,使其在LBR寫滿時產生一個不可屏蔽中斷;所述配置PMU的過程包括:檢測硬件是否支持所需PMU功能;配置監控事件:通過設置IA32_PERFEVTSELx寄存器來配置需要監控的事件,即間接call、間接jump和ret;配置事件計數器溢出條件:配置計數器溢出的條件為16,即當計數器計數到16時產生NMI中斷;開啟計數器:通過設置IA32_PERF_GLOBAL_CTRL寄存器和各自對應的控制器來開啟事件計數器;
進入VM環境:使系統進入VM環境,目標操作系統開始執行,硬件機制自動記錄分支跳轉;
分支記錄驗證:根據跳轉指令類型的不同,比較跳轉目的地址是否在相應的合法跳轉目的地址集合中,如果在,則為合法跳轉,否則,為異常控制流,系統發出警報。
2.如權利要求1所述的一種基于硬件機制的內核控制流異常檢測方法,其特征在于:所述進入VMM環境的過程包括:檢測處理器是否支持VMX架構;開啟VMX進入允許;分配VMXON區域地址空間;初始化VMXON區域;進入VMX模式,檢查執行是否成功。
3.如權利要求1所述的一種基于硬件機制的內核控制流異常檢測方法,其特征在于:所述進入VM環境的過程包括:執行VMCLEAR指令;執行VMPTRLD指令;執行VMLAUNCH指令。
4.如權利要求1所述的一種基于硬件機制的內核控制流異常檢測方法,其特征在于:所述分支記錄驗證的過程包括:
步驟901:置LBR序號為0;
步驟902:從LBR分支記錄中順序取出一個新的記錄,LBR序號加1;
步驟903:判斷指令是否為call指令,是轉到步驟904,否轉到步驟905;
步驟904:驗證call指令跳轉目的地址是否合法,是轉到步驟909,否轉到步驟910;對call指令跳轉目的地址是否合法的驗證是通過查看記錄的目的地址是否在call指令合法跳轉目的地址集合中,如果在集合中,則跳轉目的地址是合法的,否則,跳轉目的地址不是合法的;
步驟905:判斷指令是否為jump指令,是轉到步驟906,否轉到步驟907;
步驟906:驗證jump指令跳轉目的地址是否合法,是轉到步驟909,否轉到步驟910;對jump指令跳轉目的地址是否合法的驗證是通過查看記錄的目的地址是否在jump指令合法跳轉目的地址集合中,如果在集合中,則跳轉目的地址是合法的,否則,跳轉目的地址不是合法的;
步驟907:判斷指令是否為ret指令,是轉到步驟908,否轉到步驟910;
步驟908:驗證ret指令跳轉目的地址是否合法,是轉到步驟909,否轉到步驟910;對ret指令跳轉目的地址是否合法的驗證是通過查看記錄的目的地址是否在ret指令合法跳轉目的地址集合中,如果在集合中,則跳轉目的地址是合法的,否則,跳轉目的地址不是合法的;
步驟909:查看LBR序號是否為16,是轉到步驟911,否轉到步驟902;
步驟910:系統會向管理員發出警報,內核控制流執行出現異常情況;
步驟911:驗證結束,目標操作系統的控制流執行到目前為止是正確的。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京大學,未經南京大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710674436.2/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:信息展示方法和裝置、終端及可讀存儲介質
- 下一篇:一種應用管控方法和裝置





