如何發(fā)現(xiàn)防不勝防的邊信道攻擊?
反病毒軟件捕捉不到Rowhammer及類似邊信道攻擊,于是,一組美國(guó)科學(xué)家著手研究該怎樣捕獲這些攻擊的特征。
一旦考慮到實(shí)驗(yàn)室環(huán)境和間諜工具之類的東西,邊信道攻擊就是很具體的事兒了。舉個(gè)例子,Rowhammer攻擊。這是一個(gè)通過快速重寫RAM行,以純軟件方式翻轉(zhuǎn)RAM上鄰近存儲(chǔ)單元的攻擊方法。最終,Rowhammer能使攻擊者搞崩內(nèi)核進(jìn)程,獲取到root權(quán)限。
美國(guó)馬薩諸塞州伍斯特理工學(xué)院(WPI)的3名研究員,在國(guó)際密碼研究學(xué)會(huì)(IACR)發(fā)表了一篇論文,展示了類似病毒掃描的邊信道攻擊檢測(cè)技術(shù)。
他們?cè)谖恼轮兄赋觯瑯?biāo)準(zhǔn)反病毒軟件檢測(cè)不了Rowhammer之類的漏洞利用,因?yàn)榇祟惞?ldquo;明顯基于無辜的指令集”。
雖然防御此類“微架構(gòu)”攻擊是可能的,但這3名研究人員提出的方法,是在邊信道惡意代碼部署之前(比如投送到應(yīng)用商店),就掃描軟件以確保二進(jìn)制代碼干凈。
他們的工具名為MASScan(微架構(gòu)靜態(tài)掃描),基于對(duì)惡意邊信道攻擊方式的分析:
緩存攻擊——通過制造緩存爭(zhēng)用起效。此類攻擊的共同特征,是對(duì)高分辨率計(jì)時(shí)器的需求;它們使用內(nèi)存屏蔽來連續(xù)針對(duì)性讀取操作;利用共享的內(nèi)存刷新指令等實(shí)現(xiàn)緩存驅(qū)逐。
DRAM訪問攻擊——造成系統(tǒng)內(nèi)存沖突。此類攻擊與緩存攻擊類似,共享計(jì)時(shí)器、內(nèi)存屏蔽和緩存驅(qū)逐特征。
Rowhammer攻擊——僅有緩存驅(qū)逐一個(gè)明顯特征。
通過阻斷內(nèi)存總線制造隱秘信道——高分辨率計(jì)時(shí)器和鎖定指令的組合,目的是拖住內(nèi)存總線以在兩個(gè)共存進(jìn)程間建立隱秘信道。
MASScan的重點(diǎn)在于分析二進(jìn)制文件以發(fā)現(xiàn)這些特征——當(dāng)今病毒掃描器發(fā)現(xiàn)不了的特征。MASScan是一組 IDA Pro 反匯編調(diào)試器腳本集,可被轉(zhuǎn)譯成適用于其他二進(jìn)制分析器的代碼。
比如說,cflush指令本身不是惡意的,那么MASScan尋找的就是cflush指令的循環(huán)執(zhí)行——也就是緩存攻擊、DRAM訪問攻擊和Rowhammer攻擊全都利用的操作。
比較遺憾的是:除了資本化,MASScan同時(shí)也是 Errata Security 出品的一款聲名狼藉的端口掃描器的名字,那款掃描器名為Masscan,僅僅是大小寫不同而已。希望WPI三人組發(fā)布代碼的時(shí)候能改個(gè)名字,免得撞名。