
TLS 1.2 이하에서 침해된 eMudhra 중간 인증서가 사용되는 경우를 탐지하는 Zeek 패키지입니다.
이것은 손상되었거나 잘 알려진 개인 키를 사용하는 eMudhra 중간 CA 인증서를 사용하는 연결을 탐지하는 Zeek 패키지입니다.
자세한 내용은 원본 Bugzilla 항목 또는 https://emudhra.we-have-a-problem.com/ 을 참조하십시오.
이 탐지는 TLS 1.2 이하를 사용하는 연결에서만 작동한다는 점에 유의하십시오. TLS 1.3에서는 인증서가 암호화되어 Zeek이 어떤 인증서가 네트워크를 통해 전송되는지 알 수 없습니다.
eMudhra CA는 매우 취약한 ECDSA 개인 키(예: 숫자 4인 키)를 가진 여러 중간 CA 인증서를 발급했습니다.
따라서 이는 누구나 영향을 받은 CA 인증서 중 하나에 의해 서명된 인증서를 쉽게 생성할 수 있게 합니다. 현재까지 알려진 바로는 8개의 영향을 받은 키가 있으며, 그중 6개는 웹 PKI에서 신뢰된 인증서에 있습니다.
주요 웹 브라우저는 영향을 받은 중간 CA 인증서를 즉시 신뢰하지 않게 했지만, 쉽게 업데이트할 수 없는 장치들은 상당한 기간 동안 이러한 악성 인증서를 수용할 위험이 있습니다.
자세한 배경과 타임라인은 이 Bugzilla 항목을 참조하십시오.
이 패키지는 영향을 받은 중간 CA 인증서의 SPKI(Subject Public Key Info)와 일치시킵니다. SPKI는 손상된 키를 포함하는 인증서의 부분입니다. 따라서 잠재적으로 알려지지 않은 교차 서명이나 동일한 키로 생성될 수 있는 다른 인증서도 탐지합니다.
SPKI 목록:
| 중간 인증서 | SPKI SHA-256 |
|---|---|
| EM EV TLS CA - G3B (eMudhra BV) | E0254C7FCDC265E2F0F8A428DABB75AB4AE039B4872D62F5EE57F0877D5A8A41 |
| EM OV TLS CA - G3B (eMudhra BV) | 43BFFA19D6EF651451F6841E019931E96F6F2EAEFF28AB4B6F1CE4576DE2717B |
| EM DV TLS CA - G3B (eMudhra BV) | EBED6475C2C2D80FCB199F3FE8DD6E6B3CE60B77EB15D4E42C3DEC0C6F5B5105 |
| EM EV TLS CA - G3C (eMudhra Inc) | 5C0660A2B164910D8FF589C18E14552E9E0EC237DCEFE2CB736D41A4811F81A0 |
| EM OV TLS CA - G3C (eMudhra Inc) | 63ECEFEE431D49523BC1136C4E72D0206A477086CAF606CD5CF025686C109CF8 |
| EM DV TLS CA - G3C (eMudhra Inc) | 49DD353DC2B919A3770645117D0E60C16115E7D1BC259EEFE734B00EA434FE5F |
| EM OV CS CA - G3B (eMudhra BV) | EC4FFA1AD0AC88081314B7AAFFEF6A91F97CD57291BB5BA686C5415F5EB4F6B6 |
| EM OV CS CA - G3C (eMudhra Inc) | 92C063D67E8F14DB71D288E11266FFDAF69CBF115F7BAB14F3BC2F68D25E0E30 |
zkg install corelight/emudhra-weak-keys
또는 스크립트를 직접 로드하십시오:
zeek -r trace.pcap /path/to/emudhra-weak-keys/scripts
이 패키지는 Zeek이 파싱하는 모든 인증서를 목록과 대조하여 검사합니다.
모든 공지 유형은 EMudhraWeakKeys:: 아래에 있습니다.
| 공지 | 관찰 내용 |
|---|---|
Compromised_Intermediate_Cert | 연결에서 영향을 받은 중간 인증서가 확인됨 |
Compromised_Intermediate_Cert_Established | 영향을 받은 인증서가 확인되고 핸드셰이크가 완료됨 |
Compromised_Intermediate_Issuer | 연결에서 영향을 받은 발급자를 가진 인증서가 확인됨 |
Compromised_Intermediate_Issuer_Established | 영향을 받은 발급자가 확인되고 핸드셰이크가 완료됨 |
결과는 notice.log에 기록되며, 추가 로그는 생성되지 않습니다.
기본적으로 _Cert 공지는 서버 IP 주소당 하루에 한 번, _Established 공지는 클라이언트 IP 주소당 하루에 한 번 발행됩니다.
Compromised_Intermediate_Cert 공지는 연결에 손상된 인증서가 존재했음을 표시하는 반면, Compromised_Intermediate_Issuer 공지는 인증서의 발급자 문자열에만 일치한다는 점에 유의하십시오. 이는 더 약한 신호입니다.
또한 Established 공지는 핸드셰이크가 완료되었는지만 추적하며, 이것이 반드시 데이터가 교환되었음을 의미하지는 않습니다. 일부 클라이언트는 인증서 검증에 실패하더라도 핸드셰이크를 완료하고 그 후에야 중단할 수 있습니다.
스크립트는 클라이언트와 서버 인증서 체인을 모두 검사합니다. 클라이언트 인증서에서 이러한 인증서를 보게 될 가능성은 낮습니다(만약 보게 된다면 - 저희에게 알려 주시기 바랍니다).
인증서는 Zeek가 지원하는 비TLS 프로토콜(RDP, Kerberos)에서도 검사됩니다. 파일로 전송된 인증서(예: HTTP를 통해 다운로드된 인증서)는 검사되지 않습니다.
알림 억제 간격은 EMudhraWeakKeys::suppression_interval을 통해 변경할 수 있습니다.
예를 들어 손상된 키 목록을 변경하는 데 사용할 수 있는 다른 많은 옵션이 있습니다. 자세한 내용은 스크립트 파일을 참조하십시오.
참고: 이 패키지는 Claude Opus 5.5의 도움을 받아 만들어졌습니다. 모든 코드와 텍스트는 수동으로 검토, 편집 및 검증되었습니다.