危險的外圍設(shè)備:Windows和Linux系統(tǒng)的計算機(jī)內(nèi)部安全隱患研究
WIFI適配器、USB集線器、觸控板、筆記本電腦攝像頭、網(wǎng)絡(luò)接口卡中的未簽名固件為惡意攻擊者入侵筆記本電腦和服務(wù)器提供了多種途徑。
在最新研究中,Eclypsium在來自Lenovo,Dell,HP和其他主要制造商的計算機(jī)中使用的WiFi適配器,USB集線器,觸控板和相機(jī)中發(fā)現(xiàn)了未簽名的固件。然后,我們展示了通過網(wǎng)絡(luò)接口卡對服務(wù)器的成功攻擊,該網(wǎng)絡(luò)接口卡具有三大服務(wù)器制造商各自使用的未簽名固件。當(dāng)這些組件上的固件被感染時,惡意軟件并不會被任何軟件安全控制程序檢測到。盡管以前有野蠻攻擊,但外圍制造商針對固件簽名的動作一直很慢,因此數(shù)百萬個Windows和Linux系統(tǒng)面臨固件攻擊的風(fēng)險,這些固件可能遭遇數(shù)據(jù)泄露、操作破壞、勒索軟件等問題。
未簽名固件的問題
自從方程式組織(Equation Group)的 HDD植入被發(fā)現(xiàn)已經(jīng)過去了五年,它使業(yè)界體會到固件黑客入侵的能力以及外圍設(shè)備中未簽名的固件所帶來的潛在危險。盡管最近幾年取得了一些進(jìn)步,但我們的研究表明,許多行業(yè)仍對未簽名固件的風(fēng)險視而不見。在四項單獨(dú)的新研究中,我們在各種企業(yè)設(shè)備的WiFi適配器,USB集線器,觸控板和相機(jī)中都發(fā)現(xiàn)了未簽名的固件。
不幸的是,這些問題可能會嚴(yán)重破壞設(shè)備的安全性和操作,并且往往很難修復(fù)。破壞諸如網(wǎng)卡,驅(qū)動器和其他外圍設(shè)備之類的組件會導(dǎo)致設(shè)備完全禁用,或者使攻擊者能夠竊取數(shù)據(jù),傳輸勒索軟件,并且躲避安全管理。Eclypsium的這項新研究表明,這些弱點(diǎn)在筆記本電腦和服務(wù)器的各個組件中普遍存在,為惡意攻擊提供了多種途徑。
固件:多數(shù)組件的大腦
在安全性方面,大多數(shù)注意力都集中在系統(tǒng)的最可見組件上,例如操作系統(tǒng)和應(yīng)用程序。然而,為了應(yīng)對日益增長的威脅,許多組織已開始把固件的管理納入其漏洞管理和威脅防御模型中。
在許多情況下,這些努力僅限于系統(tǒng)固件(位于設(shè)備主板上的UEFI或BIOS)。但是,實際上設(shè)備中的每個組件都有自己的固件和潛在的風(fēng)險,包括網(wǎng)絡(luò)適配器、顯卡、USB設(shè)備、相機(jī)、觸摸板、觸控板等。您可以參考我們的在線“ 了解您自己的設(shè)備 ”資源(超鏈接:https://eclypsium.com/know-your-own-device/),以瀏覽當(dāng)今設(shè)備中一些常用的支持固件的組件。
這些組件幾乎都由固件控制。固件可以刻錄到設(shè)備本身的集成電路中,或者組件有自己的閃存,用于存儲固件。此外,固件還可以在啟動時由操作系統(tǒng)動態(tài)提供。無論固件如何存儲,它都可以像微型計算機(jī)一樣操作,以控制該特定組件的低等級行為。正如我們將看到的那樣,從筆記本電腦到服務(wù)器再到網(wǎng)絡(luò)設(shè)備,此代碼通常很容易受到攻擊。
未簽名固件的風(fēng)險
問題在于,外圍設(shè)備通常缺乏安全最佳實踐,這在操作系統(tǒng)和其他更可見的組件(例如UEFI或BIOS)中是理所當(dāng)然的存在的最佳實踐。特別是,許多外圍設(shè)備在運(yùn)行代碼之前不會驗證固件是否已使用高質(zhì)量的公鑰/私鑰正確簽名。這意味著這些組件無法驗證設(shè)備加載的固件是否可靠,是否值得信賴。攻擊者可能只是插入惡意或易受攻擊的固件映像,組件就會盲目地信任并運(yùn)行該固件映像。
此外,正如我們之前的《Screwed Drivers》研究和最近的“陸上攻擊”所表明的那樣,可以使用易受攻擊的驅(qū)動程序繞過保護(hù),并使勒索軟件不受干擾地進(jìn)行攻擊。許多組件無需特殊特權(quán)就可以更新,一種非常簡單而強(qiáng)大的攻擊方案出現(xiàn)了:
- 攻擊者可以通過任何方法訪問設(shè)備,例如通過電子郵件或惡意網(wǎng)站傳遞的惡意軟件,或邪惡女仆攻擊。在擁有基本的用戶特權(quán)后,攻擊者/惡意軟件可以將惡意固件寫入易受攻擊的組件。
- 如果該組件不需要正確簽名固件,則攻擊者的代碼將由該組件加載并運(yùn)行。
- 然后,攻擊者可以使用該組件的獨(dú)特功能和特權(quán)來發(fā)起進(jìn)一步攻擊。
攻擊者濫用固件的方式會因組件而異。例如,網(wǎng)絡(luò)適配器上的惡意固件可能允許攻擊者嗅探、復(fù)制、重定向或更改流量,從而導(dǎo)致數(shù)據(jù)丟失、中間人攻擊和其他攻擊?;赑CI的設(shè)備可以啟用直接內(nèi)存訪問(DMA)攻擊,可以輕松竊取數(shù)據(jù)或完全控制受害系統(tǒng)。攝像頭可用于從用戶環(huán)境中捕獲數(shù)據(jù),而受損的硬盤驅(qū)動器可使攻擊者隱藏代碼和工具,而不會被操作系統(tǒng)發(fā)現(xiàn)。然而,總結(jié)下來就是一個意思:如果某個組件不要求驗證固件,則攻擊者通常可以無需特殊特權(quán)即可輕松地控制該組件。
最新研究:外圍設(shè)備中不安全固件的示例
1. 聯(lián)想筆記本電腦中的觸摸板和小紅帽(TrackPoint)固件
Eclypsium的研究人員最近分析了聯(lián)想ThinkPad X1 Carbon第六代筆記本電腦。當(dāng)我們使用該特定設(shè)備進(jìn)行分析時,我們覺得許多其他型號甚至其他供應(yīng)商的產(chǎn)品也存在相同的問題。具體地說,聯(lián)想將Synaptics用作其觸摸板的ODM,使用這組件的其他制造商也可能同樣容易受到攻擊。
在設(shè)備內(nèi)部,我們特別關(guān)注了以下固件:
- 觸摸板固件:pr2812761-tm3288-011-0808.img
- 小紅帽固件:PSG5E5_RANKA_fv06.bin
我們發(fā)現(xiàn)觸摸板和小紅帽使用了不安全的固件更新機(jī)制。具體來說,是在應(yīng)用固件更新之前,不需要在設(shè)備級別進(jìn)行加密簽名驗證。由于缺乏這方面的限制,攻擊者可以通過軟件修改固件映像,在這些組件中運(yùn)行任意惡意代碼。
聯(lián)想表示,ODM在當(dāng)前產(chǎn)品中沒有解決此問題的機(jī)制。
2. 惠普筆記本電腦中的HP Wide Vision FHD相機(jī)固件
Eclypsium研究了惠普Spectre x360 Convertible 13-ap0xxx筆記本電腦中的HP Wide Vision FHD攝像機(jī)的固件更新。我們發(fā)現(xiàn)固件更新未加密,并且缺少真實性檢查。攻擊者可以使用惠普提供的更新工具對固件進(jìn)行修改,以更改USB描述符。
HP Wide Vision FHD攝像機(jī)是SunplusIT生產(chǎn)的USB攝像機(jī)模塊?;萜諡槠銱P Spectre x360 Convertible 13-ap0xxx筆記本電腦上使用的相機(jī)提供了固件更新(sp93170.exe)。該固件更新程序包括SunplusIT的基于Windows的固件更新工具以及固件映像。
固件映像沒有任何形式的加密簽名或其他真實性信息?;赪indows的固件更新工具為了調(diào)整適應(yīng)USB描述符內(nèi)容,可以接受被修改過的固件文件。人們可以利用這種修改USB描述符的功能來禁用該設(shè)備或使該設(shè)備被識別為其他類型的USB設(shè)備。一旦處理器體系結(jié)構(gòu)的其他詳細(xì)信息被發(fā)掘,就可以使用USB HID設(shè)備(例如Rubber Ducky)將攝像頭模塊的行為更改為惡意軟件。
我們確認(rèn)了該漏洞的存在,方式是把使用過該工具更新的設(shè)備上的USB描述符修改掉。特別要注意的是,即使是普通用戶,SunplusIT固件更新程序也可以成功更新設(shè)備。固件更新原本應(yīng)該要求管理員訪問權(quán)限。
惠普表示,他們正在更新固件,預(yù)計下一代相機(jī)的型號中會有認(rèn)證的固件。
惠普已在HP Security Bulletin存檔中發(fā)布了帶有緩解措施的安全公告。
3. 戴爾XPS筆記本電腦上的WiFi適配器
Eclypsium的研究人員還展示了一項能力,他們在運(yùn)行Windows 10的戴爾 XPS 15 9560筆記本電腦上修改了WiFi適配器固件。這個存在問題的適配器是Killer Wireless-n / a / ac1535。Windows10會檢查確認(rèn)驅(qū)動程序已正確簽名,并且在設(shè)備管理器中查看時,驅(qū)動程序旁邊會顯示一個小證書圖標(biāo),如下所示。
當(dāng)我們修改WiFi適配器的固件映像時,就會看到該圖標(biāo)消失了。
如我們所見,證書圖標(biāo)不再顯示。而且,盡管圖標(biāo)不見了,我們?nèi)匀荒軔阂庑薷墓碳?,并且?qū)動程序仍然可以成功將其加載到設(shè)備中。
我們向高通和微軟報告了這個問題。高通是為Killer Wireless網(wǎng)卡提供芯片組和驅(qū)動程序,而微軟則負(fù)責(zé)檢查這些驅(qū)動程序已簽名。高通公司回應(yīng)說,他們的芯片組從屬于處理器,應(yīng)該是運(yùn)行在CPU上的軟件來負(fù)責(zé)驗證固件。他們表示,目前沒有為這些芯片添加簽名驗證的計劃。但是,微軟回應(yīng)說,應(yīng)由設(shè)備供應(yīng)商來驗證加載到設(shè)備中的固件。
這就產(chǎn)生了一個有趣的問題:誰來負(fù)責(zé)確保驅(qū)動程序和固件是已簽名的?特權(quán)攻擊者可以輕松替換驅(qū)動程序文件并繞過所有假想檢查,這就使得驅(qū)動程序看起來如此不堪一擊。此外,就是設(shè)備和操作系統(tǒng)。在這兩種可能中,責(zé)任仍然不明確,問題常常不會被完全解決。
4. USB集線器固件
作為未簽名固件廣泛使用的另一個例子,我們將目光轉(zhuǎn)向Linux Vendor Firmware Service,這是一個允許硬件供應(yīng)商上傳固件更新的安全門戶。通過此資源,我們可以更有針對性的關(guān)注更新協(xié)議,并輕松查看已簽名和未簽名的協(xié)議。我們發(fā)現(xiàn),某些更新協(xié)議與傳輸有關(guān),但還有許多是用于實際更新過程的。
例如,VLI USB集線器固件未簽名。
固件攻擊演示
接下來,讓我們看一下未簽名的固件是如何被濫用于真實攻擊中的。控制外圍組件的攻擊者不僅可以將組件的功能用于惡意攻擊,而且還可能獲得新的特權(quán),甚至可以控制整個系統(tǒng)。
在這個演示中,我們攻擊了網(wǎng)絡(luò)接口卡(NIC)芯片組中的未簽名固件。對NIC的惡意攻擊可能會對服務(wù)器產(chǎn)生很深的影響:遠(yuǎn)程破壞操作系統(tǒng)、提供遠(yuǎn)程后門、窺探和泄露原始網(wǎng)絡(luò)流量、繞過操作系統(tǒng)防火墻來提取數(shù)據(jù)、提供勒索軟件等。此類攻擊會根據(jù)某信號斷開服務(wù)器與網(wǎng)絡(luò)的連接,從而破壞整個數(shù)據(jù)中心的連接。
眾多研究人員強(qiáng)調(diào)了NIC中未簽名固件的危險,例如Arrigo Triulzi的Project Maux演說,LoïcDuflot撰寫的《您是否仍可以信任網(wǎng)卡》等。
我們所攻擊的NIC中的Broadcom BCM5719芯片組目前用于多家制造商的服務(wù)器中,并且不會對主機(jī)上傳的固件執(zhí)行簽名驗證。目前有許多開源項目正致力于逆向工程和重新實現(xiàn)此NIC固件,例如
https://github.com/meklort/bcm5719-fw和https://github.com/hlandau/ortega,這些項目進(jìn)一步降低了攻擊門檻。
服務(wù)器的基板管理控制器(BMC)是用來進(jìn)行設(shè)備帶外管理的,大多數(shù)服務(wù)器都能將BMC配置成與主機(jī)系統(tǒng)共享NIC。在這種安排下,你的物理網(wǎng)絡(luò)連接到外部設(shè)備時,就仿佛有兩個不同的網(wǎng)絡(luò)適配器,每個適配器都有自己的MAC地址。根據(jù)設(shè)計,主機(jī)軟件(即使在內(nèi)核級別)也看不到任何BMC通信。但是,如果將自己的固件加載到上述配置的NIC中,就能訪問一般情況下無法單獨(dú)從主機(jī)訪問的流量。
用這種方法,我們可以檢查BMC網(wǎng)絡(luò)數(shù)據(jù)包的內(nèi)容,將這些內(nèi)容提供給主機(jī)上運(yùn)行的惡意軟件,甚至即時修改BMC流量。也可以用來阻止從BMC發(fā)送到中央日志記錄服務(wù)器的警報,選擇性地將它們重定向到其他服務(wù)器,將流量復(fù)制并發(fā)送到遠(yuǎn)程位置進(jìn)行分析,以及直接用NIC將網(wǎng)絡(luò)連接給到遠(yuǎn)程命令和控制的服務(wù)器上,而主機(jī)或BMC卻不知道發(fā)生了什么事。
更糟糕的是,由于該卡已連接到PCI總線,攻擊者可能會使用DMA攻擊來完全控制服務(wù)器。如我們先前的研究,DMA攻擊使?jié)撛诘墓粽呖梢岳@開主CPU和OS,直接從受害系統(tǒng)讀取和寫入內(nèi)存。通過覆蓋內(nèi)存,攻擊者可以控制內(nèi)核執(zhí)行,以執(zhí)行幾乎任何形式的惡意活動。因此,攻擊者可以利用網(wǎng)卡中的漏洞來完全控制整個服務(wù)器的內(nèi)核。
固件安全問題涉及整個行業(yè)
外圍設(shè)備中固件無簽名是很廣泛的問題,這涉及眾多品牌及其ODM供應(yīng)商。在披露了Equation Group的驅(qū)動器植入物之后,許多HDD和SSD供應(yīng)商進(jìn)行了更改,以確保其組件僅接受有認(rèn)證的固件。但是,許多其他外圍組件尚未效仿。而且鑒于組件供應(yīng)商經(jīng)常與各種設(shè)備供應(yīng)商合作,單個易受攻擊的組件就很容易出現(xiàn)在多個產(chǎn)品中。
同樣重要的是,這些問題幾乎適用于所有類別的Windows和Linux設(shè)備,從筆記本電腦到服務(wù)器。Apple會在每次將驅(qū)動程序包中的所有文件(包括固件)加載到設(shè)備之前,對其進(jìn)行簽名驗證,以減輕這種攻擊。相反,Windows和Linux僅在最初安裝該軟件包時才執(zhí)行這種類型的驗證。設(shè)備本身則需要在允許固件更新之前執(zhí)行簽名驗證,而不是取決于操作系統(tǒng)來執(zhí)行此任務(wù)。
不幸的是,未經(jīng)簽名的固件帶來的問題解決起來并不容易。如果該組件并非旨在檢查簽名的固件,則通常無法通過固件更新進(jìn)行修復(fù)。在許多情況下,設(shè)備或產(chǎn)品線中的根本問題完全無法解決,這意味著該產(chǎn)品線中的所有設(shè)備在其整個生命周期中都暴露在被攻擊的危險中。
結(jié)論
外圍設(shè)備中未簽名的固件仍然是網(wǎng)絡(luò)安全性的一個被忽視的方面。根據(jù)組件的功能,未簽名的固件可能會導(dǎo)致數(shù)據(jù)丟失、完整性被破壞、隱私被暴露,并使攻擊者能夠獲得特權(quán)并躲避傳統(tǒng)的安全控制。鑒于未簽名固件使用的廣泛性,企業(yè)應(yīng)掃描其設(shè)備中是否有易受攻擊的組件,并應(yīng)在采購過程中評估新設(shè)備的固件狀態(tài)。