當前位置:
首頁 > 新聞 > Mac固件安全研究

Mac固件安全研究

近日,我在參加EkoParty大會時,做了一個關於Mac 電腦的EFI固件方面的一些最新研究的演講。為了配合本次的演講,我還專門寫了了一篇技術論文,詳細介紹了我在分析過程中收集到的數據。

譯者註:EkoParty大會一開始只是阿根廷黑客們的一個小型聚會,後來發展成為一個公開的且有很過公司參加的安全技術大會。

當然除了發布論文之外,我還公開了一些實用的工具和API,以幫助Mac用戶和管理員更好的對利用EFI固件的Mac系統運行的狀態和潛在的問題進行及時鑒別。這篇文章總結了我在分析過程中發現的一些主要問題,同時本文還可以技術論文的入門介紹。

在過去的幾個月里,我一直在研究Mac固件的問題,比如廠商在其系統中所提供的安全支持與用戶後來安裝的防護軟體之間差別。固件這個術語涵蓋了當前系統中的各個方面,所以為了達到研究目的,我僅僅關注了對EFI固件的安全支持。EFI是一個預引導(Pre-Boot)環境,簡而言之,它取代了自上世紀70年代中後期以來常見的BIOS環境。你可以點此詳細了解BIOS和EFI的各方面比對。

為什麼要特別關注EFI?

在當前的系統中,EFI環境對安全保護起著至關重要的作用。對於攻擊者來說,攻破EFI就意味著他們能夠獲得特權級2(privilege level ring -2)的許可權級別。在保護模式下提供4級特權級PL(Privilege Level),呈現環形保護(ring-protection)結構。最內的環具有PL=0的最高特權級,依內向外逐層PL值增加,特權級降低。最外的環PL=3,特權級最低。

簡而言之,對EFI層的攻擊意味著攻擊者可以獲得特權級2到特權級3的系統控制許可權,這樣你就能夠規避更高級別(PL=0,PL=1)上的安全風險,包括操作系統和應用程序的安全機制。

雖然對於用戶來說,EFI環境能夠規避更高級別的安全風險,但從攻擊者的角度來說,EFI還會使攻擊者變得非常隱秘和難以檢測,畢竟操作系統是不會告訴用戶關於EFI狀態情況的。除此之外,EFI環境也使攻擊者很難刪除或安裝一個新的操作系統,甚至連完全覆蓋硬碟也無法做到。從Vault 7泄露文檔可以發現,CIA對EFI boot/ rootkit已經開始了攻擊利用,比如名為「Sonic Screwdriver」的工具就是利用了多年前在安全會議上公開討論的漏洞,特工使用「Sonic Screwdriver」就能在Mac筆記本或台式機開機啟動的時候插入外部設備執行代碼,最終繞過用戶設置的密碼或某些安全功能。如果你有興趣閱讀更多關於EFI攻擊和以前發現的漏洞,請點此查看。

由於蘋果公司在從硬體、固件、操作系統再到應用軟體都是一個封閉的,所以我的研究主要集中在Mac生態系統,另外封閉的生態系統使得收集和分析相關數據也變

得相對簡單。不過,我相信我發現的問題,不僅僅是對蘋果,應該對所有的EFI固件廠商都有幫助。

分析方法的確定

我的分析是基於我以前所收集的數據,分析主要著重於以下6個方面:

1.我分析了Mac在過去三年里所發布的全部更新,以便對EFI更新進行一個有序的歸類,經過歸類,我發現大多數EFI更新包含在蘋果發布的操作系統和安全更新中,這樣我就可以構建一個Mac操作系統架構數據集以及EFI預期發布的版本。

2.然後我收集了各種操作系統版本,版本號,Mac版本以及EFI固件版本,以上這些數據都是從73000多個真實用戶的Mac系統收集到的,且這些用戶都處於多個行業,這樣我就能全面了解蘋果的EFI環境在實際工作中使用的情況。

3.一旦我收集到了足夠的數據,我就能對Mac的EFI環境中所提供的安全支持級別的相關問題進行全面研究。

4.通過對兩個數據集(1和2)之間的比較和觀察,我能發現的其中的一些差異,比如,可以看到Mac的EFI的預期狀態與實際使用系統中所觀察到的狀態之間的偏差。

5.對於那些已經被蘋果官方承認並發布了補丁的EFI漏洞來說,我會將Mac版本和提供EFI更新的操作系統版本關聯起來。

6.我還花時間逆向分析了蘋果公司的EFI固件更新工具的運行,選擇和應用。

雖然2015年以後,蘋果已經發布了大多數操作系統和安全更新中所包含的EFI更新,但利用差別分析(differential analysis)的方法卻可以讓蘋果隨時監測用戶需要進行的EFI固件更新,而且當用戶更新到最新版本的操作系統時,更新也將自動完成,且是在不干擾用戶運行的情況下運行的。

蘋果將EFI更新與操作系統和安全更新捆綁在一起的另一個好處是,為我提供了一個在Mac的特定版本、系統版本號與EFI版本更新之間的關聯,這些關聯都是以操作系統版本為基礎的。另外,這些關聯為我提供了一個有意思的提示,即某個特定的操作系統版本和Mac版本,對應一個固定的EFI版本。這樣,我就可以把此發現應用到現實環境中,看看目前系統運行的EFI是否是最新的版本。

分析成果

根據我的分析方法,我發現與如何支持操作系統和軟體的安全性相比,蘋果在如何為其EFI固件提供安全支持方面顯然不是太積極。這些表現的形式多種多樣,但卻截然不同。下面我將從以下5個角度分析:

1.按照我的分析方法,我認為實際運行中的某個Mac系統上運行的應該是某個EFI版本,但根據監測,實際情況和理想情況之間卻存在著驚人的差異。當管理員和用戶安裝最新操作系統或安全更新時,出於某種原因,EFI卻沒有更新。還有就是,按說這種情況下,系統應該提示用戶EFI固件應該進行升級,但實際卻是沒有任何通知。這意味著用戶和管理員常常忽視了對他們系統所應該的EFI版本進行升級。

2.為EFI固件提供的安全支持依賴於Mac的硬體版本,所以就會出現一些Mac已經收到了EFI更新,有些是在發現了特定的漏洞後才收到更新,有些則從未收到過EFI的更新。

3.為EFI固件提供的安全支持還取決於系統運行的操作系統的版本,在實踐中,我發現在Mac版本相同的情況下,一個運行OS X 10.11與一個運行OS 10.12的EFI更新竟然截然不同。這令我非常困惑,如果系統進行過全面的修補和更新,那為什麼只對軟體安全進行更新,為什麼對對應的EFI固件卻置之不理,如果是這樣的話,在固件很脆弱的情況下,軟體再安全又有什麼用呢?

4. 在我分析蘋果公司承認的主要的EFI漏洞時,發現有很多mac電腦儘管會不斷收到軟體安全更新,但並沒有更新到其應對應的EFI。通過分析,我發現,終端用戶很難確定這些更新通知是針對某個特定版本的mac系統還是針對所有的用戶,特別是在操作系統或安全更新中,以及某個特定版本EFI的安全更新時。

5.在分析中,我還發現了其他與EFI固件的相關的安全漏洞,比如,在2017年初發布的安全更新中,竟包含了2016年的一個過期的EFI固件更新,我想可能是工作人員疏忽了。還有就是在沒有收到更新的情況下, EFI竟被更新了。另外的一些問題都是EFI固件組件的質量問題。

EFI固件問題的影響

雖然以上這些聽上去都很有趣,但大多數用戶感興趣的是「這對我意味著什麼?」,下面我就從三個方面說說EFI固件問題對大多數Mac用戶的影響:

1.如果你正在運行的macOS /OS X版本比最新的主要版本(在撰寫本文時是10.12 Sierra版本)更高,那麼你的EFI固件可能還沒有到更新的時候,所以你沒有收到更新通知是很正常的。儘管從理論上講OS X 10.11(El Capitan)和10.10(Yosemite)應該收到蘋果的安全更新,但實際上EFI固件更新卻完全不存在,這意味著出現與EFI固件相關的漏洞是很正常的。

2.即使你正在運行最新版本的macOS並安裝了最新發布的補丁,但根據我的調查,你正在運行的EFI固件可能不是最新的版本。

3.如果你正在運行下面列出的16個Mac版本中的一個,那麼根據我的分析,你的系統是不會收到任何EFI固件更新通知的。

根據以上的分析, Mac的EFI固件簡直是漏洞百出,隨時可能被黑客攻擊。

緩解措施

我的基本建議如下:

1.檢查你的系統是否運行最新版本的EFI,作為此次演講的一部分,我提供了一些新的工具來幫助你進行檢測。你可以在這裡它們的信息。

2.如有可能,更新到最新版本的操作系統——10.12.6,這不僅會給你讓你的EFI固件升級到最新版本,而且還能確保你對已知的軟體安全問題進行修補。

3.如果你不能更新到10.12.6版本,或者因為你的硬體不支持10.12.6,或者你需要運行一個老版本來進行其它軟體的兼容,那我可以告訴你,你無法運行最新的EFI固件。

4.檢查你的Mac是否是在一個沒有收到EFI更新的硬體列表中運行。如果是,你可能不能運行最新的EFI固件。

5.如果你不能以某種原因運行最新的EFI固件,使用我提供的工具EFIgy,來了解你當前版本的EFI是否暴露於當前已知的EFI漏洞中。

在看完本文後,我建議你在使用你的mac前,先對你的EFI固件風險進行一下檢測。

如果你的Mac屬於上述不能更新的情況,那麼我建議你提前考慮一下EFI漏洞所造成的風險,如果你要問我是否有解決辦法,我可以告訴目前我還找不到應對之策。

雖然沒有徹底的解決之道,但我還是有一些笨辦法來緩解可能出現的EFI漏洞所造成的風險,比如將你的工作轉移到EFI攻擊無法進行的mac上,如果你是公司的安全管理員且你的公司的工作都是依賴mac的,我建議趕緊備份一份數據。根據目前的分析,

對EFI的攻擊已經成為攻擊者常用的手段之一了,不過他們的目標是特定的高價值目標。對EFI的攻擊經常會在國家之間的攻擊和工業攻擊中見到。如果你是一個擁個人用戶,我認為你成為攻擊目標的可能性很小。

就我所知,目前還沒有任何EFI漏洞被開發成工具包、惡意軟體或勒索軟體。但這並不是說未來可能不會發生,隨著技術的不斷成熟和黑色產業鏈的發展, EFI攻擊遲早會出現。試想,有哪個黑客不愛用高水平的隱身和持久性攻擊工具呢?

結論

這篇文章只是大概的介紹了一些我對EFI固件的研究。如果你想了解更多細節,請下載我的研究論文《來自蘋果EFI安全的實證研究》。除此之外,我還將在今年的Ekoparty會議上展示我的發現。

總的來說,我的研究意圖是強調在你的技術環境中確保系統所有組件的安全,比如預啟動固件、操作系統和應用程序軟體。通過收集的數據,我得出了一些令人驚訝的結論,即與軟體安全相比,固件安全著實太差。

目前還見不到蘋果對EFI固件安全所做的應該有的努力,希望我的研究可以讓蘋果公司在未來加強EFI的安全性,以避免大規模的EFI威脅事件發生。


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

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


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

Powershell 安全最佳實踐
域滲透——利用DCOM在遠程系統執行程序
內存取證分析的實戰演練
黑客開發虛假WordPress安全插件植入後門感染用戶
研究顯示:數百萬蘋果Mac設備仍受EFI固件漏洞影響

TAG:嘶吼RoarTalk |