
Pacchetto Zeek per rilevare CVE-2020-0601
Questo script può rilevare tentativi di exploit per CVE-2020-0601. Esegue un semplice controllo per vedere se una curva conosciuta 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 - 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.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 un'installazione di OpenSSL che converta automaticamente le curve esplicite in nomi durante l'analisi del certificato. Molte versioni di OpenSSL fornite da diverse distribuzioni Linux non sembrano farlo; al momento non sono del tutto sicuro del perché.
L'uso di versioni di OpenSSL con comportamenti diversi porterà a un numero maggiore di falsi positivi. I test di questo pacchetto verificheranno il comportamento di OpenSSL durante l'installazione; se il test "explicit.zeek" fallisce, la tua versione di OpenSSL non si comporta come richiesto.
In questo caso, lo script avviserà anche su tutti i certificati che hanno definizioni di curve esplicite; questi dovrebbero essere molto molto rari, ma non sono di per sé un problema.
Esiste una seconda versione di questo plugin disponibile su https://github.com/0xxon/cve-2020-0601-plugin. La seconda versione utilizza le primitive di OpenSSL per controllare direttamente una curva del certificato. Tuttavia, la versione del plugin richiede OpenSSL 1.1.x - e richiede che il codice C++ venga compilato e caricato nella tua installazione di Zeek.
I vantaggi della versione del plugin su https://github.com/0xxon/cve-2020-0601-plugin sono una maggiore accuratezza - con avvisi più specifici che forniscono maggiori informazioni su un tentativo di exploit trovato. Gli svantaggi sono principalmente una maggiore complessità di installazione.
Sebbene questo plugin rilevi con successo il codice POC noto, è possibile (ma improbabile) che un'altra variante dell'attacco possa non essere rilevata.