macOS 中的系統延伸功能

安裝 macOS 10.15 或以上版本的 Mac 讓開發者可以安裝和管理會在使用者空間而非核心層級中執行的系統延伸功能來延伸 macOS 的功能。藉由在使用者空間中執行,系統延伸功能得以增加 macOS 的穩定性和安全性。雖然 KEXT 本身具備取用整個作業系統的完整權限,在使用者空間中執行的延伸功能只會獲得執行其指定功能的必要權限。

系統延伸功能支援使用裝置管理服務進行完整管理,包括允許來自特定開發者或特定類型(如網路延伸功能)的所有延伸功能無需使用者互動即可載入的能力。裝置管理服務可以選擇不允許使用者批准載入他們自己的系統延伸功能。

針對安裝 macOS 12.0.1 或以上版本的 Mac,「系統延伸功能」承載資料中有個稱為 RemovableSystemExtension 的辭典可讓裝置管理服務管理員指定哪些 App 該可移除其自身的系統延伸功能。不需要管理員認證來移除系統延伸功能。這對於可能為其 App 提供自動解除安裝程式的製造商特別有用。

針對安裝 macOS 11.3macOS 11.6.4 的 Mac,對系統延伸功能描述檔的更動會直接影響延伸功能的狀態。例如,如果延伸功能正在等待核准,並且推播了允許延伸功能的設定描述檔,則允許載入延伸功能。反之,如果核准被撤銷,系統延伸功能將被卸載並標示為在 Mac 下次重新啟動時移除。如果系統延伸功能嘗試自行卸載,則會出現一個互動式身份認證對話框,需要管理員憑據來授權卸載。

核心延伸功能

針對安裝 macOS 11 或以上版本的 Mac,若第三方核心延伸功能(KEXT)已啟用,便無法按要求載入核心。第三方核心延伸功能需要使用者的核准並重新啟動 macOS 來將變更載入核心,而且也需在配備 Apple 晶片的 Mac 上將安全開機設為「較低安全性」。

開發者可使用如 DriverKit 和 NetworkExtension 的架構來寫入 USB 和人性化介面驅動程式、端點安全性工具(如避免資料遺失或其他端點代理程式)以及 VPN 和網路工具,完全無須寫入 KEXT。第三方安全性代理程式應僅在充分運用這些 APIs 或是具備完善過渡與脫離核心延伸功能的規劃時使用。

【重要事項】macOS 不再建議使用 KEXT。KEXT 會讓作業系統遭受完整性和可靠性的風險。使用者應該更喜歡不需要擴展核心並使用系統延伸功能的解決方案。

在安裝 macOS 11 或以上版本的 Intel 架構式或 Apple 晶片 Mac 上加入 KEXT

若你需要使用核心延伸功能,請根據註冊方式檢視核准方式。

註冊方式

核准方式

未註冊

使用者註冊

在已安裝新的 KEXT 且嘗試進行載入時,使用者需要從以下系統中的警告對話框進行重新啟動:

  • macOS 13 或以上版本:「蘋果」選單 >「系統設定」>「隱私權與安全性」。

  • macOS 12.0.1 或較早版本:「蘋果」選單 >「系統偏好設定」>「安全性與隱私權」。

此重新啟動會在核心開機前進行 AuxKC 的重建。

裝置註冊

自動裝置註冊

每當已安裝新的 KEXT 且嘗試進行載入時,必須由下列其中一方進行重新啟動:

  • 本機管理員帳號,來自「系統設定」(macOS 13 或以上版本)的「隱私權與安全性」或「系統偏好設定」(macOS 12.0.1 或較早版本)的「安全性與隱私權」面板中的警告。裝置管理服務也可對標準使用者允許此操作。

  • 裝置管理服務自身,搭配已加上旗標的 RebuildCache 使用 RestartDevice 指令。AuxKC 會在下次 Mac 重新啟動時進行重建。已由 macOS 找到的 KEXT(例如,由其軟體載入和封鎖的 KEXT)會包含在內,而裝置管理服務可使用 KextPaths 密鑰提供尚未嘗試載入的 KEXT。

【注意】裝置管理服務首先需要安裝指定 KEXT 的 KEXT 允許列表描述檔。安裝 macOS 11.3 或以上版本的 Mac 可選擇讓服務通知使用者在其方便時完成重新啟動。

在配備 Apple 晶片的 Mac 上加入 KEXT 的其他步驟

若你要在配備 Apple 晶片的 Mac 上加入核心延伸功能,需要採取其他步驟。

註冊方式

核准方式

未註冊

由使用者執行的 KEXT 管理需要重新開機進入 recoveryOS 來降級安全性設定。使用者需要按住電源按鈕來重新開機進入 recoveryOS 並以管理員身分進行認證。只有在按下電源按鈕進入 recoveryOS 時「安全隔離區」才會接受規則的更改。使用者需要接著選取註記框「較低安全性」和選項「允許使用者管理來自已識別開發者的核心延伸功能」並重新啟動 Mac。

使用者註冊

使用者需要重新開機進入 recoveryOS 來降級安全性設定。使用者需要按住電源按鈕來重新開機進入 recoveryOS 並以本機管理員身分進行認證。只有在按下電源按鈕進入 recoveryOS 時「安全隔離區」才會接受規則的更改。使用者需要接著選取「較低安全性」,勾選「允許使用者管理來自已識別開發者的核心延伸功能」,並重新啟動 Mac。

裝置註冊

裝置管理服務需要通知使用者重新開機進入 recoveryOS 來降級安全性設定。使用者需要按住電源按鈕來重新開機進入 recoveryOS 並以管理員身分進行認證。只有在按下電源按鈕時「安全隔離區」才會接受規則的更改。使用者需要接著選取「較低安全性」,選取「允許遠端管理核心研功能和自動軟體更新」,並重新啟動 Mac。

若要瞭解你的裝置是否支援此功能,請參閱開發者的裝置管理服務文件。

自動裝置註冊

(Mac 的序號需要在「Apple 校務管理」或「Apple 商務」中顯示,而且 Mac 需要註冊連結到「Apple 校務管理」或「Apple 商務」的裝置管理服務。)

裝置管理服務可以自動管理此方式。

若要瞭解你的裝置是否支援此功能,請參閱開發者的裝置管理服務文件。

搭配「系統完整保護」的核心延伸功能

  • 若已啟用「系統完整保護」(SIP),每個 KEXT 的簽章在納入 AuxKC 之前會經過驗證。

  • 若已關閉 SIP,便不會強制執行 KEXT 簽章。

此方式允許未參與 Apple Developer Program 的開發者或使用者的「寬鬆安全性」流程在簽署 KEXT 前測試 KEXT。

發佈日期:2021 年 10 月 27 日
Morty Proxy This is a proxified and sanitized view of the page, visit original site.
有幫助?
字元限制: 250
最大字元限制為 250。
感謝您的寶貴意見。
Morty Proxy This is a proxified and sanitized view of the page, visit original site.