In che modo essere in grado di entrare in qualsiasi macchina Linux attraverso grub2 è sicuro?


52

In che modo è sicura la capacità di una persona che ha ottenuto l'accesso fisico al computer di ottenere il root con questi passaggi?

  1. Quando si apre il menu grub2, premere e per modificare le opzioni di avvio di Linux
  2. Modificare:

    "linux   /vmlinuz-2.6.35-23-generic root=UUID=e7f1e48d-0015-485f-be7d-836217a31312 ro   quiet splash" 
    

    per:

    "linux   /vmlinuz-2.6.35-23-generic root=UUID=e7f1e48d-0015-485f-be7d-836217a31312 ro init=/bin/bash"
    
  3. Ora hai l'accesso come root:

    mount -o remount,rw /
    passwd user
    mount -o remount,ro / 
    sync
    
  4. riavvia il computer e vinci.

La mia domanda è: come è possibile penetrare in qualsiasi macchina Linux tramite grub2 secure? Non capisco questo fatto su Linux, grazie per le tue risposte.


51
Chi ha detto che l'accesso fisico deve essere reso impossibile? Quando qualcuno ha accesso fisico -ALL- le scommesse sono -OFF-. Il proprietario di una macchina dovrebbe, SEMPRE, avere accesso alla sua macchina quando si trova accanto ad essa. Altrimenti sarebbe possibile murarlo senza possibilità di recupero.
Rinzwind,

7
e puoi lamentarti di questo: ma che ne dici di inserire un dvd / usb dal vivo nel sistema? O estrarre il disco, inserirlo in un'altra macchina e inserire ddil disco? E "linux"? Funziona anche con altri sistemi che usano grub ... Windows invece ... quando Windows si rompe ... probabilmente puoi solo formattare il sistema: P
Rinzwind,

10
Per essere completamente protetto, hai bisogno di questa soluzione
Anwar,

5
Oh no commerades! @Clutchy ha scoperto il nostro segreto. Dobbiamo tutti prendere le capsule di cianuro ora.
paulzag,

3
@paulzag Capito, ho intenzione di innescare il meccanismo di autodistruzione della sala server. Gloria a RMS!
Kaz Wolfe,

Risposte:


108

In che modo è sicura la capacità di una persona che ha ottenuto l'accesso fisico al computer di ottenere il root [usando Grub / Bash]?

Perché se Linux avesse deciso di iniziare a farlo, gli hacker avrebbero semplicemente sfruttato altre falle di sicurezza. La prima regola di sicurezza è che se ho accesso fisico al tuo sistema, il gioco è finito. Ho vinto.

Inoltre, immagina che il tuo server X si sia rotto e non hai più una GUI. È necessario avviare una console di ripristino per risolvere le cose, ma non è possibile, perché non è sicuro. In questo caso, ti rimane un sistema totalmente rotto, ma ehi, almeno è "sicuro!"

Ma Kaz, come è possibile? Ho impostato una password sul mio Grub in modo da non poter cambiare il mio initin Bash!

Oh, l'hai fatto, vero? Interessante, perché sembra il tuo album fotografico. GRUB non ha alcun fattore di sicurezza intrinseco. È solo un bootloader , non un passaggio nella catena di autenticazione e avvio sicuro. La "password" che hai impostato è, infatti, davvero dannatamente facile da aggirare.

Quello e quale amministratore di sistema non porta su di essi un'unità di avvio per le emergenze?

Ma come?! Non conosci la mia password (che non è del tutto P@ssw0rdbtw)

Sì, ma ciò non mi impedisce di aprire il computer e di estrarre il disco rigido. Da lì, sono un paio di semplici passaggi per montare l'unità sul mio computer, permettendomi di accedere a tutto il tuo sistema. Questo ha anche il fantastico vantaggio di bypassare la password del BIOS. Quello, o avrei potuto semplicemente ripristinare il CMOS. O / o.

Quindi ... come non permetterti di accedere ai miei dati?

Semplice. Tieni il tuo computer lontano da me. Se riesco a toccarlo, accedere a una tastiera, inserire le mie unità flash o smontarlo, posso vincere.

Quindi, posso semplicemente mettere il mio computer in un datacenter o qualcosa del genere? Sono abbastanza sicuri, vero?

Sì, lo sono. Ma stai dimenticando che anche gli umani sono hackerabili e, dato il tempo e la preparazione sufficienti, probabilmente potrei entrare in quel datacenter e sottrarre tutti quei dati dolci e dolci dal tuo computer. Ma sto divagando. Qui abbiamo a che fare con soluzioni reali .

Okay, quindi hai chiamato il mio bluff. Non riesco a inserirlo in un datacenter. Posso semplicemente crittografare la mia cartella home o qualcosa del genere?

Certo che puoi! È il tuo computer! Mi aiuterà a fermarmi? Non per niente. Posso semplicemente sostituire qualcosa di importante, come /usr/bin/firefoxcon il mio programma dannoso. La prossima volta che apri Firefox, tutti i tuoi dati segreti vengono trasferiti su un server segreto da qualche parte segreto. E non lo saprai nemmeno. Oppure, se ho accesso frequente alla tua macchina, posso semplicemente impostare la tua cartella home in cui copiarla /usr/share/nonsecrets/home/o qualsiasi posizione simile (non crittografata).

Okay, che dire della crittografia del disco completo?

Questo è ... in realtà abbastanza buono. Tuttavia, non è ancora perfetto! Posso sempre eseguire un Cold Boot Attack usando la mia fidata bomboletta di aria compressa. Oppure, posso semplicemente collegare un keylogger hardware al tuo computer. Uno è ovviamente più facile dell'altro, ma il modo in cui non conta davvero.

Nella stragrande maggioranza dei casi, questo è un buon punto di sosta. Forse abbinalo a TPM (discusso di seguito) e sei d'oro. A meno che tu non abbia fatto arrabbiare un'agenzia di tre lettere o un hacker molto motivato, nessuno passerà attraverso lo sforzo richiesto oltre questo stadio.

Ovviamente, posso ancora farti installare malware / backdoor offrendoti un PPA o simile, ma questo entra nell'area molto oscura della fiducia degli utenti.

Quindi ... come sono gli iPhone così sicuri? Anche con l'accesso fisico, non c'è molto che puoi fare.

Bene, sì e no. Voglio dire, se fossi abbastanza motivato, potrei leggere il chip flash e ottenere tutto ciò di cui ho bisogno. Ma gli iPhone sono fondamentalmente diversi in quanto sono una piattaforma completamente bloccata. Ma, allo stesso tempo, sacrifichi davvero l'usabilità e la capacità di recuperare da fallimenti catastrofici. GRUB (tranne quando progettato in modo molto specifico) non è pensato per essere una catena in un sistema di sicurezza. In effetti, la maggior parte dei sistemi Linux ha le catene di sicurezza avviate dopo l'avvio, quindi dopo che GRUB ha finito di fare le sue cose.

Inoltre, gli iPhone hanno un'applicazione di firma crittografica (discussa anche di seguito), il che rende molto difficile per il malware intrufolarsi nel telefono attraverso percorsi legittimi.

Ma che dire di TPM / SmartCard / [inserire qui la tecnologia crittografica]?

Bene, ora stai abbinando la sicurezza fisica all'equazione, diventa ancora più complicato. Ma questa non è davvero una soluzione perché i TPM sono relativamente deboli e tutta la crittografia non avviene su chip. Se il tuo TPM è (in qualche modo) abbastanza forte dove esegue la crittografia sul chip stesso (alcuni dischi rigidi molto fantasiosi hanno qualcosa del genere), la chiave non verrà mai rivelata e cose come gli attacchi di avvio a freddo sono impossibili. Tuttavia, le chiavi (o i dati non elaborati) potrebbero essere ancora presenti nel bus di sistema, il che significa che possono essere intercettate.

Anche così, il mio keylogger hardware può ancora ottenere la tua password e posso facilmente caricare alcuni malware sul tuo computer come l'exploit di Firefox di cui ho parlato in precedenza. Tutto ciò di cui ho bisogno è che tu possa uscire di casa / computer per un'ora.

Ora, se porti con te il tuo TPM / smartcard / qualunque cosa, e tutta la crittografia viene effettivamente eseguita sul chip (il che significa che la tua chiave non è affatto memorizzata nella RAM), allora è praticamente impossibile per me entrare in tutto, a meno che tu (l'utente) scivoli e dimentichi qualcosa. Cioè, a meno che non trovo un modo per leggere la chiave (non crittografata) dal bus di sistema.

Ma cosa succede se ho una qualche forma di applicazione crittografica / della firma digitale su tutti i miei programmi per assicurarmi che siano legittimi?

Come dimostrato da varie aziende di smartphone, questo è un molto buon modo di trattare con sicurezza. Ora hai annullato la mia capacità di iniettare del codice sulla tua macchina per fare cose nefaste, il che è un vantaggio. In effetti, hai disabilitato la mia capacità di mantenere l'accesso persistente alla tua macchina in remoto, il che è un vantaggio enorme.

Tuttavia, questo non è ancora un metodo perfetto! L'applicazione della firma digitale non fermerà un keylogger hardware, per esempio. Deve anche essere completamente privo di bug, il che significa che non c'è modo di trovare un exploit che mi consenta di caricare il mio certificato nell'archivio certificati della tua macchina. Inoltre, ciò significa che ogni file eseguibile sul tuo sistema deve essere firmato . A meno che tu non voglia passare manualmente e fare tutto ciò, sarà molto difficile trovare pacchetti Apt e simili che hanno firme digitali su tutto. Allo stesso modo, questo blocca gli usi legittimi di eseguibili non firmati, ovvero il ripristino. Cosa succede se si interrompe qualcosa di importante e non si dispone dell'eseguibile (firmato) per risolverlo? Bene, ecco il tuo sistema.

Ad ogni modo, uno sforzo per farlo su Linux è stato praticamente abbandonato e non funziona più per i nuovi kernel, quindi dovresti crearne uno tuo.

Quindi, è impossibile tenerti fuori dal mio computer?

In effetti, sì, scusa. Se ho accesso fisico e motivazione sufficiente, è sempre possibile entrare in un sistema. Nessuna eccezione.

In realtà, però, la maggior parte delle persone malvagie non proverà ad andare così lontano solo per alcune foto di gatti. In genere, è sufficiente solo la crittografia dell'intero disco (o anche solo l'esecuzione di Linux!) Per dissuadere la maggior parte dei kiddie degli script dall'avere i loro due secondi di fama.

TL; DR: Non lasciare che le persone di cui non ti fidi vicino al tuo computer. In genere è abbastanza buono.


O semplicemente crittografare la partizione home.
user13161,

5
@ user13161 Ciò consente ancora a un'entità malvagia di sostituire qualcosa di simile /bin/bashal proprio script malvagio, che farà cose cattive con una cartella home non crittografata.
Kaz Wolfe,

GRUB ti consente di utilizzare una partizione di avvio crittografata LUKS, in cui non è possibile bypassare la password per l'avvio. Vedi wiki.archlinux.org/index.php/Dm-crypt/… .
v7d8dpo4,

@ v7d8dpo4: la crittografia /bootè in realtà inutile imo. Aggiungerà una password di avvio, ma dovrai comunque decrittografare /per fare effettivamente qualcosa di utile, quindi stai solo aggiungendo un sovraccarico extra per poco o nessun vantaggio. Inoltre, posso solo usare il mio disco Grub per bypassare il tuo avvio crittografato se solo /boot è protetto. O posso semplicemente leggere il disco come al solito.
Kaz Wolfe,

2
Gli iPhone (dal 6 in poi, credo) non solo hanno la crittografia "disco" completa, ma sono collegati al login con codice PIN / biometrico. Quindi, se vuoi che il tuo computer si rifiuti di avviarsi senza intervento, anche tu puoi legare la sua crittografia del disco a un token hardware / password / modulo TPM. È solo un bel po 'di lavoro.
pjc50,

17

Se lo vuoi legato, usa una password . Dal link:

Note sulla protezione con password di GRUB 2

Grub 2 può stabilire requisiti di password su:

  • Tutti i menu
  • Menuentries specifici
  • Per utenti specifici: Ad esempio, l'utente "Jane" può accedere a Ubuntu ma non alla modalità di ripristino di Windows, accessibile solo da "John", il superutente.
  • L'amministratore deve abilitare manualmente la protezione con password modificando i file di sistema di GRUB 2.

  • Utenti e password devono essere identificati nel /etc/grub.d/00_headero in un altro file di script di GRUB 2.

  • Se non si desidera la protezione universale di tutti i menu, è necessario identificare le voci specifiche:

    • Manualmente modificando gli /etc/grub.d/script di Grub 2 come 10_linuxe30_os-prober
    • Manualmente modificando un file di configurazione personalizzato creato dall'utente.

    • Uno dei due metodi precedenti consente a GRUB 2 di aggiungere automaticamente i requisiti della password al file di configurazione (grub.cfg) ogni volta che update-grub viene eseguito.

    • Manualmente modificando /boot/grub/grub.cfg. Le modifiche a questo file verranno rimosse quando update-grubviene eseguita e la protezione della password andrà persa.

  • Se è abilitata una qualsiasi forma di protezione con password GRUB 2, il nome e la password del superutente sono richiesti per accedere alla riga di comando di GRUB 2 e alle modalità di modifica dei menu.

  • Il nome utente e / o la password non devono essere uguali al nome / password di accesso di Ubuntu.
  • A meno che non venga utilizzata la funzione di crittografia della password di GRUB 2, la password viene memorizzata come testo normale in un file leggibile. Consulta la sezione Crittografia password per indicazioni sull'uso di questa funzione.

Di default (!) In questo caso l'usabilità supera la sicurezza. Se non puoi fidarti delle persone che ti circondano, tieni sempre la macchina con te. Le persone che necessitano di maggiore sicurezza tendono a crittografare l'intero sistema rendendo obbligatoria la password.


Siamo onesti, quelle password possono essere facilmente aggirate con accesso fisico. Proteggono un sistema dai rumori, ma non dagli aggressori con alcune abilità di base (l'utilizzo di google potrebbe essere già sufficiente) e l'accesso fisico.
Byte Commander

3

Il tuo hack intenzionale inizia con questo:

  1. Quando si apre il menu di grub2, premere 'e' per modificare le opzioni di avvio di Linux

Ma puoi proteggere con password l' eopzione come discusso qui: Come aggiungere la protezione con password GRUB al processo di caricamento del sistema operativo anziché quando si modificano le opzioni di avvio

Puoi fare il passo aggiuntivo di crittografare la password di grub come discusso nel link. Infatti, con forse il 3% della popolazione (ipotesi selvaggia) che usa Linux / Ubuntu a casa, è una buona idea per gli amministratori di sistema proteggere dalla efunzione sui sistemi di produzione al lavoro. Immagino che se Ubuntu venisse usato al lavoro, dal 30 al 40% lo userebbe anche a casa e forse il 10% di questi imparerà come fare esui propri sistemi domestici.

Grazie alla tua domanda hanno appena imparato di più. Con il link sopra, tuttavia, gli amministratori di sistema hanno un'altra attività nel loro elenco di cose da fare per proteggere gli ambienti di produzione.


1
Siamo onesti, quelle password possono essere facilmente aggirate con accesso fisico. Proteggono un sistema dai rumori, ma non dagli aggressori con alcune abilità di base (l'utilizzo di google potrebbe essere già sufficiente) e l'accesso fisico.
Byte Commander

@ByteCommander Si tratta dell'accesso fisico. Il BIOS può essere configurato con la password dell'amministratore, quindi non può mai avviarsi da USB o DVD. Qualcuno può aprire il case, corto due pin sulla scheda madre e la password viene reimpostata in bianco (nessuna password richiesta per modificare l'ordine di avvio del BIOS).
WinEunuuchs2Unix,

0

Per rendere sicuro grub è necessario proteggere l'accesso ad esso. Questo può essere fatto semplicemente con una password del disco rigido, e sto parlando qui della sicurezza del disco in cui è memorizzato nel firmware del disco stesso. Non è possibile leggere o scrivere sul disco. Quindi non solo grub è inaccessibile senza la password, ma lo sono anche i tuoi dati.

Poiché la password è memorizzata sul disco stesso, spostarla in un altro sistema non aiuterà l'hacker.

Esiste un software in grado di rimuovere la password dai dischi di alcuni produttori, ma cancella anche efficacemente il disco. Quindi i tuoi dati sono ancora al sicuro.


Commento in ritardo, ma vorrei sottolineare che questo può essere occasionalmente sconfitto in modo semplice. Potrebbe esserci qualche comando (documentato) del produttore per cancellare una password dell'HDD senza attivare un formato. Allo stesso modo, potrei essere in grado di "prendere in prestito" i piatti del disco rigido e inserirli nel mio controller - la password è (di solito) memorizzata nella NVRAM del controller, non sui piatti stessi.
Kaz Wolfe,

@Kaz, hai assolutamente ragione in quello che dici, ma l'enfasi deve essere posta sulla parola "occasionalmente" nella tua frase "questo può essere occasionalmente sconfitto in modo semplice". Poiché la tecnologia del disco rigido continua a migliorare, contrariamente a quanto dici, quasi tutti i produttori ora memorizzano il loro firmware e le password sui piatti in modo da non cambiare la scheda controller. C'è un software in giro per sbloccare le unità senza cancellare i dati, ma funziona solo su vecchie unità.
Scooby-2,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.