中心用于記錄監(jiān)控模塊獲得的原始內(nèi)存活動記錄、經(jīng)過識別模塊過濾的可疑進程以及經(jīng)過驗證模塊驗證的惡意進程。2.根據(jù)權利要求1所述的基于內(nèi)存活動的邊信道攻擊取證系統(tǒng),其特征在于:所述監(jiān)控模塊包括模塊初始化單元和事件處理單元,所述用于模塊初始化單元監(jiān)控目標客戶虛擬機的詳細信息,然后向虛擬機監(jiān)視器申請獲取目標客戶虛擬機的內(nèi)存具體位置,隨后在內(nèi)存相應位置修改內(nèi)存訪問權限,最后在虛擬機監(jiān)視器中對該內(nèi)存硬件事件注冊事件處理函數(shù);所述事件處理單元用于截獲客戶虛擬機觸發(fā)的內(nèi)存事件,通過邏輯事件注冊表找到該硬件事件對應的邏輯事件處理函數(shù),在事件處理完成后,最后再將控制權交還客戶虛擬機,并用于過濾掉可信的進程內(nèi)存活動,提取非可信進程的內(nèi)存訪問活動的相關信息交由證據(jù)數(shù)據(jù)中心記錄形成內(nèi)存活動日志。3.根據(jù)權利要求1所述的基于內(nèi)存活動的邊信道攻擊取證系統(tǒng),其特征在于:所述識別模塊判斷可疑進程時具體包括如下步驟: (1)將目標客戶虛擬機的內(nèi)存活動日志按照進程區(qū)分開來,在每個進程里面查找是否存在某內(nèi)存頁面被同一進程重復訪問,存在則進入步驟(2)并將訪問該頁面的進程放入可疑進程序列; (2)從可疑進程序列中依次取出可疑進程,找到該進程訪問的內(nèi)存活動記錄,根據(jù)這些記錄分別計算其屬性值,所述屬性值包括以下至少一種:每次密集活動時間間隔、每次密集活動訪問內(nèi)存頁面集合、每次密集活動訪問持續(xù)時間和每次密集活動開始時間; (3)如果可疑進程不具備下述兩種條件其中之一,則將該進程從可疑進程序列中去除,所述兩種條件包括: 對于side-channel攻擊的接收者存在每次密集活動時間間隔一致; 對于side-channel攻擊的發(fā)送者存在每次密集活動時間間隔為正常時間間隔的整數(shù)倍; (4)檢查可疑進程每次密集活動訪問頁面集合是否都一致,如果不一致則將該進程從可疑進程序列中去除。4.根據(jù)權利要求1或3所述的基于內(nèi)存活動的邊信道攻擊取證系統(tǒng),其特征在于,所述識別模塊還進行攻擊類型識別: 如果發(fā)送者進程和接收者進程的每次密集訪問開始時間一致,則判斷攻擊類型為基于CPU負載的side-channel攻擊;如果發(fā)送者進程和接收者進程的每次密集訪問開始時間不一致,則觀察其密集訪問持續(xù)時間,如果遠遠大于基于CPU緩存的side-channel攻擊的延遲閾值,則該攻擊為基于內(nèi)存總線的side-channel攻擊,否則為基于CPU緩存的side-channel攻擊。5.根據(jù)權利要求1或3所述的基于內(nèi)存活動的邊信道攻擊取證系統(tǒng),其特征在于,所述驗證模塊中對可疑進程進行靜態(tài)的二進制代碼分析的過程包括如下步驟: (1)根據(jù)記錄中可疑進程的進程空間地址,在內(nèi)存快照中對應位置提取出可疑進程內(nèi)存空間; (2)找到可疑進程的代碼數(shù)據(jù)段,將二進制代碼提取出來; (3)將二進制代碼根據(jù)該代碼運行的系統(tǒng)和硬件平臺還原成匯編代碼進行分析; (4)在匯編代碼中重點查找執(zhí)行重復指令的代碼; (5)在重復指令代碼里面查找是否存在進行時間刺探的代碼以及其他存在的side-channel 攻擊代碼特征,如果存在則表明該進程為惡意進程,如果不存在則過濾掉該可疑進程。6.本發(fā)明還提供了基于內(nèi)存活動的邊信道攻擊取證方法,其特征在于,包括如下步驟: 步驟A,對系統(tǒng)底層內(nèi)存活動進行實時監(jiān)控,提取該內(nèi)存訪問活動的相關信息生成內(nèi)存活動日志; 步驟B,按照進程區(qū)分內(nèi)存活動日志,查找重復訪問同一內(nèi)存頁面的進程,獲得該進程訪問的內(nèi)存活動記錄,當該進程滿足發(fā)送可疑進程和/或接收可疑進程條件,并且每次密集活動訪問頁面集合都一致時則判斷該進程為可疑進程,最終得到可疑進程序列;所述發(fā)送可疑進程條件包括每次密集活動時間間隔為正常時間間隔的整數(shù)倍,所述接收可疑進程條件包括每次密集活動時間間隔一致; 步驟C,在步驟B識別出可疑進程之后,保存當前客戶虛擬機的內(nèi)存快照,通過內(nèi)存快照對可疑進程進行靜態(tài)的二進制代碼分析確認其是否為惡意進程,將惡意進程的內(nèi)存快照和內(nèi)存活動記錄提取出來保存。7.根據(jù)權利要求6所述的基于內(nèi)存活動的邊信道攻擊取證方法,其特征在于,所述步驟A具體包括以下步驟:監(jiān)控目標客戶虛擬機的詳細信息,向虛擬機監(jiān)視器申請獲取目標客戶虛擬機的內(nèi)存具體位置,在內(nèi)存相應位置修改內(nèi)存訪問權限,最后在虛擬機監(jiān)視器中對該內(nèi)存硬件事件注冊事件處理函數(shù),截獲客戶虛擬機觸發(fā)的內(nèi)存事件,通過邏輯事件注冊表找到該硬件事件對應的邏輯事件處理函數(shù),在事件處理完成后,最后再將控制權交還客戶虛擬機,并用于過濾掉可信的進程內(nèi)存活動,提取非可信進程的內(nèi)存訪問活動的相關信息形成內(nèi)存活動日志。8.根據(jù)權利要求6所述的基于內(nèi)存活動的邊信道攻擊取證方法,其特征在于,所述步驟B具體包括如下步驟: (1)將目標客戶虛擬機的內(nèi)存活動日志按照進程區(qū)分開來,在每個進程里面查找是否存在某內(nèi)存頁面被同一進程重復訪問,存在則進入步驟(2)并將訪問該頁面的進程放入可疑進程序列; (2)從可疑進程序列中依次取出可疑進程,找到該進程訪問的內(nèi)存活動記錄,根據(jù)這些記錄分別計算其屬性值,所述屬性值包括以下至少一種:每次密集活動時間間隔、每次密集活動訪問內(nèi)存頁面集合、每次密集活動訪問持續(xù)時間和每次密集活動開始時間; (3)如果可疑進程不具備下述兩種條件其中之一,則將該進程從可疑進程序列中去除,所述兩種條件包括: 對于side-channel攻擊的接收者存在每次密集活動時間間隔一致; 對于side-channel攻擊的發(fā)送者存在每次密集活動時間間隔為正常時間間隔的整數(shù)倍; (4)檢查可疑進程每次密集活動訪問頁面集合是否都一致,如果不一致則將該進程從可疑進程序列中去除。9.根據(jù)權利要求6或8所述的基于內(nèi)存活動的邊信道攻擊取證方法,其特征在于,所述步驟B還包括攻擊類型識別的步驟: 如果發(fā)送者進程和接收者進程的每次密集訪問開始時間一致,則判斷攻擊類型為基于CPU負載的side-channel攻擊;如果發(fā)送者進程和接收者進程的每次密集訪問開始時間不一致,則觀察其密集訪問持續(xù)時間,如果遠遠大于基于CPU緩存的side-channel攻擊的延遲閾值,則該攻擊為基于內(nèi)存總線的side-channel攻擊,否則為基于CPU緩存的side-channel攻擊。10.根據(jù)權利要求6所述的基于內(nèi)存活動的邊信道攻擊取證方法,其特征在于,所述步驟C中對可疑進程進行靜態(tài)的二進制代碼分析的過程包括如下步驟: (1)根據(jù)記錄中可疑進程的進程空間地址,在內(nèi)存快照中對應位置提取出可疑進程內(nèi)存空間; (2)找到可疑進程的代碼數(shù)據(jù)段,將二進制代碼提取出來; (3)將二進制代碼根據(jù)該代碼運行的系統(tǒng)和硬件平臺還原成匯編代碼進行分析; (4)在匯編代碼中重點查找執(zhí)行重復指令的代碼; (5)在重復指令代碼里面查找是否存在進行時間刺探的代碼以及其他存在的side-channel 攻擊代碼特征,如果存在則表明該進程為惡意進程,如果不存在則過濾掉該可疑進程。
【專利摘要】本發(fā)明公開了一種基于內(nèi)存活動的邊信道攻擊取證系統(tǒng)及基于該系統(tǒng)實現(xiàn)的取證方法,系統(tǒng)包括監(jiān)控模塊、識別模塊、驗證模塊和證據(jù)數(shù)據(jù)中心。本發(fā)明利用硬件虛擬化技術,實現(xiàn)客戶虛擬機的內(nèi)存頁面實時監(jiān)控,并通過基于時間的side-channel攻擊的內(nèi)存活動特征,利用基于內(nèi)存活動特征的識別算法將基于時間的side-channel攻擊識別出來,并在靜態(tài)分析的輔助下二次確認攻擊的存在并提取攻擊的存在證據(jù),實現(xiàn)重要實時證據(jù)和存在證據(jù)的獲取和分析,保證了獲取證據(jù)的有效性和可信度。本發(fā)明能夠在支持硬件虛擬化的虛擬化平臺上部署,具有很高的透明性,不會對虛擬機平臺造成額外的負荷和運行干擾。
【IPC分類】G06F21/56, G06F21/52
【公開號】CN105550574
【申請?zhí)枴緾N201510915411
【發(fā)明人】伏曉, 楊瑞, 駱斌
【申請人】南京大學
【公開日】2016年5月4日
【申請日】2015年12月11日