Il percorso di Whonix.
Scegliere il sistema operativo host (il sistema operativo installato sul portatile).
Questo percorso farà ampio uso di macchine virtuali, che richiederanno un sistema operativo host per eseguire il software di virtualizzazione. In questa parte della guida sono consigliate tre scelte:
- La distribuzione Linux di vostra scelta (escluso Qubes OS)
- Windows 10 (preferibilmente l'edizione Home a causa dell'assenza di Bitlocker)
- MacOS (Catalina o superiore)
Inoltre, è probabile che il vostro Mac sia o sia stato legato a un account Apple (al momento dell'acquisto o dopo l'accesso) e quindi i suoi identificativi hardware unici potrebbero ricondurre a voi in caso di fuga di identificativi hardware.
Anche Linux non è necessariamente la scelta migliore per l'anonimato, a seconda del modello di minaccia. Questo perché l'uso di Windows ci permette di utilizzare facilmente la Plausible Deniability (alias crittografia negabile) a livello di sistema operativo. Purtroppo Windows è anche un incubo per la privacy, ma è l'unica opzione (conveniente) per utilizzare la plausible deniability a livello di sistema operativo. La telemetria e il blocco della telemetria di Windows sono inoltre ampiamente documentati e dovrebbero attenuare molti problemi.
Quindi, cos'è la Plausible Deniability? È la possibilità di collaborare con un avversario che richiede l'accesso al vostro dispositivo/dati senza rivelare il vostro vero segreto. Il tutto utilizzando la crittografia negabile.
Un avversario legittimo potrebbe chiedere la password criptata del vostro computer portatile. In un primo momento potreste rifiutarvi di fornire qualsiasi password (avvalendovi del vostro "diritto di rimanere in silenzio", "diritto di non incriminarvi"), ma alcuni Paesi stanno implementando leggi che esentano da tali diritti (perché i terroristi e "pensate ai bambini"). In questo caso, potreste essere costretti a rivelare la password o a rischiare il carcere per oltraggio alla corte. Qui entra in gioco la negazione plausibile.
Potreste quindi rivelare una password, ma questa darà accesso solo a "dati plausibili" (un sistema operativo esca). La scientifica saprà che è possibile che abbiate nascosto dei dati, ma non sarà in grado di dimostrarlo
(se lo fate bene). Voi avrete collaborato e gli investigatori avranno accesso a qualcosa, ma non a ciò che volete effettivamente nascondere. Poiché l'onere della prova dovrebbe ricadere su di loro, non avranno altra scelta se non quella di credervi, a meno che non abbiano la prova che avete nascosto dei dati.
Questa funzione può essere utilizzata a livello di sistema operativo (un sistema operativo plausibile e un sistema operativo nascosto) o a livello di file, dove si avrà un contenitore di file crittografati (simile a un file zip) in cui verranno mostrati file diversi a seconda della password di crittografia utilizzata.
Ciò significa anche che è possibile impostare una configurazione avanzata di "plausible deniability" utilizzando qualsiasi sistema operativo host, ad esempio memorizzando le macchine virtuali su un contenitore di volumi nascosti Veracrypt (attenzione alle tracce nel sistema operativo host che devono essere pulite se il sistema operativo host è persistente, vedere la sezione
Alcune misure aggiuntive contro la forensics più avanti). Esiste un progetto per ottenere questo risultato all'interno di Tails
(https://github.com/aforensics/HiddenVM [Archive.org]) che rende il sistema operativo host non persistente e utilizza la plausible deniability all'interno di Tails.
Nel caso di Windows, la plausible deniability è anche il motivo per cui si dovrebbe avere Windows 10 Home (e non Pro). Questo perché Windows 10 Pro offre nativamente un sistema di crittografia dell'intero disco (Bitlocker), mentre Windows 10 Home non offre alcuna crittografia dell'intero disco. In seguito utilizzeremo un software open-source di terze parti per la crittografia che consentirà la crittografia dell'intero disco su Windows 10 Home. Questo vi darà una buona scusa (plausibile) per utilizzare questo software. Mentre l'uso di questo software su Windows 10 Pro sarebbe sospetto.
Nota su Linux: Quindi, che dire di Linux e della negabilità plausibile? Sì, è possibile ottenere la negabilità plausibile anche con Linux. Ma è complicato da configurare e IMHO richiede un livello di abilità abbastanza alto che probabilmente non ha bisogno di questa guida per aiutarvi a provarlo.
Sfortunatamente, la crittografia non è una magia e ci sono alcuni rischi:
Minacce con la crittografia.
La chiave da 5 dollari.
Ricordate che la crittografia, con o senza plausible deniability, non è un proiettile d'argento e sarà poco utile in caso di tortura. In effetti, a seconda di chi sia il vostro avversario (il vostro modello di minaccia), potrebbe essere saggio non usare affatto Veracrypt (ex TrueCrypt), come mostrato in questa dimostrazione:
https://defuse.ca/truecrypt-plausible-deniability-useless-by-game-theory.htm [Archive.org].
La negabilità plausibile è efficace solo contro avversari legittimi e morbidi che non ricorreranno a mezzi fisici.
Evitate, se possibile, l'uso di software in grado di garantire la negazione plausibile (come Veracrypt) se il vostro modello di minaccia prevede avversari duri. In questo caso, gli utenti di Windows dovrebbero installare Windows Pro come sistema operativo host e utilizzare Bitlocker.
Cfr. https://en.wikipedia.org/wiki/Rubber-hose_cryptanalysis [Wikiless] [Archive.org]
Attacco Evil-Maid.
Gli attacchi Evil Maid sono condotti quando qualcuno manomette il vostro computer portatile mentre siete lontani. Per installare la clonazione del disco rigido, installare malware o un key logger. Se riescono a clonare il disco rigido, possono confrontare l'immagine del disco rigido nel momento in cui l'hanno preso mentre eravate via con quella del disco rigido quando ve lo sequestrano. Se nel frattempo il portatile è stato utilizzato di nuovo, gli esaminatori forensi potrebbero essere in grado di dimostrare l'esistenza dei dati nascosti osservando le variazioni tra le due immagini in quello che dovrebbe essere uno spazio vuoto/non utilizzato. Questo potrebbe portare a una forte prova dell'esistenza di dati nascosti. Se installano un key logger o un malware all'interno del vostro computer portatile (software o hardware), saranno in grado di ottenere semplicemente la password da voi per utilizzarla successivamente quando lo sequestreranno. Questi attacchi possono essere effettuati a casa vostra, in albergo, a un valico di frontiera o ovunque lasciate i vostri dispositivi incustoditi.
È possibile mitigare questo attacco eseguendo le seguenti operazioni (come raccomandato in precedenza):
- dotarsi di una protezione antimanomissione di base (come spiegato in precedenza) per impedire l'accesso fisico ai componenti interni del computer portatile a vostra insaputa. In questo modo si eviterà di clonare i dischi e di installare un key logger fisico a vostra insaputa.
- Disattivate tutte le porte USB (come spiegato in precedenza) all'interno di un BIOS/UEFI protetto da password. Anche in questo caso, non sarà possibile attivarle (senza accedere fisicamente alla scheda madre per reimpostare il BIOS) per avviare un dispositivo USB che potrebbe clonare il disco rigido o installare un malware basato su software che potrebbe fungere da key logger.
- Impostare le password del BIOS/UEFI/Firmware per impedire l'avvio non autorizzato di un dispositivo non autorizzato.
- Alcuni sistemi operativi e software di crittografia dispongono di una protezione anti-EvilMaid che può essere attivata. È il caso di Windows/Veracrypt e QubeOS.
Attacco Cold-Boot.
Gli attacchi cold boot sono più difficili dell'attacco Evil Maid, ma possono far parte di un attacco Evil Maid in quanto richiedono che un avversario entri in possesso del portatile mentre si sta utilizzando attivamente il dispositivo o poco dopo.
L'idea è piuttosto semplice: come mostrato in questo video, un avversario potrebbe teoricamente avviare rapidamente il dispositivo con una speciale chiave USB che copierebbe il contenuto della RAM (la memoria) del dispositivo dopo lo spegnimento. Se le porte USB sono disabilitate o se ritiene di avere bisogno di più tempo, potrebbe aprirlo e "raffreddare" la memoria utilizzando uno spray o altre sostanze chimiche (ad esempio azoto liquido) che impediscono il decadimento della memoria. Potrebbero quindi copiare il suo contenuto per analizzarlo. Questo dump di memoria potrebbe contenere la chiave per decriptare il dispositivo. In seguito applicheremo alcuni principi per mitigare questi problemi.
Nel caso della Plausible Deniability, ci sono stati alcuni studi forensi che hanno dimostrato tecnicamente la presenza dei dati nascosti con un semplice esame forense (senza un Cold Boot/Evil Maid Attack), ma questi sono stati contestati da altri studi e dal manutentore di Veracrypt, quindi non mi preoccuperei troppo di questi studi.
Le stesse misure utilizzate per mitigare gli attacchi Evil Maid dovrebbero essere adottate per gli attacchi Cold Boot, con qualche aggiunta:
- Se il vostro sistema operativo o il software di crittografia lo consentono, dovreste considerare la possibilità di crittografare le chiavi anche all'interno della RAM (questo è possibile con Windows/Veracrypt e verrà spiegato più avanti).
- Dovreste limitare l'uso dello stand-by a riposo e utilizzare invece lo spegnimento o l'ibernazione per evitare che le chiavi di crittografia rimangano nella RAM quando il computer va a riposo. Questo perché la sospensione manterrà l'alimentazione della memoria per riprendere l'attività più velocemente. Solo l'ibernazione e l'arresto cancellano effettivamente la chiave dalla memoria.
Vedere anche
https://www.whonix.org/wiki/Cold_Boot_Attack_Defense [Archive.org] e
https://www.whonix.org/wiki/Protection_Against_Physical_Attacks [Archive.org].
Ecco anche alcuni strumenti interessanti da considerare per gli utenti Linux per difendersi da questi attacchi:
Informazioni su sospensione, ibernazione e spegnimento.
Se si desidera una maggiore sicurezza, è necessario spegnere completamente il portatile ogni volta che lo si lascia incustodito o si chiude il coperchio. Questo dovrebbe pulire e/o liberare la RAM e fornire mitigazioni contro gli attacchi cold boot. Tuttavia, questa operazione può essere un po' scomoda, in quanto dovrete riavviare completamente il computer e digitare una tonnellata di password in varie applicazioni. Riavviare varie macchine virtuali e altre applicazioni. Al suo posto si potrebbe utilizzare l'ibernazione (non supportata su Qubes OS). Poiché l'intero disco è crittografato, l'ibernazione di per sé non dovrebbe rappresentare un grosso rischio per la sicurezza, ma spegnerà comunque il portatile e cancellerà la memoria, consentendovi di riprendere comodamente il vostro lavoro.
Ciò che non si deve mai fare è utilizzare la funzione di sospensione standard che mantiene il computer acceso e la memoria alimentata. Si tratta di un vettore di attacco contro gli attacchi di tipo "evil-maid" e "cold-boot" di cui si è parlato in precedenza. Infatti, la memoria accesa contiene le chiavi di crittografia del disco (crittografato o meno) e potrebbe essere accessibile a un avversario esperto.
Questa guida fornirà indicazioni su come abilitare l'ibernazione su vari sistemi operativi host (tranne Qubes OS) se non si vuole spegnere ogni volta.
Fughe di dati locali (tracce) ed esami forensi.
Come accennato in precedenza, si tratta di fughe di dati e tracce dal sistema operativo e dalle applicazioni quando si esegue una qualsiasi attività sul computer. Si tratta soprattutto di contenitori di file crittografati (con o senza plausible deniability) piuttosto che di crittografia a livello di sistema operativo. Tali perdite sono meno "importanti" se l'intero sistema operativo è crittografato (se non si è costretti a rivelare la password).
Supponiamo ad esempio di avere una chiave USB crittografata con Veracrypt e con la plausible deniability abilitata. A seconda della password utilizzata durante il montaggio della chiave USB, si aprirà una cartella decoy o una cartella sensitive. All'interno di queste cartelle, ci saranno documenti/dati esca all'interno della cartella esca e documenti/dati sensibili all'interno della cartella sensibile.
In tutti i casi, si apriranno (molto probabilmente) queste cartelle con Esplora risorse di Windows, Finder di MacOS o qualsiasi altra utility e si farà ciò che si intende fare. Forse modificherete un documento all'interno della cartella sensibile. Forse si cercherà un documento all'interno della cartella. Forse cancellerete un documento o guarderete un video sensibile utilizzando VLC.
Tutte le applicazioni e il sistema operativo potrebbero conservare registri e tracce di tale utilizzo. Questi potrebbero includere il percorso completo delle cartelle/file/disco, l'ora in cui sono stati acceduti, le cache temporanee di questi file, gli elenchi "recenti" in ogni app, il sistema di indicizzazione dei file che potrebbe indicizzare l'unità e persino le miniature che potrebbero essere generate.
Ecco alcuni esempi di tali fughe di notizie:
Windows.
- Windows ShellBags che sono memorizzati all'interno del registro di Windows e che memorizzano silenziosamente varie cronologie di volumi/file/cartelle accessibili.
- Indicizzazione di Windows che conserva tracce dei file presenti nella cartella utente per impostazione predefinita.
- Elenchi recenti (alias elenchi di salto) in Windows e in varie applicazioni che conservano le tracce dei documenti a cui si è acceduto di recente.
- Molte altre tracce sono presenti in vari registri; per maggiori informazioni, consultare questo interessante poster: https://www.sans.org/security-resources/posters/windows-forensic-analysis/170/download [Archive.org].
MacOS.
- Gatekeeper290 e XProtect tengono traccia della cronologia dei download in un database locale e degli attributi dei file.
- Indicizzazione Spotlight
- Elenchi recenti in varie applicazioni che tengono traccia dei documenti consultati di recente.
- Cartelle temporanee che conservano varie tracce dell'uso delle app e dei documenti.
- Registri MacOS
- ...
Linux.
- Indicizzazione del tracker
- Cronologia di Bash
- Registri USB
- Elenchi recenti in varie applicazioni che conservano le tracce dei documenti a cui si è acceduto di recente.
- Registri Linux
- ...
La scientifica potrebbe utilizzare tutte queste fughe di
dati(vedere
Fughe di dati locali e Forensics) per dimostrare l'esistenza di dati nascosti e sconfiggere i vostri tentativi di usare la negazione plausibile e di scoprire le vostre varie attività sensibili.
È quindi importante applicare varie misure per impedire alla scientifica di farlo, prevenendo e pulendo queste perdite/tracce e, soprattutto, utilizzando la crittografia dell'intero disco, la virtualizzazione e la compartimentazione.
La scientifica non può estrarre le fughe di dati locali da un sistema operativo a cui non può accedere. La maggior parte delle tracce può essere pulita cancellando l'unità o cancellando in modo sicuro le macchine virtuali (cosa non così facile come si pensa per le unità SSD).
Alcune tecniche di pulizia saranno comunque trattate nella parte "Coprire le tracce" di questa guida, alla fine.
Perdite di dati online.
Sia che si utilizzi una crittografia semplice o una crittografia a negazione plausibile. Anche se avete coperto le vostre tracce sul computer stesso. Esiste comunque il rischio di fughe di dati online che potrebbero rivelare la presenza di dati nascosti.
La
telemetria è un nemico. Come spiegato in precedenza in questa guida, la telemetria dei sistemi operativi ma anche delle applicazioni può inviare online quantità impressionanti di informazioni private.
Nel caso di Windows, questi dati potrebbero ad esempio essere utilizzati per dimostrare l'esistenza di un sistema operativo/volume nascosto su un computer e sarebbero prontamente disponibili presso Microsoft. Pertanto, è di fondamentale importanza disabilitare e bloccare la telemetria con tutti i mezzi a disposizione. Indipendentemente dal sistema operativo utilizzato.
Conclusioni.
Non dovreste mai svolgere attività sensibili da un sistema non crittografato. E anche se è crittografato, probabilmente non dovreste mai svolgere attività sensibili dal sistema operativo host stesso. Dovreste invece utilizzare una macchina virtuale per poter isolare e compartimentare efficacemente le vostre attività ed evitare fughe di dati locali.
Se avete poca o nessuna conoscenza di Linux o se volete usare la plausible deniability del sistema operativo, vi consiglio di scegliere Windows (o di tornare alla strada di Tails) per comodità. Questa guida vi aiuterà a rendere il sistema più rigido possibile per prevenire le perdite. Questa guida vi aiuterà anche a rendere MacOS e Linux il più resistenti possibile per evitare falle simili.
Se non siete interessati alla plausible deniability del sistema operativo e volete imparare a usare Linux, vi consiglio vivamente di scegliere Linux o la strada di Qubes, se il vostro hardware lo consente.
In tutti i casi, il sistema operativo host non dovrebbe mai essere usato per condurre direttamente attività sensibili. Il sistema operativo host verrà utilizzato solo per connettersi a un punto di accesso Wi-Fi pubblico. Verrà lasciato inutilizzato mentre si svolgono attività sensibili e idealmente non dovrebbe essere utilizzato per le attività quotidiane.
Considerate anche la lettura di
https://www.whonix.org/wiki/Full_Disk_Encryption#Encrypting_Whonix_VMs [Archive.org].