李小馨 侯 銳 孟 丹
(*中國科學院信息工程研究所信息安全國家重點實驗室 北京 100093)(**中國科學院大學網絡空間安全學院 北京100049)
近年來高速緩存(cache)作為系統中所有進程共享的功能單元,受到了攻擊者的普遍關注。利用cache側信道攻擊,攻擊者打破了操作系統通過控制虛擬地址實現的不同進程間的訪問隔離。自cache側信道攻擊出現至今十余年,攻擊手段不斷豐富,攻擊平臺由單核到多核至云平臺[1,2],攻擊架構由x86[3,4]至ARM[5],攻擊目標由加密密鑰[3,4]至地址隨機化(address space layout randomization,ASLR)[6,7]。但一直以來的cache側信道攻擊利用的都是CPU核中不同進程對cache的共享。
最近有研究者利用內存管理單元(memory management unit,MMU)和CPU核對cache的共享實現了新型的cache側信道攻擊。AnC[8]攻擊中攻擊者使用JavaScript控制CPU核的訪存操作,探測出MMU對cache的訪問蹤跡,在150 s內破解了瀏覽器中的地址隨機化。Xlate[9]攻擊中攻擊者利用MMU的訪存操作,繞過所有已有的軟件側信道防御措施,探測出CPU核對cache的訪問蹤跡,破解了基于T-table實現的AES的加密密鑰。攻擊者已在Intel、AMD、ARM等的22種機器上發現了這一側信道的存在。
防御此類攻擊的關鍵在于隔離MMU和CPU核對cache的訪問。針對這類新的cache側信道攻擊,已有的基于隔離的防御手段[10-16]已不適用。這些防御手段只隔離了來自CPU核的不同進程(數據或代碼)對cache的訪問,并沒有考慮MMU對cache的訪問。Stealthmem[13]等通過置一頁表項中的保留位來觸發缺頁中斷(page fault)以實現頁粒度的cache訪問控制,但會產生L1終端故障(L1 terminal fault,L1TF)[17,18]等新的側信道泄露。
本文分析了AnC和Xlate類基于MMU和CPU核共享cache的側信道攻擊,指出防御的關鍵在于隔離cache中的頁表項和普通數據,并分析了已有的基于隔離的防御措施的不足,研究探索了軟件、硬件2種隔離方案。……