本發(fā)明屬于網絡安全技術領域,特別涉及一種基于動態(tài)內存重映射和緩存清除的側信道攻擊防御方法及其裝置。
背景技術:
隨著云計算產業(yè)的不斷發(fā)展,云環(huán)境下的安全問題得到了廣泛的關注。為了提高資源的利用率,云虛擬化技術要求不同租戶共享底層的物理資源,使得一個租戶可以通過探測另一個租戶訪問共享資源的行為特征,推測目標租戶的敏感信息,實現(xiàn)側信道攻擊。其中,基于緩存的側信道攻擊由于實現(xiàn)方法多樣、攻擊結果可靠,帶來的危害也最大。近年來,相關領域的專家研究并實現(xiàn)了多種緩存攻擊,可以達到諸如竊取高級加密標準(aes)的加密密鑰和rsa公鑰加密算法的解密密鑰,以及監(jiān)控用戶鍵盤操作等目的。
然而,當前針對這種攻擊的防御主要依靠資源的隔離實現(xiàn),雖然可以取得較好的安全性,但是這與云中資源共享的基本理念是相違背的。并且,當前提出的防御方法都是攻擊無感的,不僅難以達到針對性的防御效果,而且容易造成資源的浪費。因此,急劇膨脹的云產業(yè)急需一種能夠滿足要求的安全解決方案,可以實時感知基于緩存的側信道攻擊,并且在盡量不影響資源共享的基礎上能夠實現(xiàn)高效的防御。
技術實現(xiàn)要素:
針對現(xiàn)有技術中的不足,本發(fā)明提供一種基于動態(tài)內存重映射和緩存清除的側信道攻擊防御方法及其裝置,有效解決現(xiàn)有技術中因防御操作對云資源共享等問題,具有較好的防御效果。
按照本發(fā)明所提供的設計方案,一種基于動態(tài)內存重映射和緩存清除的側信道攻擊防御方法,基于虛擬機監(jiān)控器和硬件多層級緩存架構實現(xiàn),該方法包含如下內容:
收集虛擬機監(jiān)控器上運行的虛擬機信息,該虛擬機信息至少包含每一個虛擬機所占用的物理頁面,以及虛擬機提交的保護內存;同時實時監(jiān)測當前發(fā)生的基于緩存的側信道攻擊,得到攻擊目標信息,該攻擊目標信息至少包含:被攻擊的目標虛擬機、攻擊頻率和被攻擊的緩存層;
根據(jù)收集的虛擬機信息及實時監(jiān)測得到的攻擊目標信息,選取防御操作,其中,所述的防御操作根據(jù)攻擊目標信息中被攻擊的緩存層選取緩存清除操作或內存動態(tài)重映射操作;
以攻擊目標信息中攻擊頻率執(zhí)行選取的防御操作。
上述的,根據(jù)攻擊虛擬機在攻擊目標虛擬機時攻擊虛擬機和目標虛擬機兩者訪問緩存的行為相似,檢測當前可能發(fā)生的基于緩存的側信道攻擊,得到攻擊目標信息。
上述的,硬件多層級緩存架構包含用于緩存數(shù)據(jù)和指令的第一級緩存層,用于單核統(tǒng)一緩存的第二級緩存層,及用于統(tǒng)一共享緩存的第三級緩存層。
優(yōu)選的,選取防御操作,包含如下內容:將目標虛擬機所占用的物理內存頁面分為敏感頁面和普通頁面兩類,根據(jù)攻擊目標信息中被攻擊的緩存層,若為第一級緩存層,則確定防御操作為緩存清洗操作,每一次目標虛擬機執(zhí)行敏感操作后,隨機清洗部分或全部緩存;若為第二級緩存層或第三級緩存層,則確定防御操作為內存動態(tài)重映射操作,動態(tài)隨機交換敏感頁面和普通頁面兩者之間的內存映射關系,混淆緩存行為特征和目標信息關聯(lián)。
更進一步,緩存清洗操作,包含如下內容:
a1)構建緩存清洗頁面集合;
a2)依次訪問緩存清洗頁面集合中每一個內存頁面,清洗與敏感目標頁面對應的緩存。
優(yōu)選,a1中構建緩存清洗頁面集合,包含如下內容:對于s個映射到與敏感目標頁面相同的緩存位置的內存頁面,隨機選擇w個內存頁面作為該敏感目標頁面的清洗頁面集合,其中,s≥w,w是緩存的關聯(lián)系數(shù)。
更進一步,內存動態(tài)重映射操作,包含如下內容:
b1)根據(jù)虛擬機信息中虛擬機所占用的物理頁面及虛擬機提交的保護內存,定位虛擬機上存儲目標信息的敏感頁面,將目標虛擬機所占用的物理內存頁面分為敏感頁面和普通頁面兩類,從虛擬機監(jiān)控器負責頁表中隨機選擇兩個頁表項;
b2)獲取所選擇頁表項對應的物理內存頁面;
b3)清除地址翻譯緩存,并禁止其他進程對頁表項和對應物理內存頁面的訪問;
b4)交換兩個物理內存頁面的存儲內容,并交換兩個頁表項內容;
b5)恢復其他進程對頁表項和對應物理內存頁面的訪問。
優(yōu)選,b1中從虛擬機監(jiān)控器負責頁表中隨機選擇兩個頁表項,兩個頁表項中:一個為敏感頁面表項,另一個為普通頁面表項。
一種基于動態(tài)內存重映射和緩存清除的側信道攻擊防御裝置,基于虛擬機監(jiān)控器和硬件多層級緩存架構實現(xiàn),包含攻擊檢測模塊、信息收集模塊、防御決策模塊及執(zhí)行模塊,其中,
攻擊檢測模塊,用于實時監(jiān)測當前發(fā)生的基于緩存的側信道攻擊,獲取攻擊目標信息,該攻擊目標信息至少包含:被攻擊的目標虛擬機、攻擊頻率和被攻擊的緩存層;
信息收集模塊,用于收集虛擬機監(jiān)控器上運行的虛擬機信息,該虛擬機信息至少包含每一個虛擬機所占用的物理頁面,以及虛擬機提交的保護內存;
防御決策模塊,用于根據(jù)攻擊檢測模塊獲取的攻擊目標信息及信息收集模塊收集的虛擬機信息,選取防御操作,其中,所述的防御操作為緩存清除操作或為內存動態(tài)重映射操作;
執(zhí)行模塊,用于將目標虛擬機所占用的物理內存頁面分為敏感頁面和普通頁面兩類,執(zhí)行防御決策模塊選取的防御操作。
上述的防御裝置中,所述的執(zhí)行模塊包含緩存清洗單元和內存動態(tài)重映射單元,其中,
緩存清洗單元,根據(jù)執(zhí)行防御決策模塊選取的緩存清洗操作,構建緩存清洗頁面集合,并依次訪問緩存清洗頁面集合中每一個內存頁面,清洗與敏感目標頁面對應的緩存;
內存動態(tài)重映射單元,用于根據(jù)執(zhí)行防御決策模塊選取的內存動態(tài)重映射操作,動態(tài)隨機交換敏感頁面和普通頁面的內存映射關系,混淆緩存行為特征和目標信息關聯(lián)。
本發(fā)明的有益效果:
本發(fā)明基于虛擬機監(jiān)控器實現(xiàn),通過攻擊檢測、信息收集,決策執(zhí)行,實現(xiàn)防御操作,并通過內存動態(tài)重映射方法,通過不斷更新虛擬內存和物理內存的映射關系,混淆物理緩存訪問的行為特征和目標信息之間的關聯(lián),有效防止緩存攻擊;實現(xiàn)通過感知當前系統(tǒng)的安全狀況,并根據(jù)感知得到的攻擊頻率和受攻擊的緩存目標動態(tài)地確定需要執(zhí)行的防御操作以及對應操作的執(zhí)行頻率,使得緩存攻擊能夠被有效防御,并且兼顧虛擬機監(jiān)控器的運行效率;有針對性的進行防御,避免資源浪費,保證云計算產業(yè)的安全性,可以實時感知基于緩存的側信道攻擊,并且在盡量不影響資源共享的基礎上實現(xiàn)高效防御。
附圖說明:
圖1為本發(fā)明的方法流程示意圖;
圖2為緩存?zhèn)刃诺拦舴烙鶎崿F(xiàn)過程原理圖;
圖3為動態(tài)內存重映射方法流程圖;
圖4為緩存清洗方法流程圖;
圖5為本發(fā)明的裝置示意圖;
圖6為緩存?zhèn)刃诺拦舴烙b置原理圖。
具體實施方式:
下面結合附圖和技術方案對本發(fā)明作進一步清楚、完整的說明,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明實施例提供一種基于動態(tài)內存重映射和緩存清除的側信道攻擊防御方法,基于虛擬機監(jiān)控器和硬件多層級緩存架構實現(xiàn),參見圖1所示,該方法包含如下內容:
收集虛擬機監(jiān)控器上運行的虛擬機信息,該虛擬機信息至少包含每一個虛擬機所占用的物理頁面,以及虛擬機提交的保護內存;同時實時監(jiān)測當前發(fā)生的基于緩存的側信道攻擊,得到攻擊目標信息,該攻擊目標信息至少包含:被攻擊的目標虛擬機、攻擊頻率和被攻擊的緩存層;根據(jù)虛擬機提交的保護內存范圍,計算該虛擬機需要保護的目標物理頁面。
根據(jù)收集的虛擬機信息及實時監(jiān)測得到的攻擊目標信息,選取防御操作,其中,所述的防御操作根據(jù)攻擊目標信息中被攻擊的緩存層選取緩存清除操作或內存動態(tài)重映射操作;
以攻擊目標信息中攻擊頻率執(zhí)行選取的防御操作。
本發(fā)明實施例提供的基于動態(tài)內存重映射和緩存清除的側信道攻擊防御方法,基于虛擬機監(jiān)控器實現(xiàn),通過手機虛擬機監(jiān)控器上運行的虛擬機信息并實時監(jiān)測當前發(fā)生的基于緩存的側信道攻擊,根據(jù)收集到的虛擬機信息及實時監(jiān)測情況,動態(tài)選取防御操作,以相應的大公雞頻率進行執(zhí)行,使得緩存攻擊能夠被有效防御,并且兼顧虛擬機監(jiān)控器的運行效率,有針對性的進行防御,避免資源浪費,保證云計算產業(yè)的安全性。
為了使本領域的技術人員更好的了解本發(fā)明,下面列舉一個更為詳細的實施例,如圖2所示,本發(fā)明實施例提供一種基于動態(tài)內存重映射和緩存清除的側信道攻擊防御方法,基于虛擬機監(jiān)控器和硬件多層級緩存架構實現(xiàn),硬件多層級緩存架構包含用于緩存數(shù)據(jù)和指令的第一級緩存層,用于單核統(tǒng)一緩存的第二級緩存層,及用于統(tǒng)一共享緩存的第三級緩存層,參見圖2所示,該方法包含如下內容:
101、收集虛擬機監(jiān)控器上運行的虛擬機信息,該虛擬機信息至少包含每一個虛擬機所占用的物理頁面,以及虛擬機提交的保護內存;102、同時根據(jù)攻擊虛擬機在攻擊目標虛擬機時攻擊虛擬機和目標虛擬機兩者訪問緩存的行為相似,實時監(jiān)測當前發(fā)生的基于緩存的側信道攻擊,得到攻擊目標信息,該攻擊目標信息至少包含:被攻擊的目標虛擬機、攻擊頻率和被攻擊的緩存層。
103、根據(jù)收集的虛擬機信息及實時監(jiān)測得到的攻擊目標信息,選取防御操作,其中,所述的防御操作根據(jù)攻擊目標信息中被攻擊的緩存層選取緩存清除操作或內存動態(tài)重映射操作.。
其中,選取防御操作,包含如下內容:將目標虛擬機所占用的物理內存頁面分為敏感頁面和普通頁面兩類,根據(jù)攻擊目標信息中被攻擊的緩存層,若為第一級緩存層,則確定防御操作為緩存清洗操作,每一次目標虛擬機執(zhí)行敏感操作后,隨機清洗部分或全部緩存;若為第二級緩存層或第三級緩存層,則確定防御操作為內存動態(tài)重映射操作,動態(tài)隨機交換敏感頁面和普通頁面兩者之間的內存映射關系,混淆緩存行為特征和目標信息關聯(lián)。敏感操作包含涉及目標敏感信息的操作。
更進一步,緩存清洗操作,如圖4所示包含如下內容:
a1)構建緩存清洗頁面集合;
a2)依次訪問緩存清洗頁面集合中每一個內存頁面,清洗與敏感目標頁面對應的緩存。
優(yōu)選,a1中構建緩存清洗頁面集合,包含如下內容:對于s個映射到與敏感目標頁面相同的緩存位置的內存頁面,隨機選擇w個內存頁面作為該敏感目標頁面的清洗頁面集合,其中,s≥w,w是緩存的關聯(lián)系數(shù)。利用同樣的方法可以得到其他敏感目標頁面的清洗頁面集合。
更進一步,內存動態(tài)重映射操作,如圖3所示,包含如下內容:
201)根據(jù)虛擬機信息中虛擬機所占用的物理頁面及虛擬機提交的保護內存,定位虛擬機上存儲目標信息的敏感頁面,將目標虛擬機所占用的物理內存頁面分為敏感頁面和普通頁面兩類,從虛擬機監(jiān)控器負責頁表中隨機選擇兩個頁表項,如果敏感頁面所占比例較大,可以進行適當調整,隨機選擇兩個敏感頁面表項;
202)獲取所選擇頁表項對應的物理內存頁面;
203)清除地址翻譯緩存;
204)禁止其他進程對頁表項和對應物理內存頁面的訪問;
205)交換兩個物理內存頁面的存儲內容;
206)交換兩個頁表項內容;
207)恢復其他進程對頁表項和對應物理內存頁面的訪問。
優(yōu)選,b1中從虛擬機監(jiān)控器負責頁表中隨機選擇兩個頁表項,兩個頁表項中:一個為敏感頁面表項,另一個為普通頁面表項。
104、以攻擊目標信息中攻擊頻率執(zhí)行選取的防御操作。
通過內存動態(tài)重映射方法,不斷更新虛擬內存和物理內存的映射關系,混淆物理緩存訪問的行為特征和目標信息之間的關聯(lián),有效防止緩存攻擊;實現(xiàn)通過感知當前系統(tǒng)的安全狀況,并根據(jù)感知得到的攻擊頻率和受攻擊的緩存目標動態(tài)地確定需要執(zhí)行的防御操作以及對應操作的執(zhí)行頻率,使得緩存攻擊能夠被有效防御,并且兼顧虛擬機監(jiān)控器的運行效率;有針對性的進行防御,避免資源浪費,保證云計算產業(yè)的安全性,可以實時感知基于緩存的側信道攻擊,并且在盡量不影響資源共享的基礎上實現(xiàn)高效防御。
對應于上述的基于動態(tài)內存重映射和緩存清除的側信道攻擊防御方法的實施例,如圖5所示,本發(fā)明實施例提供一種基于動態(tài)內存重映射和緩存清除的側信道攻擊防御裝置,基于虛擬機監(jiān)控器和硬件多層級緩存架構實現(xiàn),包含攻擊檢測模塊、信息收集模塊、防御決策模塊及執(zhí)行模塊,其中,
攻擊檢測模塊,用于實時監(jiān)測當前發(fā)生的基于緩存的側信道攻擊,獲取攻擊目標信息,該攻擊目標信息至少包含:被攻擊的目標虛擬機、攻擊頻率和被攻擊的緩存層;
信息收集模塊,用于收集虛擬機監(jiān)控器上運行的虛擬機信息,該虛擬機信息至少包含每一個虛擬機所占用的物理頁面,以及虛擬機提交的保護內存;
防御決策模塊,用于根據(jù)攻擊檢測模塊獲取的攻擊目標信息及信息收集模塊收集的虛擬機信息,選取防御操作,其中,所述的防御操作為緩存清除操作或為內存動態(tài)重映射操作;
執(zhí)行模塊,用于將目標虛擬機所占用的物理內存頁面分為敏感頁面和普通頁面兩類,執(zhí)行防御決策模塊選取的防御操作。
具體的,如圖6所示,所述的執(zhí)行模塊包含緩存清洗單元和內存動態(tài)重映射單元,其中,
緩存清洗單元,根據(jù)執(zhí)行防御決策模塊選取的緩存清洗操作,構建緩存清洗頁面集合,并依次訪問緩存清洗頁面集合中每一個內存頁面,清洗與敏感目標頁面對應的緩存;
內存動態(tài)重映射單元,用于根據(jù)執(zhí)行防御決策模塊選取的內存動態(tài)重映射操作,動態(tài)隨機交換敏感頁面和普通頁面的內存映射關系,混淆緩存行為特征和目標信息關聯(lián)。
基于攻擊虛擬機在攻擊目標虛擬機時,兩者訪問緩存的行為是相似的原理,實時檢測系統(tǒng)中存在的基于緩存的側信道攻擊,獲取被攻擊的目標虛擬機和目標緩存層,以及攻擊頻率;收集虛擬機監(jiān)控器上運行的虛擬機的相關信息,包括該虛擬機占用的內存頁面,并基于用戶提交的需要保護的目標信息判斷哪些是需要保護的目標頁面。根據(jù)實時檢測信息及收集到的信息,基于被攻擊的緩存層在緩存清洗和內存頁面動態(tài)重映射之間進行選擇作為防御操作,基于攻擊的頻率選擇防御操作的執(zhí)行頻率;選擇緩存清洗操作時,利用對與目標頁面映射到相同緩存位置的其他頁面進行內存訪問,去除敏感操作執(zhí)行過程中的緩存訪問痕跡;選擇內存動態(tài)重映射時,交換兩個內存頁面對應的內容和頁表內容,并且將對應的緩存(包括tlb)置于無效,混淆攻擊者對于探測到的緩存訪問行為和目標敏感操作之間的關聯(lián),實現(xiàn)較好的防御效果。
本領域內的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結合軟硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他科編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
對所公開的實施例的上述說明,使本領域專業(yè)技術人員能夠實現(xiàn)或使用本申請。對這些實施例的多種修改對本領域的專業(yè)技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本申請的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本申請將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。