Il tuo PC usa UEFI? Usi una versione di Linux con systemd? Vuoi buttare via tutto? Fai “rm -rf /”!

uefi

L’interfaccia UEFI dei moderni PC prevede (tra le altre cose) che solo determinati e certificati sistemi operativi possano essere avviati all’interno del proprio hardware. Ne abbiamo parlato parecchio ed i dubbi passati sono sempre validi e riguardano prevalentemente i motivi della creazione di un tale ambiente (poiché di un micro sistema operativo si tratta). Quali, se non l’eliminazione di scomodi concorrenti (leggi Linux) nell’ambito del mercato dei sistemi operativi (dominato da Microsoft)?

Ma Microsoft ha fatto pace da parecchio con Linux, ed inoltre le maggiori distribuzioni in commercio sono ampiamente certificate per tutti i sistemi UEFI presenti sul mercato. Eppure da oggi le perplessità in merito a UEFI hanno un’ulteriore ragione di esistere, il tutto grazie a systemd. Uno potrebbe pensare, che c’azzecca? Ed in effetti, di primo acchito, l’interfaccia UEFI dovrebbe essere totalmente indipendente, slegata dal sistema operativo che sta funzionando sul proprio hardware. UEFI certifica il boot, e soltanto quello. Giusto? Le cose sono leggermente più complesse. UEFI non è un semplice rimpiazzo del BIOS ed il grado di iterazione raggiungibile con il sistema operativo funzionante all’interno del sistema è molto elevato, come dimostra  questo bug report di systemd all’interno del quale viene dimostrato come questo comando:

rm -rf /sys/firmware/efi/efivars/

che sarebbe quindi implicito in un più banale:

rm -rf /

potrebbe portare a rompere la propria macchina. Ed il termine rompere è usato con cognizione di causa, poiché sebbene a fronte di un rm -rf / tipicamente basta reinstallare il proprio sistema, essendo il mount point (di questo si tratta) /sys/firmware/efi/efivars/ leggibile e scrivibile la rimozione dei dati al suo interno potrebbe rompere le cose a livello firmware, quindi potenzialmente nessuna nuova installazione potrebbe essere possibile.

Interrogato sulla questione, il capo progetto di systemd, Lennhart Poettering,  ha così risposto:

The ability to hose a system is certainly reason enought to make sure it’s well protected and only writable to root. But beyond that: root can do anything really.

L’abilità di inchiodare un sistema è certamente ragione sufficiente per far sì che sia ben protetto e scrivibile da root. Ma al di là di questo: root può in ogni caso fare tutto.

Forse a Poettering sfugge il fatto che root può fare tutto limitatamente a quello che è il sistema operativo (software), sino ad oggi non si era mai visto root impattare addirittura il BIOS. Vedremo come si evolverà la questione, nel frattempo se usate systemd su sistemi UEFI… Occhio ai comandi!

Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.

Tags: , ,