Ifølge sikkerhedseksperter, Linux sårbarheder kunne helt afbødes eller ”formindsket” til ”mindre-end-kritiske” sværhedsgrad via et OS design, der er baseret på en verificeret mikrokernen.
For at bevise deres punkt, en gruppe af akademiske og offentligt støttede forskere gennemføre en omfattende undersøgelse på kritiske Linux-fejl. Deres resultater bevise, at der er næppe en fejl, der ikke kan afbødes til mindre end kritisk. Endvidere, undersøgelsen viser, at 40% af fejl kunne være fuldt udryddet, med hjælp fra en verificeret mikrokernen. Forskerne danner en gruppe fra Data61, den australske regerings Commonwealth videnskabelig og industriel forskning Organisation (CSIRO) og University of New South Wales i Sydney.
Undersøgelsen er ved at blive præsenteret i løbet APSys 2018 (ACM Asien-Pacific Workshop om systemer). Deres papir siger, at:
De sikkerhedsmæssige fordele ved at holde et systems Trusted Computing bund (TCB) lille har længe været accepteret som en floskel, som har brugen af interne grænser beskyttelsesforanstaltninger for at begrænse skader forårsaget af exploits. Anvendes til operativsystemet, dette taler for en lille mikrokernen som kernen i TCB, med OS tjenester adskilt i gensidigt beskyttede komponenter (servere) - i modsætning til ’monolitisk’ designs.
Under henvisning til en mikrokernen design gør de fleste komponenter er isoleret fra hinanden, kører med reduceret sikkerheds privilegier. Dette gør det vanskeligere for en sårbarhed at føre til kompromittering af hele systemet. Dette giver også finkornet kontrol over adgangsrettigheder i systemet, således at et mindst privilegium design, forskere påpege. Dette vil til gengæld giver finkornet kontrol over adgangsrettigheder i systemet, og gør det muligt for et sandt mindst privilegium design.
I et monolitisk OS, kompromis én (kernel-billede) tjeneste kompromiser hele systemet, derfor hele multi-million-SLOC kerne er i enhver programs TCB. I modsætning, i en mikrokernen system, TCB af en ansøgning bliver meget afhængig af systemtjenester det bruger.
Denne regel kan også gælde for Windows og MacOS, selvom papiret kun er fokuseret på Linux. Windows-kernen, for eksempel, bliver større, med en ny version siges at være 60 til 65 MSLOC, papiret siger.
Hvordan blev forskningen?
Forskerne analyserede hver kritisk sikkerhedshul i Linux-kernen, som er opført i CVE repository i 2017. Med denne analyse, forskerne ønskede at se, om en mikrokernen tilgang vil forbedre tilstanden af sikkerhed. Deres resultater viser, at 96% af kritiske Linux-bugs ville ophøre med at være kritisk hvis en mikrokernen-baseret design introduceres. Endvidere, 40% af disse fejl kan fjernes fuldstændigt med en verificeret mikrokernen, og 29% ville blive udryddet med en ubekræftet mikrokernen.
Et godt eksempel her er den CVE-2015-4001 brist, der beskrives som en buffer overflow i stellaris_enet_receive funktion i hw / net / stellaris_enet.c i QEMU, når Stellaris ethernet controlleren er konfigureret til at acceptere store pakker. Sårbarheden muligt for fjernangribere at forårsage et denial of service (QEMU nedbrud) via en stor pakke.
Tilsyneladende, denne sårbarhed elimineres fuldstændigt ved en mikrokernen:
Et eksempel på denne kategori er CVE-2015-4001, som beskriver et heltal signedness fejl i OZWPAN driveren. Denne driver er en USB host controller enhedsdriver, som ikke har en hardware enhed er forbundet med det, men i stedet bruges til at kommunikere med en trådløs perifer via Wi-Fi. Det hele tal signedness fejl kan føre til resultatet af en subtraktion bliver negativ, forårsager en memcpy operation at fortolke værdi som en hensigt at overføre store mængder af netværksbaserede leverede data i en bunke puffer. En hacker kan indsætte en nyttelast i en fabrikeret pakke til at udløse fejlen og injicere data. Siden Linux indlæser driveren i kernen, det kan forårsage denial of service ved at smadre kernen, eller kan muligvis udføre vilkårlig kode med kernel privilegier.
For fuld teknisk videregivelse, henvise til den fuldstændige papir.