macOS Kernel Extensions
Basiese Inligting
Kernel-uitbreidings (Kexts) is pakkette met 'n .kext
-uitbreiding wat direk in die macOS-kernelruimte gelaai word, wat addisionele funksionaliteit aan die hoofbedryfstelsel bied.
Vereistes
Dit is vanselfsprekend so kragtig dat dit ingewikkeld is om 'n kernel-uitbreiding te laai. Dit is die vereistes wat 'n kernel-uitbreiding moet nakom om gelaai te word:
Wanneer jy herstelmodus betree, moet kernel-uitbreidings toegelaat word om gelaai te word:
Die kernel-uitbreiding moet onderteken wees met 'n kernel-kodesertifikaat, wat slegs deur Apple toegeken kan word. Wie sal in detail die maatskappy en die redes waarom dit benodig word, ondersoek.
Die kernel-uitbreiding moet ook genoteer wees, Apple sal dit vir malware kan nagaan.
Dan is die root-gebruiker die een wat die kernel-uitbreiding kan laai en die lêers binne die pakkie moet aan root behoort.
Tydens die oplaai-proses moet die pakkie voorberei word in 'n beskermde nie-root-plek:
/Library/StagedExtensions
(vereis diecom.apple.rootless.storage.KernelExtensionManagement
toekenning).Laastens, wanneer daar gepoog word om dit te laai, sal die gebruiker 'n bevestigingsversoek ontvang en, indien aanvaar, moet die rekenaar herlaai word om dit te laai.
Laaiproses
In Catalina was dit so: Dit is interessant om op te let dat die verifikasieproses in gebruikersruimte plaasvind. Tog kan slegs aansoeke met die com.apple.private.security.kext-management
toekenning die kernel vra om 'n uitbreiding te laai: kextcache
, kextload
, kextutil
, kextd
, syspolicyd
kextutil
kliek begin die verifikasieproses vir die laai van 'n uitbreiding
Dit sal met
kextd
praat deur 'n Mach-diens te stuur.
kextd
sal verskeie dinge nagaan, soos die handtekening
Dit sal met
syspolicyd
praat om te kontroleer of die uitbreiding gelaai kan word.
syspolicyd
sal die gebruiker vra as die uitbreiding nie voorheen gelaai is nie.
syspolicyd
sal die resultaat aankextd
rapporteer
kextd
sal uiteindelik die kernel kan sê om die uitbreiding te laai
As kextd
nie beskikbaar is nie, kan kextutil
dieselfde kontroles uitvoer.
Verwysings
Last updated