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