macOS Kernel Extensions
Basiese Inligting
Kernel uitbreidings (Kexts) is pakkette met 'n .kext
uitbreiding wat direk in die macOS kernel ruimte gelaai word, wat addisionele funksionaliteit aan die hoofbedryfstelsel bied.
Vereistes
Dit is duidelik dat dit so kragtig is dat dit gekompliseerd is om 'n kernel uitbreiding te laai. Dit is die vereistes waaraan 'n kernel uitbreiding moet voldoen om gelaai te kan word:
Wanneer jy herstelmodus binnegaan, moet kernel uitbreidings toegelaat word om gelaai te word:
Die kernel uitbreiding moet onderteken wees met 'n kernel kode ondertekeningssertifikaat, wat slegs deur Apple toegestaan kan word. Wie die maatskappy en die redes waarom dit nodig is, in detail sal hersien.
Die kernel uitbreiding moet ook genotarieer 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 oplaadproses moet die pakkie in 'n beskermde nie-root ligging voorberei word:
/Library/StagedExtensions
(vereis diecom.apple.rootless.storage.KernelExtensionManagement
toestemming).Laastens, wanneer daar probeer word om dit te laai, sal die gebruiker 'n bevestigingsversoek ontvang en, indien aanvaar, moet die rekenaar herbegin word om dit te laai.
Laai proses
In Catalina was dit soos volg: Dit is interessant om op te let dat die verifikasie proses in gebruikersland plaasvind. Dit is egter slegs toepassings met die com.apple.private.security.kext-management
toestemming wat die kernel kan vra om 'n uitbreiding te laai: kextcache
, kextload
, kextutil
, kextd
, syspolicyd
kextutil
cli begin die verifikasie proses om 'n uitbreiding te laai
Dit sal met
kextd
praat deur 'n Mach diens te gebruik.
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 of die uitbreiding nie voorheen gelaai is nie.
syspolicyd
sal die resultaat aankextd
rapporteer
kextd
sal uiteindelik in staat wees om die kernel te vertel om die uitbreiding te laai
As kextd
nie beskikbaar is nie, kan kextutil
dieselfde kontroles uitvoer.
Verwysings
Last updated