Si parla spesso della gran sicurezza del sistema Linux (e, rispetto a Windows, continuo a ribadirla migliaia di volte), ma immaginate di trovarvi davanti ad una notizia del genere “28 volte backspace per hackerare il sistema”: cosa stai blaterando?
Incredibile ma vero, su molte distribuzioni Linux, se premete per ben 28 volte di fila il tasto Backspace durante l’avvio del sistema, riuscirete a bypassare qualsiasi protezione (e ripeto, qualsiasi).
Aspetta, cosa?
A scoprirlo sono stati alcuni ricercatori dell’Università di Valencia che a causa di un bizzarro bug relativo a GRUB 2, il famoso e diffuso Grand Unified Bootloader, i controlli di sicurezza venivano messi a lato tramite questo semplice (a seconda del PC….voglio vedervi premere 28 volte un tasto con un SSD che avvia il sistema in 10 secondi o meno).
Per essere più specifico, il bug è presente dalla versione 1.98 di GRUB (Dicembre 2009) ed è relativo alla funzione b391bdb2f2c5ccf29da66cecdbfb7566656a704d – affecting the grub_password_get().
Trovate altre informazioni sul bug, pubblicate direttamente dai ricercatori Ismael Ripoll ed Hector Marco a questo indirizzo.
Come hackerare Linux con BackSpace?
Il procedimento è molto semplice. Per prima cosa, dovete disporre di una distribuzione con GRUB 1.98 o superiore (massimo fino alla 2.02). Dopodiché:
- Premete il tasto di accensione del PC;
- una volta comparso il GRUB ed aver avuto accesso alla shell dello stesso, premete ripetutamente per 28 volte il tasto Backspace;
- si aprirà la Grub rescue shell, che vi permetterà di accedere senza bisogno di immettere la password e potrete persino caricare sopra un altro Desktop.
Come proteggersi da questo Hack?
Beh, i metodi sono semplici. O cambiate versione del GRUB (quindi preferibilmente aggiornando la distribuzione o cambiandola totalmente), o applicate manualmente questa patch di emergenza.
Il link della patch è offline, soluzioni?
Certo. Come sempre. Per precauzione, vi posto la patch qui di seguito (inizia dopo i tre trattini e finisce alla stessa maniera):
From 88c9657960a6c5d3673a25c266781e876c181add Mon Sep 17 00:00:00 2001 From: Hector Marco-Gisbert <hecmargi@upv.es> Date: Fri, 13 Nov 2015 16:21:09 +0100 Subject: [PATCH] Fix security issue when reading username and password This patch fixes two integer underflows at: * grub-core/lib/crypto.c * grub-core/normal/auth.c Signed-off-by: Hector Marco-Gisbert <hecmargi@upv.es> Signed-off-by: Ismael Ripoll-Ripoll <iripoll@disca.upv.es> --- grub-core/lib/crypto.c | 2 +- grub-core/normal/auth.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/lib/crypto.c b/grub-core/lib/crypto.c index 010e550..524a3d8 100644 --- a/grub-core/lib/crypto.c +++ b/grub-core/lib/crypto.c @@ -468,7 +468,7 @@ grub_password_get (char buf[], unsigned buf_size) break; } - if (key == '\b') + if (key == '\b' && cur_len) { cur_len--; continue; diff --git a/grub-core/normal/auth.c b/grub-core/normal/auth.c index c6bd96e..5782ec5 100644 --- a/grub-core/normal/auth.c +++ b/grub-core/normal/auth.c @@ -172,7 +172,7 @@ grub_username_get (char buf[], unsigned buf_size) break; } - if (key == '\b') + if (key == '\b' && cur_len) { cur_len--; grub_printf ("\b"); -- 1.9.1
Ad ogni modo, le principali interessate (Debian, Red Hat ed altre) hanno già preso provvedimenti in proposito, per evitare che questa grave falla di sicurezza intacchi tutti gli utenti. Nel frattempo, tramite i vari aggiornamenti di sistema, state pur certi che risolverete il problema. Potete comunque testare voi stessi il bug, no?