Microsoft 的安全研究團隊發現允許存取內核權限的 Apple macOS 漏洞

日前,Apple 已修復了 macOS 中的其中一個由 Microsoft 研究人員所發現的漏洞 Shrootless,該漏洞被允許繞過與系統安全性相關的檢查機制,以安裝可以任意操作裝置的惡意 rootkit。

所謂與系統安全性的檢查機制,也就是作業系統底層的 System Integrity Protection(SIP),SIP 會限制最高權限的使用者執行危險的操作。而 Microsoft 的研究人員在 SIP 中發現該漏洞可能逕自運行這樣的行為。該漏洞以編號 CVE-2021-30892 追蹤。

根據 Microsoft 研究團隊的文章中所述,Shrootless 存在於受簽署的封包中,並且在安裝後執行 post-install 的惡意腳本,也就是說,攻擊者可以建立一個檔案,這個檔案會在安裝的過程中對系統進行破壞,繞過了 SIP 的檢查與限制,攻擊者可以在內核中安裝惡意的驅動程式(rootkit)、覆寫系統檔案、甚至安裝其他無法檢測的惡意軟體。

微軟的 Security Vulnerability Research(MSVR)透過協調性弱點揭露指南(CVD,Coordinated Vulnerability Disclosure)向 Apple 回報此發現,而 Apple 也在上月 26 日推出 macOS Monterey 之際修復該漏洞。

Microsoft 表示,隨著混合型工作模式的盛行,此種工作模式的網路安全性越來越備受考驗,這無疑是增加了威脅從四面八方而來的可能性,不管你是使用何種操作系統、或裝置,包括以安全性著稱的 Apple 產品,只要侵略至系統核心,就有可能受到破壞。

SIP 是如何運作的?

根據 Apple 官方網站的敘述:

「系統完整保護」是 OS X El Capitan 和以上版本所內建的安全技術,其設計是為了協助遏止潛在的惡意軟體修改 Mac 上受保護的檔案和檔案夾。「系統完整保護」會限制 root 使用者帳號,並限制 root 使用者可以在 Mac 作業系統中受保護部分執行的動作。

SIP 透過 Apple 的沙箱機制來保護整個裝置,從底層限制 root 的權限。預設都是關閉的狀態,若要禁用 SIP,唯一正確且合法的方法是進入恢復模式,使用內建的 csrutil 指令來關閉、開啟或顯示狀態(如圖)。

剖析 Shrootless

Microsoft 的研究人員發現,Shrootless 擁有 com.apple.rootless.install.heritable 權限的 system_installd 子程式,透過這個子程式,就可以繞過 SIP 的安全檢查。而根據這個子程式,研究人員還發現幾個允許攻擊者繞過 SIP 的例子。比如說,安裝受簽署的 PKG 檔,它會調用 system_installd 子程式來繞過 SIP;反之若該 PKG 檔包含 post-install 的腳本,system_installd 子程式則是會調用預設的 Shell(在 macOS 上為 zsh)來執行。有趣的是,當 zsh 執行時,它會去找 /etc/zshenv 這個檔案,並自動執行該文件的指令(在離線模式下也是如此),而攻擊者正是可以透過這個方式建立一個惡意的 /etc/zshenv 檔案,等待 system_installd 子程式的調用,進而在設備上執行非法行為。

為此,研究團隊建立了一個概念驗證(PoC,Proof of concept),來驗證 Shrootless 的漏洞,透過三個步驟就可以覆寫內核所排除的清單。下載一個受簽署的、且包含 post-install 腳本的封包,接著植入一個惡意的 /etc/zshenv 檔案,來檢查他的來源,如果是 system_installd,則寫入受限制的位置並且調用安全的安裝程式來執行安裝。

Microsoft 研究團隊甚至也發現 zshenv 除了可以繞過 SIP 之外還可以提升權限,並將此攻擊方式作為一種持久性的機制。

你的下一步

TWDC 提供 macOS IT 人員相關學習課程,進一步了解 macOS 安全防護科技。或歡迎與我們諮詢  macOS 相關的終端防護軟體。

原文連結:https://threatpost.com/apple-macos-flaw-kernel-compromise/175927/