Cosa dovrebbe fare un operatore di un sito web per l'exploit di Heartbleed OpenSSL?

115

CVE-2014-0160

link

Questa dovrebbe essere una domanda canonica su come gestire l'exploit di Heartbeat.

Eseguo un server Web Apache con OpenSSL e alcune altre utilità basate su OpenSSL (come client). Cosa dovrei fare per attenuare i rischi?

Ilookedatsomeofthedatadumpsfromvulnerablesites,anditwas...bad.Isawemails,passwords,passwordhints.SSLkeysandsessioncookies.ImportantserversbrimmingwithvisitorIPs.AttackshipsonfireofftheshoulderofOrion,c-beamsglitteringinthedarkneartheTannhäuserGate.IshouldprobablypatchOpenSSL.

Credito: XKCD .

    
posta Deer Hunter 08.04.2014 - 05:10
fonte

5 risposte

65

Ci sono più da considerare rispetto ai nuovi certificati (o meglio, nuove coppie di chiavi) per ogni server interessato. Significa anche:

  • Patching dei sistemi interessati su OpenSSL 1.0.1g
  • Revoca dei vecchi keypair che sono stati appena sostituiti
  • Modifica di tutte le password
  • Invalidazione di tutte le chiavi e i cookie di sessione
  • Valutare il contenuto reale gestito dai server vulnerabili che potrebbero essere stati trapelati e reagire di conseguenza.
  • Valutare qualsiasi altra informazione che potrebbe essere stata rivelata, come gli indirizzi di memoria e le misure di sicurezza

Neel Mehta (l'ingegnere della sicurezza di Google che ha segnalato per la prima volta l'errore) ha twittato :

Heap allocation patterns make private key exposure unlikely for #heartbleed #dontpanic.

Tomas Rzepka (probabilmente dalla società di sicurezza svedese Certezza ) replied con quello che dovevano fare per recuperare le chiavi:

We can extract the private key successfully on FreeBSD after restarting apache and making the first request with ssltest.py

Il furto della chiave privata è stato dimostrato anche dalla Sfida CloudFlare .

E l'utente di Twitter makomk ha risposto in con :

I've recovered it from Apache on Gentoo as a bare prime factor in binary, but your demo's a lot clearer...It has a lowish success rate, more tries on the same connection don't help, reconnecting may, restarting probably won't...Someone with decent heap exploitation skills could probably improve the reliability. I'm not really trying that hard.

Ho riassunto i punti elenco qui sopra da heartbleed.com (enfasi mia):

What is leaked primary key material and how to recover?

These are the crown jewels, the encryption keys themselves. Leaked secret keys allows the attacker to decrypt any past and future traffic to the protected services and to impersonate the service at will. Any protection given by the encryption and the signatures in the X.509 certificates can be bypassed. Recovery from this leak requires patching the vulnerability, revocation of the compromised keys and reissuing and redistributing new keys. Even doing all this will still leave any traffic intercepted by the attacker in the past still vulnerable to decryption. All this has to be done by the owners of the services.

What is leaked secondary key material and how to recover?

These are for example the user credentials (user names and passwords) used in the vulnerable services. Recovery from this leaks requires owners of the service first to restore trust to the service according to steps described above. After this users can start changing their passwords and possible encryption keys according to the instructions from the owners of the services that have been compromised. All session keys and session cookies should be invalided and considered compromised.

What is leaked protected content and how to recover?

This is the actual content handled by the vulnerable services. It may be personal or financial details, private communication such as emails or instant messages, documents or anything seen worth protecting by encryption. Only owners of the services will be able to estimate the likelihood what has been leaked and they should notify their users accordingly. Most important thing is to restore trust to the primary and secondary key material as described above. Only this enables safe use of the compromised services in the future.

What is leaked collateral and how to recover?

Leaked collateral are other details that have been exposed to the attacker in the leaked memory content. These may contain technical details such as memory addresses and security measures such as canaries used to protect against overflow attacks. These have only contemporary value and will lose their value to the attacker when OpenSSL has been upgraded to a fixed version.

    
risposta data 08.04.2014 - 08:50
fonte
21

Copiata direttamente dal sito OpenSSL

Advisory sulla sicurezza di OpenSSL [07 aprile 2014]

TLS heartbeat read overrun (CVE-2014-0160)

Può esserci un controllo dei limiti mancanti nella gestione dell'estensione heartbeat TLS usato per rivelare fino a 64k di memoria su un client o server collegato.

Sono interessate solo le versioni 1.0.1 e 1.0.2-beta di OpenSSL 1.0.1f e 1.0.2-beta1.

Grazie per Neel Mehta di Google Security per aver scoperto questo bug e per Adam Langley e Bodo Moeller per preparare la correzione.

Gli utenti interessati dovrebbero eseguire l'aggiornamento a OpenSSL 1.0.1g. Utenti non in grado di immediatamente l'aggiornamento può in alternativa ricompilare OpenSSL con -DOPENSSL_NO_HEARTBEATS.

1.0.2 verrà corretto in 1.0.2-beta2.

  • Verifica se stai usando le versioni menzionate di OpenSSL, se sì lo aggiusti a 1.0.1g (compilandolo da origine e avvolge il pacchetto con, ad esempio, FPM ).

  • (aggiunta di atk) Successivamente, sostituisci i certificati esposti e li revocano.

  • (Aggiunta di dr.jimbob) Vale la pena sottolineare che OpenSSH non è influenzato dal bug di OpenSSL. Mentre OpenSSH usa openssl per alcune funzioni di generazione di chiavi, non usa il protocollo TLS (e in particolare l'estensione del battito cardiaco TLS che attacca gli Heartbleed). Quindi non c'è motivo di preoccuparsi che SSH venga compromesso, sebbene sia sempre una buona idea aggiornare openssl a 1.0.1g o 1.0.2-beta2 (ma non devi preoccuparti di sostituire i keypair SSH).

    • (OrangeDog): @drjimbob a meno che le chiavi SSH non siano nella memoria di un processo che sta utilizzando il TLS di OpenSSL. Improbabile ma possibile.
  • (aggiunta da Deer Hunter): a giudicare dai tentativi attivi segnalati nella DMZ , la cosa migliore ora è ARRESTARE IL SERVER FRIKKIN AL PIÙ SEMPLICE . Le sessioni vengono dirottate, le password trapelate, i dati aziendali riservati rivelati.

  • (Un altro bit per gentile concessione di EFF.org ): "Per raggiungere una conclusione più solida sulla storia di Heartbleed, sarebbe meglio per la comunità di networking provare a replicare le scoperte di Koeman. Qualsiasi operatore di rete con registri di traffico a livello TLS può controllare heartbeat dannosi, che di solito hanno un payload TCP di 18 03 02 00 03 01 40 00 o 18 03 01 00 03 01 40 00 , anche se il 0x4000 alla fine può essere sostituito con numeri inferiori, in particolare nelle implementazioni che tentano di leggere più pozzi di malloc. " In poche parole, se si conservano registri TLS dettagliati (probabilmente per la maggior parte degli operatori), verificare i tentativi di sfruttamento del passato (e condividere ciò che si è ottenuto).

Corrispondenza di Q & A su ServerFault:

link

link

link

link

Un sommario ben scritto su AskUbuntu: link

Un esaustivo Q & A su Unix & Linux SE: link

Se per caso esegui un server su Mac OS X: link

Recupero della chiave SSL privata utilizzando l'emorragia: link Sì, è possibile!

    
risposta data 08.04.2014 - 05:30
fonte
9

[a cura]

Ho creato uno strumento per verificare lo stato del tuo SSL e vedere se l'heartbeat è abilitato e vulnerabile. Strumento su: link

Ce n'è un altro al link

Se sei vulnerabile, aggiorna i tuoi pacchetti OpenSSL & rinnova i tuoi certificati!

    
risposta data 08.04.2014 - 05:37
fonte
3

Si noti che se si utilizza un provider basato sul cloud o una rete di distribuzione del contenuto e sono vulnerabili, i contenuti che perdono nel sito Web verranno mescolati con il contenuto di tutti gli altri siti Web che utilizzano questo provider. Ho appena appena visto che con Incapsula , dove il contenuto di un sito web di una banca è trapelato sul sito di criptovaluta. Ora sono riparati per fortuna.

    
risposta data 08.04.2014 - 16:41
fonte
3

Jspenguin ha scritto uno strumento offline per verificare se un server ha il difetto. Scaricalo, controllalo ed eseguilo.

Ho anche scritto ssl-heartbleed-check.pl (anche uno strumento offline) per verificare se OpenSSL usato da il tuo stack Perl (che su * n * x è spesso l'opensl usato dall'intero sistema) è interessato. Questo può aiutarti a determinare se sei interessato dal lato client.

Nmap 6.45 include uno script ssl-heartbleed . ssl-heartbleed.nse può anche essere utilizzato insieme a nmap ≥6.25 .

    
risposta data 08.04.2014 - 16:13
fonte

Leggi altre domande sui tag