OpenSSL 更新至 14.04 版后仍然存在漏洞

OpenSSL 更新至 14.04 版后仍然存在漏洞

我们有一台运行 OpenVPN 的 AWS 服务器,它是使用 Ubuntu 13.10 构建的。在 Heartbleed 漏洞公布后,我们更新了服务器。今天早上,我们将服务器升级到 14.04。“openssl version -a”的当前输出为:

OpenSSL 1.0.1f 6 Jan 2014 
built on: Mon Apr  7 21:22:23 UTC 2014 
platform: debian-amd64 
options:  bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx)  
compiler: cc -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM OPENSSLDIR: "/usr/lib/ssl"

我使用以下命令验证了服务器仍然易受攻击的事实:

:~$ openssl s_client -connect openvpn.example.com:443 -tlsextdebug 2>&1| grep 'server extension "heartbeat" (id=15)' || echo safe
TLS server extension "heartbeat" (id=15), len=1

尝试运行“sudo apt-get install openssl”时,返回当前版本已安装。解决此问题的最佳选择是什么?发行版升级期间是否出现问题;即 14.04 OpenSSL 包是否实际上超出了危险范围?或者存储库本身是否存在可能的问题?

答案1

正如@david6 指出的那样,OpenSSL 的版本可能仍然看起来是一个易受攻击的版本。这是因为 Ubuntu 和许多其他发行版一样,向后移植安全修复程序,而不是更新到软件的全新版本(并且可能在此过程中拾取新功能及其伴随的错误)。因此,仅仅因为您正在运行“易受攻击的版本”的 OpenSSL,并不意味着您正在运行易受攻击的 OpenSSL 版本。

然而,如果可用的 Heartbleed 审计表明您仍然容易受到攻击,那么您仍然容易受到攻击。

我认为发生的情况是你已经更新了软件包,但是你还没有重新启动使用 OpenSSL 的服务,因此他们仍然保留着启动时加载的旧版本。

有两种简单的方法可以解决这个问题:

  1. 重新启动服务器。

  2. 识别并重新启动受影响的服务。一个简单的方法是,检查重启debian-goodies包中。它应该识别受影响的服务,甚至告诉您哪些 init 脚本将重新启动它们:

    $ sudo apt-get install debian-goodies
    $ sudo checkrestart
    

答案2

你的担心是对的。

然而,不再容易受到OpenSSL / Heartbleed在 Ubuntu 上,你只需要使用更新的编译版本OpenSSL图书馆。

命令openssl version -a应显示新日期:'建造时间:4月7日星期一

实例:

(1.)Ubuntu14.04 长期支持(64 位,桌面)- 从以下位置升级13.10

OpenSSL 1.0.1f 6 Jan 2014
built on: Mon Apr  7 21:22:23 UTC 2014
platform: debian-amd64
  :

(2)Ubuntu14.04 长期支持(64 位,桌面)- 全新安装

OpenSSL 1.0.1f 6 Jan 2014
built on: Mon Apr  7 21:22:23 UTC 2014
platform: debian-amd64
  :

(3.)Ubuntu12.04 LTS(64 位,服务器)- 完全更新

OpenSSL 1.0.1 14 Mar 2012
built on: Mon Apr  7 20:33:29 UTC 2014
platform: debian-amd64
  :

笔记:

  • Ubuntu 维护者在用新版本(具有不同功能)“替换”库之前会有一个漫长的测试周期。简单的使固定这个 bug 是任何一个添加边界检查逻辑(对于心跳功能)或者使用标志进行编译(语用)以排除心跳完全取消此功能。这两个选项不会对任何其他应用程序或服务产生不利影响。

  • 如果你安装了OpenSSLv1.0.1(或 v1.0.2)测试版)或者从某处下载二进制文件(适用于 Ubuntu),那么你确实会脆弱除非你使用1.0.1g或者编译选项已被用来删除“heartbeat”)。仅使用可信赖的来源。

答案3

如果你在 Ubuntu 上运行 CVE-2016-2107,升级到最新版本就没问题了:请参阅https://forums.openvpn.net/viewtopic.php?f=4&t=21699&p=62376#p62376

如果你 dpkg 当前的 openvpn_as 服务器,你会看到它已经针对 openssl 进行了更新,解决了错误:

jonathan@Jonathan-Les-MacBook-Pro:~/Downloads/openvpn/usr/local/openvpn_as/lib/pkgconfig$ cat openssl.pc
prefix=/usr/local/openvpn_as
exec_prefix=$
{prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}
/include
Name: OpenSSL
Description: Secure Sockets Layer and cryptography libraries and tools
Version: 1.0.2h
Requires: libssl libcrypto

对于 CVE-2016-2107https://www.openssl.org/news/secadv/20160503.txt:“OpenSSL 1.0.2 用户应升级至 1.0.2h”

我们升级到了最新版本,一切正常

相关内容