|
2014年4月7日,关于OpenSSL爆出心血漏洞(Heartbleed),心血漏响CVE编号CVE-2014-0160。洞影端口这个漏洞让攻击者能读取服务器内存中的关于敏感数据,包括私钥、心血漏响用户名密码、洞影端口会话令牌。关于但很多人搞混了一个关键点——它影响的心血漏响不是某个固定端口,而是洞影端口所有使用了受影响OpenSSL版本的服务。 端口本身只是关于通信入口,真正的心血漏响风险在于服务程序是否链接了存在缺陷的OpenSSL库。举个具体例子:一台服务器跑着Apache(监听443端口提供HTTPS)和Postfix(监听25端口发邮件),洞影端口如果两个服务都编译了1.0.1到1.0.1f版本的关于OpenSSL,那么这两个端口都会中招。心血漏响反过来,洞影端口如果Apache用了系统自带的旧版OpenSSL(比如0.9.8),而Postfix单独编译了新版1.0.1g,那么只有25端口有漏洞,443端口反而安全。 实际操作中,我见过最典型的误判是运维人员只检查了443端口。一家电商公司当时只对Web服务器做了漏洞扫描,忽略了同一台机器上跑的FTP服务(21端口)也用了同款OpenSSL。结果攻击者通过FTP端口的heartbeat扩展读取了内存,拿到root密码。这提醒我们:端口不是重点,重点是进程。 要确认具体哪些端口受影响,得用命令查。比如在Linux上执行 心血漏洞的技术本质是TLS heartbeat扩展的边界检查缺失。客户端发送一个心跳请求,声明payload长度为65535字节,但实际只发送1字节,服务器就会把内存中65535字节的数据原样返回。这个过程中,攻击者可以反复触发,每次读取16KB到64KB内存,慢慢拼凑出完整私钥。整个过程不需要任何端口扫描,只要目标服务的TLS握手响应中包含heartbeat支持即可。 修复方案也跟端口无关。升级OpenSSL到1.0.1g或更高版本,然后重启所有依赖它的服务。但重启前必须注意——如果私钥已经泄露,单纯升级没用,得重新生成密钥对并吊销旧证书。2014年那次事件里,很多大厂都强制轮换了证书,就是因为担心私钥已被悄悄窃取。 最后说个冷门观察:心血漏洞爆发后,全球扫描结果显示受影响的IP中,443端口占比约78%,25端口占9%,其他散落在993、995、8443等端口。这个分布其实反映了OpenSSL最常见的部署场景——Web服务器和邮件服务器。但别忘了,内网里还有大量自定义端口跑着OpenSSL,比如某些数据库复制通道、游戏服务器、物联网设备。它们不暴露在公网,但一旦内网被渗透,同样能成为横向移动的跳板。 所以,别问“哪个端口受影响”,要问“哪些进程在用有漏洞的库”。端口只是表象,进程才是根本。 |
