Heartbleed: OpenSSL v 0.9.8o e OpenVPN v 2.1.3 Segnalazione vulnerabile

5

Secondo il progetto OpenSSL la versione in uso su un server da noi controllato non è vulnerabile: 0.9.8o. Secondo OpenVPN v 2.1.3 non è vulnerabile (anche in uso). Questi sono in esecuzione su Debian Squeeze (6) e sono pacchetti repo.

Tuttavia, quando si utilizzano due strumenti basati sul Web e il codice PoC Python, questo sito risulta vulnerabile su tutti e tre.

Questi strumenti sono ( SSLLabs , filippo.io / Heartbleed e il Python PoC ) per essere considerati attendibili? Qualcuno può darmi un'idea della loro affidabilità e possibilità di falsi positivi?

Uso gli SSLLab spesso per scopi diversi ed è storicamente abbastanza affidabile.

Output dal PoC Python:

     ptdeb ~/scripts/heartbleed # ./heartbleed.py REDACTED-DOMAIN.com
    Connecting...
    Sending Client Hello...
    Waiting for Server Hello...
     ... received message: type = 22, ver = 0302, length = 86
     ... received message: type = 22, ver = 0302, length = 1040
     ... received message: type = 22, ver = 0302, length = 4
    Sending heartbeat request...
     ... received message: type = 24, ver = 0302, length = 16384
    Received heartbeat response:
      0000: 02 40 00 D8 03 02 53 43 5B 90 9D 9B 72 0B BC 0C  [email protected][...r...
      0010: BC 2B 92 A8 48 97 CF BD 39 04 CC 16 0A 85 03 90  .+..H...9.......
      0020: 9F 77 04 33 D4 DE 00 00 66 C0 14 C0 0A C0 22 C0  .w.3....f.....".
      0030: 21 00 39 00 38 00 88 00 87 C0 0F C0 05 00 35 00  !.9.8.........5.
      0040: 84 C0 12 C0 08 C0 1C C0 1B 00 16 00 13 C0 0D C0  ................
      0050: 03 00 0A C0 13 C0 09 C0 1F C0 1E 00 33 00 32 00  ............3.2.
      0060: 9A 00 99 00 45 00 44 C0 0E C0 04 00 2F 00 96 00  ....E.D...../...
      0070: 41 C0 11 C0 07 C0 0C C0 02 00 05 00 04 00 15 00  A...............
      0080: 12 00 09 00 14 00 11 00 08 00 06 00 03 00 FF 01  ................
      0090: 00 00 49 00 0B 00 04 03 00 01 02 00 0A 00 34 00  ..I...........4.
      00a0: 32 00 0E 00 0D 00 19 00 0B 00 0C 00 18 00 09 00  2...............
      00b0: 0A 00 16 00 17 00 08 00 06 00 07 00 14 00 15 00  ................
      00c0: 04 00 05 00 12 00 13 00 01 00 02 00 03 00 0F 00  ................
      00d0: 10 00 11 00 23 00 00 00 0F 00 01 01 57 36 34 29  ....#.......W64)
      00e0: 20 41 70 70 6C 65 57 65 62 4B 69 74 2F 35 33 37   AppleWebKit/537
      00f0: 2E 33 36 20 28 4B 48 54 4D 4C 2C 20 6C 69 6B 65  .36 (KHTML, like
      0100: 20 47 65 63 6B 6F 29 20 43 68 72 6F 6D 65 2F 33   Gecko) Chrome/3
      0110: 33 2E 30 2E 31 37 35 30 2E 31 35 34 20 53 61 66  3.0.1750.154 Saf
      0120: 61 72 69 2F 35 33 37 2E 33 36 0D 0A 52 65 66 65  ari/537.36..Refe
      0130: 72 65 72 3A 20 68 74 74 70 73 3A 2F 2F 35 34 2E  rer: https://x.
      0140:                                                  x.x.x/admi
      0150: 6E 2F 75 73 65 72 5F 70 65 72 6D 69 73 73 69 6F  n/user_permissio
      0160: 6E 73 0D 0A 41 63 63 65 70 74 2D 45 6E 63 6F 64  ns..Accept-Encod
      0170: 69 6E 67 3A 20 67 7A 69 70 2C 64 65 66 6C 61 74  ing: gzip,deflat
      0180: 65 2C 73 64 63 68 0D 0A 41 63 63 65 70 74 2D 4C  e,sdch..Accept-L
      0190: 61 6E 67 75 61 67 65 3A 20 65 6E 2D 55 53 2C 65  anguage: en-US,e
      01a0: 6E 3B 71 3D 30 2E 38 0D 0A 43 6F 6F 6B 69 65 3A  n;q=0.8..Cookie:
      01b0: 20 6F 70 65 6E 76 70 6E 5F 73 65 73 73 5F 36 30   openvpn_sess_60
      01c0: 39 36 32 63 39 32 66 61 63 35 35 36 34 39 61 33  962c92fac55649a3
      01d0: 62 36 32 32 39 35 65 61 63 66 32 64 63 35 3D 62  b62295eacf2dc5=b
      01e0: 38 65 66 39 33 65 66 65 62 39 38 32 63 31 35 34  8ef93efeb982c154
      01f0: 65 30 33 36 30 65 37 65 35 66 30 32 66 38 30 3B  e0360e7e5f02f80;
      0200: 20 6F 70 65 6E 76 70 6E 5F 73 65 73 73 5F 38 36   openvpn_sess_86
      0210: 65 38 33 34 64 37 30 38 34 38 35 34 30 34 62 39  e834d708485404b9
      0220: 31 64 32 66 61 38 39 31 64 36 31 30 38 38 3D 35  1d2fa891d61088=5
      0230: 61 30 66 33 38 61 30 65 32 39 62 61 66 35 66 31  a0f38a0e29baf5f1
      0240: 36 32 33 39 30 35 33 31 36 34 61 66 38 33 38 3B  6239053164af838;
      0250: 20 6F 70 65 6E 76 70 6E 5F 73 65 73 73 5F 30 38   openvpn_sess_08
      0260: 64 62 34 38 65 63 32 33 65 30 34 65 35 38 36 37  db48ec23e04e5867
      0270: 33 35 66 34 61 32 34 38 35 66 62 31 39 38 3D 35  35f4a2485fb198=5
      0280: 38 33 62 62 63 33 36 38 61 65 35 35 36 65 30 66  83bbc368ae556e0f
      0290: 35 61 32 39 63 31 64 61 30 66 63 62 64 65 37 0D  5a29c1da0fcbde7.
      02a0: 0A 0D 0A 2A F3 EF 73 12 99 DB B9 B3 1C 6B 2E B7  ...*..s......k..
      02b0: 90 42 58 00 00 00 00 00 90 03 68 00 00 00 00 00  .BX.......h.....
      02c0: 90 03 68 00 00 00 00 00 90 03 68 00 00 00 00 00  ..h.......h.....
      02d0: 90 03 68 00 00 00 00 00 90 03 68 00 00 00 00 00  ..h.......h.....
      02e0: 90 03 68 00 00 00 00 00 90 03 68 00 00 00 00 00  ..h.......h.....
      ...
      3fe0: 90 03 68 00 00 00 00 00 90 03 68 00 00 00 00 00  ..h.......h.....
      3ff0: 90 03 68 00 00 00 00 00 90 03 68 00 00 00 00 00  ..h.......h.....

    WARNING: server returned more data than it should - server is vulnerable!
    
posta eficker 10.04.2014 - 01:56
fonte

4 risposte

4

Tutte le risposte a questa domanda mi hanno aiutato. Ciò che mi ha confuso è che il nome della libreria di OpenSSL non è in realtà il numero di versione reale. OpenVPN ha una propria libreria OpenSSL collegata staticamente e il nome della libreria era libssl.so.1.0.0. Si scopre che questo eseguibile della libreria non è in realtà la versione 1.0.0, è vulnerabile e deve essere aggiornato.

Vedi: link

Per trovare il numero di versione della libreria OpenSSL, devi eseguire "stringhe" sul binario. Di seguito è riportato il mio output prima di aggiornare OpenVPN:

# strings /usr/local/openvpn_as/lib/libssl.so.1.0.0 | grep OpenSSL
OpenSSLDie
SSLv2 part of OpenSSL 1.0.1c 10 May 2012
SSLv3 part of OpenSSL 1.0.1c 10 May 2012
TLSv1 part of OpenSSL 1.0.1c 10 May 2012
DTLSv1 part of OpenSSL 1.0.1c 10 May 2012
OpenSSL 1.0.1c 10 May 2012

Dopo l'aggiornamento di OpenVPN, l'output era il seguente:

# strings /usr/local/openvpn_as/lib/libssl.so.1.0.0 | grep OpenSSL
OpenSSLDie
SSLv2 part of OpenSSL 1.0.1g 7 Apr 2014
SSLv3 part of OpenSSL 1.0.1g 7 Apr 2014
TLSv1 part of OpenSSL 1.0.1g 7 Apr 2014
DTLSv1 part of OpenSSL 1.0.1g 7 Apr 2014
OpenSSL 1.0.1g 7 Apr 2014

Puoi vedere chiaramente che OpenSSL è stato aggiornato da 1.0.1c a 1.0.1.g.

Kudos to @ ser3484698 per i collegamenti alle versioni corrette di OpenVPN e sottolineando le librerie collegate staticamente OpenVPN.

    
risposta data 14.04.2014 - 22:00
fonte
2

Puoi avere diverse versioni di OpenSSL in vari punti del tuo sistema, oltre al possibile codice compilato staticamente.

Forse tiriamo su un altro paio di strumenti basati sul client da la mia risposta qui - in particolare, forse uno dei "vai" a quelli basati sulla lingua, e vedi se sono d'accordo, visto che hai già usato uno python.

Per verificare, tuttavia, apri un editor esadecimale in grado di leggere la memoria del server e cercare ciò che il tester sta restituendo (come un esempio, HxD può farlo su Windows). Se è possibile eseguire alcuni test, ottenere diversi blocchi di dati dei risultati e quindi abbinare i dati dei risultati ai contenuti della memoria del server di destinazione, allora si hanno alcune prove molto valide da far esaminare ad altri per la propria azienda.

    
risposta data 10.04.2014 - 05:33
fonte
2

Il tuo server web (test heartbleed.py https sulla porta 443) sembra essere interessato, ma non dice che il tempo OpenVPN è influenzato o meno. (come già affermato in Anti-weakpassword, potresti avere più librerie OpenSSL o librerie statiche collegate sul tuo sistema).

Per testare OpenVPN, ho scritto uno script Python simile che parla esplicitamente con OpenVPN per testare la vulnerabilità:

risposta data 11.04.2014 - 10:44
fonte
2

La libreria SSL in OpenVPN è vulnerabile i seguenti 2 file in / usr / local / openvpn_as / lib / es: libssl.so.1.0.0 e libcrypto.so.1.0.0

scarica una delle seguenti versioni per la tua distro all'indirizzo link

che dovrebbe risolvere il tuo problema.

Ricordati di eseguire il backup dei file di configurazione.

    
risposta data 14.04.2014 - 11:10
fonte

Leggi altre domande sui tag