什么是心脏出血漏洞?(工作原理、易受攻击的设备、如何预防)
Heartbleed(心脏出血)是广泛使用的OpenSSL加密软件库中的一个严重漏洞。此漏洞允许窃取通常由用于保护Web的SSL/TLS加密保护的信息。SSL/TLS 为互联网、邮件、消息服务和一些VPN通过互联网的通信提供隐私和安全。
OpenSSL对TLS心跳扩展的实现中的缺陷导致了Heartbleed问题,这导致了不正确的输入验证。
这是一个最初在2014年发现的开源软件漏洞。任何有互联网访问权限的人都可以利用此漏洞访问系统漏洞的内存,而不会留下任何入侵痕迹。
OpenSSL是最广泛使用的开源加密库(用C语言编写),用于使用安全套接字层(SSL)和传输层安全(TLS)加密互联网数据。尽管问题出在OpenSSL库中,但SSL/TLS协议不受影响。此缺陷在于管理TLS/DTLS心跳扩展的OpenSSL代码中。
由于此漏洞,恶意用户可能会诱骗易受攻击的Web服务器提交敏感信息,例如用户名和密码。
用于识别服务提供商和加密通信的私钥,以及用户的身份和密码,以及实际信息都处于危险之中。因此,攻击者可以窃听对话,直接从服务和用户那里窃取数据,并冒充这些服务和用户。
鉴于Heartbleed漏洞已为人所知至少两年,任何已安装OpenSSL 1.0.1到1.0.1f版本的公司都特别容易受到它的攻击,应采取措施来减轻其影响。
Heartbleed漏洞的发现
Google开发人员Neel Mehta和芬兰安全公司Codenomicon首先发现了Heartbleed漏洞。德国软件开发人员Robin Seggelmann在开源OpenSSL加密技术中引入了此安全漏洞。自从该漏洞广为人知以来,Seggelmann表示,他和另一位代码审查员意外地忽略了此漏洞,并且此漏洞并非故意引入的。
Heartbleed漏洞的工作原理?
要理解Heartbleed漏洞的工作原理,您必须首先了解TLS/SSL协议的工作原理以及计算机如何将数据保存在内存中。
**心跳**是TLS/SSL协议的重要组成部分。这是相互交互的两台计算机相互告知它们仍然连接的方式,即使个体目前没有上传或导出任何内容。
在极少数情况下,其中一台系统会向另一台系统发送一个称为心跳请求的加密数据位。第二台计算机将以相同的数据进行响应,证明连接没有中断。心跳请求还会提供有关其长度的数据,这一点至关重要。
Heartbleed漏洞的产生是因为OpenSSL对心跳功能的实现缺乏一项关键的安全措施:从未测试过接收心跳请求的计算机是否与预期的一样长。
由于在心跳查询中的长度和有效负载变量上缺少边界检查,并且信任从其他机器接收到的数据,响应计算机会发送回其内存数据。
哪些设备容易受到Heartbleed漏洞的影响?
虽然所有版本的Android操作系统都包含旧版本的OpenSSL库,但易受攻击的心跳组件仅在Android 4.1.1 Jelly Bean中默认启用。BlackBerry也已证实某些设备容易受到Heartbleed漏洞的影响,但OpenSSL漏洞不会影响Apple的iOS设备。
IP电话、调制解调器、医疗设备、智能电视、嵌入式系统以及许多其他依赖OpenSSL进行加密通信的设备也可能暴露于Heartbleed问题,因为来自Google的Android合作伙伴的补丁不太可能很快到来。
如何避免此类软件漏洞?
您可以采取以下措施来避免像Heartbleed漏洞这样的软件漏洞:
集成对安全软件开发至关重要的安全相关任务。
永远不要信任来自第三方的数据源。
为确保在线帐户的安全,您应该尽快更改密码,无论站点是否已修复了问题。