Hlavní navigace

MINIX je zřejmě nejrozšířenějším systémem, je ukrytý v procesorech Intel

David Ježek

Nejnovější zjištění o Intel Management Engine, maličkém počítači uvnitř (téměř) každého CPU Intel, vysvětlují velký zájem inženýrů firmy o MINIX v době před několika lety. MINIX běží ve všech nových procesorech.

Dlouhá léta se pozvolna přicházelo na to, co vše Intel Management Engine umí, jaké jsou jeho možnosti použití, či naopak možnosti omezení jeho činnosti. Intel s prakticky každou další generací CPU svůj Management Engine zase o něco obohatil či vylepšil (otázkou je, zdali bychom tato slova neměli psát v uvozovkách, zdali by jim lépe neslušela naznačená ironie), takže to vždy připomínalo snahu chytit kličkujícího zajíce. Z posledních perliček lze připomenout zahrnutí podpory zvuku v prvních 14nm CPU Broadwell v souvislosti s hlasovým ovládáním.

Poslední roky a zejména poslední měsíce ale přinesly řadu důležitých odhalení a upřesnění v tom, co si Intel záměrně drží co nejvíc pod pokličkou. Tento článek není definitivní odpovědí na to, zdali je ME největším zlem IT světa, jen shrnuje nejnovější poznatky. Závěr si udělejte sami na základě míry své paranoii.

V rychlosti připomeňme, že Intel Management Engine je „záležitost“ běžící na počítačích s CPU Intel, tedy víceméně na téměř každém počítači nesoucím procesor/platformu od tohoto výrobce. Běží na úrovni Ring –3, je tedy zakután hluboko pod úrovní operačního systému a je velmi obtížné či přímo nemožné se jej zbavit (v závislosti na generaci CPU/platformy). A technicky vzato může ME dělat v počítači spoustu věcí bez vědomí uživatele, bez vědomí operačního systému (nezávisle na tom, zdali jde o Windows, Linux či něco jiného).

Intel Management Engine je samostatný koprocesor, který sídlí v „čipsetu“ daného počítače. Je součástí Intel světa od generace Core 2 Duo, kdy se objevil(a) v nejvyšším čipsetu 975X (resp. jeho severním můstku). Od roku 2015 je ME součástí všech čipsetů Intel, tedy všech počítačů s CPU+čipsetem Intel.

Aktuální 11. generace používá 32bitové procesorové jádro Intel Quark x86 (dříve to byla jádra typu ARC), na němž běží operační systém MINIX 3. Data jsou ukládána na oddíl typu SPI flash za použití EFFS (Embedded Flash File System). ME má svoji IP a MAC adresu a přímý přístup k rozhraní Ethernet – na toto rozhraní je odkláněna část přenosové kapacity ještě předtím, než je Ethernet dán k dispozici hostovanému OS (Windows, Linux, …). S počítačem, na kterém běží, si ME povídá skrze PCI rozhraní (na Linuxu používá rozhraní  /dev/mei).

MINIX uvnitř Intelu

Projekt lehkého operačního systému Andrew Tanenbauma vznikal jako výukový systém. Nejnověji tedy víme, že je to právě upravený MINIX 3, který běží jako OS v rámci Intel Management Engine. To mu jistě dává větší možnosti ve srovnání s dřívější představou o ME na bázi nějakého osekaného, omezeného systému.

Principiální problémy s Intel ME na bázi MINIXu jsou samozřejmě stejné jako se starší představou o Intel ME: jde o uzavřenou vrstvu mající absolutní přístup k čemukoli v počítači, přičemž její bezpečnost nemůže vylepšovat či jen kontrolovat komunita. Plně v dikci to má Intel, který jednoduše tvrdí, že právě ona uzavřenost ME je výhodou z hlediska bezpečnosti. Opak však často bývá pravdou. Druhý hlavní problém spočívá v tom, že nikdo (kromě určité skupiny lidí z Intelu, případně NSA a jiných agentur) neví, co ME vlastně umožňuje a jak je to dnes reálně používáno.

Otevřený dopis šéfovi Intelu

Brian Krzanich, CEO společnosti Intel, tak nyní dostal otevřený dopis od autora MINIXu. V něm mu Tanenbaum děkuje za použití MINIXu 3 v Intel ME 11, čímž činí MINIX patrně nejpoužívanějším operačním systémem na světě.

Přidává informaci o tom, že Intel se o MINIX 3 zajímal před několika lety, kdy Tanenbauma kontaktoval tým inženýrů Intelu v souvislosti s nějakým tajným projektem, přičemž mu bylo kladeno velké množství technických dotazů o MINIXu 3. Ty jim zodpověděl. Následně se také z Intelu dotazovali na řadu úprav MINIXu 3, například snížení paměťové náročnosti, přidání #ifdefs do částí kódu, aby bylo možné je označovat v konfiguračních souborech (Tanenbaum zmiňuje například podporou floating point operací). Tyto úpravy učinily MINIX ještě modulárnějším, než do té doby byl.

Vyvstala také otázka licenční. MINIX používá od roku 2000 licenci typu BSD, což je stěžejní věc. Andrew Tanenbaum doplňuje, že jiné společnosti v minulosti mu sdělovaly, že nenávidí licence GNU GPL, jelikož nechtějí investovat spoustu času, energie a peněz do modifikování cizího kódu, aby jej pak svým konkurentům dali zdarma k dispozici. Právě proto dostal MINIX licenci BSD. Z tohoto důvodu jej Intel mohl použít bez nutnosti vracet úpravy komunitě (podobně jako Sony používá FreeBSD v konzolích Playstation).

Každopádně spolupráce s Intel na několik let ustala, dál už se neozvali. Nové zjištění, že MINIX 3 je součástí Intel ME, tak bylo pro Andrewa Tanenbauma velkým překvapením. Dodává, že mu nejde o peníze, ale bývalo by bylo hezké, kdyby poté, co v Intelu projekt nasazení MINIXu v ME dokončili, mu o tom dali vědět, čistě ze zdvořilosti.

V dodatku po zveřejnění dopisu pak Andrew Tanenbaum doplňuje komentář k licenci. Reaguje na komentáře, které spekulují, že kdyby MINIX měl licenci GNU GPL, Intel by jej nepoužil, aby nemusel modifikace zveřejnit. Autor MINIXu dodává, že možná ano, možná ne. Podle něj nešlo Intelu ani tak o modifikace v oblasti procesů, spíše o architekturu maličkých modulárních mikrokernelů, což je silná stránka MINIXu.

Andrew Tanenbaum sám, jako mnoho jiných, nemá ME rád, neb to považuje za potenciální bezpečnostní díru a nebezpečný nápad v první řadě. Ale to je dle něj obchodní rozhodnutí Intelu, nesouvisející s tím, na jakém kódu ME běží. Společnost velikosti Intelu by si jistě dokázala sama napsat vlastní malý OS, kdyby to bylo nutné.

Nebezpečí pro cloudový svět

Celkem logicky každopádně jsou nová zjištění o Intel Management Engine, včetně MINIXu, obrovským problémem pro firmy, které provozují milióny Intel x86 systémů. Jakou má třeba Google garanci, že se skrze ME nehrabe v jeho serverech někdo zvenku? Nejspíš limitně se blížící nule. A to by možná ještě byl rád za NSA, neboť tohle je potenciální svatý grál třeba také pro severokorejský režim.

Google je hlavním nespokojencem, který se chce Management Enginu zbavit. V jeho rámci totiž běží věci jako celá síťová vrstva, podpora souborových systémů, mnoho ovladačů (včetně USB a LAN) a také webový server. Tak jako vždy ale platí, že všechna zvířata jsou si rovna, ale některá jsou si rovnější. NSA tak má možnost ME vypnout (podrobnosti), což se zcela jistě hodí u počítačů, které u možná největší národní bezpečnostní služby na světě běží.

Stejný problém má i AMD

Komu bytostně vadí Intel Management Engine, ten si přeběhnutím k AMD nepomůže. Platformy druhého a s Intelem jediného významného tvůrce výkonných x86 procesorů také nesou podobný „počítač v počítači“. Jmenuje se Secure Processor, jeho kód je uzavřen a AMD nemá v plánu jej otevřít. Pokud se něco nezměnilo, běží na 32bitovém jádru ARM Cortex-A5, běží na něm separátní kernel/OS a má přístup k nevolatilní paměti (SPI ROM) pro firmware a data.

Jako hlavní důvod jeho existence uvádí AMD poskytování funkcionality šifrování a správu šifrovacích klíčů. AMD sice Secure Processor (SP) neotevře, ale občas projde nezávislým bezpečnostním auditem. Součástí SP jsou ale i části od jiných firem, včetně binárních, otázkou tedy je, co v průběhu let různí bezpečnostní výzkumníci zjistí. Míra přehledu o možnostech AMD SP však není aktuálně ani zdaleka tak velká jako u Intel ME.

Bojíte se o své soukromí?

Každý má právo na své soukromí. I když můžeme předpokládat, že většina z nás není v centru zájmu žádné skupiny, která má k odposlechu pomocí ME/SP přístup, přesto by nás vůbec existence takového nástroje v našem počítači měla znepokojovat.

Ještě horší to pak může být s notebookem Kim Čong-una, Sajjida Alí Chameneí, Donalda Trumpa, případně lidí, které mají bezpečnostní agentury v hledáčku svých protiteroristických opatření. Jistě však lze říci, že nejen s ohledem na Management Engine má smysl přelepovat páskou kamerku a mikrofon na notebooku.

Management Engine, jeho možnosti a použití mají vedle technických aspektů i aspekty právní a morální. Je otázkou ústavy, resp. listiny základních práv a svobod dané země, jak se k tomu postaví, nicméně Management Engine lze vnímat i pouze jako další potenciální způsob získávání informací, vedle například mobilních telefonů či výslechu osob z okolí. Otázku morální si musí zodpovědět vedení společnosti Intel.

Našli jste v článku chybu?