
Paquet Zeek qui utilise OpenSSL pour détecter les tentatives d'exploitation de CVE-2020-0601
Ce script peut détecter les tentatives d'exploitation de CVE-2020-0601. Il vérifie si une courbe connue est utilisée dans un certificat - si ce n'est pas le cas, une notification est émise.
Exemple de notification dans 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 - - - - -
Pour journaliser les certificats suspects, veuillez utiliser
redef CVE_2020_0601::log_certs = T;
dans votre fichier local.bro/local.zeek pour activer l'extraction. Une fois cette option activée, les certificats suspects seront journalisés dans un nouveau fichier cve-2020-0601-certs.log.
Ce script nécessite OpenSSL 1.1.1. Il utilise les fonctionnalités OpenSSL pour tester si une courbe contenue dans un certificat est une courbe bien connue ou non.
Veuillez noter qu'il est très possible que ce test soit excessif. Si vous souhaitez un script plus simple, qui ne nécessite pas de charger du code C compilé dans votre installation Zeek, jetez un œil au dépôt https://github.com/0xxon/cve-2020-0601, qui utilise une solution de pur script. La solution de pur script a un taux de faux positifs potentiellement plus élevé - mais je n'ai actuellement aucun signalement de faux positifs.
Je n'ai actuellement aucun projet de réaliser une version de ce paquet qui compile avec des versions plus anciennes d'OpenSSL.