In dit artikel wordt uitgelegd hoe u veilig kunt opstarten en hoe het wordt uitgebreid tot Linux, met name RHEL7. Er wordt ook ingegaan op Linux 'trusted kernel boot' en de implicaties voor applicaties in de gebruikersruimte.
Beveiligd opstarten is ontworpen om te voorkomen dat rootkits die bij opstarten in het geheugen worden geïnstalleerd met behulp van mechanismen als optie-ROM en MBR's om geladen te worden in het besturingssysteem, de systeembesturing over te nemen en verborgen te blijven voor anti-malwareprogramma's. Dit probleem is in de loop der tijd toegenomen en speelt een belangrijke rol bij dataverlies/-beschadiging en -diefstal. Malware kan binnenkomen tussen het BIOS en het OS-laadprogramma in. Het kan ook binnenkomen tussen het OS-laadprogramma en het besturingssysteem in.
UEFI is de nieuwe standaard hardware/software-interface voor moderne serverplatforms met een rijke set van gebruikers-, modulaire en standaardinterfaces voor om onafhankelijke hardwareleveranciers in staat te stellen apparaatdrivers in UEFI te ontwikkelen die naadloos werken in een pre-boot-omgeving die flexibeler is dan een verouderde BIOS-omgeving. Het gebruik van UEFI met besturingssystemen en platforms blijft groeien, met ondersteuning van veel grote client- en serverversies van besturingssystemen.
Het UEFI normalisatie-instituut heeft onder leiding van Microsoft een manier vastgesteld om te voorkomen dat malware toolkits bij opstarten worden geïnstalleerd via het laden en uitvoeren van binaire bestanden die ongewijzigd en bekend zijn bij het platform. Dit mechanisme wordt Secure Booting genoemd - zie Microsoft Secure Boot voor de informatie van Microsoft en de verschillende manieren waarop verschillende leveranciers van besturingsystemen Secure Boot hebben geïmplementeerd.
Beveiligde UEFI platforms laden alleen software binaries, zoals optie-ROM-drivers, boot loaders, OS loaders, die niet worden gewijzigd en vertrouwd worden door het platform. In de UEFI-specificatie wordt het Secure Boot-mechanisme in detail beschreven.
De UEFI-specificatie bepaalt de infrastructuur die nodig is voor Secure Booting. We geven een korte introductie in de in Secure Boot gebruikte terminologie om geïnteresseerden meer inzicht te geven.
Secure Boot beschermt een werkend systeem en de data erop niet. Secure Boot stopt het opstarten in het besturingssysteem als een onderdeel niet wordt geverifieerd in het opstartproces, waardoor wordt voorkomen dat systemen verborgen malware uitvoeren.
Deze sleutelwoorden vormen de basis van Secure Boot. UEFI-specificatie geeft meer informatie over deze sleutelwoorden. In deze specificaties wordt gedetailleerd uitgelegd hoe de binaire bestanden moeten worden ondertekend. Zie met name hoofdstuk 28.
Geverifieerde variabelen: UEFI biedt een service genaamd geverifieerde variabelen, wat betekent dat alleen een gecertificeerde module of authentieke codemodule kan schrijven, d.w.z. alleen een codemodule die een sleutelcertificaat heeft, kan schrijven. Maar iedere partij kan deze variabelen lezen.
Platform Key (PK): Platform Key creëert een vertrouwensrelatie tussen de eigenaar van het platform en de firmware die is geïnstalleerd in het NVM door de platformfabrikant.
KEK: Key Exchange Key creëert een vertrouwensrelatie tussen het besturingssysteem en de platformfirmware. KEK's worden op het platform geïnstalleerd door het besturingssysteem en/of onderdelen van derden die met platformfirmware willen communiceren.
DB: Authorized Database met de openbare sleutels en certificaten van de codemodule die gemachtigd is om te communiceren met platformfirmware.
DBX: Database op de zwarte lijst. Elke codemodule die overeenkomt met deze certificaten, krijgt geen permissie om met laden te beginnen.
Handtekening: de handtekening wordt gegenereerd door de persoonlijke sleutel en hash van het binaire bestand dat wordt ondertekend.
Certificaat: Authenticode-certificaat met openbare sleutel die overeenkomt met de persoonlijke sleutel die wordt gebruikt om de installatiekopie te ondertekenen
UEFI-platformfirmware laadt de drivers, optie-ROM's en Os-loaders van de andere leveranciers die door de Certification Authority (CA) zijn ondertekend, in dit geval Microsoft. Elke hardwareleverancier kan zijn drivers in UEFI BIOS schrijven en deze door Microsoft laten ondertekenen om op UEFI platforms te worden uitgevoerd. OEM's installeren het openbare deel van de sleutel in de platform-DB en de UEFI Loader Protocol Service valideert de handtekening van het binaire bestand aan de hand van de geautoriseerde DB voordat dit op het platform mag worden uitgevoerd. Zo wordt een authenticatieketen gecreëerd van UEFI via OS-loader tot en met besturingssysteem.
Kortom, UEFI staat toe om OS-loaders uit te voeren die zijn ondertekend en waarvan de sleutel aanwezig is in de DB. Dit sleutelmechanisme zorgt dat de OS-loaders of optie-ROM's alleen kunnen worden uitgevoerd als ze zijn geautoriseerd en niet zijn gewijzigd door een partij.
Afbeelding 1: UEFI platformfirmware