
Systemudvidelser i macOS
En Mac med macOS 10.15 eller en nyere version giver udviklere mulighed for at udvide funktionerne i macOS ved at installere og administrere systemudvidelser, der afvikles i brugerområdet i stedet for på kerneniveau. Når systemudvidelserne afvikles i brugerområdet, øges macOS-computerens stabilitet og sikkerhed. Selvom fuld adgang til hele operativsystemet er indbygget i kext’er, får udvidelser, der afvikles i brugerområdet, kun de rettigheder, der er nødvendige for at de kan udføre deres angivne funktion.
Systemudvidelser understøtter robust administration vha. en tjeneste til enhedsadministration, herunder mulighed for at tillade, at alle udvidelser fra en bestemt udvikler eller af en bestemt type (f.eks. netværksudvidelser) indlæses uden brugerinteraktion. Hvis det ønskes, kan en tjeneste til enhedsadministration forhindre, at brugerne godkender indlæsning af deres egne systemudvidelser.
På en Mac med macOS 12.0.1 eller en nyere version omfatter dataene til systemudvidelser en ordbog, som kaldes RemovableSystemExtensions
. Den giver administratoren af en tjeneste til enhedsadministration mulighed for at angive, hvilke apps der kan fjerne deres egne systemudvidelser. Fjernelse af systemudvidelserne kræver ikke godkendelse fra en lokal administrator. Det er særligt nyttigt for leverandører, som leverer automatiserede funktioner til afinstallering af deres apps.
På en Mac med macOS 11.3 til macOS 11.6.4 påvirker ændringer af en systemudvidelsesprofil en udvidelsestilstand direkte. Hvis en udvidelse f.eks. afventer godkendelse, og der overføres en konfigurationsprofil, som tillader udvidelsen, bliver udvidelsen indlæst. Og hvis en godkendelse omvendt tilbagekaldes, bliver systemudvidelsen markeret til fjernelse ved næste genstart af Mac-computeren. Hvis en systemudvidelse forsøger at fjerne sig selv, vises en interaktiv dialog, som kræver en administrators godkendelsesoplysninger for at godkende fjernelsen.
Kerneudvidelser
Hvis kerneudvidelser (kext’er) fra tredjeparter er slået til på en Mac med macOS 11 eller en nyere version, kan de ikke indlæses i kernen på anmodning. De kræver brugerens godkendelse og genstart af macOS for at indlæse ændringerne i kernen. De kræver også, at sikker start er indstillet til Reduceret sikkerhed på en Mac med Apple Silicon.
Udviklere kan bruge frameworks som DriverKit og NetworkExtension til at skrive USB-drivere og drivere til brugergrænsefladen, værktøjer til slutpunktssikkerhed (f.eks. agenter, der kan forebygge datatab, og andre slutpunktsagenter) og VPN- og netværksværktøjer – alt sammen uden at skulle skrive kext’er. Sikkerhedsagenter fra tredjeparter bør kun bruges, hvis de udnytter disse API’er eller har faste planer for, hvordan de vil gå over til dem og væk fra kerneudvidelser.
Vigtigt: Kext’er anbefales ikke længere til macOS. Kexts bringer operativsystemets integritet og driftssikkerhed i fare. Brugerne bør foretrække løsninger, der ikke kræver udvidelse af kernen, og i stedet bruge systemudvidelser.
Tilføjelse af kext’er på en Intel-baseret Mac eller en Mac med Apple Silicon med macOS 11 eller en nyere version
Hvis du skal bruge kerneudvidelser, skal du gennemgå godkendelsesmetoderne baseret på tilmeldingsmetode.
Tilmeldingsmetode | Godkendelsesmetode | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Ikke tilmeldt Brugertilmelding | Når en ny kext installeres, og der gøres forsøg på at indlæse den, skal brugeren igangsætte en genstart fra advarslen i:
Genstarten igangsætter genopbyggelsen af AuxKC, inden kernen startes. | ||||||||||
Enhedstilmelding Automatisk enhedstilmelding | Hver gang en ny kext installeres, og der gøres forsøg på at indlæse den, skal en genstart igangsættes af:
Bemærk: Tjenesten til enhedsadministration skal først installere en profil med en liste over tilladte kext’er, der angiver kext’en. På en Mac med macOS 11.3 eller en nyere version kan tjenesten give brugerne besked om at gennemføre genstarten, når det passer dem. |
Yderligere trin til tilføjelse af kext’er på en Mac med Apple Silicon
Hvis du tilføjer kerneudvidelser på en Mac med Apple Silicon, kræver det yderligere trin.
Tilmeldingsmetode | Godkendelsesmetode | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Ikke tilmeldt | Brugeren skal genstarte i macOS-gendannelse for at nedgradere sikkerhedsindstillingerne, før kext’er kan administreres. Brugeren skal trykke på afbryderknappen og holde den nede for at genstarte i gendannelsessystemet og identificere sig som administrator. Secure Enclave accepterer kun en ændring af politikkerne, når der startes i gendannelsessystemet med et tryk på afbryderknappen. Brugeren skal derefter vælge afkrydsningsfeltet Reduceret sikkerhed og indstillingen “Tillad brugeradministration af kerneudvidelser fra kendte udviklere” og genstarte Mac-computeren. | ||||||||||
Brugertilmelding | Brugeren skal genstarte i gendannelsessystemet for at nedgradere sikkerhedsindstillingerne. Brugeren skal trykke på afbryderknappen og holde den nede for at genstarte i gendannelsessystemet og blive godkendt som en lokal administrator. Secure Enclave accepterer kun en ændring af politikkerne, når der startes i gendannelsessystemet med et tryk på afbryderknappen. Brugeren skal derefter vælge Reduceret sikkerhed, markere “Tillad brugeradministration af kerneudvidelser fra kendte udviklere” og genstarte Mac-computeren. | ||||||||||
Enhedstilmelding | Tjenesten til enhedsadministration skal give brugeren besked på at genstarte i gendannelsessystemet for at nedgradere sikkerhedsindstillingerne. Brugeren skal trykke på afbryderknappen og holde den nede for at genstarte i gendannelsessystemet og blive godkendt som en administrator. Secure Enclave accepterer kun en ændring af politikkerne, hvis afbryderknappen bliver holdt nede. Brugeren skal derefter vælge Reduceret sikkerhed, vælge “Tillad ekstern administration af kerneudvidelser og automatiske softwareopdateringer” og genstarte Mac-computeren. Du kan se, om denne funktion understøttes til dine enheder, i dokumentationen fra udvikleren af din tjeneste til enhedsadministration. | ||||||||||
Automatisk enhedstilmelding (Mac-computerens serienummer skal vises i Apple School Manager eller Apple Business Manager, og Mac-computeren skal tilmeldes en tjeneste til enhedsadministration, der er knyttet til Apple School Manager eller Apple Business Manager.) | Tjenester til enhedsadministration kan administrere dette automatisk. Du kan se, om denne funktion understøttes til dine enheder, i dokumentationen fra udvikleren af din tjeneste til enhedsadministration. |
Kerneudvidelser med beskyttelse af systemets integritet
Hvis beskyttelse af systemets integritet er slået til, kontrolleres signaturen på hver kext, før den inkluderes i AuxKC.
Hvis beskyttelse af systemets integritet er slået fra, håndhæves kext-signaturen ikke.
Denne fremgangsmåde giver udviklere eller kunder, som ikke deltager i Apple Developer Program, mulighed for at bruge forløb med Tolerant sikkerhed til at teste kext’er, før de signeres.