自 Heartbleed 首次被发现以来已经六年了,OpenSSL 漏洞仍然可以在互联网上被发现和利用。事实上,19% 的全球攻击由于大量未修补的面向公众的服务器,我们针对 OpenSSL Heartbleed 漏洞进行了攻击。无论是由于扫描不力还是担心重新启动生产服务器,让服务器遭受 OpenSSL 攻击都会使客户及其数据面临风险。本文深入探讨了 Heartbleed 及其对数据隐私和合规性的威胁。它还讨论了如何确定您的进程是否仍在使用过时的库,即使您已在磁盘上更新了它们。
Heartbleed 简要概述#
OpenSSL 是一个开源库,用于促进客户端和服务器之间的加密通信。由于它是开源的,任何人都可以为其代码库做出贡献并在自己的服务器通信协议中使用它。该漏洞代码于 2011 年添加,并于 2012 年发布。直到 2014 年,谷歌的研究人员才发现了该漏洞代码。
当支持 TLS/SSL 的服务器和客户端之间进行初始握手时,客户端会向服务器发送一条 16 位整数“消息”,并将相同的消息发送回客户端。此初始握手对于 TLS/SSL 连接启动安全通信是必需的。当发出请求时,服务器为 16 位消息分配内存。
Heartbleed 漏洞利用向服务器发送格式错误的初始握手消息,这意味着消息声称其由一定长度组成,但该消息实际上要小得多。例如,客户端的初始握手消息声称长度为 64 字节,但实际上只有 8 字节。当服务器收到此格式错误的请求时,它会通过读取相邻的内存值并将其发送回客户端来填充返回到客户端的剩余位。该相邻内存可能是垃圾值,也可能是用户凭证、用于解密通信的私钥或个人身份信息 (PII),例如社会安全号码。
Heartbleed 的发现意义重大,管理员必须尽快修补任何使用 OpenSSL 1.0.1 到 1.0 和 1.0.2 beta 1.1f 的服务器,因为漏洞已经可用。 ANetcraft研究表明,17% 的 SSL 服务器(大约 500,000 台服务器)容易受到 Heartbleed 的攻击。研究表明,尽管 Heartbleed 漏洞于 2014 年被报道,但它仍然是许多面向公众的服务器和用户设备上的一个问题。
为什么管理员无法修补服务器#
对于易受攻击的服务器,显而易见的修复方法是对其进行修补,但修补关键生产服务器比标准用户设备更加微妙和危险。因此,管理员将安排在非高峰工作时间进行修补,这可能是发现漏洞几周后。具有可用利用代码的漏洞对数据隐私尤其危险,因为这些漏洞可以立即被利用,并且不需要攻击者开发自己的恶意软件。
由于重新启动存在风险,管理员经常不对服务器打补丁。当前的修补和重启计划存在风险,主要原因有两个:
-
服务器停机时间:即使顺利重启且没有任何问题,也可能需要 15 分钟或更长时间。在此期间,服务不可用。大型企业对服务器停机的容忍度较低,因此重新启动关键服务器需要在生产中进行故障转移。故障转移或仍在负载均衡器后面轮换的服务器可能会过载并且无法处理流量负载。
-
漏洞窗口:大型组织每月修补和重新启动服务器是很常见的。这几周的时间让服务器容易受到公开威胁。漏洞窗口越大,攻击者就越有可能扫描并发现易受攻击和最新威胁的服务器。
无需重新启动的手动修补和漏报#
除了 OpenSSL 之外,开源社区还有许多在关键生产服务器上运行的共享库,但这些库必须与操作系统补丁一起进行修补,以确保服务器安全。为了避免妥协,一些管理员在不重新启动的情况下手动修补服务器,这样就不会出现停机风险。如果没有正确的实时修补工具,无需重新启动即可进行修补,从而在内存中留下易受攻击的代码,但磁盘和服务器上的修补版本仍然容易受到攻击。
当管理员针对这些无需重新启动的已修补服务器运行漏洞扫描程序时,扫描程序会通过检测已修补的磁盘版本来返回漏报。在内存中运行未修补版本的修补库仍然容易受到攻击,因此这是一种无效的修补服务器的方法。
查找漏报需要使用扫描仪来检测内存中的易受攻击的库,而不是使用磁盘上的结果。KernelCare 的 UChecker是一种开源扫描器,可供 FOSS 社区使用,帮助他们找到易受攻击的服务器,即使它们已在磁盘上打了补丁。
它是免费软件,使用 JSON 构建,并且可以根据 GNU 通用公共许可证的条款进行重新分发和/或修改。 Uchecker 检测使用旧的(即未修补的)共享库的进程。它检测并报告正在运行的进程正在使用的不是最新的共享库。通过 KernelCare 的扫描器,管理员可以获得易受攻击的共享库的进程 ID 和名称以及库的构建 ID。此信息可用于识别漏洞以及修复问题所需的补丁。
Uchecker(“用户空间检查器”的缩写)适用于从版本 6 开始的所有现代 Linux 发行版。下图显示了 Uchecker 的工作原理。
只需使用一个命令,Uchecker 就会扫描您的系统以查找过时的共享库:
curl -s -L https://kernelcare.com/checker | python
Visit UChecker 的 Github 页面 了解更多或观看演示,了解其工作原理
.
结论#
使用 UChecker 等高效的漏洞扫描器并实施适当的实时修补管理将消除与重新启动相关的大部分风险,同时仍保持开源库的更新。组织必须加快修补易受攻击的库,尤其是那些可能泄露私钥和用户凭据(例如 OpenSSL)的库。目前,由于重新启动可能出现的问题,许多服务器在补丁可用后数周内仍然容易受到攻击,但这会使组织不合规并面临严重数据泄露的风险。
恶意软件字节reports数以千计的网站仍然容易受到 Heartbleed 的攻击,使任何连接到这些网站的人都面临数据隐私问题。正确的实时修补和漏洞扫描解决方案将帮助管理员修补这些服务器并阻止其客户的信息泄露,并保护他们免遭身份盗窃和帐户接管。
如果您有任何问题或反馈,请随时发表评论。
关于作者
内核维护
内核维护是一项实时内核修补服务,可为一系列流行的 Linux 内核提供安全补丁和错误修复,无需重新启动系统即可安装。