
Pacchetto Zeek che utilizza OpenSSL per rilevare tentativi di exploit di CVE-2020-0601
Questo script può rilevare tentativi di exploit per CVE-2020-0601. Esegue un controllo per vedere se una curva nota viene utilizzata in un certificato - in caso contrario viene generato un avviso.
Esempio di avviso in notice.log:
1579043477.791522 CHhAvVGS1DHFjwGM9 192.241.209.49 46110 192.241.202.21 4433 F37z6n1B8zn1fZjpj application/x-x509-user-cert 192.241.202.21:4433/tcp tcp CVE_2020_0601::Unknown_X509_Curve ECC certificate with unknown curve; potential CVE-2020-0601 exploit attempt Curve validation code: 0 192.241.209.49 192.241.202.21 4433 - -Notice::ACTION_LOG 3600.000000 - - - - -
Per registrare i certificati sospetti, utilizzare
redef CVE_2020_0601::log_certs = T;
nel tuo local.bro/local.zeek per attivare l'estrazione. Una volta attivata, i certificati sospetti verranno registrati in un nuovo file cve-2020-0601-certs.log.
Questo script richiede OpenSSL 1.1.1. Utilizza la funzionalità di OpenSSL per verificare se una curva contenuta in un certificato è una curva ben nota o meno.
Si noti che è molto probabile che questo test sia eccessivo. Se si desidera uno script più semplice, che non richiede il caricamento di codice C compilato nella tua installazione Zeek, dai un'occhiata al repository https://github.com/0xxon/cve-2020-0601, che utilizza una soluzione puramente basata su script. La soluzione puramente script ha un potenziale tasso di falsi positivi più elevato - ma al momento non ho segnalazioni di falsi positivi.
Al momento non ho intenzione di creare una versione di questo pacchetto che compili con versioni precedenti di OpenSSL.