Kerne (kernel)
Også kendt som: kernel
Kernen i styresystemet, som har fuld kontrol over maskinen og bestemmer, hvad hvert program må.
Kladde - dette opslag er endnu ikke gennemgået.
Formelt
Den del af styresystemet, der kører med fulde rettigheder over maskinen. Almindelige programmer kan ikke røre udstyr, hukommelse eller hinandens data direkte; de må bede kernen, som kontrollerer og udfører hver anmodning.
Forklaret enkelt
Som personalet ved bankboksen - kunderne går aldrig selv ind i boksen; de afleverer en seddel ved skranken, og personalet afgør, om de vil hente det ønskede.
I praksis
Efter at SAMSIK har advaret om en sårbarhed i Linux-kernen, patcher den IT-driftsansvarlige på et vandværk styringsserverne og genstarter dem, fordi den nye kerne først tager over efter en genstart.
Hvorfor det betyder noget
Fordi kernen kan alt, kontrollerer en angriber, der overtager den, hele maskinen og kan skjule sig for alle andre forsvar på den.
Teknisk uddybning
Kernens autoritet kommer fra CPU'ens privilegieniveauer. På x86 kører den i ring 0 (supervisor mode) og brugerprogrammer i ring 3; på ARMv8 svarer det til EL1 og EL0 med hypervisorer på EL2. Kun privilegeret kode må ændre sidetabeller, maskere interrupts, tilgå I/O-porte eller omkonfigurere CPU'en, så brugerrummet må krydse grænsen via et kontrolleret indgangspunkt: på x86-64 springer instruktionen syscall til en adresse, kernen har lagt i det modelspecifikke register LSTAR; kernen validerer argumenterne, kopierer data over med særlige hjælpefunktioner (copy_from_user i Linux), udfører arbejdet og vender tilbage. Interrupts og undtagelser som sidefejl går ind i kernen på samme måde. Hvert systemkald er derfor en tillidsgrænse, og de fleste kernesårbarheder er hukommelsesfejl i kode, der fortolker data fra brugerrummet eller fra enheder.
Arkitekturerne adskiller sig ved, hvor meget der kører i det privilegerede rum. Linux er monolitisk: scheduler, hukommelsesstyring, filsystemer, netværksstak og drivere kører alle i ring 0 i ét adresserum og kan udvides under kørsel med indlæselige moduler. Mikrokerner som seL4 eller QNX holder kun adresserum, tråde og kommunikation mellem processer i kernen og skubber drivere og filsystemer ud i servere i brugerrummet, hvilket bytter ydeevne for isolation; seL4 er kendt for et maskinelt kontrolleret bevis for funktionel korrekthed. Windows NT og Apples XNU beskrives normalt som hybrider, men kører i praksis de fleste drivere i kernetilstand.
Det er den største sikkerhedssvaghed: enhver driver i kernetilstand har fuld magt. Angribere udnytter det med bring-your-own-vulnerable-driver (indlæsning af en legitimt signeret, men fejlbehæftet driver for at få ring 0-adgang og slå EDR ned), og forsvarerne så bagsiden i hændelser som CrowdStrike Falcon-opdateringen den 19. juli 2024, hvor en fejlbehæftet indholdsfil, der blev behandlet af en kernedriver, fik ca. 8,5 millioner Windows-maskiner til at gå ned. Modtræk omfatter obligatorisk driversignering og Microsofts blokeringsliste over sårbare drivere, virtualiseringsbaseret sikkerhed (HVCI, "hukommelsesintegritet"), KASLR, SMEP og SMAP (der forhindrer kernen i uventet at udføre eller tilgå brugersider), isolation af kernens sidetabeller indført efter Meltdown i 2018 og i Linux eBPF som en verificeret sandkasse i kernen, så overvågningsværktøjer ikke behøver egne moduler. Rust er nu accepteret til nye drivere i Linux-kernen.
Driftsmæssigt kræver en kerneopdatering normalt genstart, fordi det kørende image ikke bare kan udskiftes; live patching (kpatch, Livepatch, Windows hotpatch på understøttede udgaver) lægger begrænsede rettelser på funktionsniveau ind i hukommelsen. Siden februar 2024 har Linux-kerneprojektet været sin egen CVE Numbering Authority og tildeler CVE'er til de fleste fejlrettelser, hvilket har mangedoblet antallet af kerne-CVE'er og gør antallet af CVE'er til et dårligt mål for risiko i distributioner og appliances. Kernen må ikke forveksles med hele styresystemet: shells, systembiblioteker, init-systemet og tjenester i brugerrummet ligger uden for den, og en GNU/Linux-distribution eller en Windows-udgave samler en kerne med alt dette.
Relationer
- Del af
- Styresystem
Kilder og videre læsning
Lærebøger
- Operating Systems: Three Easy Pieces · Arpaci-Dusseau
- Modern Operating Systems · Tanenbaum & Bos (Pearson)
Hvor dataene kommer fra
Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.
Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON
Nævnt i
Test dig selv
Indlæser…