Domanda:
Cosa dovrebbe fare un operatore di un sito web riguardo all'exploit Heartbleed OpenSSL?
Deer Hunter
2014-04-08 08:10:31 UTC
view on stackexchange narkive permalink

CVE-2014-0160

http://heartbleed.com

This is supposed to be a canonical question on dealing with the Heartbeat exploit.

I run an Apache web server with OpenSSL, as well as a few other utilities relying on OpenSSL (as client). What should I do to mitigate the risks?



Obligatory XKCD

 I looked at some of the data dumps from vulnerable sites, and it was ... bad. I saw emails, passwords, password hints. SSL keys and session cookies. Important servers brimming with visitor IPs. Attack ships on fire off  the shoulder of Orion, c-beams glittering in the dark near the Tannhäuser Gate. I should probably patch OpenSSL.

Credit: XKCD.

Vale la pena sottolineare che OpenSSH non è influenzato dal bug di OpenSSL. Sebbene OpenSSH utilizzi openssl per alcune funzioni di generazione di chiavi, non utilizza il protocollo TLS (e in particolare l'estensione heartbeat TLS che ha provocato gli attacchi heartbleed). Quindi non c'è bisogno di preoccuparsi che SSH venga compromesso, anche se è comunque una buona idea aggiornare openssl a 1.0.1go 1.0.2-beta2 (ma non devi preoccuparti di sostituire le coppie di chiavi SSH).
@Adnan: tranne per il fatto che ci sono alcune altre cose da fare con i certificati ... Se pensi che non serva a niente, VTC.
@drjimbob a meno che le tue chiavi SSH non siano nella memoria di un processo che utilizza TLS di OpenSSL. Improbabile ma possibile.
A giudicare dai tentativi attivi segnalati nella [DMZ] (http://chat.stackexchange.com/rooms/151/the-dmz), la cosa migliore ora è ** FERMARE IL SERVER FRIKKIN AL PIÙ PRESTO **. Le sessioni vengono dirottate, le password trapelate, i dati aziendali riservati rivelati.
@OrangeDog - Sebbene "possibile", sembra richiedere un exploit completamente separato. Non c'è motivo (almeno sui miei sistemi) che qualsiasi processo che ha accesso a una chiave privata SSH utilizzi anche TLS. Le chiavi private SSH sono limitate a ssh, sshd e ssh-agent. Quindi preoccupati di cambiare i tuoi certificati TLS usati per HTTPS, FTPS, email, ecc. Preoccupati di cambiare tutte le password che hai mai usato su una connessione HTTPS o TLS a un sito web che potrebbe aver utilizzato OpenSSL negli ultimi tre anni che apprezzi. Ma in realtà non c'è motivo legittimo per preoccuparsi delle chiavi SSH.
Apparentemente, Gabriel Weinberg @ DuckDuckGo aveva i suoi server [patchati] (https://twitter.com/yegg/status/453590663695966208). Qualys ha incorporato il controllo Heartbleed nel proprio [strumento di valutazione] (https://www.ssllabs.com/ssltest/analyze.html?d=duckduckgo.com&s=50.18.192.251).
Per collegare: [Cosa dovrebbero fare gli utenti finali su Heartbleed?] (Http://security.stackexchange.com/questions/55083), [Come funziona esattamente l'exploit OpenSSL TLS Heartbeat (Heartbleed)] (http: // security. stackexchange.com/questions/55116)
Aggiornamento di Node.JS: [indutny ha commentato l'8 aprile 2014: No, non è che HEARTBEATS è disabilitato dal nodo v0.10.2.] (Https://github.com/joyent/node/issues/7424#issuecomment-39820298 )
[Un altro collegamento utile] (http://security.stackexchange.com/questions/7790/guidance-for-implementors-of-https-only-sites-server-side)
Per facilità di comprensione: http://security.stackexchange.com/questions/55343/how-to-explain-heartbleed-without-technical-terms. Per i binari statici: http://security.stackexchange.com/questions/55107/heartbleed-how-to-find-out-applications-using-statical-compiled-version-of-ope
Per ancora più "facilità di comprensione": http://xkcd.com/1354/
Cinque risposte:
scuzzy-delta
2014-04-08 11:50:03 UTC
view on stackexchange narkive permalink

C'è di più da considerare oltre a nuovi certificati (o meglio, nuove coppie di chiavi) per ogni server interessato. Significa anche:

  • Applicazione di patch ai sistemi interessati a OpenSSL 1.0.1g
  • Revoca delle vecchie coppie di chiavi appena sostituite
  • Modifica di tutte le password
  • Invalidare tutte le chiavi di sessione e i cookie
  • Valutare il contenuto effettivo gestito dai server vulnerabili che potrebbero essere trapelati e reagire di conseguenza.
  • Valutare qualsiasi altra informazione che potrebbe sono stati rivelati, come indirizzi di memoria e misure di sicurezza

Neel Mehta (l'ingegnere della sicurezza di Google che per primo ha segnalato il bug) ha twittato :

I modelli di allocazione degli heap rendono improbabile l'esposizione della chiave privata per #heartbleed #dontpanic.

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

Possiamo estrarre la chiave privata con successo su FreeBSD dopo aver riavviato apache e aver fatto la prima richiesta con ssltest .py

Furto di chiavi private è stato dimostrato anche da CloudFlare Challenge.

E l'utente di Twitter makomk è intervenuto con:

L'ho recuperato da Apache su Gentoo come un fattore primo nudo in binario, ma la tua demo è molto più chiara ... Ha una percentuale di successo bassa, più tentativi sulla stessa connessione non aiutano, la riconnessione potrebbe , il riavvio probabilmente non lo farà ... Qualcuno con discrete capacità di sfruttamento dell'heap potrebbe probabilmente migliorare l'affidabilità. Non ci sto davvero provando così tanto.


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

Qual è il materiale della chiave primaria trapelato e come recuperarlo?

Questi sono i gioielli della corona, le stesse chiavi di crittografia . Le chiavi segrete trapelate consentono all'autore dell'attacco di decrittografare qualsiasi traffico passato e futuro ai servizi protetti e per impersonare il servizio a piacimento. Qualsiasi protezione fornita dalla crittografia e dalle firme nei certificati X.509 può essere aggirata. Il ripristino da questa perdita richiede la patch della vulnerabilità, la revoca delle chiavi compromesse e la riemissione e la ridistribuzione di nuove chiavi. Anche facendo tutto ciò, il traffico intercettato dall'attaccante in passato sarà ancora vulnerabile alla decrittazione. Tutto ciò deve essere fatto dai proprietari dei servizi.

Che cosa è trapelato il materiale della chiave secondaria e come recuperarlo?

Questi sono ad esempio le credenziali utente (nomi utente e password) utilizzate nei servizi vulnerabili. Il ripristino da queste perdite richiede prima che i proprietari del servizio ripristinino la fiducia nel servizio in base ai passaggi sopra descritti. Dopodiché, gli utenti possono iniziare a modificare le proprie password e le eventuali chiavi di crittografia secondo le istruzioni dei proprietari dei servizi che sono stati compromessi. Tutte le chiavi di sessione e i cookie di sessione devono essere invalidi e considerati compromessi.

Che cosa è contenuto protetto trapelato e come recuperarlo?

Questo è il contenuto effettivo gestito dai servizi vulnerabili . Possono essere dettagli personali o finanziari, comunicazioni private come e-mail o messaggi istantanei, documenti o qualsiasi cosa che meriti di essere protetta mediante crittografia. Solo i proprietari dei servizi saranno in grado di stimare la probabilità di ciò che è trapelato e dovrebbero informare i propri utenti di conseguenza. La cosa più importante è ripristinare la fiducia nel materiale della chiave primaria e secondaria come descritto sopra. Solo questo consente un utilizzo sicuro dei servizi compromessi in futuro.

Che cosa è il collaterale trapelato e come recuperarlo?

Il collaterale trapelato sono altri dettagli che sono stati esposti all'aggressore nel contenuto della memoria trapelato. Questi possono contenere dati tecnici dettagli come indirizzi di memoria e misure di sicurezza come i canarini usati per proteggere dagli attacchi di overflow. Questi hanno solo un valore contemporaneo e perderanno il loro valore per l'attaccante quando OpenSSL sarà stato aggiornato a una versione fissa.

"Le chiavi segrete trapelate consentono all'autore dell'attacco di decrittografare il traffico passato e futuro verso i servizi protetti": non dovevamo avere una segretezza in avanti perfetta per proteggerci da questo?
Citando da heartbleed.com: * "L'uso di Perfect Forward Secrecy (PFS), che è purtroppo raro ma potente, dovrebbe proteggere le comunicazioni passate dalla decrittazione retrospettiva." * Avvertenza: [Un trapelato] (https://twitter.com/ivanristic / status / 453280081897467905) [codice ticket] (http://en.wikipedia.org/wiki/Transport_Layer_Security#Session_tickets) comprometterebbe tutte le sessioni firmate.
È improbabile che le chiavi SSL perdano tramite Heartbleed perché è improbabile che siano presenti in queste regioni di memoria. D'altra parte, è ** molto probabile ** che i cookie degli utenti, inclusi i cookie di sessione, le password degli utenti e i dati AJAX si trovino lì.
@kravietz Buona chiamata (vedi modifica / tweet da Neel Mehta)
@scuzzy-delta In realtà sto effettuando dei test in questo momento e nei dump HB trovo molti certificati X.509, quindi sono meno sicuro di non trovare chiavi private lì. D'altra parte, la presenza dei certificati può essere spiegata: il server SSL invia un percorso del certificato a ogni nuovo client, in modo che possano essere presenti nella memoria operativa. D'altra parte le chiavi private sono ** anche ** utilizzate su ogni connessione, ma non sono sicuro che vengano copiate in memoria con la stessa frequenza dei certificati.
Oh, e ora è ufficiale: dobbiamo rigenerare le chiavi private e riemettere i certificati ... https://www.cloudflarechallenge.com/heartbleed
hoa
2014-04-08 08:30:01 UTC
view on stackexchange narkive permalink

Directly copied from OpenSSL site

OpenSSL Security Advisory [07 Apr 2014]

TLS heartbeat read overrun (CVE-2014-0160)

A missing bounds check in the handling of the TLS heartbeat extension can beused to reveal up to 64k of memory to a connected client or server.

Only 1.0.1 and 1.0.2-beta releases of OpenSSL are affected including1.0.1f and 1.0.2-beta1.

Thanks for Neel Mehta of Google Security for discovering this bug and toAdam Langley and Bodo Moeller forpreparing the fix.

Affected users should upgrade to OpenSSL 1.0.1g. Users unable to immediatelyupgrade can alternatively recompile OpenSSL with -DOPENSSL_NO_HEARTBEATS.

1.0.2 will be fixed in 1.0.2-beta2.


  • Check if you're using the mentioned versions of OpenSSL, if yes patch it to 1.0.1g (by compiling it from source and wrapping the package with e.g. FPM).

  • (Addition by atk) Afterwards, replace your exposed certificates and revoke them.

  • (Addition by dr.jimbob) It's worth pointing out that OpenSSH is not affected by the OpenSSL bug. While OpenSSH does use openssl for some key-generation functions, it does not use the TLS protocol (and in particular the TLS heartbeat extension that heartbleed attacks). So there is no need to worry about SSH being compromised, though it is still a good idea to update openssl to 1.0.1g or 1.0.2-beta2 (but you don't have to worry about replacing SSH keypairs).

    • (OrangeDog): @drjimbob unless your SSH keys are in the memory of a process that's using OpenSSL's TLS. Unlikely but possible.
  • (Addition by Deer Hunter): Judging by the active attempts being reported in the DMZ, the best thing now is STOPPING THE FRIKKIN SERVER ASAP. Sessions are being hijacked, passwords leaked, confidential business data revealed.

  • (An extra bit courtesy of EFF.org): "To reach a firmer conclusion about Heartbleed's history, it would be best for the networking community to try to replicate Koeman's findings. Any network operators who have extensive TLS-layer traffic logs can check for malicious heartbeats, which most commonly have a TCP payload of 18 03 02 00 03 01 40 00 or 18 03 01 00 03 01 40 00, although the 0x4000 at the end may be replaced with lower numbers, particularly in implementations that try to read multiple malloc chunk bins." In a nutshell, if you keep detailed TLS logs (not likely for the majority of operators out there), check for past exploitation attempts (and share what you've got).


Related Q&A over at ServerFault:

https://serverfault.com/questions/587338/does-heartbleed-affect-aws-elastic-load-balancer

https://serverfault.com/questions/587329/heartbleed-what-is-it-and-what-are-options-to-mitigate-it

https://serverfault.com/questions/587348/best-method-to-update-ubuntu-13-10-to-path-the-heartbleed-bug

https://serverfault.com/questions/587324/heartbleed-how-to-reliably-and-portably-check-the-openssl-version

A well-written summary over at AskUbuntu: https://askubuntu.com/a/444905

A comprehensive Q&A at Unix&Linux SE: https://unix.stackexchange.com/questions/123711/how-do-i-recover-from-the-heartbleed-bug-in-openssl

If by any chance you run a server on Mac OS X: https://apple.stackexchange.com/questions/126916/what-versions-of-os-x-are-affected-by-heartbleed

Retrieving Private SSL Key using heart bleed: http://blog.cloudflare.com/answering-the-critical-question-can-you-get-private-ssl-keys-using-heartbleed Yes, it's possible!

Quindi sostituire i certificati esposti e revocarli.
Luke Rehmann
2014-04-08 08:37:59 UTC
view on stackexchange narkive permalink

[edited”

Ho creato uno strumento per controllare lo stato del tuo SSL e vedere se heartbeat è abilitato e vulnerabile. Strumento su: http://rehmann.co/projects/heartbeat/

Ce n'è un altro su http://filippo.io/Heartbleed/

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

Amico, hai una versione offline con sorgente? Se il mio sito è vulnerabile, sarei pazzo a lasciarlo acceso.
@Deer Hunter È possibile arrestare qualsiasi servizio che utilizza TLS (apache, nginx, email?). SSH ** NON ** è interessato da questo bug.
Un altro checker: http://filippo.io/Heartbleed/ (Filippo ha messo la sua fonte su GitHub!)
Perché dovremmo fidarci del tuo strumento per non sfruttare la vulnerabilità?
@MichaelKjorling: data l'enorme copertura del bug, sono sicuro che ci sono decine di scanner ovunque.
@DeerHunter Senza dubbio. Ma questo è lo scambio di stack di sicurezza delle informazioni e preferirei non puntare quegli scanner esattamente verso i miei server. :)
-1 perché si tratta di uno strumento online non verificabile, quindi non affidabile.
@DeerHunter: Uno strumento online, anche con il codice sorgente, è ancora uno strumento online. Niente garantisce che il codice in esecuzione sia il codice pubblicizzato. Il problema principale non è che il sito sfrutti direttamente il problema, ma piuttosto che registra l'immagine della memoria catturata e la conserva per dopo.
@dolmen: nulla * garantisce * che questo strumento non scansionerà il tuo sito anche se non gli dici il tuo nome di dominio (supponendo che il tuo sito possa essere connesso, ofc). Ci sono persone che scansionano ogni sito che riescono a trovare per il vuln. Alcune di queste persone sono ricercatori sulla sicurezza.
Sfortunatamente, controllare la versione di OpenSSL usando `openssl version -a` non è un modo molto affidabile per vedere se è necessario applicare una patch. Alcune versioni di Ubuntu e Debian continuano a mostrare un numero di versione inferiore, anche se vengono applicate tutte le patch. Maggiori dettagli su http://serverfault.com/questions/587324/heartbleed-how-to-reliably-and-portably-check-the-openssl-version
dolmen
2014-04-08 19:13:59 UTC
view on stackexchange narkive permalink

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 utilizzato dal tuo stack Perl (che su * n * x è spesso il openssl usato dall'intero sistema) ne risente. 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.

Lo strumento offline di Jspenguin è un file a zero byte e il bucket è un accesso negato.
Eccone un altro (o mirror) https://gist.github.com/takeshixx/10107280
Il sito di Js Penguin è inattivo, ecco uno specchio del suo strumento come appariva la sera del 7 aprile. http://rehmann.co/projects/heartbeat/ssltest.py
kravietz
2014-04-08 19:41:34 UTC
view on stackexchange narkive permalink

Tieni presente che se utilizzi un provider basato su cloud o una rete di distribuzione di contenuti e questi sono vulnerabili, il contenuto trapelato del tuo sito Web verrà mischiato con il contenuto di tutti gli altri siti Web che utilizzano questo provider. L'ho appena appena visto con Incapsula, dove il contenuto del sito web di una banca è trapelato lungo il sito web di criptovaluta. Fortunatamente ora sono stati risolti.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...