
Zeek-Paket zur Erkennung von CVE-2020-0601
Dieses Skript kann Exploit-Versuche für CVE-2020-0601 erkennen. Es führt eine einfache Prüfung durch, ob eine bekannte Kurve in einem Zertifikat verwendet wird – falls nicht, wird eine Meldung ausgegeben.
Beispielmeldung 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 - - - - -
Um verdächtige Zertifikate zu protokollieren, verwenden Sie bitte
redef CVE_2020_0601::log_certs = T;
in Ihrer local.zeek, um die Extraktion zu aktivieren. Sobald dies aktiviert ist, werden verdächtige Zertifikate in eine neue Datei cve-2020-0601-certs.log protokolliert.
Dieses Skript benötigt eine OpenSSL-Installation, die explizite Kurven während der Zertifikatsanalyse automatisch in Namen umwandelt. Viele von verschiedenen Linux-Distributionen ausgelieferte OpenSSL-Versionen scheinen dies nicht zu tun; ich bin mir derzeit nicht ganz sicher, warum das der Fall ist.
Die Verwendung von OpenSSL-Versionen mit abweichendem Verhalten führt zu einer höheren Anzahl von Fehlalarmen. Die Tests für dieses Paket überprüfen das OpenSSL-Verhalten während der Installation; wenn der Test „explicit.zeek“ fehlschlägt, verhält sich Ihre OpenSSL-Version nicht wie erforderlich.
In diesem Fall wird das Skript auch auf alle Zertifikate mit expliziten Kurvendefinitionen aufmerksam; diese sollten sehr sehr selten sein, sind aber an sich kein Problem.
Eine zweite Version dieses Plugins ist unter https://github.com/0xxon/cve-2020-0601-plugin verfügbar. Die zweite Version verwendet OpenSSL-Primitive, um die Kurve eines Zertifikats direkt zu überprüfen. Die Plugin-Version erfordert jedoch OpenSSL 1.1.x – und der Aufbau und das Laden von C++-Code in Ihrer Zeek-Installation sind erforderlich.
Die Vorteile der Plugin-Version unter https://github.com/0xxon/cve-2020-0601-plugin sind eine höhere Genauigkeit – mit spezifischeren Meldungen, die mehr Informationen über einen gefundenen Exploit-Versuch geben. Die Nachteile sind meist der höhere Installationsaufwand.
Obwohl dieses Plugin bekannte POC-Codes erfolgreich erkennt, ist es möglich (aber unwahrscheinlich), dass eine andere Variante des Angriffs nicht erkannt wird.