邊信道攻擊(side channel attack 簡稱SCA),又稱側(cè)信道攻擊:針對加密電子設(shè)備在運(yùn)行過程中的時間消耗、功率消耗或電磁輻射之類的側(cè)信道信息泄露而對加密設(shè)備進(jìn)行攻擊的方法被稱為邊信道攻擊。這類新型攻擊的有效性遠(yuǎn)高于密碼分析的數(shù)學(xué)方法,因此給密碼設(shè)備帶來了嚴(yán)重的威脅。
對邊信道攻擊的學(xué)術(shù)研究起于1996-1999年。傳統(tǒng)的分組密碼分析技術(shù)局限于算法的數(shù)學(xué)結(jié)構(gòu),其攻擊效果往往不佳。國內(nèi)外密碼學(xué)界都在加強(qiáng)及預(yù)算法實(shí)現(xiàn)的分析方法研究,邊信道分析技術(shù)作為一種新的密碼分析方法迅速成為研究熱點(diǎn)。邊信道攻擊方法 主要集中在功耗攻擊、電磁場攻擊和時間攻擊。其中功耗攻擊是最強(qiáng)有力的手段之一,包括簡單功耗分析攻擊(SimplePower Analysis attacks,SPA)和差分功耗分析攻擊(Differential Power Analysis attacks,DPA),與傳統(tǒng)密碼分析學(xué)相比,這些攻擊手段攻擊效果顯著。
幾種已實(shí)現(xiàn)的邊信道攻擊
1.通過CPU緩存來監(jiān)視用戶在瀏覽器中進(jìn)行的快捷鍵及鼠標(biāo)操作
對最新型號的英特爾CPU有效,如Core i7;還需運(yùn)行在支持HTML5的瀏覽器上。帶有惡意JS的網(wǎng)頁在受害者電腦上執(zhí)行后,會收集與之并行的其它進(jìn)程的信息,有了這個信息,攻擊者可以繪制內(nèi)存對按下按鍵和鼠標(biāo)移動的反應(yīng)情況,進(jìn)而重塑用戶使用情景。
2.“聽譯”電子郵件密鑰
通過智能手機(jī)從運(yùn)行PGP程序的計(jì)算機(jī)中“聽譯”密鑰。這項(xiàng)最新的密鑰提取攻擊技術(shù),能夠準(zhǔn)確地捕捉計(jì)算機(jī)CPU解碼加密信息時的高頻聲音,并提取密鑰。
3.非智能手機(jī)+惡意軟件+目標(biāo)PC
從采購供應(yīng)鏈下手,將特制小體量難以檢測的惡意軟件植入電腦,該軟件會強(qiáng)制計(jì)算機(jī)的內(nèi)存總線成為天線,通過蜂窩頻率將數(shù)據(jù)無線傳輸?shù)绞謾C(jī)上。攻擊者將接受和處理信號的軟件嵌入在手機(jī)的固件基帶中,這種軟件可以通過社會工程攻擊、惡意App或者直接物理接觸目標(biāo)電話來安裝。
4.用手觸碰電腦即可破解密碼
電腦CPU運(yùn)算時造成“地”電勢的波動,用手觸碰筆記本電腦的外殼,接著再測量釋放到皮膚上的電勢,然后用復(fù)雜的軟件進(jìn)行分析,最終得到計(jì)算機(jī)正在處理的數(shù)據(jù)。例如:當(dāng)加密軟件使用密鑰解密時,監(jiān)測這種波動就可得到密鑰。
5.智能手機(jī)上的FM無線電功能來拾取電腦顯卡發(fā)出的無線電波
6.利用KVM入侵物理隔離設(shè)備
使用連接到互聯(lián)網(wǎng)的設(shè)備下載惡意軟件,然后將其傳遞給設(shè)備的內(nèi)存。之后透過KVM漏洞傳播給使用KVM操控的其它多臺設(shè)備,實(shí)現(xiàn)入侵物理隔離的系統(tǒng),并感染更敏感的設(shè)備。最后惡意程序再經(jīng)KVM反向?qū)⒏`取到的數(shù)據(jù)傳遞到互聯(lián)網(wǎng)。
7.利用一個面包(皮塔餅)偷取計(jì)算機(jī)密鑰
無屏蔽銅線圈、電容
8.通過熱量竊取電腦信息
9.其它方法
分析設(shè)備在解密過程中的內(nèi)存利用率或放射的無線電信號,竊取密鑰。
信息安全專家表示,有可能利用英特爾聯(lián)網(wǎng)技術(shù)中一個有趣的邊信道漏洞,在用戶通過網(wǎng)絡(luò)輸入終端時嗅探其 SSH 密碼。
簡言之,英特爾芯片集有漏洞,偷聽者可巧妙接入采用該芯片集的服務(wù)器,觀測連接同一服務(wù)器的受害者單獨(dú)發(fā)送的數(shù)據(jù)包時序,比如交互式終端會話中的按鍵動作。
由于人類手指在鍵盤上移動遵循特定模式,每次按鍵間都有明顯的停頓,隨所敲字符不同而異,該時序即可泄露受害者所按特定鍵位。這些停頓經(jīng)分析后可實(shí)時揭示經(jīng)網(wǎng)絡(luò)傳輸?shù)奶囟ò存I,包括密碼和其他機(jī)密信息。
通過向服務(wù)器反復(fù)發(fā)送一連串網(wǎng)絡(luò)包,直接填充一塊處理器內(nèi)存緩存,偷聽者可完美實(shí)現(xiàn)監(jiān)視功能。受害者發(fā)送數(shù)據(jù)包時,偷窺者的數(shù)據(jù)會被新進(jìn)入的流量從該緩存中逐出。由于一直在快速反復(fù)填充該緩存,偷聽者可感知自身數(shù)據(jù)是仍存在于該緩存中,還是被已被逐出,由而泄露其受害者已發(fā)送某些數(shù)據(jù)的事實(shí)。這一事實(shí)最終可用于確定受害者入站數(shù)據(jù)包之間的時間間隔,揭示受害者傳輸?shù)陌存I信息。
該安全疏漏沒那么容易利用,英特爾也不認(rèn)為這是個大問題,但這無損于其身為有趣漏洞的事實(shí),令人想一探究竟。值得注意的是,偷窺者必須使用英特爾的數(shù)據(jù)直接 I/O (DDIO) 技術(shù)直接連接服務(wù)器。而且,這既不是中間人攔截,也不是密碼破解,而是緩存觀察邊信道泄露。另外,有大量入站交互式數(shù)據(jù)的繁忙系統(tǒng)也不適用該攻擊方式,不可靠。
起效機(jī)制
DDIO 使網(wǎng)絡(luò)接口能夠繞過系統(tǒng) RAM ,將數(shù)據(jù)直接寫入主機(jī)處理器最后一級緩存,切實(shí)降低延遲,提升信息流入流出計(jì)算機(jī)的速度,改善 Web 托管和金融交易等 I/O 成為瓶頸的應(yīng)用性能。
但不幸的是,據(jù)荷蘭阿姆斯特丹自由大學(xué)系統(tǒng)與網(wǎng)絡(luò)安全小組 VUSec 的科學(xué)家介紹,直接跳入 CPU 緩存的性能提升卻打開了邊信道漏洞的大門。今年早些時候,該白帽子團(tuán)隊(duì)發(fā)現(xiàn)并記錄了上述濫用 DDIO 在網(wǎng)絡(luò)上觀察他人的方法。私下通告英特爾后,該團(tuán)隊(duì)于 9 月 10 日披露了其發(fā)現(xiàn)。
自 2012 年起,由于其性能提升功能,所有英特爾服務(wù)器級 Xeon 處理器均默認(rèn)啟用 DDIO。
該昵稱 NetCAT 的技術(shù)如下圖所示。其漏洞利用方法與 Throwhammer 類似,要求偷聽者已侵入以遠(yuǎn)程直接內(nèi)存訪問 (RDMA) 無線帶寬網(wǎng)絡(luò)連接,直連監(jiān)視對象在用 DDIO 主機(jī)的服務(wù)器。這就要求網(wǎng)絡(luò)偷窺者要在目標(biāo)公司的基礎(chǔ)設(shè)施中已擁有立足之地。
VUSec 的 NetCAT 安全漏洞圖表(來源:VUSec)
一旦連接,竊聽者通過網(wǎng)絡(luò)反復(fù)填充處理器最后一級緩存,以自身數(shù)據(jù)有效淹沒該緩存。竊聽者觀察其連接延時的細(xì)微差別,檢測其數(shù)據(jù)被另一個網(wǎng)絡(luò)用戶從緩存中驅(qū)逐至 RAM 的時機(jī)——該技術(shù)也被稱為“prime+probe”。這些數(shù)據(jù)被驅(qū)逐的時序即會泄露受害者的按鍵信息。
重要的是,最后一級緩存有一部分是為直接 IO 保留的,因而 prime+probe 方法不受流經(jīng) CPU 核心的代碼和應(yīng)用數(shù)據(jù)困擾。
所有這些意味著,底層硬件可能無法避免地泄露敏感信息或秘密信息。NetCAT 更多技術(shù)細(xì)節(jié)將于明年 5 月正式發(fā)布。
VUSec 團(tuán)隊(duì)因其發(fā)現(xiàn)而獲得了英特爾安全漏洞獎勵,該團(tuán)隊(duì)解釋道:一直以來,緩存攻擊都是用于本地環(huán)境中的敏感數(shù)據(jù)泄露(例如,從攻擊者控制下的虛擬機(jī),到共享云平臺 CPU 緩存的受害者虛擬機(jī))。
“
而 NetCAT 將此威脅延伸到了網(wǎng)絡(luò)上的非受信客戶端,沒有本地接入的遠(yuǎn)程服務(wù)器 SSH 會話也會泄露按鍵動作之類的敏感數(shù)據(jù)了。交互式 SSH 會話中,用戶的每一次按鍵,都會觸發(fā)網(wǎng)絡(luò)數(shù)據(jù)包直接傳輸。因此,控制臺加密 SSH 會話中每輸入一個字符,NetCAT 就會通過泄露相應(yīng)網(wǎng)絡(luò)包的到達(dá)時序而泄露該按鍵事件的時序。
有了網(wǎng)絡(luò)包時序基礎(chǔ),攻擊者便可通過對比所觀測到的延遲與目標(biāo)鍵入模式模型,得出這些時間間隔與特定按鍵的匹配。
如果您的平臺 DDIO 可用/啟用,您即受此漏洞影響。如果同時啟用了 RDMA,該漏洞即通過網(wǎng)絡(luò)將您的服務(wù)器暴露在實(shí)際邊信道攻擊面前,如 NetCAT 漏洞利用所演示的一樣。
該芯片設(shè)計(jì)缺陷為什么得名 NetCAT 呢?
這可不是為了制造恐慌。NetCAT 表示網(wǎng)絡(luò)緩存攻擊 (Network Cache ATtack)。“NetCAT” 也是黑客和系統(tǒng)管理員用于通過網(wǎng)絡(luò)發(fā)送信息的常用工具。Cat 是 UNIX 系統(tǒng)用于讀取文件內(nèi)容的工具,NetCAT 則旨在通過網(wǎng)絡(luò)讀取文件內(nèi)容。NetCAT 這個命名玩了雙關(guān)梗,指的是不用網(wǎng)絡(luò)另一端的機(jī)器協(xié)作就從網(wǎng)絡(luò)上讀取數(shù)據(jù)。如果還覺得不夠雙關(guān)的話,DDIO 內(nèi)部用的可是緩存分配技術(shù) (Cache Allocation Technology: CAT)。而且,誰不喜歡貓 (Cat) 呢?
如果上述內(nèi)容聽起來相當(dāng)復(fù)雜,似乎現(xiàn)實(shí)生活中不可行,那確實(shí)。至少,在英特爾看來,VUSec 描述的場景很大程度上是概念驗(yàn)證,而非實(shí)際攻擊場景。
Chipzilla 發(fā)言人向媒體表示:英特爾收到了該研究的通告,確定該漏洞為低嚴(yán)重性漏洞(CVSS 評分 2.6),主要原因是 DDIO 和 RDMA 慣常使用場景中要求的復(fù)雜度、用戶互動和罕見訪問級別。
“
額外的緩解措施包括使用抗時序攻擊的軟件模塊,采用常量時間風(fēng)格的代碼。感謝學(xué)術(shù)社區(qū)的持續(xù)研究。
與其他邊信道泄露類似,盡管實(shí)際漏洞利用過程可能繁瑣艱難,但這種漏洞呈現(xiàn)出的是非硬件重構(gòu)難以解決,甚至無法解決的根本缺陷。
雖然 VUSec 認(rèn)可英特爾關(guān)于增加針對時序攻擊的軟件防護(hù)可打擊 NetCAT 類窺探的說法,但唯一能夠確保清除該漏洞的方法,是完全禁用 DDIO,然后損失其性能增益。
VUSec 團(tuán)隊(duì)稱:只要網(wǎng)卡在緩存中創(chuàng)建獨(dú)特模式,無論遠(yuǎn)程服務(wù)器運(yùn)行何種軟件,NetCAT 都將有效。
英特爾 DDIO 技術(shù):
https://www.intel.com/content/www/us/en/io/data-direct-i-o-technology-brief.html
NetCAT 技術(shù):
https://www.vusec.net/projects/netcat/
RDMA:
https://itpeernetwork.intel.com/taking-low-io-latency-even-lower-with-rdma