• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      AnC和Xlate攻擊防御研究①

      2020-06-09 05:09:04李小馨
      高技術(shù)通訊 2020年5期
      關(guān)鍵詞:頁表防御機制失效率

      李小馨 侯 銳 孟 丹

      (*中國科學(xué)院信息工程研究所信息安全國家重點實驗室 北京 100093)(**中國科學(xué)院大學(xué)網(wǎng)絡(luò)空間安全學(xué)院 北京100049)

      0 引 言

      近年來高速緩存(cache)作為系統(tǒng)中所有進程共享的功能單元,受到了攻擊者的普遍關(guān)注。利用cache側(cè)信道攻擊,攻擊者打破了操作系統(tǒng)通過控制虛擬地址實現(xiàn)的不同進程間的訪問隔離。自cache側(cè)信道攻擊出現(xiàn)至今十余年,攻擊手段不斷豐富,攻擊平臺由單核到多核至云平臺[1,2],攻擊架構(gòu)由x86[3,4]至ARM[5],攻擊目標(biāo)由加密密鑰[3,4]至地址隨機化(address space layout randomization,ASLR)[6,7]。但一直以來的cache側(cè)信道攻擊利用的都是CPU核中不同進程對cache的共享。

      最近有研究者利用內(nèi)存管理單元(memory management unit,MMU)和CPU核對cache的共享實現(xiàn)了新型的cache側(cè)信道攻擊。AnC[8]攻擊中攻擊者使用JavaScript控制CPU核的訪存操作,探測出MMU對cache的訪問蹤跡,在150 s內(nèi)破解了瀏覽器中的地址隨機化。Xlate[9]攻擊中攻擊者利用MMU的訪存操作,繞過所有已有的軟件側(cè)信道防御措施,探測出CPU核對cache的訪問蹤跡,破解了基于T-table實現(xiàn)的AES的加密密鑰。攻擊者已在Intel、AMD、ARM等的22種機器上發(fā)現(xiàn)了這一側(cè)信道的存在。

      防御此類攻擊的關(guān)鍵在于隔離MMU和CPU核對cache的訪問。針對這類新的cache側(cè)信道攻擊,已有的基于隔離的防御手段[10-16]已不適用。這些防御手段只隔離了來自CPU核的不同進程(數(shù)據(jù)或代碼)對cache的訪問,并沒有考慮MMU對cache的訪問。Stealthmem[13]等通過置一頁表項中的保留位來觸發(fā)缺頁中斷(page fault)以實現(xiàn)頁粒度的cache訪問控制,但會產(chǎn)生L1終端故障(L1 terminal fault,L1TF)[17,18]等新的側(cè)信道泄露。

      本文分析了AnC和Xlate類基于MMU和CPU核共享cache的側(cè)信道攻擊,指出防御的關(guān)鍵在于隔離cache中的頁表項和普通數(shù)據(jù),并分析了已有的基于隔離的防御措施的不足,研究探索了軟件、硬件2種隔離方案。

      (1)在軟件層面,首先基于頁面屬性表設(shè)置所有頁表項屬性為不可緩存(uncacheable),隔離了頁表項和cache中的普通數(shù)據(jù);進一步結(jié)合透明大頁,減少了旁路轉(zhuǎn)換緩沖(translation lookaside buffer,TLB)的失效率,將平均性能損失由82.35%降至26.95%。

      (2)在硬件層面,首先實現(xiàn)了不緩存所有頁表項的基本方案,并研究了隨機地不緩存部分頁表項的性能及安全性。進一步地,探索了在cache中隔離頁表項和普通數(shù)據(jù)的防御方案,最后提出了與各級頁表項局部性相適應(yīng)的混合隔離方案,頁表緩存(page table cache,PTC)大小為64項時,平均性能提升0.81%。

      1 研究背景

      如圖1所示,CPU核訪問內(nèi)存數(shù)據(jù)時,首先向cache發(fā)送請求,cache失效時再向內(nèi)存發(fā)送請求,從內(nèi)存中取回的數(shù)據(jù)會被緩存在各級cache中,以減少后續(xù)的內(nèi)存訪問次數(shù),加速數(shù)據(jù)的再次訪問。MMU進行地址翻譯時,首先查詢TLB,TLB失效后向PTW(page table walker)發(fā)送請求。若訪問的頁表項不在PTC中,PTW進一步向cache發(fā)送請求。cache 失效后從內(nèi)存中取回的頁表項也會和普通數(shù)據(jù)一樣緩存在各級cache中。對cache的共享,使得MMU和CPU核可以互相探測對方的訪存操作在cache中留下的蹤跡。當(dāng)這一訪存蹤跡依賴于隱私數(shù)據(jù)時,攻擊者便可獲取隱私數(shù)據(jù)。

      圖1 MMU和CPU核共享cache

      1.1 AnC攻擊利用普通數(shù)據(jù)探測隱私頁表項信息

      現(xiàn)代系統(tǒng)中普遍采用多級頁表的頁表組織結(jié)構(gòu),虛擬地址可以分解為各級頁表頁及數(shù)據(jù)頁的索引(如圖2所示)。AnC攻擊利用cache側(cè)信道獲得各級頁表項在cache中的位置,進而獲得各級頁表項在頁表頁中的索引,最終獲得關(guān)鍵數(shù)據(jù)或代碼的虛擬地址(即破解ASLR)。

      圖2 虛擬地址分解為各級頁表項的cache索引

      組相聯(lián)cache的索引來自于被緩存數(shù)據(jù)的地址,cache索引相同的數(shù)據(jù)會落入同一cache組(set)。每個cache組容量有限,當(dāng)某個cache組已被占滿時,緩存新的數(shù)據(jù)需要驅(qū)逐該cache組中緩存的舊數(shù)據(jù)。在cache側(cè)信道攻擊中,可以占滿某個cache組,即驅(qū)逐該cache 組中所有舊數(shù)據(jù)的數(shù)據(jù)集被稱為該cache組的驅(qū)逐集(eviction set)。

      MMU和CPU核共享cache時,MMU訪問的頁表項和CPU核訪問的普通數(shù)據(jù)在cache中存在互替關(guān)系。AnC攻擊中攻擊者通過控制其普通數(shù)據(jù)的頁內(nèi)偏移部分(即cache索引)為每個cache組構(gòu)造驅(qū)逐集。攻擊者使用驅(qū)逐集探測MMU訪存操作在cache中蹤跡(見圖3),其具體步驟如下。

      (1)攻擊者觸發(fā)受害者訪問隱私地址,TLB失效后,MMU進行PTW將隱私虛擬地址對應(yīng)的各級頁表項加載到cache中。

      (2)攻擊者訪問某個驅(qū)逐集。

      (3)攻擊者再次觸發(fā)受害者訪問隱私地址,并測量受害者訪問時間。

      若訪問時間較長,則表明受害者訪問的頁表項已被攻擊者的驅(qū)逐集驅(qū)逐出cache,從而獲得頁表項對應(yīng)的cache索引。

      圖3 AnC利用普通數(shù)據(jù)構(gòu)建驅(qū)逐集探測MMU訪存在cache中的蹤跡

      1.2 Xlate攻擊利用頁表項探測隱私數(shù)據(jù)信息

      基于T-table實現(xiàn)的AES加密算法,第一輪訪問查找表的索引由密鑰k和明文p異或得到。已知明文攻擊通過探測加密算法訪問的T-table的cache索引破解密鑰。在傳統(tǒng)破解AES密鑰的側(cè)信道攻擊中,攻擊者用普通數(shù)據(jù)構(gòu)造驅(qū)逐集探測AES加密過程在cache 中留下的訪問T-table蹤跡?,F(xiàn)有防御策略已隔離攻擊者的普通數(shù)據(jù)和受害者的普通數(shù)據(jù)對cache的訪問,以阻止由于不同進程的普通數(shù)據(jù)對cache共享導(dǎo)致的側(cè)信道泄露。但MMU對cache的訪問一直未被考慮在內(nèi)。Xlate攻擊利用頁表項來構(gòu)造驅(qū)逐集(如圖4所示),繞過了已有的隔離防御機制。

      圖4 Xlate攻擊使用最低級頁表項構(gòu)建的驅(qū)逐集探測AES T-table的cache訪問蹤跡

      Xlate攻擊使用驅(qū)逐集探測AES T-table訪問在cache中蹤跡的具體步驟如下。

      (1)攻擊者訪問驅(qū)逐集。

      (2)攻擊者觸發(fā)受害者執(zhí)行AES加密算法,受害者訪問的T-table會被加載到cache中。

      (3)攻擊者再次訪問驅(qū)逐集,并測量訪問驅(qū)逐集的時間。

      若訪問時間較長,則表明受害者訪問的T-table項驅(qū)逐了驅(qū)逐集中的頁表項,從而獲得T-table對應(yīng)的cache索引。

      2 防御策略

      從前文分析可見,AnC和Xlate類攻擊的根本在于MMU和CPU核對cache的無差別共享,防御的關(guān)鍵在于將MMU和CPU核對cache的訪問隔離。

      隔離包括多個層面。本文首先探索在軟件層面的隔離。隔離MMU和CPU核對cache的訪問,需要區(qū)分頁表項和普通數(shù)據(jù)。頁表由操作系統(tǒng)創(chuàng)建維護,用戶程序不可見,最低級頁表項指向的為普通數(shù)據(jù)頁,其他級頁表項指向的為頁表頁。Intel提供了頁面屬性表(page attribute table,PAT)特性,可通過配置頁表項,指定頁表項所指向頁面(包括頁表頁)的cache訪問屬性,且各級頁表項可獨立配置[19]。因而可以利用PAT為頁表頁和數(shù)據(jù)頁配置不同的cache使用策略,達到隔離MMU和CPU核對cache訪問的目的?;赑AT的不緩存策略會給MMU訪存操作占比大且TLB失效率高的程序帶來較大的性能損失。使用大頁可以減少這類程序的頁表項數(shù)量和頁表級數(shù),進而減少不緩存頁表項策略的性能損失。

      不緩存頁表項策略的性能損失大。Page coloring[15]等其他軟件cache訪問隔離策略,雖然性能損失會較少,但無法完全防御AnC和Xlate類攻擊。

      (1)頁著色(page coloring)利用物理頁號和cache索引間存在的重疊位(即顏色位color bits),將不同安全域的地址映射到不同的cache組。AnC類的攻擊可以實現(xiàn)基于L1 cache的攻擊,page coloring無法控制不存在color bits的L1 cache。

      (2)Intel 的緩存分配技術(shù)(cache allocation technology,CAT)[12]可以基于cache 路隔離不同進程的數(shù)據(jù),但沒有區(qū)別對待同一進程的普通數(shù)據(jù)和頁表項,且目前的CAT并未在L1 cache實現(xiàn)。

      (3)StealthMem等通過修改頁表項中的保留位來觸發(fā)page fault以實現(xiàn)頁粒度的cache訪問控制,會產(chǎn)生L1終端故障等新的側(cè)信道漏洞。

      本文進一步研究在芯片層面的隔離,探索性能損失更小的防御策略。芯片層面的隔離無需借助操作系統(tǒng)來區(qū)分頁表項和普通數(shù)據(jù),可以實現(xiàn)軟件透明的防御。給MMU 發(fā)出的cache訪問請求打標(biāo)簽,可使cache區(qū)分來自MMU和CPU核的請求。對于頁表項的訪問請求,cache 失效后從下級cache或內(nèi)存取回來的頁表項不緩存在cache中直接返回給MMU,為基本的不緩存策略。隨機地不緩存部分頁表項的策略可以減少性能損失,但緩存的頁表項仍存在側(cè)信道泄露。MMU中的PTC也緩存頁表項,將頁表項只緩存在PTC中也可以實現(xiàn)頁表項和普通數(shù)據(jù)對cache訪問的隔離。cache分區(qū)策略可以在共享cache中隔離頁表項和普通數(shù)據(jù)。本文根據(jù)頁表項訪問請求占cache總訪問請求的比例,評估頁表項占一路的按路隔離策略。因各級頁表項的cache局部性差異較大,本文最后探索和各級頁表項局部性特征相適應(yīng)的混合隔離策略。

      3 軟件防御機制

      AnC和Xlate類攻擊的關(guān)鍵在于MMU和CPU核無差別地共享cache,使得頁表項和普通數(shù)據(jù)可以在cache中互相驅(qū)逐。本文研究了在現(xiàn)有系統(tǒng)下如何打破這種共享關(guān)系。

      3.1 基本方案:基于PAT不緩存頁表項

      本文基于Intel提供的PAT,為頁表頁和數(shù)據(jù)頁配置不同的cache訪問屬性,隔離MMU和CPU核對cache的訪問。

      Intel從Pentium III開始引入PAT特性,可以在虛擬地址空間以頁為單位設(shè)置數(shù)據(jù)的訪存類型(ARM和AMD也提供了類似的特性)。每級頁表項中都增加了PWT、PCD位,最低級頁表項中還增加了PAT位,指向最高級頁表頁的CR3寄存器中也增加了PWT、PCD位,以設(shè)置其指向頁面的訪存類型。

      本文通過設(shè)置寄存器CR3和指向頁表頁的頁表項(除最低級頁表項)中的PCD位和PWT位,將頁表頁的訪存屬性設(shè)置為UC(uncacheable),普通數(shù)據(jù)頁的訪存屬性設(shè)置為WB(write-back),從而隔離了MMU和CPU核對cache的訪問。

      3.2 優(yōu)化方案:結(jié)合透明大頁減少性能損失

      TLB 失效時,使用4級頁表的系統(tǒng)完成地址翻譯需要訪問4次內(nèi)存。不緩存頁表項的機制會給TLB 失效多的程序帶來較大的性能損失。降低TLB 失效率或減少每次TLB 失效后的內(nèi)存訪問次數(shù),可以減少TLB 失效引起的內(nèi)存訪問總量。

      大頁增大了TLB覆蓋的地址范圍,從而減少TLB 失效率。同時,大頁對應(yīng)的頁表級數(shù)也減少,因而也減少了每次TLB 失效后訪問內(nèi)存的次數(shù)。本文進一步結(jié)合系統(tǒng)提供的2 M透明大頁,評估基于PAT的防御機制對于性能的影響。

      4 硬件防御機制

      軟件防御機制可以方便地應(yīng)用于現(xiàn)有系統(tǒng),但可以實施的性能優(yōu)化措施有限。本文進一步研究在芯片層面的隔離,實現(xiàn)性能損失更小的防御機制。

      4.1 基本方案:不緩存全部頁表項

      為使cache可以區(qū)分來自 MMU和CPU核的請求,本文在PTW發(fā)往cache的請求中增加標(biāo)志位PTW_uncache,以通知cache不緩存該頁表項。

      操作系統(tǒng)創(chuàng)建頁表項時會進行寫頁表項的訪存操作,此類頁表項訪問請求由CPU核發(fā)起,會被正常緩存在cache中。對于寫回型cache,寫操作的數(shù)據(jù)只有在數(shù)據(jù)被替換出cache時,才會被寫入內(nèi)存。若此類頁表項未被寫回內(nèi)存,直接去內(nèi)存查找PTW請求的頁表項,會出現(xiàn)缺失錯誤。為避免該缺失錯誤發(fā)生,在本文的硬件不緩存頁表項機制中,PTW的訪存操作仍會查找cache。頁表項只有被創(chuàng)建時會被緩存在cache中,被驅(qū)逐集替換出cache后,后續(xù)被PTW請求時,將不再被緩存在cache中。成功實施AnC 或Xlate攻擊都需要多次驅(qū)逐cache,因而頁表項短暫地被緩存在cache中并不會影響安全性。

      當(dāng)PTW訪存請求發(fā)生cache命中時,cache采取和處理普通數(shù)據(jù)cache命中相同的策略,即將命中的頁表項返回給PTW。如圖5所示,當(dāng)PTW訪存請求發(fā)生cache 失效時,cache將從內(nèi)存取回的頁表項直接返回給PTW,不緩存在任一級cache中。

      圖5 MMU請求的數(shù)據(jù)不緩存在cache中

      4.2 優(yōu)化1: 隨機不緩存頁表項減少性能損失

      為減少不緩存全部頁表項的性能損失,本文進一步在cache中隨機地緩存部分頁表項。本文在PTW中增加一個訪存請求計數(shù)器:PTW每向cache發(fā)送一次請求,計數(shù)器都加1,飽和后清零。當(dāng)計數(shù)值為0時,PTW將訪存請求中的PTW_uncache標(biāo)志位清零,否則置1(即不緩存在cache中)。

      實驗表明,隨機地緩存1/4和1/64頁表項在cache中均存在側(cè)信道泄露,且緩存的頁表項越多側(cè)信道泄漏的風(fēng)險越大。緩存1/4頁表項時,3級頁表項的索引皆被破解;緩存1/64的頁表項時,第2級頁表項的索引被破解。因為AnC具有抗噪音的特點,難以找到完全不存在側(cè)信道泄漏的隨機不緩存方案。

      4.3 優(yōu)化2:改進MMU中的PTC緩存各級頁表項

      系統(tǒng)中除了L1-L3cache外,MMU中也有專用于緩存頁表項的PTC。普通數(shù)據(jù)無法驅(qū)逐PTC中的頁表項,將頁表項只緩存在PTC中也可以實現(xiàn)頁表項和普通數(shù)據(jù)對cache訪問的隔離。多級頁表中最低級頁表項數(shù)量最多,而現(xiàn)有的PTC未緩存最低級頁表項(由TLB緩存)。為減少TLB 失效引起的內(nèi)存訪問總量,本文改進PTC來緩存所有級別的頁表項(含最低級頁表項)。

      4.4 優(yōu)化3:按路分區(qū)(way partitioning)cache隔離頁表項和普通數(shù)據(jù)

      組相聯(lián)cache的每個cache組都有多路(way)緩存行,將頁表項和普通數(shù)據(jù)緩存到不同的cache路可以實現(xiàn)隔離。考慮到動態(tài)分區(qū)仍存在部分信息泄露[20,21],而且會使某一類數(shù)據(jù)強占cache影響其他類型數(shù)據(jù)對cache的使用,本文采用靜態(tài)的按路分區(qū)機制。

      根據(jù)cache訪問請求中頁表項訪問請求所占的比例,本文采用為頁表項分配一路的按路分區(qū)方案:頁表項使用第1路,普通數(shù)據(jù)使用其他路。本文在PTW發(fā)往cache的訪存請求以及cache的每個緩存行中添加標(biāo)志位isPTE,以區(qū)分是頁表項還是普通數(shù)據(jù)。

      按路分區(qū)只改變替換邏輯,不影響查找邏輯??紤]到本文并未對操作系統(tǒng)創(chuàng)建頁表項時的寫頁表項進行標(biāo)記,頁表項和普通數(shù)據(jù)仍可以命中在任意cache路。發(fā)生cache失效時,PTW請求的頁表項只能被緩存在第1路緩存行,CPU請求的普通數(shù)據(jù)只能被緩存在其他路緩存行;若上級(離CPU核更近)cache中的數(shù)據(jù)被驅(qū)逐,isPTE位為1的緩存行只能被緩存在下級cache中的第1路,isPTE位為0的緩存行只能被緩存在下級cache中的其他路。如圖6所示,按路分區(qū)后,頁表項只緩存在cache的第1路,普通數(shù)據(jù)只緩存在cache的其他路,頁表項和普通數(shù)據(jù)在cache中不再有互替關(guān)系,無法互相探測對方的cache訪問蹤跡。

      圖6 按路分區(qū)方案

      4.5 優(yōu)化4:與各級頁表項局部性相適應(yīng)的混合隔離方案

      各級頁表項的局部性不同,高級頁表項局部性好于低級頁表項。本節(jié)探索與各級頁表項局部性特征相適應(yīng)的隔離方案。本文評估了不同配置下各級頁表項的失效率(從內(nèi)存取各級頁表項的次數(shù)/TLB失效次數(shù))。圖7顯示,高級頁表項的局部性遠好于低級頁表項。

      圖7 各級頁表項失效率差異比較

      只在PTC中緩存各級頁表的方案中,PTC為64項時,L3頁表項失效率已較低,平均為0.65%,L2頁表項的平均失效率為15.91%,L1頁表項平均失效率為71.79%。PTC增大至256項時,L2、L1頁表項失效率顯著下降,L2頁表項平均失效率為7.9%,但L1頁表項的失效率仍較高,為44.71%。采用按路分區(qū)時,各級頁表項的失效率普遍較低,L3頁表項的平均失效率為0.05%,L2頁表項的平均失效率為0.78%,L1頁表項的平均失效率也僅為4.99%。

      為減少不同級頁表項間的干擾,本文將只在PTC中緩存各級頁表項的機制與按路分區(qū)cache的機制相結(jié)合。首先,在按路分區(qū)cache中只緩存L1頁表項,PTC中緩存各級頁表項。PTC為64項時,L3頁表項平均失效率為0.59%,L2頁表項平均失效率為12.09%,L1頁表項平均失效率為4.43%。相較于在按路分區(qū)cache中緩存所有級頁表項的方案,L1頁表項的失效率有一點下降,但L2頁表項的失效率增加較大。為進一步減少PTC中L1頁表項對其他級頁表項的干擾,本文在PTC中只緩存L3、L2頁表項,不緩存L1頁表項,L2 平均失效降為6.11%,L1平均失效率為4.37%,L3平均失效率為0.6%。

      5 性能分析

      5.1 軟件方案性能分析

      軟件方案實驗環(huán)境配置如表1所示。使用大頁的不緩存頁表項方案相較于基本的不緩存頁表項方案其性能損失(分別歸一至使用2 M大頁的正常緩存方案和未使用大頁的正常緩存方案)由平均82.35%降至平均26.95%。不緩存頁表項的性能損失來源于TLB失效后的PTW訪存操作。性能損失大小具體取決于正常緩存時PTW訪存時間占程序總執(zhí)行時間的比例、不緩存頁表項后增加的TLB失效數(shù)量和平均PTW執(zhí)行時間。

      以cactusADM為例,未使用大頁時,正常緩存機制中PTW訪存時間占程序總執(zhí)行時間的比例為38.85%、每千條指令TLB失效數(shù)為13、平均每次PTW執(zhí)行時間為23個周期,不緩存頁表項機制中每千條指令TLB失效數(shù)為36、平均每次PTW執(zhí)行時間為187個周期,計算得性能損失為815.25%。使用大頁時,正常緩存機制中PTW訪存時間占程序總執(zhí)行時間的比例為11.38%、每千條指令TLB失效數(shù)為7、平均每次PTW執(zhí)行時間為13個周期,不緩存頁表項機制中每千條指令TLB失效數(shù)為16、平均每次PTW執(zhí)行時間為113個周期,計算得性能損失為211.41%。

      表1 實驗環(huán)境配置

      5.2 硬件方案性能分析

      硬件方案的實驗環(huán)境配置如表2所示。如圖9所示,高級頁表項緩存在PTC、最低級頁表項緩存在按路分區(qū)cache的混合隔離方案中,PTC大小為64項時,平均性能提升0.67%,其中mcf的性能損失最大,為5.85%。

      本文實驗用到的PTC為全相聯(lián)結(jié)構(gòu),達到的性能提升是理想化的最大值。采用組相聯(lián)結(jié)構(gòu)后,需進一步增大PTC才能達到同等的性能提升效果。如圖10所示,PTC大小同樣的情況下增加PTC的路數(shù)的效果要好于增加PTC的組數(shù)。

      表2 實驗環(huán)境配置

      圖8 軟件方案執(zhí)行時間(歸一到未使用大頁時的正常緩存方案)

      圖9 硬件方案性能損失

      6 安全性分析

      AnC和Xlate類攻擊都依賴于頁表項和普通數(shù)據(jù)在cache中的互替關(guān)系,隔離的防御機制打破了這種關(guān)系,使得頁表項和普通數(shù)據(jù)無法探測對方的訪存操作在cache中留下的蹤跡。

      圖10 組相聯(lián)PTC性能損失

      圖11和圖12分別為軟件平臺上AnC和Xlate攻擊防御前后的攻擊結(jié)果(硬件防御機制中實驗結(jié)果類似,不再贅述)。

      顏色越深代表訪問延遲越大,猜測結(jié)果與實際結(jié)果重疊代表攻擊成功。

      實施防御前,隱私地址對應(yīng)的頁表項訪問延遲較其他地址對應(yīng)的頁表項訪問延遲大。AnC攻擊中攻擊者可以觀測到該時間差,獲得隱私頁表項的頁內(nèi)索引。實施防御后,所有地址訪問延遲均增加,攻擊者無法觀察到MMU的訪存蹤跡。

      注:以k[0]=0為例,對于p[0]從0到256,訪問的T0從緩存行 0到緩存行 15, 出現(xiàn)如圖所示的階梯狀深色部分代表攻擊成功

      圖12 防御前Xlate攻擊結(jié)果

      實施防御前,Xlate攻擊者可以用頁表項構(gòu)造驅(qū)逐集,探測AES加密過程訪問的T-table在cache中的位置。實施防御后,頁表項未被緩存在cache中,Xlate攻擊者無法使用頁表項創(chuàng)建驅(qū)逐集,后續(xù)無法使用驅(qū)逐集進行cache訪問蹤跡的探測,因而未生成驅(qū)逐集探測結(jié)果圖。

      7 相關(guān)工作

      目前基于隔離的cache側(cè)信道防御措施可以分為3類:按組分區(qū)、按路分區(qū)和將敏感數(shù)據(jù)鎖存。

      按組分區(qū)Page coloring通過控制cache索引實現(xiàn)cache按組分區(qū)。如圖13所示,物理頁號和cache索引存在重疊部分為color bits。Page coloring為不同安全域的數(shù)據(jù)分配不同的color bits,不同安全域的數(shù)據(jù)便緩存在不同的cache組,不存在互替關(guān)系。

      圖13 Page coloring工作機制

      按路分區(qū)IntelCAT將cache按路分區(qū),操作系統(tǒng)通過控制位掩碼將cache路與CLOS(class of service)綁定,再進一步將CLOS與CPU核綁定以實現(xiàn)不同進程對cache的隔離訪問。

      NoMocache[21]針對具有2個硬件線程的處理器,為每個線程靜態(tài)分配Y路cache,其他路為2個線程共享,每個線程都不能獨占cache。

      利用硬件機制將敏感數(shù)據(jù)鎖存在cache中Intel TSX(事務(wù)內(nèi)存)[10]使用時涉及到2個集合:寫集合和讀集合。當(dāng)寫集合超過L1 Dcache大小時或讀集合超過LLC大小時,事務(wù)終止率會急劇增加。Cloak[10]使用TSX訪問敏感數(shù)據(jù),監(jiān)測TSX的事務(wù)終止率,將敏感寫數(shù)據(jù)鎖在L1 Dcache中或敏感讀數(shù)據(jù)鎖在LLC中。

      ARM Autolock[11]機制具有鎖住私有cache數(shù)據(jù)的特性:當(dāng)核間共享cache中的緩存行在核私有cache中留有備份時,該緩存行不可以被從共享cache驅(qū)逐。利用該特性可以阻止基于共享LLC的跨核攻擊。

      PLcache[22]為每個緩存添加L標(biāo)志位,被標(biāo)記為Lock的緩存行只能被同進程的Lock行替換出cache,未標(biāo)記為Lock的緩存行可以被任意緩存行替換。

      利用軟件機制將敏感數(shù)據(jù)鎖存在cache中。映射到同一cache組的物理地址在cache中具有互替關(guān)系,StealthMem[13]和CacheBar[16]通過限制各進程可占有的cache路數(shù),阻止不同安全域數(shù)據(jù)的互相驅(qū)逐。StealthMem和CacheBar跟蹤不同安全域數(shù)據(jù)的物理頁訪問蹤跡(將這些頁對應(yīng)頁表項中的保留位置1以引起page fault,監(jiān)控對這些物理頁的每一次訪問),當(dāng)非安全域占有的cache路數(shù)超過閾值時,重新加載安全域的數(shù)據(jù)至cache,達到將安全域數(shù)據(jù)鎖在cache中的目的。

      已有防御機制都未考慮MMU對cache的訪問。即使考慮了頁表項,上述這些防御機制也不能完全防御該類攻擊。MMU和CPU共享cache引起的攻擊包括核內(nèi)攻擊和跨核攻擊。Page coloring機制只適用于存在color bits的情況,從而無法防御基于L1 cache的核內(nèi)攻擊,且Page coloring也無法在大頁開啟時使用。IntelCAT只在LLC或L2 cache中實現(xiàn),也無法防御核內(nèi)攻擊。基于ARM Autolock的機制同樣無法防御核內(nèi)攻擊。NoMocache中共享部分的存在,仍會造成部分信息泄露。在基于TSX的防御機制中,受保護的進程其敏感數(shù)據(jù)大小需和L1 Dcache或LLC大小吻合。PLcache需借助軟件標(biāo)記保護數(shù)據(jù),不能實現(xiàn)軟件透明的防御。StealthMem和CacheBar等通過置一頁表項中的保留位來觸發(fā)page fault的方式會引入新的側(cè)信道漏洞, 例如L1終端故障。

      8 結(jié) 論

      AnC和Xlate類基于MMU和CPU核共享cache的攻擊防御關(guān)鍵在于隔離頁表項和普通數(shù)據(jù),已有隔離防御機制并不能完全防御此類攻擊。本文提出的隔離機制包含軟件和硬件2個層面。軟件隔離機制可以方便地應(yīng)用于現(xiàn)有系統(tǒng),但性能損失大。在硬件層面可以實現(xiàn)更細粒度的隔離方案,探索性能更優(yōu)的防御機制。

      在軟件層面,本文基于PAT不緩存頁表項,進一步結(jié)合透明大頁,減少了TLB失效率,平均性能損失由82.35%降至26.95%。在硬件層面探索了緩存頁表項的隔離機制,改進了PTC緩存各級頁表項,只在PTC中緩存頁表項;按路分區(qū)cache,將頁表項和普通數(shù)據(jù)緩存在不同cache路?;诟骷夗摫眄椌植啃源嬖诓町惖挠^察,本文提出了與各級頁表項局部性相適應(yīng)的混合隔離方案。下一步的工作是將訪存特性不同的程序區(qū)別對待,探索適合不同程序的更細粒度的隔離機制。

      猜你喜歡
      頁表防御機制失效率
      PHMSA和EGIG的天然氣管道失效率對比研究
      化工管理(2023年17期)2023-06-16 05:56:54
      Archimedean copula刻畫的尺度比例失效率模型的極小次序統(tǒng)計量的隨機序
      更正
      中國糖料(2022年4期)2022-03-15 22:37:37
      作者更正
      勘 誤
      深入理解失效率和返修率?
      更正
      藏族和漢族首發(fā)精神分裂癥患者心理防御機制對照研究
      固體電解質(zhì)鉭電容器失效率鑒定
      上海航天(2014年1期)2014-12-31 11:57:26
      軀體形式障礙患者治療前后防御機制的對照觀察
      防城港市| 内黄县| 潼关县| 琼海市| 平定县| 浮梁县| 潜江市| 关岭| 祁东县| 广灵县| 河北区| 高碑店市| 日照市| 海伦市| 建水县| 青州市| 苏尼特左旗| 济阳县| 宝兴县| 白河县| 绩溪县| 济源市| 兰西县| 成安县| 扶余县| 武义县| 阿合奇县| 正宁县| 彭山县| 西华县| 衢州市| 大足县| 马尔康县| 蕉岭县| 乐安县| 福鼎市| 西华县| 盐城市| 钦州市| 东兴市| 邯郸县|