信息安全專家表示,有可能利用英特爾聯網技術中一個有趣的邊信道漏洞,在用戶通過網絡輸入終端時嗅探其 SSH 密碼。
簡言之,英特爾芯片集有漏洞,偷聽者可巧妙接入采用該芯片集的服務器,觀測連接同一服務器的受害者單獨發送的數據包時序,比如交互式終端會話中的按鍵動作。
由于人類手指在鍵盤上移動遵循特定模式,每次按鍵間都有明顯的停頓,隨所敲字符不同而異,該時序即可泄露受害者所按特定鍵位。這些停頓經分析后可實時揭示經網絡傳輸的特定按鍵,包括密碼和其他機密信息。
通過向服務器反復發送一連串網絡包,直接填充一塊處理器內存緩存,偷聽者可完美實現監視功能。受害者發送數據包時,偷窺者的數據會被新進入的流量從該緩存中逐出。由于一直在快速反復填充該緩存,偷聽者可感知自身數據是仍存在于該緩存中,還是被已被逐出,由而泄露其受害者已發送某些數據的事實。這一事實最終可用于確定受害者入站數據包之間的時間間隔,揭示受害者傳輸的按鍵信息。
該安全疏漏沒那么容易利用,英特爾也不認為這是個大問題,但這無損于其身為有趣漏洞的事實,令人想一探究竟。值得注意的是,偷窺者必須使用英特爾的數據直接 I/O (DDIO) 技術直接連接服務器。而且,這既不是中間人攔截,也不是密碼破解,而是緩存觀察邊信道泄露。另外,有大量入站交互式數據的繁忙系統也不適用該攻擊方式,不可靠。
起效機制
DDIO 使網絡接口能夠繞過系統 RAM ,將數據直接寫入主機處理器最后一級緩存,切實降低延遲,提升信息流入流出計算機的速度,改善 Web 托管和金融交易等 I/O 成為瓶頸的應用性能。
但不幸的是,據荷蘭阿姆斯特丹自由大學系統與網絡安全小組 VUSec 的科學家介紹,直接跳入 CPU 緩存的性能提升卻打開了邊信道漏洞的大門。今年早些時候,該白帽子團隊發現并記錄了上述濫用 DDIO 在網絡上觀察他人的方法。私下通告英特爾后,該團隊于 9 月 10 日披露了其發現。
自 2012 年起,由于其性能提升功能,所有英特爾服務器級 Xeon 處理器均默認啟用 DDIO。
該昵稱 NetCAT 的技術如下圖所示。其漏洞利用方法與 Throwhammer 類似,要求偷聽者已侵入以遠程直接內存訪問 (RDMA) 無線帶寬網絡連接,直連監視對象在用 DDIO 主機的服務器。這就要求網絡偷窺者要在目標公司的基礎設施中已擁有立足之地。
VUSec 的 NetCAT 安全漏洞圖表(來源:VUSec)
一旦連接,竊聽者通過網絡反復填充處理器最后一級緩存,以自身數據有效淹沒該緩存。竊聽者觀察其連接延時的細微差別,檢測其數據被另一個網絡用戶從緩存中驅逐至 RAM 的時機——該技術也被稱為“prime+probe”。這些數據被驅逐的時序即會泄露受害者的按鍵信息。
重要的是,最后一級緩存有一部分是為直接 IO 保留的,因而 prime+probe 方法不受流經 CPU 核心的代碼和應用數據困擾。
所有這些意味著,底層硬件可能無法避免地泄露敏感信息或秘密信息。NetCAT 更多技術細節將于明年 5 月正式發布。
VUSec 團隊因其發現而獲得了英特爾安全漏洞獎勵,該團隊解釋道:一直以來,緩存攻擊都是用于本地環境中的敏感數據泄露(例如,從攻擊者控制下的虛擬機,到共享云平臺 CPU 緩存的受害者虛擬機)。
而 NetCAT 將此威脅延伸到了網絡上的非受信客戶端,沒有本地接入的遠程服務器 SSH 會話也會泄露按鍵動作之類的敏感數據了。交互式 SSH 會話中,用戶的每一次按鍵,都會觸發網絡數據包直接傳輸。因此,控制臺加密 SSH 會話中每輸入一個字符,NetCAT 就會通過泄露相應網絡包的到達時序而泄露該按鍵事件的時序。
有了網絡包時序基礎,攻擊者便可通過對比所觀測到的延遲與目標鍵入模式模型,得出這些時間間隔與特定按鍵的匹配。
如果您的平臺 DDIO 可用/啟用,您即受此漏洞影響。如果同時啟用了 RDMA,該漏洞即通過網絡將您的服務器暴露在實際邊信道攻擊面前,如 NetCAT 漏洞利用所演示的一樣。
該芯片設計缺陷為什么得名 NetCAT 呢?
這可不是為了制造恐慌。NetCAT 表示網絡緩存攻擊 (Network Cache ATtack)。“NetCAT” 也是黑客和系統管理員用于通過網絡發送信息的常用工具。Cat 是 UNIX 系統用于讀取文件內容的工具,NetCAT 則旨在通過網絡讀取文件內容。NetCAT 這個命名玩了雙關梗,指的是不用網絡另一端的機器協作就從網絡上讀取數據。如果還覺得不夠雙關的話,DDIO 內部用的可是緩存分配技術 (Cache Allocation Technology: CAT)。而且,誰不喜歡貓 (Cat) 呢?
如果上述內容聽起來相當復雜,似乎現實生活中不可行,那確實。至少,在英特爾看來,VUSec 描述的場景很大程度上是概念驗證,而非實際攻擊場景。
Chipzilla 發言人向媒體表示:英特爾收到了該研究的通告,確定該漏洞為低嚴重性漏洞(CVSS 評分 2.6),主要原因是 DDIO 和 RDMA 慣常使用場景中要求的復雜度、用戶互動和罕見訪問級別。
額外的緩解措施包括使用抗時序攻擊的軟件模塊,采用常量時間風格的代碼。感謝學術社區的持續研究。
與其他邊信道泄露類似,盡管實際漏洞利用過程可能繁瑣艱難,但這種漏洞呈現出的是非硬件重構難以解決,甚至無法解決的根本缺陷。
雖然 VUSec 認可英特爾關于增加針對時序攻擊的軟件防護可打擊 NetCAT 類窺探的說法,但唯一能夠確保清除該漏洞的方法,是完全禁用 DDIO,然后損失其性能增益。
VUSec 團隊稱:只要網卡在緩存中創建獨特模式,無論遠程服務器運行何種軟件,NetCAT 都將有效。
英特爾 DDIO 技術:
https://www.intel.com/content/www/us/en/io/data-direct-i-o-technology-brief.html
RDMA: