997
iPhone_iPad_Mac_手機_平板_蘋果apple
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威脅事件發生。
最後更新:2017-10-08 09:02:30
上一篇:
蘋果手機接地氣的四大功能,多數人沒用過
下一篇:
蘋果手機長腳 跑出7公裏 阿姨說“代為保管”
現在high sierra出來了,想獲取10.12.6怎麼辦呢
Apple Store 免費兌換:Plotagraph 幫你做出大片級的 GIF 動圖
itunes 未能連接到此iphone 發生未知錯誤(OxE8000015)
請聯係itunes store支持以完成此交易,怎麼解決。?
iTunes要求您的電腦運行Windows 7 Service Pack 1 或更高版本
win10 電腦用iCloud備份手機照片C盤被大量占用
iTunes12.7的版本中沒有App Store,如何下載應用並且更新到手機上?
我需要立即取消Apple music會員資格
Adobe CC 2018版本破解包,支持Win/Mac係統,親測有效
我Mac的itunes連接iphone不顯示應用,怎麼設置?
熱門內容
冬日裏的小確幸英式蘋果派 Delicious and Seasonal Apple Pie
為什麼你比從前更需要一份 AppleCare+?
Apple Watch遇時區問題 一問Siri今天天氣就重啟
美國吃定中國市場?不僅iPhone熱售,apple也想賣給中國
Apple Park訪客中心將於下周五向公眾開放
Apple Pay 的擴張之路繼續 中國也新增兩家
iPhone X有“烙印”屬正常現象?Apple 建議四大避免方法
曬單大賽#屏幕是最大驚喜—Apple 蘋果 iPhone X 手機 使用5天全感受
傳博通最快今天宣布收購高通計劃;Apple Watch 3被曝出故障:通過Siri詢問當天天氣會死機
海外有人問到 Apple Watch 天氣狀況時,突然就重啟了