Systemerweiterungen - Übersicht und Leitfaden

Was ist ein System Extension?

Systemerweiterungen sind der moderne Ersatz für Kernel-Erweiterungen (kexts) in macOS Catalina. Mit Systemerweiterungen stellt Apple neue Frameworks für Entwickler bereit, um Aufgaben auszuführen, die bisher kexts vorbehalten waren. Der wichtigste neue Vorteil von Systemerweiterungen besteht darin, dass sie im Benutzerbereich und nicht im Kernelbereich ausgeführt werden. Durch die Ausführung im Benutzerbereich können Systemerweiterungen die integrierte Sicherheit oder Stabilität von macOSnicht beeinträchtigen. Obwohl Kexts in macOS Catalina immer noch funktionieren, hat Apple die Verwendung bestimmter Arten von ihnen abgelehnt, und Entwickler sollten daran arbeiten, ihre Kexts in Systemerweiterungen zu verschieben, sobald gleichwertige Frameworks verfügbar werden.

Derzeit stehen drei neue Systemerweiterungs-Frameworks zur Verfügung, um kexts zu ersetzen:

  • DriverKit: Verwenden Sie das neue DriverKit-Framework, um Treiber für USB-, serielle, NIC- und HID-Geräte zu erstellen, die Benutzer in macOS Catalina oder höher installieren können. Erfahren Sie mehr über DriverKit.

  • Netzwerkerweiterungen: Netzwerkerweiterungs-Apps wie Inhaltsfilter, DNS-Proxys und VPN-Clients können jetzt als Systemerweiterungen an macOS Catalina oder höher verteilt werden. Erfahren Sie mehr über NetworkExtension.

  • Endpoint Security: Endpoint Security-Clients, einschließlich Antivirensoftware, können jetzt die neue EndpointSecurity-API nutzen, um Systemereignisse zu überwachen und sogar zu blockieren, um Sicherheitsrichtlinien besser einzuhalten und vor potenziellen bösartigen Aktivitäten in macOS Catalina oder höher zu schützen. Erfahren Sie mehr über Endpoint Security

Kexts, die außerhalb dieser neuen Frameworks betrieben werden – wie z. B. Virtualisierungssoftware – müssen weiterhin Kexts verwenden, bis Apple gleichwertige Systemerweiterungs-Frameworks anbietet.

Systemerweiterungen können auch über ein separates Konfigurationsprofil zugelassen werden.

Wenn Sie eine Anwendung verwenden, die noch eine Kernelerweiterung verwendet, empfehlen wir Ihnen, sich an Ihre Softwareanbieter zu wenden, um sie zu ermutigen, auf Systemerweiterungen umzusteigen.

Zusatzinformation:

Kernel Extensions Übersicht - Apple Developer Documentation Archive

System Extensions - Apple Entwickler

Was ist ein Kernel Extension?

Kernel-Erweiterungen, manchmal auch als kexts bezeichnet, ermöglichen es Entwicklern, Code dynamisch in den macOS Kernel zu laden. Sie bieten auch Zugriff auf interne Kernel-Schnittstellen, die es komplexen Apps ermöglichen, ordnungsgemäß zu funktionieren. Beispiele für solche Apps sind Virtualisierungsanwendungen und Hypervisoren wie Parallels oder VMware Fusion.

Der Unterschied zwischen Kernel Extensions und System Extensions

Wenn Sie sich nicht sicher sind, ob eine Software eine Systemerweiterung oder einen Kext verwendet, gibt es mehrere Möglichkeiten, dies herauszufinden:

  • Wenden Sie sich an den Softwarehersteller.

  • Führen Sie nach der Installation Ihrer Software den folgenden Befehl aus, um alle aktiven Systemerweiterungen aufzulisten. Wenn keine Systemerweiterungen aufgeführt sind, nutzt die Software wahrscheinlich einen Legacy-Kext.

systemextensionsctl list

Im Folgenden finden Sie ein Beispiel für die Ausgabe, die angezeigt werden kann, wenn keine Systemerweiterungen installiert sind.

KandjiSupport@TestMac1 ~ % systemextensionsctl list0 extension(s)

Im Folgenden finden Sie ein Beispiel für die Ausgabe, die angezeigt werden kann, wenn eine Systemerweiterung installiert ist.

KandjiSupport@TestMac1 ~ % systemextensionsctl list
1 extension(s)

--- com.apple.system_extension.endpoint_security

enabled active teamID bundleID (version) name [state]

* * 9PTGMPNXZ2 com.symantec.mes.systemextension 

 

[activated enabled]

Erstellen eines System Extension Profils

Führen Sie die folgenden Schritte aus, um ein Systemerweiterungsprofil in Kandji zu erstellen, das die Systemerweiterung(en ) einer Anwendung vorab genehmigt.

  1. Melden Sie sich bei Ihrem Kandji Mandanten an, und navigieren Sie im Navigationsbereich zum Abschnitt Library.

  2. Klicken Sie auf Neu hinzufügen.

  3. Klicken Sie auf System Extension.

  4. Klicken Sie auf Hinzufügen und konfigurieren.

  5. Geben Sie Ihrem neuen Profil einen aussagekräftigen Namen, z. B. System Extension Freibetrag.

  6. Wählen Sie die Blueprint, die Sie einbeziehen möchten, aus dem Dropdown-Menü Blueprint aus.

  7. Optional: Wenn Sie die Option "Benutzern erlauben, Systemerweiterungen genehmigen" deaktivieren, wird verhindert, dass alle Benutzer auf dem Mac – einschließlich lokaler Administratoren – zusätzliche Systemerweiterungen genehmigen, die nicht über ein Profil genehmigt wurden. Darüber hinaus werden durch Auswahl dieser Option alle Systemerweiterungen abgelehnt, die ein Benutzer zuvor genehmigt hat.

  8. Geben Sie die Team-ID ein. Dies ist die Kennung in der dritten Spalte der Terminalausgabe, die durch den oben beschriebenen Befehl systemextensionsctl list generiert wurde.

  9. Geben Sie optional einen Namen an, der der Team-ID zugeordnet werden soll.

  10. Im Abschnitt Systemerweiterungen können Sie optional den Standardwert von Alle Systemerweiterungen genehmigen ändern. Wenn Sie diese Option auf der Standardeinstellung belassen, werden alle System Extension von der angegebenen Team-ID vorab genehmigt. Optional können Sie diese Option auf eine der folgenden Optionen festlegen:

    • Bestimmte Systemerweiterungen zulassen: Ermöglicht es Ihnen, die genaue Bundle-ID der spezifischen Systemerweiterung anzugeben, die Sie genehmigen möchten. Verwenden Sie die Bundle-ID, die mit dem oben beschriebenen Befehl systemextensionsctl list generiert wurde. Sie können optional auch eine oder mehrere dieser spezifischen Erweiterungen so konfigurieren, dass sie automatisch von Administratortools entfernt werden können, z. B. Kandji oder ein vom Anbieter bereitgestelltes Paket.

    • Bestimmte Systemerweiterungstypen zulassen: Ermöglicht es Ihnen, Systemerweiterungstypen eines Entwicklers anzugeben, z. B. Endpunktsicherheitserweiterungen, Treibererweiterungen oder Netzwerkerweiterungen, die vorab genehmigt werden sollen. In unserem Symantec-Beispiel würden wir den Typ "Endpoint Security Extensions" genehmigen, da dieser mit dem Erweiterungstyp übereinstimmt, der mit dem oben beschriebenen Befehl systemextensionsctl list generiert wurde. Bei Bedarf können Sie die Schaltfläche Team-ID hinzufügen auswählen, um zusätzliche Systemerweiterungen in einem einzelnen Profil zuzulassen.

  11. Klicken Sie auf Speichern.