Glem Windows, Linux og MacOS en stund: Skjult styresystem kontrollerer din maskine

Har du hørt om Minix, det skjulte operativsystem i mange Intel-baserede pc’er?

Nutidens pc-processorer har megen funktionalitet, som brugerne kun har lidt eller ingen kontrol over. Dette gælder ikke mindst processorer og chipsæt rettet mod virksomheder, som ønsker ekstra understøttelse til fjernadministration og -installation.

Men hvis du undrer dig over, hvorfor din USB-mus fungerer allerede før, pc’en har loadet det sædvanlige operativsystem, så vil du få en anelse om det nu.

Det er nemlig sådan, at operativsystemet, som du bruger - Windows, Linux eller MacOS, eller hvad du nu foretrækker, bare er en skal oven på et system, som er meget mere komplekst, end de fleste er klar over.

Og dette operativsystem er bare et af flere, som køres samtidig på systemet, i al fald hvis pc’en er baseret på Intels vPro-teknologi, men potentielt også mange servere og pc’er rettet mod forbrugere.

Uden direkte adgang til hardwaren

Mens de sædvanlige operativsystemer tidligere havde fuld kontrol over hardwaren, er det ikke længere sådan. Ifølge softwareingeniøren Ron Minnich hos Google er der mindst 2,5 operativsystemkerner, som kører mellem Windows og selve hardwaren.

Disse underliggende operativsystemer er i høj grad baseret på proprietær kode. De er også det, Minnich kalder for ‘exploit friendly’, altså lette at udnytte for hackere. Med tanke på, at disse systemer har betydelig større privilegier end det ordinære operativsystem, er dette ikke en heldig kombination.

Har du installeret sikkerhedsopdateringen?

Et eksempel på, hvor problematisk dette kan være, er sårbarheden, som tidligere i år blev fundet i blandt andet Intels Active Management Technology (AMT). AMT er et af de underliggende systemer i Intels processorer- og chipsæt-teknologi, som køres helt uafhængigt af det ordinære operativsystem.

AMT kører en webserver, og sårbarheden gjorde det muligt at logge sig på webinterfacet med alle passwords. Intel og pc-leverandører har udgivet sikkerhedsopdateringer, som fjerner denne sårbarhed, men hvor mange der faktisk har installeret disse, er højst uklart. Det er blevet anslået, at sårbarheden berører en milliard enheder. I sådanne tilfælde er det ikke nok at installere opdateringer, som tilbydes gennem Windows Update. Hver af pc-administratorerne må i værste fald finde og installere opdateringerne manuelt.

Men med en aldrende pc-park er det ikke sikkert, at der stadig udgives firmwareopdateringer til alle de berørte enheder.

Mange flere privilegier

Som udgangspunkt tilbyder x86-processorerne fire privilegieniveauer, Ring 0 til 3. Normale brugere og applikationerne, de kører, har adgang til Ring 3. Dette niveau tilbyder færrest privilegier. Kernen i operativsystemer som Linux og Windows køres derimod i Ring 0 og har derfor betydelig flere privilegier end almindelige applikationer. Ring 1 og 2 bruges i nogle tilfælde af enhedsdrivere.

Dette er nærmere beskrevet i dette blogindlæg.

Men ifølge Minnich findes der yderligere tre niveauer. Disse kaldes nogle gange for Ring -1, -2 og -3. Som nævnt øges privilegierne, jo lavere ringnummeret er; noget som viser, at det, der køres på disse privilegieniveauer, har flere privilegier end kernen til operativsystemet, som brugeren kan se.

Ring -1 er der, hvor hypervisorer, som køres direkte på hardwaren (‘bare metal’), uden noget værtsoperativsystem, opholder sig.

Ifølge Minnich kontrollerer Ring -2 alle CPU-ressourcerne. Her køres blandt andet UEFI-kernen (Unified Extension Firmware Interface) og System Management Mode (SMM), en 16-bit 8086-modus, som blandt andet tager sig af systemets strømbesparelsesfunktionalitet, fejlhåndtering og megen anden funktionalitet, som er uafhængig af det overliggende operativsystem.

Ifølge Minnich køres SMM i 16-bit 8086-modus uden nogen som helst beskyttelse.

Alt dette køres i pc’ens sædvanlige CPU.

De forskellige privilegieniveauer i x86-baserede systemer fra Intel. (Illustration: Ronald Minnich)

Ring -3

Men dette gælder ikke Ring -3. Den køres på en eller flere uafhængige 8086-baserede CPU’er, som findes i chippen. Disse har blandt andet separat adgang til netværksinterfacet og dedikeret DRAM-hukommelse.

Her finder man blandt andet runtime-miljøet Management Engine (ME), som ifølge Minnich er den, som har vækket størst bekymring. Her køres operativsystemet Minix 3.

Ifølge Minnich betyder dette, at der er flere systemer i verden, som kører Minix, end som kører Windows eller Linux sammenlagt.

Minix

Men hvad er så Minix? Det er et Unix-lignende operativsystem, som kom frem i 1987. Og sandsynligvis har mange norske datalogistuderende haft fingrene nede i det. Linus Torvalds skulle efter sigende have været inspireret af designprincipperne i Minix, da han skabte Linux.

Med Minix 3, som oprindeligt kom i 2005, var formålet med softwaren at tilbyde et meget pålideligt operativsystem, hvilket er et godt udgangspunkt, da det i praksis har fuld adgang til alt, hvad der sker på pc’en.

Som udgangspunkt er Minix 3 udgivet med en BSD-licens. Så kildekoden til operativsystemet er som udgangspunkt åben og tilgængelig. Men software med BSD-licens kan inkluderes i proprietær software. Hvilke ændringer Intel har foretaget med Minix 3, før det blev sat til at styre ME, vides ikke, da kildekoden til dette ikke er open source.

Også når pc’en ikke er tændt

Det Minix 3-baserede system har fuld adgang til netværket, filsystemer og enhedsdrivere, blandt andet til den omtalte USB-mus. Det har også adgang til brugerens password og meget andet.

Denne del af systemet har for eksempel mulighed for at erstatte alt, der er installeret på pc’en, inklusive det almindelige operativsystem, selv om pc’en egentlig er slukket.

Som stort set al anden software har det sikkerhedshuller, og disse bliver kun meget sjældent lappet ude hos brugeren. Den nævnte webserver i AMT kører oven på Minix 3 sammen med andre tjenester og serversoftware.

Hvis hackerne formår at placere malware i denne del af systemet, vil den enkleste løsning for brugerne måske være at udskifte bundkortet. Det hjælper ikke at formatere de sædvanlige lagringsenheder.

Bekymret for egne servere

Årsagen til, at Google er særligt interesseret i dette, er, at selskabet internt bruger servere med Intel-processorer, og Google er derfor bekymret for sikkerheden.

Google ønsker derfor at fjerne hele Management Engine fra systemerne, men dette er ikke så enkelt at gøre.

Systemerne er helt afhængige af dele af funktionaliteten, som ME tilbyder. Så i stedet for at fjerne ME må det erstattes af noget andet.

Et alternativ, man kunne forestille sig, er at bruge AMD-baserede systemer i stedet. Men ifølge Minnich er de samme systemer lige lukkede på det punkt. Det gælder også for de nye Ryzen-processorer, selv om AMD har været mere åbne end tidligere om andre dele af teknologien.

NERF

Minnich og hans kolleger mener derfor, at løsningen må være at erstatte det meste af både UEFI og den Minix-baserede løsning med en løsning kaldet Non-Extensible Reduced Firmware (NERF), som er baseret på Linux-kernen. Google mener i det hele taget, at ‘extensible’-delen af UEFI (Unified Extension Firmware Interface) er skadelig kombineret med den mulighed, disse komponenter har for at opdatere og installere opdateringer til sig selv.

Målet med NERF er at forhindre, at hardwaren i samme grad kan gøre skade, men foreløbig er der meget arbejde, der venter.

Minnich fortæller mange flere detaljer om NERF i foredraget, som kan ses her:

Du kan se hans slides fra foredraget her.

Denne artikel blev først publiceret på digi.no.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (11)
Benjamin Bach

Er det ikke sådan, at Puri.sm har undgået dette i deres ellers Intel-baserede bærbare?

  1. We choose Intel CPUs that do not have vPro (nor AMT). Note that this does not mean that we are confined to using old/pre-2008 CPUs, however: we provide brand new, high-performance and feature-packed CPUs as part of our products, thanks to our sourcing, manufacturing and assembly operations. In practice, our CPUs and chipsets are just as cutting-edge as what you would find elsewhere (for example, we are shipping Skylake/6th gen Intel CPUs in 2017 and will be moving to Kaby Lake/7th gen within that same year).
  2. We do not use an Intel networking card (we use completely different network chipsets instead).
  3. We do not use the “corporate” version of the Intel Management Engine (Intel ME) binary.
  4. On coreboot-enabled Purism devices, we further neutralize the Intel ME binary (see our Intel ME explanation page for details and status reports), with the intention of reverse-engineering the remaining parts (which we have already begun). Please note: the coreboot port to all existing Purism devices, as well as the reverse engineering work, is work-in-progress as of Q2 2017; the results of this work can be applied retroactively to customers’ existing systems with a simple software update.

https://puri.sm/learn/avoiding-intel-amt/

Maciej Szeliga

...andre CPU løsninger end lige x86.
* ARM
* MIPS
* Power
* SPARC

Flere af dem giver langt bedre ydelse pr. watt end x86 (og også generel ydelse).

Google med sin størrelse kan bestille bundkort baseret på hvilken som helst arkitektur og Linux som er Googles favorit OS findes til samtlige...

Ole Kaas

Flere af dem giver langt bedre ydelse pr. watt end x86 (og også generel ydelse).

Alle meget fine cpu arkitekturer. Særligt sammenlignet med x86 arkitekturen og alle dens nedarvede fejltagelser, work arounds, bugs og påklistrede tilføjelser med fancy markedsføringsnavne.

Men... det vi i virkeligheden savner er en arkitektur, hvor sikkerhed er tænkt med helt fra starten og således forefindes i hardware-laget. Istedet har vi fået "metastaser" af hullet software i hardware-laget.

Michael Cederberg

Men... det vi i virkeligheden savner er en arkitektur, hvor sikkerhed er tænkt med helt fra starten og således forefindes i hardware-laget. Istedet har vi fået "metastaser" af hullet software i hardware-laget.

Det her problem har som sådan ikke noget med den basale CPU arkitektur. Det handler om at Intel har forsøgt at levere det som kunderne vil have: billigere computere, boot time support for mere kompleks hardware, remote management uden OS, hypervisor, etc.

Hvis en anden arkitektur havde vundet, så var vi nok endt nogenlunde samme sted.

Men det er bekymrende at vi er endt med computere der er blevet så komplekse at meget få er i stand til at overskue systemet. Det er tankevækkende at NSA vist har sagt nej tak til AMT i visse miljøer (High Assurance Platform) og fået Intel til at bygge en feature ind som kan disable AMT.

I praksis er vi derhenne hvor ingen – bortset måske fra amerikanerne – kan bygge en top-end computer som man kan stole på. Vi har AMT, vi har drivere der leveres som binære blobs, vi har NICs, harddiske etc. med embedded software, vi har netværksudstyr, listen fortsætter i det uendelige.

Det er med god grund at både russerne og kineserne har lavet deres egne CPU arkitekturer. Problemet for dem (og os) er at man reelt skal lave næsten alting selv. Dvs. også harddiske, video, wifi, etc.

Log ind eller Opret konto for at kommentere
Pressemeddelelser

Welcome to the Cloud Integration Enablement Day (Bring your own laptop)

On this track, we will give you the chance to become a "Cloud First" data integration specialist.
15. nov 10:31

Silicom i Søborg har fået stærk vind i sejlene…

Silicom Denmark arbejder med cutting-edge teknologier og er helt fremme hvad angår FPGA teknologien, som har eksisteret i over 20 år.
22. sep 2017

Conference: How AI and Machine Learning can accelerate your business growth

Can Artificial Intelligence (AI) and Machine Learning bring actual value to your business? Will it supercharge growth? How do other businesses leverage AI and Machine Learning?
13. sep 2017