macOS 中的系統和核心延伸功能
macOS 10.15 或以上版本讓開發者可以安裝和管理會在使用者空間而非核心層級中執行的系統延伸功能來延伸 macOS 的功能。藉由在使用者空間中執行,系統延伸功能得以增加 macOS 的穩定性和安全性。雖然 KEXT 本身具備取用整個作業系統的完整權限,在使用者空間中執行的延伸功能只會獲得執行其指定功能的必要權限。
系統延伸功能支援使用 MDM 進行完整管理,包括允許來自特定開發者或特定類型(如網路延伸功能)的所有延伸功能無需使用者互動即可載入的能力。或者,MDM 可以不允許使用者批准載入他們自己的系統延伸功能。
在 macOS 11.3 到 macOS 11.6.4 中,對系統延伸功能描述檔的更動會直接影響延伸功能的狀態。例如,如果延伸功能正在等待核准,並且推播了允許延伸功能的設定描述檔,則允許載入延伸功能。反之,如果核准被撤銷,系統延伸功能將被卸載並標示為在 Mac 下次重新啟動時移除。如果系統延伸功能嘗試自行卸載,則會出現一個互動式身份認證對話框,需要管理者憑據來授權卸載。
在 macOS 12.0.1 或以上版本中,「系統延伸功能」承載資料中有個稱為 RemovableSystemExtension
的辭典可讓 MDM 管理者指定哪些 App 該可移除其自身的系統延伸功能。不需要管理者認證來移除系統延伸功能。這對於可能為其 App 提供自動解除安裝程式的製造商特別有用。
核心延伸功能
自 macOS 11 或以上版本起,若第三方核心延伸功能(KEXT)已啟用,便無法按要求載入核心。第三方核心延伸功能需要使用者的核准並重新啟動 macOS 來將變更載入核心,而且也需在配備 Apple 晶片的 Mac 上將安全開機設為「較低安全性」。
開發者可使用如 DriverKit 和 NetworkExtension 的架構來寫入 USB 和人性化介面驅動程式、端點安全性工具(如避免資料遺失或其他端點代理程式)以及 VPN 和網路工具,完全無須寫入 KEXT。第三方安全性代理程式應僅在充分運用這些 APIs 或是具備完善過渡與脫離核心延伸功能的規劃時使用。
【重要事項】macOS 不再建議使用 KEXT。KEXT 會讓作業系統遭受完整性和可靠性的風險。使用者應該更喜歡不需要擴展核心並使用系統延伸功能的解決方案。
在安裝 macOS 11 或以上版本的 Intel 架構式或 Apple 晶片 Mac 上加入 KEXT
若你必須使用核心延伸功能,請根據註冊類型檢視核准方式。
MDM 註冊類型 | 核准方式 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
未註冊 使用者註冊 | 在已安裝新的 KEXT 且嘗試進行載入時,使用者必須從以下系統中的警告對話框進行重新啟動:
此重新啟動會在核心開機前進行 AuxKC 的重建。 | ||||||||||
裝置註冊 自動裝置註冊 | 每當已安裝新的 KEXT 且嘗試進行載入時,必須由下列其中一方進行重新啟動:
【注意】KEXT 允許列表描述檔必須先由指定 KEXT 的 MDM 解決方案安裝。macOS 11.3 或以上版本可允許 MDM 通知使用者在其方便時完成重新啟動。 |
在配備 Apple 晶片的 Mac 上加入 KEXT 的其他步驟
若你要在配備 Apple 晶片的 Mac 上加入核心延伸功能,必須採取其他步驟。
MDM 註冊類型 | 核准方式 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
未註冊 | 由使用者執行的 KEXT 管理需要重新開機進入 recoveryOS 來降級安全性設定。使用者必須按住電源按鈕來重新開機進入 recoveryOS 並以管理者身分進行認證。只有在按下電源按鈕進入 recoveryOS 時「安全隔離區」才會接受規則的更改。使用者必須接著選取註記框「較低安全性」和選項「允許使用者管理來自已識別開發者的核心延伸功能」並重新啟動 Mac。 | ||||||||||
使用者註冊 | 使用者必須重新開機進入 recoveryOS 來降級安全性設定。使用者必須按住電源按鈕來重新開機進入 recoveryOS 並以本機管理者身分進行認證。只有在按下電源按鈕進入 recoveryOS 時「安全隔離區」才會接受規則的更改。使用者必須接著選取「較低安全性」,勾選「允許使用者管理來自已識別開發者的核心延伸功能」,並重新啟動 Mac。 | ||||||||||
裝置註冊 | MDM 解決方案應會通知使用者必須重新開機進入 recoveryOS 來降級安全性設定。使用者必須按住電源按鈕來重新開機進入 recoveryOS 並以管理者身分進行認證。只有在按下電源按鈕進入 recoveryOS 時「安全隔離區」才會接受規則的更改。使用者必須接著選取「較低安全性」,勾選「允許遠端管理核心研功能和自動軟體更新」,並重新啟動 Mac。 若要瞭解你的裝置是否支援此功能,請參閱 MDM 廠商的文件。 | ||||||||||
自動裝置註冊 (Mac 序號必須在「Apple 校務管理」、「Apple 商務管理」或「Apple 商務必備」中顯示,而且 Mac 必須註冊以連結到該服務的 MDM 解決方案。) | MDM 解決方案可以自動管理此方式。 若要瞭解你的裝置是否支援此功能,請參閱 MDM 廠商的文件。 |
搭配「系統完整保護」的核心延伸功能
若已啟用「系統完整保護」(SIP),每個 KEXT 的簽章在納入 AuxKC 之前會經過驗證。
若已停用 SIP,便不會強制執行 KEXT 簽章。
此方式允許未參與 Apple Developer Program 的開發者或使用者的「寬鬆安全性」流程在簽署 KEXT 前測試 KEXT。