SIKKERHET

Det er ikke Windows, Linux eller MacOS som har den egentlige kontrollen over pc-en din

Hørt om Minix, det skjulte operativsystemet til mange Intel-baserte pc-er?

Den sentrale CPU-en i Intel-baserte pc-er er ikke den eneste CPU-en i systemet. En av de andre kjører en variant av operativsystemet Minix.
Den sentrale CPU-en i Intel-baserte pc-er er ikke den eneste CPU-en i systemet. En av de andre kjører en variant av operativsystemet Minix. Bilde: Intel, Wikipedia. Montasje: digi.no
Harald BrombachHarald BrombachNyhetsleder
9. nov. 2017 - 05:02

Dagens pc-prosessorer har mye funksjonalitet som brukerne som har liten eller ingen kontroll over. Ikke minst gjelder dette prosessorer og brikkesett rettet mot bedriftsmarkedet, som gjerne har ekstra støtte for fjernadministrasjon og -installasjon. 

Men dersom du lurer på hvorfor USB-musen din fungerer allerede før pc-en har lastet det vanlige operativsystemet, så vil du få en anelse nå. 

Det er nemlig slik at operativsystemet som du bruker, Windows, Linux eller MacOS eller hva du nå foretrekker, bare er et skall på toppen av en system som er mye mer komplekst enn de fleste er klar over. Og dette operativsystemet er bare ett av flere som kjøres samtidig på systemet, i alle fall dersom pc-en er basert på Intels vPro-teknologi, men potensielt også mange servere og forbrukerrettede pc-er.

Uten direkte tilgang til maskinvaren

Mens de vanlige operativsystemene tidligere hadde full kontroll over maskinvaren, er det ikke lenger slik. Ifølge programvareingeniøren Ron Minnich hos Google, er det minst 2,5 operativsystemkjerner som kjører mellom Windows og selve maskinvaren.

I stor grad er disse underliggende operativsystemene basert på proprietær kode. De er også det Minnich kaller for «exploit friendly», altså enkle å utnytte for ondsinnede. Med tanke på at disse systemene har betydelig større privilegier enn det ordinære operativsystemet, er ikke dette en heldig kombinasjon. 

Har du installert sikkerhetsoppdateringen ennå?

Et eksempel på hvor problematisk dette kan være, er sårbarheten som tidligere i år ble funnet i blant annet Intels Active Management Technology (AMT). AMT er et av disse underliggende systemene i Intels prosessor- og brikkesetteknologi som kjøres helt uavhengig av det ordinære operativsystemet. 

AMT kjører en webserver og sårbarheten gjorde det mulig å logge seg på webgrensesnittet med ethvert passord. Intel og pc-leverandører har utgitt sikkerhetsoppdateringer som fjerner denne sårbarheten, men hvor mange som faktisk har installert disse, er høyst uklart. Det har blitt anslått at sårbarheten berører en milliard enheter. I slike tilfeller er det ikke nok å installere oppdateringene som tilbys gjennom Windows Update. Hver av pc-administratorene må i verste fall finne og installere oppdateringene manuelt.

Men med en aldrende pc-park er det ikke sikkert at det lenger utgis fastvareoppdateringer til alle de berørte enhetene.

Mange flere privilegier

I utgangspunktet tilbyr x86-prosessorene fire privilegiumsnivåer, Ring 0 til 3. Vanlige brukere og applikasjonene de kjører, har tilgang til Ring 3. Dette nivået tilbyr færrest privilegier. Kjernen til operativsystemer som Linux og Windows kjøres derimot i Ring 0 og har derfor betydelig flere privilegier enn vanlige applikasjoner. Ring 1 og 2 brukes i noen tilfeller av enhetsdrivere.

Dette er nærmere beskrevet i dette blogginnlegget

Men ifølge Minnich finnes det ytterligere tre nivåer. Disse kalles i blant for Ring -1, -2 og -3. Som nevnt økes privilegiene jo lavere ringnummeret er, noe som forteller at det som kjøres i disse privilegiumsnivåene har flere privilegier enn kjernen til operativsystemet som brukeren ser noe til. 

Ring -1 er der hvor hypervisorer som kjøres rett på maskinvaren («bare metal»), uten noe vertsoperativsystem, oppholder seg.

Ifølge Minnich kontrollerer Ring -2 alle CPU-ressursene. Her kjøres blant annet UEFI-kjernen (Unified Extension Firmware Interface) og System Management Mode (SMM), en 16-bits 8086-modus som blant annet tar seg om systemets strømsparingsfunksjonalitet, feilhåndtering og mye annen funksjonalitet som er uavhengig av det overliggende operativsystemet. 

Ifølge Minnich kjøres SMM i 16-bits 8086-modus, uten noen som helst beskyttelse.

Alt dette er kjøres i pc-ens vanlige CPU.

De ulike privilegiumsnivåene i x86-baserte systemer fra Intel. <i>Bilde: Ronald Minnich</i>
De ulike privilegiumsnivåene i x86-baserte systemer fra Intel. Bilde: Ronald Minnich

Ring -3

Men dette gjelder ikke Ring -3. Denne kjøres på en eller flere uavhengige 8086-baserte CPU-er som finnes i brikkesettet. Disse har blant annet separat tilgang til nettverksgrensesnittet og dedikert DRAM-minne.

Her finner man blant annet kjøremiljøet Management Engine (ME), som ifølge Minnich er den som har vekket størst bekymring. Her kjøres operativsystemet Minix 3. 

Ifølge Minnich betyr dette at det er flere systemer i verden som kjører Minix enn som kjører Windows eller Linux sammenlagt. 

Minix

Hva er så Minix? Det er et Unix-lignendeoperativsystem som ble lagd av forskeren Andrew S. Tanenbaum i undervisningsøyemed. Den første versjonen kom i 1987. Trolig har mange norske informatikkstudenter vært borti det. Linus Torvalds skal ha vært inspirert av designprinsippene i Minix da han skapte Linux.

Med Minix 3, som opprinnelig kom i 2005, ble formålet med programvaren endret å tilby et svært pålitelig operativsystem, noe som i utgangspunktet er bra, siden det i praksis har full tilgang til alt som skjer på datamaskinen. 

I utgangspunktet er Minix 3 utgitt med en BSD-lisens. Så kildekoden til operativsystemet er i utgangspunktet åpen og tilgjengelig. Men BSD-lisensiert programvaren kan inkluderes i proprietær programvare. Hvilke endringer Intel har gjort med Minix 3 før det ble satt til å kontrollere ME, er ukjent, da kildekoden til dette ikke er åpen.

Også når pc-er er avslått

Det Minix 3-baserte systemet har full tilgang slik som nettverket, filsystemer og enhetsdrivere, blant annet til den nevnte USB-musen. Det har også tilgang til brukens passord og mye annet. Denne delen av systemet har for eksempel mulighet til å erstatte alt som er installert på maskinen, inkludert det vanlige operativsystemet, selv om pc-en egentlig er skrudd av.

Som stort sett all annen programvare, har det sine sikkerhetshull, og disse blir veldig sjelden tettet ute hos brukerne. Den nevnte webserveren i AMT kjøres på toppen av Minix 3, sammen med andre tjenester og serverprogramvare. 

Dersom hackere greier å plassere angrepskode i denne delen av systemet, vil den enkleste løsningen for brukerne kanskje være å bytte hovedkortet. Det hjelper ingenting å formatere de vanlige lagringsenhetene.

Bekymret for egne servere

Årsaken til at Google er spesielt interessert i dette, er at selskapet internt bruker servere med Intel-prosessorer, og selskapet er derfor bekymret over sikkerheten. 

Google ønsker derfor å fjerne hele Management Engine fra systemene, men dette er ikke bare enkelt. Systemene er helt avhengige av deler av funksjonaliteten som ME tilby. Så i stedet for å fjerne ME, må det erstattes av noe annet. 

Et alternativ man kan tenke seg, er å bruke AMD-baserte systemer i stedet. Men ifølge Minnich er de samme systemene like lukket der. Dette gjelder også de nye Ryzen-prosessorene, selv om AMD har vært mer åpne enn tidligere om andre deler av teknologien.

NERF

Minnich og hans kolleger mener derfor at løsningen må være å erstatte det meste av både UEFI og den Minix-baserte løsningen med en løsning kalt Non-Extensible Reduced Firmware (NERF), som er basert på Linux-kjernen. Google mener i det hele tatt at «extensible»-delen av UEFI (Unified Extension Firmware Interface) er skadelig, kombinert med muligheten disse komponentene har til å oppdatere å installere oppdateringer til seg selv.

Målet med NERF er å gjøre fastvaren mindre i stand til å gjøre skade, men foreløpig er det mye som gjenstår.

Minnich forteller mange flere detaljer om NERF i foredraget som er gjengitt i videoen lenger opp i saken. Lysbildene han viser fram, er tilgjengelige her.

Del
Kommentarer:
Du kan kommentere under fullt navn eller med kallenavn. Bruk BankID for automatisk oppretting av brukerkonto.