[發(fā)明專利]一種基于系統(tǒng)調用重定向的VMI方法及系統(tǒng)有效
| 申請?zhí)枺?/td> | 201710248219.7 | 申請日: | 2017-04-14 |
| 公開(公告)號: | CN107203410B | 公開(公告)日: | 2020-02-14 |
| 發(fā)明(設計)人: | 金海;羌衛(wèi)中;徐公平;鄒德清 | 申請(專利權)人: | 華中科技大學 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455 |
| 代理公司: | 42201 華中科技大學專利中心 | 代理人: | 李智;曹葆青 |
| 地址: | 430074 湖北*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 系統(tǒng)調用 重定向 輔助進程 截獲 自動化 重定向系統(tǒng) 安全保護 安全執(zhí)行 動態(tài)視角 進程選擇 應用程序 初始化 可寫的 云環(huán)境 監(jiān)控 內核 調用 保證 管理 | ||
1.一種基于系統(tǒng)調用重定向的VMI方法,其特征在于,包括:
(1)選擇目標虛擬機VM,并將目標VM中的init進程選擇為輔助進程;
(2)在host中運行虛擬機自省VMI應用程序,截獲VMI應用程序的每個系統(tǒng)調用,獲取系統(tǒng)調用號,依據(jù)系統(tǒng)調用號以及預設的系統(tǒng)調用重定向策略決定截獲到的系統(tǒng)調用是否需要被重定向到目標VM中執(zhí)行;
(3)若需要重定向,則將重定向的系統(tǒng)調用參數(shù)寫入共享內存中,暫停host中VMI應用程序的執(zhí)行,向內核虛擬機KVM發(fā)出重定向請求;
(4)KVM在接收到重定向請求后,從共享內存中讀取系統(tǒng)調用參數(shù),并對輔助進程進行安全檢查及保護,然后調度輔助進程在目標VM中執(zhí)行重定向的系統(tǒng)調用;
(5)若系統(tǒng)調用的執(zhí)行結果對目標VM的用戶層數(shù)據(jù)進行更新,則將執(zhí)行結果重新寫回到共享內存中,并將共享內存中更新的數(shù)據(jù)拷貝到host中VMI應用程序的用戶空間;若系統(tǒng)調用的執(zhí)行結果對目標VM的內核狀態(tài)進行更新,則直接對目標VM的內存進行更新,然后恢復host中VMI應用程序的執(zhí)行;
(6)若VMI應用程序執(zhí)行結束,則獲取目標VM中的監(jiān)控結果;若VMI應用程序沒有執(zhí)行結束,則返回步驟(2);
在步驟(2)中,截獲VMI應用程序的系統(tǒng)調用,獲取系統(tǒng)調用號具體為:
利用共享庫介入技術,修改glibc庫文件中系統(tǒng)調用入口處的匯編代碼,添加自定義的系統(tǒng)調用重定向決策函數(shù),并重新編譯glibc庫文件,在VMI應用程序由用戶空間進入到庫空間開始執(zhí)行系統(tǒng)調用時,自動執(zhí)行系統(tǒng)調用重定向決策函數(shù),截獲VMI應用程序的系統(tǒng)調用,獲取系統(tǒng)調用號。
2.根據(jù)權利要求1所述的方法,其特征在于,在步驟(2)中,依據(jù)系統(tǒng)調用號以及預設的系統(tǒng)調用重定向策略決定截獲的系統(tǒng)調用是否需要重定向到目標VM中執(zhí)行具體為:
將系統(tǒng)調用分為只讀read-only和可寫writable兩類,并分別對每一個系統(tǒng)調用進行分類,分別對兩類系統(tǒng)調用的重定向策略進行分析,其中與系統(tǒng)文件和socket讀寫相關的系統(tǒng)調用并且對此文件和socket后續(xù)的系統(tǒng)調用讀寫操作均需要重定向。
3.根據(jù)權利要求1所述的方法,其特征在于,在步驟(4)中,對輔助進程進行安全檢查及保護具體為:
輔助進程的用戶空間安全保護:利用KVM的EPT進程地址空間隔離將輔助進程所在的內存頁的讀寫權限從EPT頁表中移除,以使對輔助進程內存頁的讀寫操作被拒絕,保證輔助進程的內存不會被惡意軟件讀寫;
輔助進程的內核空間安全檢查:在VM首次創(chuàng)建時,利用KVM獲取內核靜態(tài)函數(shù)的地址并保存,之后每次在輔助進程執(zhí)行前,再一次的獲取內核靜態(tài)函數(shù)的地址,并與先前保存的地址做一致性對比,若二者不一致,則表明系統(tǒng)內核被rootkits破壞,利用KVM向VMI應用程序發(fā)出安全警告,并將不一致信息寫入內核日志文件。
4.一種基于系統(tǒng)調用重定向的VMI系統(tǒng),其特征在于,包括:
初始化模塊,用于選擇目標虛擬機VM,并將目標VM中的init進程選擇為輔助進程;
系統(tǒng)調用截獲及重定向決策模塊,用于在host中截獲VMI應用程序的每個系統(tǒng)調用,獲取系統(tǒng)調用號,依據(jù)系統(tǒng)調用號以及預設的系統(tǒng)調用重定向策略決定截獲到的系統(tǒng)調用是否需要重定向到目標VM中執(zhí)行;系統(tǒng)調用截獲及重定向決策模塊截獲VMI應用程序的系統(tǒng)調用,獲取系統(tǒng)調用號具體為:利用共享庫介入技術,修改glibc庫文件中系統(tǒng)調用入口處的匯編代碼,添加自定義的系統(tǒng)調用重定向決策函數(shù),并重新編譯glibc庫文件,在VMI應用程序由用戶空間進入到庫空間開始執(zhí)行系統(tǒng)調用時,自動執(zhí)行系統(tǒng)調用重定向決策函數(shù),截獲VMI應用程序的系統(tǒng)調用,獲取系統(tǒng)調用號;
系統(tǒng)調用重定向模塊,用于在需要重定向時,將重定向的系統(tǒng)調用參數(shù)寫入共享內存中,暫停host中VMI應用程序的執(zhí)行,向內核虛擬機KVM發(fā)出重定向請求;
重定向系統(tǒng)調用執(zhí)行模塊,用于在KVM接收到重定向請求后,從共享內存中讀取系統(tǒng)調用參數(shù),并調度輔助進程在目標VM中執(zhí)行重定向的系統(tǒng)調用;
安全保護模塊,用于在輔助進程執(zhí)行系統(tǒng)調用前,檢查保護系統(tǒng)調用的執(zhí)行環(huán)境,保證可靠自省的結果;
重定向結果更新模塊,用于在系統(tǒng)調用的執(zhí)行結果對目標VM的用戶層數(shù)據(jù)進行更新時,將執(zhí)行結果重新寫回到共享內存中,并將共享內存中更新的數(shù)據(jù)拷貝到host中VMI應用程序的用戶空間,在系統(tǒng)調用的執(zhí)行結果對目標VM的內核狀態(tài)進行更新時,直接對目標VM的內存進行更新,然后恢復host中VMI應用程序的執(zhí)行;
重定向結果獲取模塊,用于在VMI應用程序執(zhí)行結束后,獲取目標VM中的監(jiān)控結果;若VMI應用程序沒有執(zhí)行結束,則返回所述系統(tǒng)調用截獲及重定向決策模塊。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華中科技大學,未經華中科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710248219.7/1.html,轉載請聲明來源鉆瓜專利網(wǎng)。





