
OpenSSL을 사용하여 CVE-2020-0601 악용 시도를 탐지하는 Zeek 패키지
이 스크립트는 CVE-2020-0601에 대한 익스플로잇 시도를 탐지할 수 있습니다. 인증서에 알려진 곡선이 사용되었는지 확인하며, 그렇지 않은 경우 공지가 발생합니다.
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 - - - - -
의심스러운 인증서를 로깅하려면 다음을 사용하세요.
redef CVE_2020_0601::log_certs = T;
local.bro/local.zeek에 추가하여 추출을 활성화합니다. 이 옵션이 켜지면 의심스러운 인증서가 새 cve-2020-0601-certs.log 파일에 기록됩니다.
이 스크립트는 OpenSSL 1.1.1이 필요합니다. 인증서에 포함된 곡선이 잘 알려진 곡선인지 확인하기 위해 OpenSSL 기능을 사용합니다.
이 테스트가 지나칠 가능성이 매우 높다는 점에 유의하세요. Zeek 설치에 컴파일된 C 코드를 로드할 필요가 없는 더 간단한 스크립트를 원하신다면 https://github.com/0xxon/cve-2020-0601의 저장소를 살펴보세요. 순수 스크립팅 솔루션을 사용합니다. 순수 스크립트 솔루션은 오탐(false positive) 가능성이 더 높지만, 현재까지 오탐에 대한 보고는 없습니다.
현재 이 패키지를 이전 버전의 OpenSSL과 호환되도록 컴파일할 계획은 없습니다.