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