Denne artikel forklarer fejlsikret tilstand, og hvordan funktionen udvides til at Linux, specifikt RHEL7. Artiklen vil også give indsigt i "pålidelig kernestart" i Linux og implikationer for brugernes pladsapplikationer.
Fejlsikret tilstand er beregnet til at forhindre, at rootkits installeres ved opstart i hukommelsen ved hjælp af mekanismer, hvor ROM-drev og MBR-drev indlæses i operativsystemet og overtager systemstyringen og forbliver skjult fra programmer til beskyttelse mod skadelig software. Dette problem har udviklet sig over tid til at spille en vigtig rolle i datatab/beskadigelse og tyveri. Malware kan trænge ind mellem BIOS og OS-indlæsningsprogrammet. Den kan også trænge ind mellem OS-indlæsningsprogrammet og OS.
UEFI er den nye standard for hardware-/softwaregrænseflader til moderne serverplatforme med et omfattende sæt brugergrænseflader, modulopbygning og standardgrænseflader til uafhængige hardwareleverandører, der kan udvikle enhedsdrivere i UEFI, som fungerer uden et ældre BIOS-miljø. UEFI-adoption på tværs af operativsystemer og platforme vokser stadig, og mange af de større klient- og serveroperativsystemversioner understøttes.
Under ledelse af Microsoft har UEFI-standardorganet identificeret en måde at forbyde, at malwares rootkits installeres under start ved hjælp af en mekanisme til indlæsning og eksekvering af binære filer, som er uændrede og kendt af platformen. Denne mekanisme kaldes fejlsikret tilstand, se Microsofts måde til fejlsikret tilstand for oplysninger fra Microsoft og oplysninger om lignende måder, som forskellige OS-leverandører har indarbejdet til at opnå fejlsikret tilstand.
Beskyttede UEFI-platforme indlæser kun binære softwarefiler gennem f.eks. ROM-drivere, indlæsningsprogrammer til start, OS-indlæsningsprogrammer, der er uændrede og betroet af platformen. UEFI-specifikation beskriver oplysninger om mekanismen til fejlsikret tilstand her.
UEFI-specifikation definerer den infrastruktur, der kræves til fejlsikret tilstand. Vi vil give en kort introduktion af den terminologi, der bruges i fejlsikret tilstand, som kan være nyttig for dem, der ønsker at forstå på et mere detaljeret plan.
Fejlsikret tilstand beskytter ikke systemet og dets data, mens det kører. Fejlsikret tilstand stopper ved start til operativsystemet, hvis en komponent ikke er godkendt i startprocessen, således at det forhindrer systemet i at køre skjult malware.
Disse nøgleord er grundlaget for fejlsikret tilstand. UEFI-specifikationen fortæller mere om disse nøgleord. Disse specifikationer fortæller i detaljer, hvordan du signerer de binære filer. Se især afsnit 28.
Godkendte variabler: UEFI er en tjeneste, der kaldes godkendte variabler, hvilket betyder, at det kun er et certificeret modul eller officielt kodemodul, der kan skrive, med andre ord at det kun et kodemodul med et nøglecertifikat, der kan skrive. Men enhver kan læse disse variabler.
Platformnøgle: Platformnøgle opretter et tillidsforhold mellem platformens ejer og den firmware, som er installeret i NVM af platformproducenten.
Key Exchange-nøgle: Key Exchange-nøgle (KEK) skaber tillid mellem operativsystemer og platformfirmwaren. KEK er installeret i platformen af de operativsystemer og/eller tredjepartskomponenter, der ønsker at kommunikere med platformfirmwaren.
Autoriseret database: Autoriseret database opbevarer de offentlige nøgler og certifikater i kodemodulet, som er autoriseret til at interagere med platformfirmwaren.
DBX: Sortlistet database. Ethvert kodemodul, der svarer til disse certifikater, har ikke tilladelse til at starte indlæsning.
Signatur: Signaturen genereres af den private nøgle og hash for den binære fil, der vil blive signeret.
Certifikat: Authenticode-certifikat, der indeholder en offentlig nøgle, som svarer til den private nøgle, der bruges til at signere billedet
UEFI-platformfirmwaren vil indlæse tredjepartsdrivere, ROM-drev og OS-indlæsningsprogrammer, der er signeret af nøglecentret, i dette tilfælde Microsoft. Alle hardwareleverandører kan skrive deres drivere i UEFI BIOS og få dem signeret af Microsoft til at køre på UEFI-platformen. OEM-producenter installerer den offentlige del af nøglen i platformsdatabasen, og UEFI-indlæsningsprogrammets protokoltjeneste validerer signaturen af den binære fil i forhold til den autoriserede database, inden den får lov til at køre på platformen. Denne kæde af godkendelse fortsætter fra UEFI til OS-indlæsningsprogrammet og OS.
I oversigten kan UEFI køre OS-indlæsningsprogrammer, der er signeret, og hvis en nøgle er til stede i databasen. Denne nøglemekanisme sikrer, at OS-indlæsningsprogrammet eller ROM-drevene må køre, hvis de er autoriserede og ikke er ændret af nogen part.
Figur 1: UEFI-platformfirmware