更新到 14.04 后 OpenSSL 仍然容易受到攻击

use*_*607 3 openvpn openssl

我们有一个运行 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"
Run Code Online (Sandbox Code Playgroud)

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

:~$ 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
Run Code Online (Sandbox Code Playgroud)

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

tgi*_*ies 5

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

但是,如果可用的 Heartbleed 审核表明您仍然易受攻击,那么您仍然易受攻击。

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

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

  1. 重新启动服务器。

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

    $ sudo apt-get install debian-goodies
    $ sudo checkrestart
    
    Run Code Online (Sandbox Code Playgroud)