心脏出血(英语:Heartbleed),也简称为心血漏洞,是一个出现在加密程序库OpenSSL的安全漏洞,该程序库广泛用于实现互联网的传输层安全(TLS)协议。它于2012年被引入了软件中,2014年4月首次向公众披露。只要使用的是存在缺陷的OpenSSL实例,无论是服务器还是客户端,都可能因此而受到攻击。此问题的原因是在实现TLS的心跳扩展时没有对输入进行适当验证(缺少边界检查),因此漏洞的名称来源于“心跳”(heartbeat)。该程序错误属于缓冲区过读,即可以读取的数据比应该允许读取的还多。
漏洞描述
Heartbleed漏洞,这项严重缺陷(CVE-2014-0160)的产生是由于未能在memcpy()调用受害用户输入内容作为长度参数之前正确进行边界检查。攻击者可以追踪OpenSSL所分配的64KB缓存、将超出必要范围的字节信息复制到缓存当中再返回缓存内容,这样一来受害者的内存内容就会以每次64
KB的速度进行泄露。
发现历程
Heartbleed漏洞是由安全公司Codenomicon和谷歌安全工程师发现的,并提交给相关管理机构,随后官方很快发布了
漏洞的修复方案。2014年4月7号,程序员Sean Cassidy则在自己的博客上详细描述了这个漏洞的机制。
技术原理
获取密码
2014年4月9日,Heartbleed(意为“心脏出血”)的重大安全漏洞被曝光,一位安全行业人士在知乎上透露,他在某著名电商网站上用这个漏洞尝试读取数据,在读取200次后,获得了40多个用户名、7个密码,用这些密码,他成功地登录了该网站。
入侵技术
SSL(安全套接层)协议是使用最为普遍网站加密技术,而OpenSSL则是开源的 SSL 套件,为全球成千上万的web服务器所使用。Web服务器正是通过它来将密钥发送给访客然后在双方的连接之间对信息进行加密。使用 https协议的连接采用了
SSL加密技术。在线购物、网银等活动均采用SSL技术来防止窃密及避免
中间人攻击。
Heartbleed漏洞之所以得名,是因为用于
安全传输层协议(TLS)及数据包
传输层安全协议(DTLS)的 Heartbeat扩展存在漏洞。Heartbeat扩展为TLS/DTLS提供了一种新的简便的连接保持方式,但由于OpenSSL 1.0.2-beta与OpenSSL 1.0.1在处理TLS heartbeat扩展时的边界错误,攻击者可以利用漏洞披露连接的客户端或服务器的存储器内容,导致攻击者不仅可以读取其中机密的加密数据,还能盗走用于加密的密钥。
检测工具
史上最严重的信息安全漏洞OpenSSL的Heartbleed漏洞,攻击全球三分之二的网站,如何自保。
所幸网络上出现多种Heartbleed漏洞检测服务,可以让民众检查正在此用的网络服务是否安全,若是不安全的网站,就避免使用任何与账号、密码有关的交易功能。
网络服务提供者也应该利用这些工具,即刻检查自己维护的服务器,避免因Heartbleed漏洞而受到攻击,导致用户资料被窃。
Heartbleed test
意大利信息安全专家Filippo Valsorda (@FiloSottile)率先开发出来的Heartbleed检测工具,以模拟OpenSSL Heartbleed漏洞的入侵方法,开发出来的检测工具。只要输入网站的网址,便可以测试网站是否受Heartbleed漏洞影响。例如输入妈妈经网站,就发现妈妈经失血了。
ossible.lv Heartbleed test
由信息安全公司Possible.lv开发的Heartbleed检测工具,只要输入网址就可以测试网站是否受Heartbleed漏洞影响。
LastPass Heartbleed Checker
由密码管理工具厂商LastPass开发的检测工具,只要输入网址便可以测试网站是否受Heartbleed漏洞影响。
Qualys SSL Labs Server Test
由Qualys SSL LABS提供的SSL测试,不仅可以测试服务器是否受Heartbleed漏洞影响,还可以为服务器的加密安全性评级等。
Chrombleed
Heartbleed来袭,但上网不用怕。Chromebleed是Google Chrome浏览器的扩展工具,安装之后,每一次浏览网页时,便会主动弹出网页是否受Heartbleed漏洞影响的通知。
影响危害
漏洞影响
通过读取网络服务器内存,攻击者可以访问敏感数据,从而危及服务器及用户的安全。敏感的安全数据,如服务器的专用主密钥,可使攻击者在服务器和客户端未使用完全正向保密时,通过被动中间人攻击解密当前的或已存储的传输数据,或在通信方使用完全正向保密的情况下,发动主动中间人攻击。攻击者无法控制服务器返回的数据,因为服务器会响应随机的内存块。
漏洞还可能暴露其他用户的敏感请求和响应,包括用户任何形式的POST请求数据,会话cookie和密码,这能使攻击者可以劫持其他用户的服务身份。在其披露时,约有17%或五十万通过认证机构认证的互联网安全网络服务器被认为容易受到攻击。电子前哨基金会,Ars Technica,和布鲁斯·施奈尔都认为心脏出血漏洞是“灾难性的”。
漏洞让特定版本的openSSL成为无需钥匙即可开启的“废锁”,入侵者每次可以翻检户主的64K信息,只要有足够的耐心和时间,就可以翻检足够多的数据,拼凑出户主的银行密码、私信等敏感数据。对此安全专家提醒,网友在网站完成修复升级后,仍需及时修改原来的密码。
在公告发布之日,Tor项目在其博客发布公告,并表示任何在互联网上寻求“强健的匿名或隐私”的人应该“在事情解决之前,接下来的几天里完全远离互联网“。他们还建议,Tor中继运行者和隐蔽服务运行者在修补OpenSSL后,应撤销及生成新密钥,但也指出,Tor中继使用两套密钥和多跳设计最大限度地减少了窃取单一中继的影响。
加拿大税务局(CRA)因心脏出血安全漏洞,关闭了电子服务网站。
平台维护者,如
维基媒体基金会,建议他们的用户更改密码。
GitHub上的一个统计数据分析了2014年4月8日前1000个访问量最大的网站,发现受影响的网站包括Yahoo、Imgur、Stack Overflow、Slate和DuckDuckGo。安全的网站包括Google、Facebook、Wikipedia、Twitter及Amazon。
受影响的OpenSSL版本:
最后更新于2014年4月9日,据Heartbleed和OpenSSL网站上的信息。
受影响:
除非针对CVE-2014-0160的操作系统补丁已经安装,而没有更改库版本,如Debian、Red Hat Enterprise Linux(及其派生版,如CentOS、Amazon Linux)或Ubuntu(及其派生版,如Linux Mint)。
不受影响:
要解决此漏洞,建议服务器管理员或使用1.0.1g版,或使用-DOPENSSL_NO_HEARTBEATS选项重新编译OpenSSL,从而禁用易受攻击的功能,直至可以更新服务器软件。
Metasploit最新版本:
针对CVE-2014-0160的测试和攻击脚本(Python/Perl)已广泛传播。著名渗透测试框架Metasploit在最新版本中添加了对CVE-2014-0160的嗅探支持。
漏洞危害
Heartbleed能让攻击者从服务器内存中读取包括用户名、密码和信用卡号等隐私信息在内的数据,已经波及大量互联网公司。
受影响的服务器数量可能多达几十万。其中已被确认受影响的网站包括 Imgur、OKCupid、Eventbrite 以及 FBI 网站等,不过 Google 未受影响。
Github2014年4月9日发布了一个受影响网站的列表,在这个列表上发现了诸多知名互联网企业,例如雅虎、Stackoverflow.com、Outbrain.com、OKCupid.com、Steamcommunity.com、 Slate.com和 Entrepreneur.com等。其中很多网站都表示他们已经解决了这个问题。
OpenSSL“心脏出血”漏洞的严重性远比想象的严重,一些用户没有考虑到手机上大量应用也需要账号登陆,其登陆服务也有很多是OpenSSL搭建的,因此用户在这阶段用手机登陆过网银或进行过网购,则需要在漏洞得到修补后,更改自己的密码。
更改密码:
下面的网站已经发布公告,因受漏洞影响,建议用户更改密码:
受影响的软件
涉及中国
ZoomEye系统的扫描:根据该系统扫描,中国全境有1601250台机器使用443端口,其中有33303个受本次
OpenSSL漏洞影响。
443端口仅仅是OpenSSL的一个常用端口,用以进行加密网页访问;其他还有邮件、即时通讯等服务所使用的端口,因时间关系,尚未来得及扫描。
ZoomEye是一套安全分析系统,其工作原理类似Google Spider,会持续抓取全球互联网中的各种服务器,并记录服务器的硬件配置、软件环境等各类指标,生成指纹,定期对比,以此确定该服务器是否存在漏洞或被入侵。在此次“心脏出血”漏洞检测中,给该系统后面加上一个“体检”系统,过滤出使用问题OpenSSL的服务器,即可得出存在安全隐患的服务器规模。
从该系统“体检”结果看,比三万台问题服务器更令人惊心的,是这些服务器的分布:它们有的在银行网银系统中,有的被部署在
第三方支付里,有的在大型电商网站,还有的在邮箱、
即时通讯系统中。
自这个漏洞被爆出后,全球的黑客与安全专家们展开了竞赛。前者在不停地试探各类服务器,试图从漏洞中抓取到尽量多的用户敏感数据;后者则在争分夺秒地升级系统、弥补漏洞,实在来不及实施的则暂时关闭某些服务。这是最危险的地方:黑客们已经纷纷出动,一些公司的负责人却还在睡觉。而如果黑客入侵了服务器,受损的远不止公司一个个体,还包括存放于公司数据库的大量用户敏感资料。更为麻烦的是,这个漏洞实际上出现于2012年,谁也不知道是否已经有黑客利用漏洞获取了用户资料;而且由于该漏洞即使被入侵也不会在服务器日志中留下痕迹,所以还没有办法确认哪些服务器被入侵,也就没法定位损失、确认泄漏信息,从而通知用户进行补救。
操作建议
1. 不要在受影响的网站上登录账号——除非确信该公司已经修补了这一漏洞。如果该公司没有通告相关进展,可以询问他们的客服团队。
一些网站(包括雅虎和OKCupid)受了影响但表示他们已经解决了全部或部分问题,如果不放心,可以在Filippo网站上查看各个网站安全与否,如果被标为红色就暂时不要登录。
很多人的第一反应是赶快修改密码,但是
网络安全专家的建议是等到网站确认修复再说。
2. 一收到网站的安全修补确认,就立即修改银行、电子邮件等敏感账号的密码。即便你采用了两步认证(即在密码之外多一重验证信息),推荐修改密码。
3. 不要不好意思联系掌握个人的数据的小企业以确保个人信息安全。雅虎和Imgur等知名公司当然知道这个问题,但是一些小企业可能还没发现它,所以个人要积极主动地维护个人信息安全。
4. 密切关注未来数日内的财务报告。因为攻击者可以获取服务器内存中的信用卡信息,所以要关注银行报告中的陌生扣款。
但是,即便按照上述方法操作,网页浏览活动也依然存在一定风险。Heartbleed甚至能影响追踪网站用户活动的浏览器
Cookie,所以只访问不登录也有风险。