娱乐

什么是心脏出血漏洞

时间:2010-12-5 17:23:32  作者:百科   来源:休闲  查看:  评论:0
内容摘要:```html 2014年4月7日,一个叫“心脏出血”Heartbleed)的漏洞被公开。那天晚上,我正蹲在服务器前给一个客户升级OpenSSL,看到邮件列表里炸开的讨论,第一反应是:这玩意儿比想象中

```html

2014年4月7日,什心一个叫“心脏出血”(Heartbleed)的脏出漏洞被公开。那天晚上,血漏我正蹲在服务器前给一个客户升级OpenSSL,什心看到邮件列表里炸开的脏出讨论,第一反应是血漏:这玩意儿比想象中严重得多。

简单说,什心OpenSSL是脏出互联网上最常用的加密库之一。你访问带https的血漏网站,背后大概率是什心它在干活。它负责握手、脏出加密、血漏解密,什心让浏览器和服务器之间的脏出对话不被偷看。而心脏出血出在OpenSSL的血漏一个扩展功能上——心跳(Heartbeat)。

心跳机制本来很单纯:客户端发一句“我还活着,给我回个话”,服务器就回一句同样的话。问题出在OpenSSL的实现里,它没检查客户端发来的“活着”消息到底有多长。攻击者可以伪造一条消息,声称自己发了64KB的数据,实际只发1字节。服务器傻乎乎地按64KB去读内存,然后把读到的内容原样返回。那64KB里有什么?可能是别人的密码、私钥、session cookie,甚至服务器上其他进程的内存碎片。

我第一次复现这个漏洞时,用Python写了个几十行的脚本,对着一个测试服务器发请求。返回的数据里赫然出现了一段明文——是之前某个用户登录时提交的表单内容。那种感觉很奇怪,就像你随手敲了敲邻居家的墙,结果墙塌了,露出里面堆着的信件和钥匙。

这个漏洞的可怕之处在于,它不需要认证,不需要用户交互,攻击者直接发个恶意心跳包就能读服务器内存。而且OpenSSL当时几乎无处不在:Apache、Nginx、邮件服务器、VPN、甚至一些路由器固件。影响范围大到什么程度?当时有统计说,全球约17%的HTTPS服务器受影响,包括Yahoo、Stack Overflow、甚至一些政府网站。

修复方式倒是简单:升级OpenSSL到1.0.1g或更高版本。但麻烦在于,升级完还得换证书、换私钥,因为私钥可能已经泄露了。很多运维团队那几天通宵达旦,一边升级一边吊销旧证书。我认识的一个小公司CTO,凌晨三点在群里发消息说:“刚换完私钥,结果发现备份脚本里还留着旧的,又得重来一遍。”

心脏出血不是第一个,也不是最后一个。它暴露了一个事实:互联网底层的基础设施,往往由少数几个开源项目维护,而这些项目常常缺人、缺钱、缺审查。OpenSSL当时只有几个全职开发者,却支撑着半个互联网的安全。漏洞公开后,Linux基金会搞了个核心基础设施计划,才算稍微缓解了这种“关键却无人问津”的窘境。

现在回头看,心脏出血像一记闷棍,打醒了很多人对“加密就等于安全”的幻觉。加密库本身有bug,加密就形同虚设。后来出现的Shellshock、DROWN、Log4Shell,本质上都是同一类问题:我们依赖的底层组件,比想象中脆弱。

如果你现在还在跑老版本的OpenSSL,别犹豫,赶紧升。别问“我这个小破站有人盯吗”——扫描器可不管你是谁,它们只认版本号。心脏出血那年,我见过一个日访问量不到一百的个人博客被扫了上万次。互联网上没有小目标,只有没被发现的漏洞。

```
最近更新
热门排行
copyright © 2026 powered by 力不从心网   sitemap