图片由Waifu Diffusion v1.3 (float16) 生成——都市风景、暗色、红黑、单调、黑色天空、烟雾、东京
哇,男孩,2022 年继续交付。看起来事情变得有趣的最新方式是, OpenSSL 项目宣布了一个“关键”补丁,该补丁将于周二发布,适用于以3.0
开头的每个 OpenSSL 版本。修复程序将作为 OpenSSL 3.0.7
发布。如果您运行 OpenSSL 3.0.0
到3.0.6
,您应该认为自己容易受到攻击。我将在后面的帖子中介绍如何检查。
对于只是随便关注 OpenSSL 项目的人,请注意上次发布“CRITICAL”补丁是为了缓解“Heartbleed”漏洞。我将把我的分析分为两部分:事实和推测。
事实
修复此问题的补丁将于 11 月 1 日星期二公开。在撰写本文时,目前没有与此问题相关的公开可见的 CVE 标识符。我确信它会在 11 月 1 日上市。
关于这个问题的细节目前似乎被超级禁运,但根据公开所做的事情,我可以告诉你:
- Tor 项目已敦促中继所有者尽快升级。
- Fedora 37 的发布已从 10 月 25 日推迟到 11 月 15 日。
- 流行的推文@SwiftOnSecurity 发布了关于问题严重性的传闻,该推文已被删除。没有给出删除的理由。
已删除推文的内容
OpenSSL 3.x 的缺陷将是重大的,有人告诉我知道。认真对待你的准备工作并准备迅速采取行动——补丁或隔离。
出于对禁运的尊重,他们不会讨论细节,这是足够敏感的。
我不是禁运的一方。我不知道这有多糟糕。
我不知道这有多相关,但Go编程语言也有“标准库的私有安全修复” 。 Go 标准库在包crypto/tls
中包含 TLS 客户端和服务器支持。
猜测
基于两个支持 TLS 的项目在同一天获得安全修复的事实,我认为这会很糟糕。我预计必须花一天时间修补系统并验证易受攻击的 OpenSSL 版本(和 Go 编程语言)在工作中的生产系统和我的个人基础设施中都没有使用。
您可以采取的行动项目
如果您是 SRE、系统管理员或以其他方式回应此问题:现在可能是取消万圣节计划的好时机,或者至少不要喝足够多的酒精,以免酒醉或使用会离开您的物质第二天筋疲力尽。
寻找易受攻击的程序
现在可能是识别您控制中使用此易受攻击版本的 OpenSSL 的系统的好时机。这是一个命令,您可以使用它来查找使用您的发行版的 OpenSSL 包的程序:
sudo lsof -n | grep libssl.so.3
例如,下面是这样一行的样子(剪掉了无关的细节):
命令 | PID | 用户 | 类型 | 大小/偏移 | 节点名称 |
---|---|---|---|---|---|
赛特 | 1740276 | 凯迪 | 内存 | 6531231 | /nix/store/5nh3xmnx2lybwzl3p328q7b9rfh1ssyb-openssl-3.0.5/lib/libssl.so.3 |
由此您可以看出,为我的网站提供支持的代码出于某种原因加载了 openssl,并且该软件包需要更新。
在 Ubuntu 上,您可以使用dpkg -S
搜索哪些软件包拥有哪些文件,如下所示:
xe@nneka-sakuya:~$ sudo dpkg -S /usr/lib/x86_64-linux-gnu/libssl.so.3 libssl3:amd64: /usr/lib/x86_64-linux-gnu/libssl.so.3
您可以使用apt-cache show
获取软件包libssl3
的版本信息,如下所示:
apt-cache show libssl3
这将显示这样的信息。
记录东西
这是您可以提前做的事情,它将帮助您在生产中应用修复之前对这个问题进行分类。
- 创建您具有管理访问权限的计算机列表,并在每台计算机上运行该命令。
- 识别每个程序正在使用的 OpenSSL 版本(或系统正在运行的 OpenSSL 版本)并使用
systemctl status
将事情追溯到相应的服务。根据事实和情况,此更新可能会对这些服务产生影响。 - 使用它来创建潜在的“爆炸损坏”列表,或服务可能发生故障并导致问题的方式。将此信息传达给支持团队。
到现在为止,您应该有一个包含 OpenSSL 易受攻击版本的所有机器的列表,以及所有需要重新启动的服务。
计划周二的补丁行动
当补丁在星期二下降时,您应该做以下两件事之一:
- 尽快更新机器。
- 将计算机与 Internet 完全隔离,直到您可以更新该系统上的 OpenSSL 包。
目前尚不清楚这是客户端漏洞还是服务器漏洞。如果它是一个服务器漏洞(影响使用 OpenSSL 加密传输中数据的服务),那么最好关闭面向公众的守护进程,升级您的软件包,然后重新打开它们。如果这是一个客户端漏洞,根据您的机器保存的数据类型,通过 Internet 像往常一样升级您的软件包可能仍然是安全的。如果这是一个客户端漏洞,那么响应过程会发生很多变化。您可能必须通过 SSH 复制目标包,手动安装它们,然后恢复面向外部的服务。
当您的发行版告诉您修复了漏洞的软件包版本时,请将其记录为您的 OpenSSL 目标版本。确保每个系统、docker 镜像和虚拟机都更新了 OpenSSL。可能还要等一下。您可能希望在队友之间分配工作。
我真的希望这不会以失败告终,但我可能会计划它与 Heartbleed 一样糟糕。最重要的是,照顾好自己,尽量不要对此感到压力过大。互联网上的每个人都将像您现在一样脆弱。