首页/安全/取证与溯源速查/自定义根证书植入检测
Linux 取证135 条

自定义根证书植入检测

把自签根证书加入系统信任库后,配合代理即可解密 TLS 流量;排查新增证书文件与信任库更新时间是发现此类中间人的手段。

取证与溯源速查安全更新于 2026-10-13

根证书植入意味着什么

把自签根证书加入系统信任库后,配合能够签发对应站点证书的中间人代理,TLS 流量就可以在不触发告警的情况下被解密。排查这类中间人的重点是新增证书文件与信任库更新时间:Debian 系把证书放入 /usr/local/share/ca-certificates/ 后执行 update-ca-certificates,RHEL 系放入 /etc/pki/ca-trust/source/anchors/ 后执行 update-ca-trust。企业统一部署的代理证书属正常基线,异常判断要看签发主体与部署记录。

基本信息

Debian 目录/usr/local/share/ca-certificates/,命令 update-ca-certificates
RHEL 目录/etc/pki/ca-trust/source/anchors/,命令 update-ca-trust
生成产物/etc/ssl/certs/ca-certificates.crt 等合并信任库
排查点新增证书文件的时间、Subject 与 Issuer 字段

典型使用场景

  • 确认主机是否被部署了可解密 TLS 的中间人证书
  • 对比备份中的信任库目录,找出新增的证书文件
  • 核对证书签发主体与企业内部部署清单是否一致
  • 判断某个异常外联是否经过代理被解密的可能
  • 为报告提供流量是否被中间人的判断依据

核查新增证书

核查新增证书
ls -lt --time-style=long-iso /usr/local/share/ca-certificates/ 2>/dev/null | head
ls -lt --time-style=long-iso /etc/pki/ca-trust/source/anchors/ 2>/dev/null | head
openssl x509 -in /usr/local/share/ca-certificates/corp.crt -noout -subject -issuer -dates 2>/dev/null
openssl crl2pkcs7 -nocrl -certfile /etc/ssl/certs/ca-certificates.crt 2>/dev/null | openssl pkcs7 -print_certs -noout | head -20
stat -c '%n %y' /etc/ssl/certs/ca-certificates.crt 2>/dev/null   # 信任库最后一次重建时间

证书字段读法

字段含义判读要点
Subject证书主体名称出现陌生组织名需追溯部署记录
Issuer签发者自签证书中与 Subject 相同
有效期起止时间超长有效期多用于长期中间人
基本约束是否标记为 CA 证书CA:TRUE 才可用于签发下级证书
只看目录不够,证书必须执行过信任库更新命令才会真正生效;判断时要同时看证书文件时间与合并信任库的最后重建时间。
域名侧也可交叉印证:日志中记录的站点证书链若有陌生签发者,或与其正常签发者不符,说明流量很可能经过了代理解密。
删除信任库中的证书属于高风险变更,先备份原文件与生成物,确认哪些业务依赖该证书后再调整。
若主机已经部署了企业级代理证书,核查重点转为证书是否与部署工单一一对应,以及是否存在工单之外的额外证书,只按有无来判断会把正常基线误报。

易错点

  • 只看到证书文件就下结论,未确认是否执行过信任库更新
  • 把企业统一部署的代理证书误判为入侵,缺少部署记录比对
  • 删除证书导致依赖内部 PKI 的业务全部报错
  • 只查一个目录,另一种发行版的信任库路径被完全忽略

数据来源与参考

  • Debian ca-certificates 文档
  • RHEL 文档(update-ca-trust)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌