[發明專利]一種用于發現虛擬機自省系統中是否存在漏洞的方法有效
| 申請號: | 201710680960.0 | 申請日: | 2017-08-10 |
| 公開(公告)號: | CN107450964B | 公開(公告)日: | 2020-05-05 |
| 發明(設計)人: | 李金庫;吳曉潤;湯飛;羅林波;馬建峰 | 申請(專利權)人: | 西安電子科技大學 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455;G06F21/53 |
| 代理公司: | 西安通大專利代理有限責任公司 61200 | 代理人: | 徐文權 |
| 地址: | 710065 陜*** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 用于 發現 虛擬機 自省 系統 是否 存在 漏洞 方法 | ||
1.一種用于發現虛擬機自省系統中是否存在漏洞的方法,其特征在于,包括如下步驟:
步驟(1):編寫用于更改系統調用執行流和隱藏實際系統調用的Linux虛擬機內核模塊;
步驟(2):啟動Linux虛擬機;
步驟(3):在Linux虛擬機命令行執行make命令,將步驟(1)編寫的內核模塊編譯后生成格式為.ko的文件;
步驟(4):在Linux虛擬機命令行執行插入步驟(3)生成的格式為.ko的文件的命令,插入格式為.ko的文件后,Linux虛擬機通過自動調用格式為.ko的文件,在/proc文件夾下生成虛擬文件;
步驟(5):在步驟(4)生成的虛擬文件中寫入目標系統調用號和實際執行的系統調用號,以調用創建虛擬文件函數中虛擬文件的操作函數,找到虛擬文件的操作函數指向的file_operations結構體,觸發file_operations結構體中的觸發操作函數,實施更改操作;若更改成功,則表示虛擬機自省系統存在漏洞;
所述步驟(1)中,內核模塊包括一個數據結構體和七個函數,七個函數為:插入模塊函數,刪除模塊函數,觸發操作函數,獲取系統調用表函數,操作函數,暫停操作函數,刪除操作函數;
獲取系統調用表函數的實現過程為:
步驟4a,定義一個雙重指針**entry,雙重指針**entry指向內核內存空間起始地址;
步驟4b,令entry作為系統調用表的起始地址;
步驟4c,從內核內存的起始地址開始搜索,將內核內存的起始地址作為系統調用表地址,用其中一個系統調用的編號訪問數組中的成員,如果訪問得到的值恰好是這個系統調用號所對應的系統調用的地址,則再進行后續判斷;
步驟4d,再從內存頭部一直搜索到內存尾部,統計所有訪問得到的值恰好是系統調用號所對應的系統調用的地址的entry,如果在內存中搜索到一個導出函數,導出函數對應的entry即為系統調用表地址;如果搜索到至少兩個導出函數,則羅列出所有導出函數所對應entry附近的內存塊,如果其中間隔存在多處0xffffffff這四個字節,說明這些內存塊是導出函數的地址;
步驟4e,返回系統調用表地址。
2.根據權利要求1所述的一種用于發現虛擬機自省系統中是否存在漏洞的方法,其特征在于,所述數據結構體的實現過程為:
定義一個宏,將該宏的長度定義為12個字節,其中3到10這八個字節為占位符,在更改操作過程中動態地替換為任意的系統調用基地址,該宏作為jmp指令對應的機器碼。
3.根據權利要求1所述的一種用于發現虛擬機自省系統中是否存在漏洞的方法,其特征在于,插入模塊函數的實現過程為:
在Linux虛擬機命令行下執行插入命令插入內核模塊時,實際調用插入模塊函數,插入模塊函數調用創建虛擬文件函數在Linux虛擬機/proc文件夾下創建的一個虛擬文件,應用層通過讀寫該虛擬文件實現與內核的交互。
4.根據權利要求1所述的一種用于發現虛擬機自省系統中是否存在漏洞的方法,其特征在于,刪除模塊函數的實現過程為:
在Linux虛擬機命令行下執行刪除命令刪除內核模塊時,調用刪除模塊函數,刪除模塊函數調用文件刪除函數刪除虛擬文件,并調用刪除操作函數停止更改操作。
5.根據權利要求1所述的一種用于發現虛擬機自省系統中是否存在漏洞的方法,其特征在于,觸發操作函數的實現過程為:
當向虛擬文件中進行寫入操作時,系統調用創建虛擬文件函數中配置的文件操作函數,文件操作函數調用file_operations結構體中的觸發操作函數;
觸發操作函數首先調用獲取系統調用表函數得到系統調用表地址,然后調用操作函數實施更改操作。
6.根據權利要求1所述的一種用于發現虛擬機自省系統中是否存在漏洞的方法,其特征在于,操作函數的實現過程為:
當調用操作函數執行更改操作時,首先調用暫停操作函數暫停該操作,備份原系統調用;然后通過查找系統調用表找到目標系統調用號和實際執行的系統調用號分別對應的系統調用函數入口地址,替換原系統調用函數入口地址,當執行到原系統調用函數入口地址時,通過jmp指令跳轉到更改后系統調用代碼并執行。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西安電子科技大學,未經西安電子科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710680960.0/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種粉碎機
- 下一篇:一種化工生產用物料粉碎裝置





