eMudhra 证书颁发机构事件分析:关键发现和影响
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
印度证书颁发机构eMudhra无意中颁发了八个与不安全私钥相关联的中级证书。这种泄露可能允许攻击者为互联网任意主机名生成有效的TLS和代码签名证书。该问题对网络连接的客户端,特别是嵌入式系统和未收到最新安全更新的设备,构成了重大风险。
调查
调查确定事件源于与eMudhra中级证书相关的不安全私钥。分析侧重于通过匹配其主题公钥信息(SPKI)哈希来使用Zeek识别网络流量中的这些证书。这种方法比证书指纹匹配更可靠,因为它还考虑了交叉签名证书和潜在的签名易变性。
缓解措施
主要浏览器和操作系统供应商已将受影响的证书添加到不信任机制中,如Chrome的CRLSet和Mozilla的OneCRL。用户应确保他们的设备已完全更新,以接收这些不信任更改。对于网络监控,部署Zeek包 emudhra-weak-keys 可以在TLS握手期间检测到受影响的证书。
响应
当 Compromised_Intermediate_Cert 通知出现在Zeek日志中时,安全团队应调查目标主机和连接的客户端。一个 Compromised_Intermediate_Cert_Established 警报表明客户端已成功接受了可能的欺诈证书。组织还应验证其环境中嵌入式、遗留和其他可能过时设备的补丁状态。
攻击流程
检测
观察到被攻破的eMudhra中间CA证书(通过zeek)
2026年10月23日
emudhra-weak-keys包发布的被攻破的eMudhra中间CA通知(通过zeek)
2026年10月23日
在TLS握手中观察到被攻破的eMudhra中间CA证书(通过zeek)
2026年10月23日
检测到被攻破的eMudhra中间CA证书 [Azure Auditlogs]
2026年10月23日
模拟执行
-
攻击叙述与命令: 对手已从被攻破的eMudhra中间CA获取证书。为了绕过标准安全控制,他们设置了一个恶意监听器,在TLS握手期间呈现该证书。目标是建立一个看似使用有效但被攻破的信任链的C2通道。我们将通过使用
openssl托管本地Web服务器,使用模仿被攻破的eMudhra证书元数据/指纹的证书进行模拟,迫使Zeek传感器基于其识别逻辑触发“通知”。 -
回归测试脚本:
# 1. 生成一个模拟证书模仿被攻破的eMudhra签名 # 在实际场景中,攻击者将使用被攻破的实际证书。 openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes -subj "/C=IN/ST=State/L=City/O=eMudhra/CN=Compromised_Test_CA" # 2. 使用此证书启动本地网络服务器 # 我们使用后台进程来托管服务器 openssl s_server -accept 4443 -cert cert.pem -key key.pem -quiet & SERVER_PID=$! # 3. 等待服务器初始化 sleep 2 # 4. 触发TLS握手(这会生成Zeek流量) # 注意:在实际实验室中,Zeek传感器必须配置特定 # 脚本/插件以将此证书识别为“Compromised_Intermediate_Cert” curl -k https://localhost:4443 # 5. 清理(在清理部分处理) kill $SERVER_PID -
清理命令:
# 删除生成的模拟证书文件并停止服务器 rm -f key.pem cert.pem # 如果服务器进程仍在运行: pkill -f "openssl s_server"