限,讓客戶(hù)進(jìn)程正常進(jìn)行;
(2)獲取觸發(fā)該事件的客戶(hù)進(jìn)程和進(jìn)程空間地址,比對(duì)已有的進(jìn)程白名單,將可信的進(jìn)程內(nèi)存活動(dòng)過(guò)濾掉。如果該進(jìn)程為可信進(jìn)程則事件處理完成,直接退出;如果不是則進(jìn)入步驟(3);
(3)提取該內(nèi)存訪(fǎng)問(wèn)活動(dòng)的相關(guān)信息,具體包括訪(fǎng)問(wèn)該頁(yè)面的客戶(hù)進(jìn)程、訪(fǎng)問(wèn)時(shí)間、內(nèi)存操作類(lèi)型和訪(fǎng)問(wèn)該頁(yè)面的具體位置;
(4)將提取到的信息組合打包好之后交由證據(jù)數(shù)據(jù)中心記錄形成內(nèi)存活動(dòng)日志;
(5)向虛擬機(jī)監(jiān)視器申請(qǐng)重新設(shè)置該頁(yè)面的內(nèi)存訪(fǎng)問(wèn)權(quán)限,繼續(xù)監(jiān)控該頁(yè)面的訪(fǎng)問(wèn)情況。
[0026 ]識(shí)別模塊根據(jù)基于時(shí)間的s i de-channe I攻擊內(nèi)存活動(dòng)的基本特征,通過(guò)對(duì)內(nèi)存活動(dòng)日志特征的抽象,將云平臺(tái)下基于時(shí)間的side-channel攻擊識(shí)別出來(lái),提取出可疑進(jìn)程日志并將冗余的監(jiān)控日志過(guò)濾掉,然后進(jìn)一步利用基于時(shí)間的side-channel攻擊類(lèi)型之間的差別作為攻擊分類(lèi)的基礎(chǔ),最終確定攻擊的存在。
[0027]經(jīng)過(guò)研究我們發(fā)現(xiàn),基于時(shí)間的side-channel攻擊的內(nèi)存活動(dòng)存在一個(gè)共同的特征表現(xiàn):在固定的時(shí)間間隔內(nèi),重復(fù)訪(fǎng)問(wèn)同一塊內(nèi)存區(qū)域。用上述屬性進(jìn)行詳細(xì)表述為:基于時(shí)間的邊信道攻擊進(jìn)程在一段時(shí)間內(nèi)會(huì)存在多次密集內(nèi)存活動(dòng),對(duì)于攻擊中的接收者,多次密集內(nèi)存活動(dòng)之間的密集內(nèi)存活動(dòng)訪(fǎng)問(wèn)時(shí)間間隔一致,訪(fǎng)問(wèn)內(nèi)存頁(yè)面集合一致,訪(fǎng)問(wèn)持續(xù)時(shí)間不一定一致,根據(jù)基于時(shí)間的邊信道攻擊的通信協(xié)議,持續(xù)時(shí)間的長(zhǎng)短代表了傳輸數(shù)據(jù)的不同,一般情況下,持續(xù)時(shí)間長(zhǎng)代表傳輸字節(jié)T,短則代表傳輸字節(jié)“O”。上述描述中,提到了關(guān)于基于時(shí)間的side-channel攻擊的幾個(gè)屬性值:密集內(nèi)存活動(dòng)是指客戶(hù)進(jìn)程在短時(shí)間內(nèi)對(duì)某塊內(nèi)存區(qū)域的密集訪(fǎng)問(wèn),且與下一次訪(fǎng)問(wèn)有著明顯的時(shí)間間隔;而密集內(nèi)存活動(dòng)訪(fǎng)問(wèn)時(shí)間間隔則表示相鄰兩次密集內(nèi)存活動(dòng)第一個(gè)被訪(fǎng)問(wèn)頁(yè)面之間的時(shí)間間隔;訪(fǎng)問(wèn)內(nèi)存頁(yè)面集合表示每次密集內(nèi)存活動(dòng)中訪(fǎng)問(wèn)的內(nèi)存頁(yè)面集合;訪(fǎng)問(wèn)持續(xù)時(shí)間,表示每次密集內(nèi)存活動(dòng)總共持續(xù)的時(shí)間;訪(fǎng)問(wèn)開(kāi)始時(shí)間,表示每次密集內(nèi)存活動(dòng)開(kāi)始時(shí)間。
[0028]基于上述時(shí)間的side-channe I攻擊內(nèi)存活動(dòng)的基本特征,識(shí)別模塊對(duì)證據(jù)數(shù)據(jù)中心保存的原始內(nèi)存活動(dòng)記錄進(jìn)行重新計(jì)算,提取出上述屬性值,之后與基于時(shí)間的side-channe I攻擊內(nèi)存特征進(jìn)行比對(duì)。如圖3所示,識(shí)別模塊的處理流程如下:
(1)先將目標(biāo)客戶(hù)虛擬機(jī)的內(nèi)存活動(dòng)日志按照進(jìn)程區(qū)分開(kāi)來(lái),便于日志與具體進(jìn)程的對(duì)應(yīng)檢索。在每個(gè)進(jìn)程里面查找是否存在某內(nèi)存頁(yè)面被同一進(jìn)程重復(fù)訪(fǎng)問(wèn),存在則進(jìn)入步驟(2)并將訪(fǎng)問(wèn)該頁(yè)面的進(jìn)程放入可疑進(jìn)程序列;
(2)從可疑進(jìn)程序列中依次取出可疑進(jìn)程,找到該進(jìn)程訪(fǎng)問(wèn)的內(nèi)存活動(dòng)記錄,根據(jù)這些記錄分別計(jì)算其屬性值,包括每次密集活動(dòng)時(shí)間間隔(當(dāng)前這次密集活動(dòng)與下一次密集活動(dòng)開(kāi)始時(shí)間之差)、每次密集活動(dòng)訪(fǎng)問(wèn)內(nèi)存頁(yè)面集合、每次密集活動(dòng)訪(fǎng)問(wèn)持續(xù)時(shí)間和每次密集活動(dòng)開(kāi)始時(shí)間;
(3)對(duì)于side-channel攻擊的接收者應(yīng)該存在每次密集活動(dòng)時(shí)間間隔一致。對(duì)于side-channel 攻擊的發(fā)送者應(yīng)該存在每次密集活動(dòng)時(shí)間間隔應(yīng)該為正常時(shí)間間隔的整數(shù)倍,正常時(shí)間間隔就是攻擊進(jìn)程每次處理發(fā)送信息的時(shí)間間隔,每次處理發(fā)送時(shí)間時(shí)需要判斷當(dāng)前傳輸?shù)臄?shù)據(jù),假設(shè)傳輸數(shù)據(jù)“I”時(shí)需要進(jìn)程進(jìn)行密集內(nèi)存活動(dòng),傳輸“O”時(shí)則不活動(dòng),則在傳輸連續(xù)幾個(gè)“O”時(shí),如“000”,該次密集活動(dòng)時(shí)間間隔就會(huì)為正常時(shí)間間隔的3倍。如果可疑進(jìn)程不具備上述兩種性質(zhì)其中之一,則將該進(jìn)程從可疑進(jìn)程序列中去除;
(4)檢查可疑進(jìn)程每次密集活動(dòng)訪(fǎng)問(wèn)頁(yè)面集合是否都一致,如果不一致則將該進(jìn)程從可疑進(jìn)程序列中去除,到這個(gè)步驟結(jié)束則基本認(rèn)定該攻擊為基于時(shí)間的side-channel攻擊了。
[0029]識(shí)別模塊還會(huì)針對(duì)不同攻擊的特性區(qū)分攻擊的種類(lèi):
(5)在side-channel攻擊的發(fā)送可疑進(jìn)程和接收可疑進(jìn)程中分別提取出來(lái)進(jìn)行攻擊類(lèi)型識(shí)別:
如果發(fā)送者進(jìn)程和接收者進(jìn)程的每次密集訪(fǎng)問(wèn)開(kāi)始時(shí)間一致,則攻擊類(lèi)型為基于CPU負(fù)載的s ide-channe I攻擊;
如果發(fā)送者進(jìn)程和接收者進(jìn)程的每次密集訪(fǎng)問(wèn)開(kāi)始時(shí)間不一致,則觀察其密集訪(fǎng)問(wèn)持續(xù)時(shí)間,如果遠(yuǎn)遠(yuǎn)大于基于CF1U緩存的side-channel攻擊的延遲閾值,則該攻擊為基于內(nèi)存總線(xiàn)的s ide-channe I攻擊,否則為基于CPU緩存的s ide-channe I攻擊。
[0030]驗(yàn)證模塊作用在于過(guò)濾識(shí)別模塊識(shí)別出來(lái)的誤報(bào)進(jìn)程,并提取更完整的攻擊證據(jù)對(duì)識(shí)別模塊識(shí)別出來(lái)的可疑進(jìn)程進(jìn)行二次驗(yàn)證,其流程如圖4所示,具體包括如下步驟:
(1)在識(shí)別出可疑進(jìn)程之后,立即保存當(dāng)前客戶(hù)虛擬機(jī)的內(nèi)存快照;
(2)根據(jù)記錄中可疑進(jìn)程的進(jìn)程空間地址,在內(nèi)存快照中對(duì)應(yīng)位置提取出可疑進(jìn)程內(nèi)存空間;
(3)找到可疑進(jìn)程的代碼數(shù)據(jù)段,將二進(jìn)制代碼提取出來(lái);
(4)將二進(jìn)制代碼根據(jù)該代碼運(yùn)行的系統(tǒng)和硬件平臺(tái)還原成匯編代碼進(jìn)行分析;
(5)在匯編代碼中重點(diǎn)查找執(zhí)行重復(fù)指令的代碼;
(6)在重復(fù)指令代碼里面查找是否存在進(jìn)行時(shí)間刺探的代碼以及其他存在的side-channel 攻擊代碼特征,如果存在則表明該進(jìn)程為惡意進(jìn)程,如果不存在則過(guò)濾掉該可疑進(jìn)程。
[0031](7)將可疑進(jìn)程的內(nèi)存快照和內(nèi)存活動(dòng)記錄提取出來(lái)交由證據(jù)數(shù)據(jù)中心保存。
[0032]圖5為證據(jù)數(shù)據(jù)中心數(shù)據(jù)流動(dòng)圖,在這些模塊的執(zhí)行過(guò)程中都需要與數(shù)據(jù)中心進(jìn)行數(shù)據(jù)交互。數(shù)據(jù)中心包含三個(gè)數(shù)據(jù)池:為監(jiān)控模塊提供的最原始的內(nèi)存活動(dòng)記錄數(shù)據(jù)池,經(jīng)過(guò)識(shí)別模塊過(guò)濾的可疑進(jìn)程數(shù)據(jù)池,經(jīng)過(guò)驗(yàn)證模塊驗(yàn)證的惡意進(jìn)程數(shù)據(jù)池。這三個(gè)數(shù)據(jù)池中分別記錄三個(gè)階段的數(shù)據(jù):監(jiān)控模塊的內(nèi)存活動(dòng)原始記錄,識(shí)別模塊中被識(shí)別為可疑進(jìn)程的內(nèi)存活動(dòng)記錄,驗(yàn)證模塊中被確認(rèn)為可疑進(jìn)程的內(nèi)存活動(dòng)記錄和內(nèi)存快照記錄,這三個(gè)階段為遞進(jìn)關(guān)系。數(shù)據(jù)中心為系統(tǒng)中其余三個(gè)模塊提供數(shù)據(jù)輸入和過(guò)濾的支持:對(duì)監(jiān)控模塊提供原始內(nèi)存活動(dòng)記錄的存儲(chǔ)支持,支持大數(shù)據(jù)量的存儲(chǔ)和批量任務(wù)處理;對(duì)識(shí)別模塊提供大數(shù)據(jù)量的檢索和提取支持,對(duì)原始內(nèi)存活動(dòng)記錄屬性值計(jì)算的支持,對(duì)可疑進(jìn)程數(shù)據(jù)的過(guò)濾支持;對(duì)驗(yàn)證模塊提供可疑進(jìn)程數(shù)據(jù)的檢索和提取支持,對(duì)內(nèi)存快照數(shù)據(jù)大文件存儲(chǔ)的支持。
[0033]本例還公開(kāi)了基于內(nèi)存活動(dòng)的邊信道攻擊取證方法,從圖5中可以看出,監(jiān)控模塊、識(shí)別模塊、驗(yàn)證模塊是依次執(zhí)行的,方法的步驟流程即為監(jiān)控模塊、識(shí)別模塊、驗(yàn)證模塊依次處理的過(guò)程。
[0034]本發(fā)明方案所公開(kāi)的技術(shù)手段不僅限于上述實(shí)施方式所公開(kāi)的技術(shù)手段,還包括由以上技術(shù)特征任意組合所組成的技術(shù)方案。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也視為本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1.基于內(nèi)存活動(dòng)的邊信道攻擊取證系統(tǒng),其特征在于:包括監(jiān)控模塊、識(shí)別模塊、驗(yàn)證模塊和證據(jù)數(shù)據(jù)中心; 所述監(jiān)控模塊用于對(duì)系統(tǒng)底層內(nèi)存活動(dòng)進(jìn)行實(shí)時(shí)監(jiān)控,提取該內(nèi)存訪(fǎng)問(wèn)活動(dòng)的相關(guān)信息生成內(nèi)存活動(dòng)日志; 所述識(shí)別模塊按照進(jìn)程區(qū)分內(nèi)存活動(dòng)日志,查找重復(fù)訪(fǎng)問(wèn)同一內(nèi)存頁(yè)面的進(jìn)程,獲得該進(jìn)程訪(fǎng)問(wèn)的內(nèi)存活動(dòng)記錄,當(dāng)該進(jìn)程滿(mǎn)足發(fā)送可疑進(jìn)程和/或接收可疑進(jìn)程條件,并且每次密集活動(dòng)訪(fǎng)問(wèn)頁(yè)面集合都一致時(shí)則判斷該進(jìn)程為可疑進(jìn)程,最終得到可疑進(jìn)程序列;所述發(fā)送可疑進(jìn)程條件包括每次密集活動(dòng)時(shí)間間隔為正常時(shí)間間隔的整數(shù)倍,所述接收可疑進(jìn)程條件包括每次密集活動(dòng)時(shí)間間隔一致; 所述驗(yàn)證模塊在識(shí)別模塊識(shí)別出可疑進(jìn)程之后,保存當(dāng)前客戶(hù)虛擬機(jī)的內(nèi)存快照,通過(guò)內(nèi)存快照對(duì)可疑進(jìn)程進(jìn)行靜態(tài)的二進(jìn)制代碼分析確認(rèn)其是否為惡意進(jìn)程,將惡意進(jìn)程的內(nèi)存快照和內(nèi)存活動(dòng)記錄提取出來(lái)交由證據(jù)數(shù)據(jù)中心保存; 所述證據(jù)數(shù)據(jù)