In passato abbiamo già parlato di MINIX, sistema operativo basato su una versione minimale di Unix e ideato dal professor Andrew S. Tanenbaum nel lontano 1987.
Scritto principalmente utilizzando il linguaggio C, MINIX è nato come sistema operativo al servizio della didattica in ambito accademico per rendere immediatamente verificabili da parte degli studenti gli esempi che Tanenbaum presentò nei suoi testi.
Il sistema operativo fu concepito per funzionare sulla piattaforma x86 (x86, le origini dell’architettura: perché è feudo di Intel e AMD): la maggior parte dei sistemi Unix usati negli anni ’80 non funzionavano sulle CPU dei PC.
MINIX può essere considerato un po’ come di padre di Linux perché soltanto nel 1991 Linus Torvalds sembra essersi ispirato, secondo alcuni, all’idea di Tanenbaum per svilupparne il kernel orientandosi però su un’architettura monolitica.
Non tutti sanno che oggi i possessori di un sistema basato su processore Intel non eseguono soltanto un sistema operativo come Windows o Linux ma a più basso livello è in funzione proprio MINIX. Per questo motivo MINIX viene di fatto considerato come il sistema operativo più diffuso al mondo.
Neppure Tanenbaum era a conoscenza che il suo sistema operativo era stato integrato nei chipset Intel: la notizia si diffuse qualche anno fa sotto la spinta della “comunità hacker” e il docente universitario non fece propriamente i salti di gioia (vedere Intel ha integrato il sistema operativo MINIX nei processori business ma l’inventore non ne sapeva nulla).
In informatica si chiamano ring ovvero “domini gerarchici di protezione” i meccanismi che regolano i privilegi con cui può essere eseguito il codice.
Con ring 0 vengono identificati i processi in esecuzione in modalità kernel mentre con ring 3 le applicazioni in “user mode” quali il browser, il Blocco Note e così via.
Il ring 0 è quello che gode dei privilegi più ampi. Basti pensare, ad esempio, che quando un’applicazione ring 3 che per definizione ha privilegi più limitati oppure un utente normale tentassero di sfruttare accedere a indirizzi di memoria non di loro pertinenza il processore si pone in uno stato di difesa e il codice viene ricaricato – ove possibile – da una locazione sicura a livello kernel.
Nel caso dei processori Intel, MINIX fa parte del Management Engine che gode di un ventaglio di privilegi ancora più ampio: come si vede nello schema in figura MINIX agisce a livello ring -3, sotto lo zero.
Tecnicamente i ring con numerazione negativa non esistono ma ci sono situazioni in cui il software può assumere il pieno controllo sul funzionamento del processore. Intel Management Engine (IME) è uno strumento che permette di bloccare a basso livello ed eventualmente a distanza l’utilizzo di determinati software ed eventualmente di certi dispositivi e componenti hardware.
IME è un sottosistema autonomo che è stato incorporato praticamente in tutti i chipset dei processori Intel dal 2008. Esso offre una varietà di funzionalità e servizi; ha inoltre accesso completo all’hardware compresa la memoria, le periferiche di input, il display e così via.
Sui sistemi destinati al mondo business (come workstation e server) IME è legato a doppio filo con Intel Active Management, una tecnologia che permette di accendere, configurare e gestire da remoto i vari sistemi.
In passato sono state individuate alcune vulnerabilità sia in Active Management che in IME ma mentre la prima soluzione è disattivabile sui sistemi destinati al mondo delle imprese, IME non può essere disabilitata: il software viene caricato all’avvio del sistema e resta in esecuzione.
Per verificare se IME è presente basta premere in Windows la combinazione di tasti Windows+R
quindi digitare devmgmt.msc
. Cliccando due volte su Dispositivi di sistema si troverà l’indicazione Intel Management Engine.
Portandosi nella pagina Intel Converged Security and Management Engine Version Detection Tool (Intel CSMEVDT) quindi scaricando l’archivio compresso, all’interno della cartella DiscoveryTool.GUI
si troverà un eseguibile che consente di controllare se la versione di IME usata sul sistema sia vulnerabile o meno.
Per risolvere le eventuali vulnerabilità di sicurezza che l’utilità dovesse rilevare bisognerà procedere con l’aggiornamento del BIOS della scheda madre facendo riferimento alle indicazioni del produttore della stessa: Aggiornare BIOS: come si fa, a cosa serve e quando va fatto.
Quali sono le preoccupazioni dei detrattori di MINIX sui processori Intel
Anni fa la scoperta di MINIX come base del funzionamento di IME fece molto scalpore tanto che in molti accusarono Intel di aver inserito una backdoor nei PC di tutti gli utenti.
EFF accusò platealmente la società di Santa Clara di aver inserito una potenziale “spia” a livello di chipset e Tanenbaum criticò aspramente il comportamento di Intel, non soltanto per non essere stato informato circa questo specifico utilizzo di MINI ma anche perché il pieno controllo di una macchina dovrebbe restare esclusivamente in capo al suo legittimo proprietario.
Ciò che ha provocato sconcerto è che ancora oggi IME non è completamente disattivabile dagli utenti, almeno non utilizzando uno strumento ufficiale.
Il governo degli Stati Uniti ha richiesto che IME possa essere disabilitato sui sistemi chiamati a muovere dati particolarmente riservati così Intel ha aggiunto un “flag” – chiamato HAP bit – che permette di disattivare IME.
Alcuni ricercatori sono stati in grado di individuare e modificare il valore del “flag” in questione su specifici modelli di schede madri ma la disabilitazione generalizzata su qualunque motherboard, anche su quelle più vecchie, è cosa tutt’altro che semplice.
Il codice alla base di IME non viene né distribuito né documentato: così, tra le varie critiche, vi sono quelle che osservano come la sicurezza tramite segretezza sia un concetto anacronistico e inefficace.
IME e la versione di MINIX utilizzata da Intel servendosi della licenza BSD con cui Tanenbaum ha pubblicato il sistema operativo non comunicano con la rete Internet (a meno di non abilitare la tecnologia Active Management in ambito aziendale). Nulla è emerso in tal senso effettuando una serie di verifiche con packet sniffer come Wireshark.
Ciononostante sul tema IME non si è fatta ad oggi chiarezza: l’idea di avere un mini-sistema operativo in esecuzione con i privilegi più ampi possibile non va a genio a molti. E cosa succederebbe se qualcuno riuscisse a modificarne il comportamento e disporre il caricamento di codice arbitrario?
Tra l’altro i bug scoperti in MINIX sono noti e via via pubblicati in questa pagina su GitHub ma lato Intel cosa succede? Quali vengono corretti, quali bug aggiuntivi (presenti nella versione usata da Intel) sono stati scoperti ed eventualmente risolti?
L’equivalente di IME lato AMD si chiama Secure Technology (ex Platform Security Processor) ed è presente in tutte le CPU prodotte e commercializzate a partire dal 2013.