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 init
in 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@ssw0rd
btw)
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/firefox
con 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.