當前位置:
首頁 > 最新 > 通過USB調試攻擊固件安裝後門以實現「邪惡女傭」攻擊

通過USB調試攻擊固件安裝後門以實現「邪惡女傭」攻擊

寫在前面的話

調試機制是幫助跟蹤幾乎所有平台上的故障源的標準組件。一般主要在平台生產之前使用,但也經常用於翻新和修復返回的平台。安全研究人員可以多次使用調試特性測試攻擊,包括定位和使用JTAG,使用USB調試以及使用debug查找系統管理模式(SMM)中的漏洞。我們進行安全研究,用於計算基礎設施的硬體基礎創建實用的防禦。我們確認,通過USB進行的調試可以訪問在UEFI固件和運行時SMM固件中安裝持久的rootkit,而這些系統不能安全地設置調試策略( CVE-2018-3652)。這種漏洞將允許具有設備物理訪問許可權的攻擊者可以執行「Evil Maid」攻擊。正如其他人所報道的,防範這種類型的攻擊是相當困難的。為了提供對這種威脅的可見性,我們為開源的CHIPSEC框架發布了一個模塊,以檢測脆弱的系統。

保護固件

每次計算機啟動時,固件保護機制都必須執行固件以初始化可用配置中的固件,這為軟體執行創建了預期的安全環境。如果惡意軟體能夠更改某些配置,則可以通過在特權模式下執行或重新配置系統,以違反軟體正常運行的預期安全環境以及違反安全屬性,並將其許可權提升到高於其它軟體的許可權,其中最直接的方法是修改固件。

當然,具有物理訪問許可權的攻擊者可以簡單的連接固件編程器就可以修改固件,從理論上來說,這確實需要詳細的設備信息,但實際上在大多數情況下這些信息都很容易獲取。其根本原因就在於大多數固件存儲在串列可編程介面(SPI)快閃記憶體晶元上,這就為讀取和寫入存儲晶元創建了物理標準,SPI快閃記憶體編程器相對容易購買或創建。為了在不破壞系統的情況下獲得訪問許可權,攻擊者還需要弄清楚要改變的內容。然而,有一位研究人員(Dmytro Oleksiuk)卻開發了一種通用的概念驗證後門,根據這個樣本,攻擊者可以輕鬆的將這個後門安裝到大多數固件模塊中。這意味著,這些工具和技術的易用性和可用性,可使得非專業的攻擊者甚至是「腳本小子(script kiddie)」很容易的就可以訪問固件rootkit。Eclypsium的安全專家做了一個測試,他們能就在不到4分鐘的時間裡就在企業所用的筆記本電腦上安裝此rootkit,並且實現物理訪問,你可以看此視頻了解整個過程。

修改固件的另一種方法是通過特權軟體,為了防禦此類攻擊,固件應在引導期間儘早配置與固件存儲相關的保護位。完成此操作後,正常的軟體(甚至包括提升內核許可權的惡意軟體)將無法執行固件存儲寫入,直到重新啟動時,固件再次執行保護自身的過程。但是,即便這樣,固件仍會以某種方式寫入存儲器並進行代碼和配置更新。這雖然可以通過重新啟動來完成,但並不是在所有情況下都可以實現。另外,在運行時期間的SMM中執行的可信代碼可用於繞過保護並寫入固件存儲。據此來看,SMM是攻擊者嘗試安裝持久性固件rootkit的主要目標。

使用SMM固件調試

如上所述,研究人員已經證明通過調試功能可用於查找固件漏洞並直接繞過基於軟體的保護。實際上,通過調試功能發現漏洞一直是攻擊者最喜歡的方法。研究人員的分析表明,在啟用調試機制的系統上,物理攻擊會比沒有啟用調試機制的時候更容易。因為這種情況下攻擊者是不需要特殊的固件編程器,也不需要打開程序。通過使用可用的公開工具,他們只需通過插入一個外部USB即可安裝持久rootkit,繞過安全啟動和許多其他安全功能。

研究人員已經證明可以在SMM中暫停系統並從系統上下文中對內存進行任意更改,這樣攻擊者就可以獲得SMM執行的高級許可權。另外,就是通過編寫代碼來修改固件存儲,此類攻擊者可以利用現有的固件rootkit來安裝持久性惡意軟體。雖然這具有重大的安全隱患,但對於調試機制來說,這也是其一個預期的調試目的。不幸的是,有些系統無法在運行中關閉這些調試功能。

調試訪問

對於安全人員來說,為了了解系統的風險,重要的是要知道運行系統上是否啟用了調試機制。不幸的是,這個了解過程並不容易,對技術的要求很高。為此,Eclypsium的安全專家開發了一個開源CHIPSEC模塊來提供幫助,該模塊主要檢查運行系統上的兩個主要組件:

1.CPU調試功能

2.直接連接介面讓我們深入到這些檢查中,並將其分解為組件。首先,CPU調試功能的狀態位於模型特定寄存器(MSR)中。在英特爾軟體開發人員手冊中,我們可以看到此MSR的細分:

如果我們忽略保留位,我們可以看到3個有趣的東西:

1.啟用位。

2.一個鎖定位。

3.發生調試位。

如果根據此規範,默認情況下,調試是禁用和解鎖的。利用發布的chipsec模塊,研究人員檢查了調試是否被禁用和鎖定,而這些調試則是固件在運行中設置的安全配置。通過執行這些模塊,檢查將通過。另外,研究人員還檢查了調試發生位,但根CHIPSEC維護人員的說法,這個檢查會發生誤報的情況,因此Eclypsium的安全專家決定不依賴於這個檢查結果得出檢查是否通過或失敗的決定。

但是,CPU調試只是調試機制問題的一部分,下一步是檢查直接連接介面(DCI)的狀態。此功能在之前曾在被研究者利用過,DCI會被記錄在每個計算機平台的晶元組數據表中,例如「Intel 100系列和Intel C230系列晶元組系列平台控制器集線器(PCH)數據表第2卷」,名稱為「DCI控制寄存器」。

儘管該寄存器似乎存在於由intel製造的晶元組中,但它僅在此特定數據表中記錄。在該寄存器內部,在過多的保留位之間,我們找到位或HDCIEN。如果啟用,晶元組將通過USB提供調試功能。因此,檢查非常簡單; 安全配置會禁用DCI,該位應為0。只有當上述兩項檢查都表明沒有啟用調試功能時,我們才會考慮安全地配置系統並從我們的chipsec模塊返回PASSED。至於CPU調試功能MSR中的位,我們決定遵循CHIPSEC維護者的建議,只有在設置了該位時才顯示警告。理論上,它表示在引導期間的某個時刻啟用了調試。可以在上的github上找到CHIPSEC我們的模塊是安裝chipsec後,您可以使用以下命令行單獨運行此模塊:

我們已經觀察到一些系統出現故障,但很難知道還有多少系統受到影響。英特爾發布了一份安全公告(CVE-2018-3652),內容涉及一些未安全設置調試策略的系統。如果您的系統受到影響,我們建議您運行檢查並親自查看。

緩解措施

理論上,對固件保護機制是個不錯的想法,但現實中,攻擊者通過對固件保護機制的修改,可以獲取對敏感系統的完全物理控制。如果一個系統未能通過固件保護機制的檢查,則即使在非常有限的時間段內,任何人都可以獲得系統的物理訪問。只需插入USB埠並運行公開的腳本代碼,攻擊者就可以繞過幾乎所有的安全技術。例如,攻擊者可能會使用自己開發的惡意軟體或rootkit感染固件,而且他們可以在不打開軟體的情況下進行操作。

某些系統可能在BIOS或固件設置菜單中具有啟用或禁用調試功能的設置。禁用該設置後,安全管理員可以檢查該配置是否通過上文提到的測試模塊。在這種情況下,使用強密碼或其他機制保護這些設置非常重要。

在其他情況下,你可能需要聯繫系統開發商並詢問是否有安全禁用調試訪問的版本。

結論

在本文中,Eclypsium的研究人員研究了使用USB調試來繞過安全措施並安裝固件rootkit的攻擊。雖然應該在系統運行中禁用調試機制,但是目前它仍是進行快速安全檢查來確定你的系統是否受到影響的好辦法。研究人員希望用他們的研究,幫助組織理解和防禦「邪惡女僕」攻擊。隨著實時嵌入式系統的複雜程度不斷提高,低效率的調試方法的成本日益增加。鑒於當前嵌入式應用的複雜性還有繼續上升的趨勢,對這些系統的調試將成為開發商考慮的關鍵因素。

*本文作者:eclypsium,由周大濤編譯,轉載請註明來自FreeBuf.COM


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

淺析AMR智能合約批量轉賬溢出漏洞
D-Link數字簽名證書遭竊,反倒成了黑客的「通行證」

TAG:FreeBuf |