Sincronizzazione sicura dei contenitori TrueCrypt

7

Devi sincronizzare i file arbitrari all'interno di due contenitori TrueCrypt; un contenitore è un backup, l'altro quello attivamente utilizzato da me, entrambi sono locali durante la transazione.

L'attuale preoccupazione per la sicurezza è che ci sarebbero "perdite di dati" che risulterebbero dallo strumento di sincronizzazione usato; ad esempio, lo strumento di sincronizzazione che produce indici che vengono memorizzati in modo non criptato sul disco.

Qualche suggerimento o approfondimento sui possibili vettori di attacco che potrebbero derivare dall'utilizzo di uno strumento di sincronizzazione come descritto?

AGGIORNAMENTO: Ho rimosso il riferimento a "su Windows", poiché mentre le risposte e la domanda trattata riguardano Windows, queste risposte (mettendo da parte gli strumenti di sincronizzazione utilizzati) si applicano a Windows , Linux, OSX, ecc. - e non vorrei che la persona che legge il titolo della domanda ritenga che la domanda si applichi solo a Windows, dato che non lo è, e vista l'importanza di eseguire in modo sicuro backup di dati crittografati, ho pensato che meglio per rendere la domanda più accessibile possibile.

    
posta blunders 26.04.2012 - 13:29
fonte

3 risposte

7

Current concern security wise is that there would be "data leaks" that would result from the sync tool being used; for example, the sync tool producing indexes that when be stored unencrypted on disk.

È corretto ritenere che vi sia un rischio di perdita di dati a causa degli indici. Quanto di un rischio dipende da che è esattamente indicizzato.

Qualche tempo fa, ho guidato un progetto per creare qualcosa di simile a un dropbox. Per confrontare le directory tra le esecuzioni, abbiamo usato il nome del percorso, un hash sha256 dei contenuti se non già calcolato, varie informazioni su timestamp, ecc.

Chiaramente, se uno strumento di sincronizzazione dovesse memorizzare queste informazioni sui file archiviati in un contenitore crittografato, l'autore dell'attacco avrebbe anche accesso ad essi. Il rischio esatto dipende molto dal tuo scenario.

Ho il sospetto, tuttavia, che ci siano rischi maggiori in gioco di quanto pensi. Supponiamo, ad esempio, che aprendo un file, il tuo innocente pezzo di software crea una copia in modo da non corrompere l'individuo - tuttavia, hai montato il file system in sola lettura, quindi crea facilmente una copia del file nella cartella temporanea. Fantastico, tranne - ha semplicemente copiato i tuoi dati da una partizione crittografata a una non crittografata, perdendola così.

Lo stesso potrebbe valere per gli strumenti di sincronizzazione. Questo sarebbe un modo abbastanza brutto per crearne uno - ma è concepibile che lo strumento possa copiare i file in una posizione temporanea in corso. Di nuovo, hai un problema di perdita.

Per essere un po 'più realistici - supponiamo che lo strumento di sincronizzazione copi i file in memoria di mmap e li copi tra loro. Che cosa succede se si verifica un arresto anomalo del sistema durante questo aggiornamento e la tua app viene sottoposta a core dumping? Diamine, cosa succede se la memoria dei driver di TrueCrypt viene anch'essa scaricata? Potrebbe contenere dati di file non crittografati.

Il fatto è che probabilmente non si è in grado di dedurre il contenuto di interi file da nessuno di questi scenari - ma come ottenere umido in casa, qualcosa perderà, da qualche parte. L'unico modo per essere assolutamente sicuri di avere tutto pronto è fare l'ovvio: criptare il lotto intero . Swap, disco, tutto.

Quindi, per rispondere alla domanda che hai chiesto: un utente malintenzionato può pulire qualsiasi cosa memorizzi lo strumento di sincronizzazione. Dare un'occhiata. Prendi Process Monitor , vedi dove sta memorizzando i dati e poi guarda cosa c'è dentro. Questo ti dirà esattamente quali dati sono trapelati.

Per rispondere alla domanda che non hai posto: non c'è modo di essere assolutamente certi di non perdere qualcosa usando un contenitore di TrueCrypt su un sistema non crittografato.

    
risposta data 05.05.2012 - 14:52
fonte
6

La domanda ora è "come posso eseguire la sincronizzazione a livello di file tra due contenitori TrueCrypt aperti su un singolo host senza alcuna perdita locale di dati dallo strumento di sincronizzazione?".

La risposta è che probabilmente non è possibile - certamente nessuno degli strumenti di sincronizzazione dei file ben consolidati (unisono, rsync, SyncToy, ecc.) promette di non avere tali fughe di notizie. Il loro obiettivo è puramente essere efficienti e affidabili.

Questo probabilmente perché farebbe molto lavoro per supportare un oscuro caso d'uso. Innanzitutto, se qualcuno riesce ad avvicinarsi abbastanza alla tua macchina per trarre vantaggio da questo tipo di perdite, allora hai problemi peggiori. E in secondo luogo, se hai davvero bisogno di controllare questa vulnerabilità, allora ci sono un paio di passaggi che puoi intraprendere, indipendentemente dallo strumento di sincronizzazione usato:

  • utilizza la crittografia completa del disco in modo che eventuali perdite siano anche crittografate.
  • sincronizza i volumi chiusi, eliminando tutte le perdite di strumenti di sincronizzazione a scapito delle prestazioni.

Nota: Specifico qui le perdite sync-tool poiché ci sono altri tipi di perdite: analisi differenziale dei contenitori o perdite dagli strumenti che usi per manipolare il contenuto del contenitore una volta aperto. Ma ancora, se l'aggressore ha compromesso la macchina per eseguire questi attacchi, allora hai problemi peggiori. Perché eseguire una difficile analisi differenziale delle modifiche del contenitore quando puoi semplicemente sostituire il binario TrueCrypt con qualcosa che ti invia il contenuto del contenitore?

(Un ultimo punto: ci sono molti buoni strumenti open source per la sincronizzazione dei file, quindi una terza alternativa è quella di inserirli nella tua versione super-sicura.)

    
risposta data 26.04.2012 - 15:10
fonte
0

IMO il modo più semplice e veloce per sincronizzare consiste nel montare due contenitori e utilizzare il tuo strumento preferito per sincronizzarli (mi piace come Robocopy). Quando hai un backup usa un contenitore DIVERSO. Se un container è una copia di un altro che qualcuno che ha accesso a entrambi può guardare i settori che cambiano e utilizzare tali informazioni.

Se crei due contenitori, non ci saranno problemi perché tutto sarebbe diverso, indipendentemente dal fatto che ci siano gli stessi file negli stessi posti.

Non so quale "strumento di sincronizzazione" si possa usare, ma se non si memorizzano informazioni temporanee (ad esempio l'area temp locale) durante la sincronizzazione si dovrebbe andare bene. Alcune persone pensano che dovresti disabilitare la memoria virtuale quando usi la crittografia ma IMO che non è richiesto e solo paranoia.

-edit- Se il tuo backup è accessibile da qualcuno ripetutamente (invece di solo l'attuale e il backup di cui sopra) puoi prendere in considerazione l'idea di creare un nuovo contenitore ogni volta e copiare tutti i dati come raccomandato da TrueCrypt link

-edit2- Ora sembra che tu stia chiedendo delle perdite quando usi gli strumenti. Non hai menzionato nessuno strumento quindi non posso commentare molto. Finché lo strumento non crea file temporanei durante la copia o ha un db / informazioni al di fuori del contenitore (a volte è nella directory dei dati dell'app degli utenti) di quanto dovrebbe andare bene. Come menzionato sopra mi piace Robocopy che è semplicemente un comando avanzato come un programma di copia di file. Vedi link personalmente non copio dati attibute né voglio file cancellati nel volume remoto. Penso di solito uso robocopy srcDriveOrFolder dst /S /W:1 /R:1

    
risposta data 04.05.2012 - 20:56
fonte

Leggi altre domande sui tag