Luc*_*cio 153 security openssl
截至今天,已发现OpenSSL 中的一个错误1.0.1通过1.0.1f(包括)和1.0.2-beta.
从 Ubuntu 12.04 开始,我们都很容易受到这个错误的影响。为了修补这个漏洞,受影响的用户应该更新到 OpenSSL 1.0.1g。
每个受影响的用户现在如何应用此更新?
Flo*_*sch 142
安全更新适用于12.04、12.10、13.10和 14.04,请参阅Ubuntu 安全通知 USN-2165-1。
因此,首先您需要应用可用的安全更新,例如通过运行
sudo apt-get update
sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)
从命令行。
不要忘记重新启动使用受影响 OpenSSL 版本的服务(HTTP、SMTP 等),否则您仍然容易受到攻击。另请参阅Heartbleed:它是什么以及缓解它的选项有哪些?在 Serverfault.com 上。
以下命令显示(升级后)所有需要重新启动的服务:
sudo find /proc -maxdepth 2 -name maps -exec grep -HE '/libssl\.so.* \(deleted\)' {} \; | cut -d/ -f3 | sort -u | xargs --no-run-if-empty ps uwwp
Run Code Online (Sandbox Code Playgroud)
之后,您需要重新生成所有服务器 SSL 密钥,然后评估您的密钥是否可能已泄露,在这种情况下,攻击者可能已从您的服务器中检索到机密信息。
Gil*_*il' 71
该错误被称为Heartbleed。
通常,如果您运行某个服务器,并且您在某个时候为其生成了 SSL 密钥,那么您会受到影响。大多数最终用户不会(直接)受到影响;至少 Firefox 和 Chrome 不使用 OpenSSL。SSH 不受影响。Ubuntu 软件包的分发不受影响(它依赖于 GPG 签名)。
如果您运行使用 OpenSSL 版本 1.0-1.0.1f 的任何类型的服务器(当然自发现错误后修补的版本除外),那么您很容易受到攻击。受影响的 Ubuntu 版本是 11.10 oneiric 到 14.04 可信预发行版。这是一个实现错误,而不是协议中的缺陷,因此只有使用 OpenSSL 库的程序会受到影响。如果您的程序链接到旧的 0.9.x 版本的 OpenSSL,则不会受到影响。只有使用 OpenSSL 库来实现 SSL 协议的程序才会受到影响;将 OpenSSL 用于其他用途的程序不受影响。
如果您运行暴露于 Internet 的易受攻击的服务器,除非您的日志显示自 2014 年 4 月 7 日发布以来没有连接,否则应将其视为已受损。(这假设该漏洞在公布之前未被利用。)如果您的服务器仅在内部公开,则您是否需要更改密钥将取决于其他安全措施是否到位。
该漏洞允许任何可以连接到您的 SSL 服务器的客户端从服务器检索大约 64kB 的内存。客户端不需要以任何方式进行身份验证。通过重复攻击,客户端可以在连续尝试中转储内存的不同部分。
攻击者可能能够检索的关键数据之一是服务器的 SSL 私钥。有了这些数据,攻击者就可以冒充您的服务器。
使所有受影响的服务器脱机。只要它们在运行,就有可能泄露关键数据。
升级libssl1.0.0包,并确保所有受影响的服务器都重新启动。
您可以使用“grep”libssl 检查受影响的进程是否仍在运行。(已删除)' /proc/ /maps`
生成新密钥。这是必要的,因为该漏洞可能允许攻击者获得旧私钥。按照您最初使用的相同程序进行操作。
现在您有了新的未妥协的密钥,您可以让您的服务器重新联机。
撤销旧证书。
损害评估:服务 SSL 连接的进程内存中的任何数据都可能被泄露。这可能包括用户密码和其他机密数据。您需要评估这些数据可能是什么。
客户端应用程序受到影响的情况很少。服务器端的问题是任何人都可以连接到服务器并利用该漏洞。为了利用客户端,必须满足三个条件:
wget下载文件,则不会泄漏任何数据。)如果您在 2014 年 4 月 7 日晚上 UTC 和升级 OpenSSL 库之间这样做,请考虑客户端进程内存中的任何数据都会受到损害。
cri*_*imi 40
要查看 Ubuntu 上安装了哪个 OpenSSL 版本,请运行:
dpkg -l | grep openssl
Run Code Online (Sandbox Code Playgroud)
如果您看到以下版本输出,则应包含 CVE-2014-0160 的补丁。
ii openssl 1.0.1-4ubuntu5.12 Secure Socket Layer (SSL)...
Run Code Online (Sandbox Code Playgroud)
查看https://launchpad.net/ubuntu/+source/openssl/1.0.1-4ubuntu5.12,它显示了修复了哪种错误:
...
SECURITY UPDATE: memory disclosure in TLS heartbeat extension
- debian/patches/CVE-2014-0160.patch: use correct lengths in
ssl/d1_both.c, ssl/t1_lib.c.
- CVE-2014-0160
-- Marc Deslauriers <email address hidden> Mon, 07 Apr 2014 15:45:14 -0400
...
Run Code Online (Sandbox Code Playgroud)
小智 17
如果您的apt-get 存储库不包含任何预编译的1.0.1g OpenSSL版本,那么只需从官方网站下载源代码并编译它。
curl https://www.openssl.org/source/openssl-1.0.1g.tar.gz | tar xz && cd openssl-1.0.1g && sudo ./config && sudo make && sudo make install
sudo ln -sf /usr/local/ssl/bin/openssl `which openssl`
Run Code Online (Sandbox Code Playgroud)
# openssl version should return
openssl version
OpenSSL 1.0.1g 7 Apr 2014
Run Code Online (Sandbox Code Playgroud)
参见这篇博文。
注意:如博客文章中所述,此解决方法不会修复“必须使用 1.0.1g openSSL 源重新编译的 Nginx 和 Apache 服务器”。
小智 12
对于那些不想进行服务器范围包升级的人。我今天阅读了大量这些指南,并且apt-get upgrade openssl===apt-get upgrade这将应用您的机器所需的所有安全修复程序。太好了,除非你明确地依赖某个地方的旧包版本。
这是运行 Apache 2 的 Ubuntu 12.04 LTS 所需的最少操作:
转到此地址并证明您有漏洞。您应该使用您的网络服务器的直接外部地址。如果您使用负载均衡器(例如 ELB),您可能不会直接联系您的 Web 服务器。
运行以下 1 行以升级软件包并重新启动。是的,我看到所有指南都说您的时间戳应该晚于 2014 年 4 月 4 日,但对我而言似乎并非如此。
apt-get update && apt-get install openssl libssl1.0.0 && /etc/init.d/apache2 restart
确保您安装了适当的软件包版本并再次检查您的网络服务器是否存在漏洞。
关键包如下,我使用下面的命令确定了这些信息,然后编辑掉了 cruft(你不需要了解我机器的状态)。
$ dpkg -l | grep ssl
ii libssl-dev 1.0.1-4ubuntu5.12 SSL development libraries, header files and documentation
ii libssl1.0.0 1.0.1-4ubuntu5.12 SSL shared libraries
ii openssl 1.0.1-4ubuntu5.12 Secure Socket Layer (SSL)* binary and related cryptographic tools
Run Code Online (Sandbox Code Playgroud)
1.0.1-4ubuntu5.12不应包含漏洞。再次访问下面的网站并测试您的 Web 服务器,以确保是这种情况。
小智 11
我注意到这里有很多评论者急需帮助。他们正在按照说明进行升级和重新启动,但在使用某些测试网站时仍然容易受到攻击。
您必须检查以确保您没有保留包,例如 libssl。
:~$ sudo apt-get upgrade -V
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have been kept back:
libssl-dev (1.0.1-4ubuntu5.10 => 1.0.1-4ubuntu5.12)
libssl1.0.0 (1.0.1-4ubuntu5.10 => 1.0.1-4ubuntu5.12)
linux-image-virtual (3.2.0.31.34 => 3.2.0.60.71)
linux-virtual (3.2.0.31.34 => 3.2.0.60.71)
0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded.
Run Code Online (Sandbox Code Playgroud)
升级那些apt-mark unhold libssl1.0.0(例如)。然后升级:apt-get upgrade -V。然后,重新启动受影响的服务。