
Paquete de Zeek que utiliza OpenSSL para detectar intentos de explotación de CVE-2020-0601
Este script puede detectar intentos de explotación para CVE-2020-0601. Realiza una comprobación para ver si se utiliza una curva conocida en un certificado; si no es el caso, se genera una notificación.
Ejemplo de notificación en 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 - - - - -
Para registrar certificados sospechosos, use
redef CVE_2020_0601::log_certs = T;
en su local.bro/local.zeek para activar la extracción. Una vez activado, los certificados sospechosos se registrarán en un nuevo archivo cve-2020-0601-certs.log.
Este script requiere OpenSSL 1.1.1. Utiliza funcionalidad de OpenSSL para probar si una curva contenida en un certificado es una curva bien conocida o no.
Tenga en cuenta que es muy posible que esta prueba sea excesiva. Si desea un script más simple, que no requiera cargar código C compilado en su instalación de Zeek, vea el repositorio en https://github.com/0xxon/cve-2020-0601, que utiliza una solución de script puro. La solución de script puro tiene una tasa potencial de falsos positivos más alta, pero actualmente no tengo informes de falsos positivos.
Actualmente no tengo planes de hacer una versión de este paquete que compile con versiones anteriores de OpenSSL.