通过证书透明度发现更多相关资产
- 1.证书透明度概述
- 2.搜索实战
- 3.为什么证书透明度技术是可行的
- 4.DigiCert 和其他 CA
- 5.缺陷缓解措施
1.证书透明度概述
许多现代网站都采用自动颁发和续订 TLS 证书,在设置 TLS 证书部署的方式上存在缺陷。它允许任何人发现同一服务器使用的所有域名
证书透明度 (CT) 是一种 Internet 安全标准,用于监视和审核 TLS 证书的颁发。它创建了一个公共日志系统,该系统旨在记录由公开信任的证书颁发机构 (CA) 颁发的所有证书
要搜索 CT 日志,通常使用 Crt.sh 或 Censys 服务
crt.sh
censys
2.搜索实战
censys:
看一下威胁参与者使用的域证书之一:cpu-z[.]net
此证书的有效期开始字段等于 2022-07-23 13:59:54
现在,让我们利用 parsed.validity.start
过滤器来查找几秒钟后颁发的证书:
成功发现了一个以前不为人知的域名
3.为什么证书透明度技术是可行的
威胁行为者通过 Plesk、cPanel 或 CyberPanel 等软件托管他们的网站。它自动颁发和更新受信任的证书,并且同时为所有网站执行此操作
尝试在 crt.sh 中搜索域,您会看到一堆证书:cpu-z[.]org
由于威胁行为者使用了 Cloudflare,因此不需要这些证书。
但是,我们能够在时间相关性攻击中使用这些非 Cloudflare 证书,并发现威胁参与者的未知域。
4.DigiCert 和其他 CA
大公司使用DigiCert服务自动颁发TLS证书。
DigiCert 证书的有效期字段中的时间始终设置为 00:00:00。其他一些 CA 也是如此,例如 ZeroSSL。
但是,如果我们看一下 crt.sh,我们可以看到同一家公司拥有的证书 crt.sh ID 可能彼此非常接近:
因此,当 CA 不包含证书的确切颁发时间时,可以通过它们在 CT 日志中的位置来发现及时颁发的证书
此外,您可能会在日志中找到两种类型的证书:预证书和叶证书。如果您有权访问叶证书,则可以查看其中提交的签名证书时间戳 (SCT):
SCT 字段始终包含时间戳,即使有效字段中的时间为 00:00:00
5.缺陷缓解措施
定期检查域的 CT 日志。不仅会发现受 CT 攻击影响的域,还可能会发现攻击您的基础设施的人颁发的证书
- 分析颁发字段中具有关闭时间戳的证书
- 在 SCT 字段中分析具有关闭时间戳的证书
- 分析 CT 日志中彼此接近的证书
- 分析已知证书之间的时间段
- 分析从已知时间戳开始的一轮时间后颁发的证书
- 获取有关已知时间戳的及时颁发的证书集的交集
- 相同,但关于 CT 日志中的位置
- 实时获取CT日志,并自行为证书添加时间戳