Come mitigare gli attacchi di cuore prima del giorno zero

5

Ogni volta che i dati sensibili come una password vengono utilizzati su un server, risiedono in memoria per un breve periodo di tempo. Dato che esistono difetti di sicurezza come il heartbleed che hanno la capacità di "sanguinare" la memoria per i loro contenuti, quali difese preventive di tipo esistono per questi tipi di attacchi prima dello zero day?

Ci sono metodi là fuori che cancellano la memoria "sensibile" dopo l'uso in modo tale che per esempio una password non indugia (anche liberata) in un'area della memoria in cui un eventuale overflow del buffer potrebbe accedere?

    
posta Aedazan 05.11.2015 - 04:54
fonte

3 risposte

7

Il problema principale con il heartbleed non erano quei dati segreti inutilizzati che erano ancora in memoria ma che la memoria conteneva dati segreti che erano in uso. Si trattava di dati provenienti da richieste parallele, ma più importante era la chiave privata del certificato necessaria per stabilire gli handshake SSL.

Una tecnica tipica utilizzata per proteggere da questo tipo di attacchi è separazione dei privilegi . In caso di handshake SSL, potrebbe utilizzare un HSM che può crittografare / firmare ma non rendere mai accessibile la chiave. Potrebbe essere una separazione a livello di processo impiegata ad esempio da OpenSSH. Oppure i calcoli critici potrebbero anche essere emessi da un altro sistema computerizzato controllato da una parte diversa come fatto con Cloudless Keyless SSL .

    
risposta data 05.11.2015 - 06:55
fonte
0

Assolutamente. Pulire la memoria di dati critici è stata comune in C / C ++ per decenni. .NET fornisce anche una classe SecureString documentata come :

Represents text that should be kept confidential, such as by deleting it from computer memory when no longer needed.

Ma i dati in genere devono essere in chiaro in memoria ad un certo punto nel tempo, quindi nessuna soluzione è perfetta.

    
risposta data 05.11.2015 - 05:36
fonte
0

Il metodo con cui ftp molto sicuro usa è gestire l'utilizzo di stringhe e buffer tramite un'API. Non è esattamente la cancellazione dei dati (l'opzione suggerita dalla tua domanda), ma è un approccio al problema.

link

    
risposta data 08.11.2015 - 09:50
fonte

Leggi altre domande sui tag