Heartbleed 是什么
CVE-2014-0160(Heartbleed)是 OpenSSL 心跳扩展实现中的越界读取问题:攻击者发送一个长度字段与实际内容不符的心跳请求,服务端在回复时会多读一段相邻内存,把进程内存片段回传给请求方。泄露内容不可控,可能包含会话密钥、Cookie、口令,甚至私钥。因为 OpenSSL 被大量服务与设备使用,影响面从网站延伸到 VPN、邮件与嵌入式设备;处置的特点是「升级只是第一步」——还需更换私钥与证书、作废旧会话。
基本信息
| CVE 编号 | CVE-2014-0160 |
|---|---|
| 影响版本 | OpenSSL 1.0.1 至 1.0.1f(1.0.1g 起修复) |
| 修复动作 | 升级到 1.0.1g+(各发行版补丁号不同) |
| 后续动作 | 重新签发证书、更新私钥、作废旧会话 |
| 特殊场景 | 无法升级的嵌入式设备可编译时加 -DOPENSSL_NO_HEARTBEATS |
| 检测思路 | 核查 OpenSSL 版本与使用它的服务、设备与中间件 |
处置步骤
- 清点使用 OpenSSL 的组件:Web 服务、反向代理、VPN、邮件与自研应用
- 核查版本:注意发行版可能已回移植补丁,版本号未必直接可比
- 升级组件并重启依赖进程,确认运行进程加载的是新版本
- 更换私钥并重新签发证书,作废原证书
- 失效全部可能泄露的会话(如站点会话密钥轮换)
- 在授权范围内复测确认心跳扩展不再越界响应
版本核查与验证
版本核查与验证
openssl version -a
nmap -Pn -p443 --script ssl-heartbleed <target> # 授权范围内验证
# 发行版补丁核查:rpm -q --changelog openssl | head 或 apt changelog openssl
# 同时确认服务进程加载的库:lsof -p <pid> | grep libssl容易遗漏的使用点
| 位置 | 说明 | 核查方式 |
|---|---|---|
| 反向代理与负载均衡 | 对外提供 TLS 的第一跳 | 核查设备与主机组件版本 |
| VPN 与邮件服务 | 常独立维护,版本更滞后 | 逐服务核对组件清单 |
| 嵌入式与网络设备 | 固件内置,需厂商确认 | 向厂商索取受影响版本清单 |
| 自研应用内置库 | 随应用打包分发 | 扫描制品与运行主机 |
| 历史备份与镜像 | 恢复时会带回旧版本 | 更新基础镜像与恢复流程 |
只升级不换密钥,等于把『内存可能已泄露旧私钥』的风险留在系统里。