最近,Packet Manager Apt(Ubuntu 的主要组件)中发现了 4 个错误。12.04 LTS 尤其糟糕,因为在那里发现了 4 个安全漏洞。
我的问题是 Apt 漏洞(USN-2348-1)造成了什么危害?
解释如下http://www.ubuntu.com/usn/usn-2348-1/相当简短,仅说明
我们发现,当 If-Modified-Since 不满足时,APT 不会重新验证下载的文件。(CVE-2014-0487)
我们发现,当 APT 从未认证状态切换到认证状态时,它不会使存储库数据无效。(CVE-2014-0488)
我们发现 APT Acquire::GzipIndexes 选项会导致 APT 跳过校验和验证。此问题仅适用于 Ubuntu 12.04 LTS 和 Ubuntu 14.04 LTS,默认情况下未启用。(CVE-2014-0489)
我们发现,在使用下载命令手动下载软件包时,APT 无法正确验证签名。此问题仅适用于 Ubuntu 12.04 LTS。(CVE-2014-0490)
更多信息请关注 http://people.canonical.com/~ubuntu-security/cve/2014/CVE-2014-0488.html 然后尝试阅读有关该错误的信息 https://bugs.launchpad.net/ubuntu/%2Bsource/apt/%2Bbug/1366702 由于 launchpad.net 网站是无效链接,因此没有提供信息。
这个问题的答案是,通过一个例子来描述这 4 个安全整体的含义。此外,如果只使用
apt-get install [packagename]
和apt-get update
的用户apt-get dist-upgrade
可能被给予恶意的 debfiles 或存储库列表,那将是很有趣的。
答案1
这是我对 CVE 的个人分析,请谨慎看待。
前言:签名密钥
大多数存储库都使用此类密钥对其软件包和列表进行数字签名。对于官方存储库,密钥与基础系统一起安装。如果您手动添加存储库(直接将其添加到您的/etc/apt/sources.lst
或)/etc/apt/sources.list.d
,则需要手动添加该存储库的密钥:
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com ID
或者apt-key add FILE
如果您单独下载了密钥。
我不是 100% 确定,但恕我直言,当使用软件中心或时add-apt-repository
,密钥会自动安装。
从未在其系统中添加存储库(PPA)的 Ubuntu 用户应该拥有所有必要的密钥。
实际使用存储库但未导入签名密钥的用户在从这些存储库安装时会看到以下警告:
您即将安装无法验证的软件!这样做可能会让恶意人员损坏或控制您的系统。
CVE-2014-0487
如果 Release 文件中的哈希发生更改,但 Release 文件引用的文件收到 304 响应(http 状态代码 304),apt 忽略了更新的文件并继续使用旧版本的文件,即使旧版本的文件与新的哈希值不匹配。
来源
如果攻击者以某种方式设法让您下载恶意软件,则攻击者可以让您的系统使用已经下载的旧的恶意文件,而不是从 repo 中获取的较新的文件。
如果您从未使用过没有有效签名密钥的存储库,那么您可能不会受到影响。
CVE-2014-0488
我们发现 APT 未能正确使未经身份验证的数据失效。假设您使用未经身份验证的存储库。您从该存储库下载/安装/...软件包,然后才为该存储库添加签名密钥。
所有已下载的数据都将被保留。理论上,您下载了伪造的数据是可能的,因为当时您无法验证这一点(由于缺少签名密钥)。现在 apt 可以验证下载的数据,但它没有。(相反,它也可以丢弃从该存储库下载的所有内容并下载新的,这一次 - 有了签名密钥 - 它可以验证下载的内容)。
如果您从未使用过没有有效签名密钥的存储库,那么您可能不会受到影响。
CVE-2014-0489
apt 中有一个名为的选项Acquire::GzipIndexes
。默认情况下,此选项处于禁用状态。以下是手册页对此的说明:
GzipIndexes
When downloading gzip compressed indexes (Packages, Sources, or
Translations), keep them gzip compressed locally instead of
unpacking them.
问题是,如果您将其设置为是,那么就不会执行校验和检查,从而导致可能伪造的软件包被下载/安装/...
个人说明:我找不到是否Acquire::CompressionTypes::Order:: "gz";
也跳过了校验和检查。
如果您从未Acquire::GzipIndexes
在 apt.conf 中设置,那么您可能不会受到此问题的影响。
CVE-2014-0490
您可以使用apt-get download
来下载软件包。如果您这样做并且没有存储库签名密钥,那么您将下载无法验证其完整性的软件包(因为您没有密钥)。在这种情况下,apt 应该警告您正在做一些可能不安全的事情,因此您可以三思而后行安装这些软件包。
问题是:apt 没有注意到用户。如果您从未使用过apt-get download
,您可能不会受到此问题的影响。
补丁
我的陈述仅供参考,请勿依赖它们
答案2
如果您使用的是受支持的 Ubuntu 版本,那么这些和其他值得注意的安全漏洞通常会得到及时处理。因此,如果您的源中启用了安全和更新存储库,那么保持更新将解决此问题和其他问题。
前任在公寓里 -
apt (0.8.16~exp12ubuntu10.20.1) 精确安全;紧急程度=低
- 安全更新:
- 修复潜在的缓冲区溢出,感谢 Google 安全团队 (CVE-2014-6273)
- 当使用 file:/// 源并且这些源与 apt 状态目录位于不同的分区时,修复 0.9.7.9+deb7u3 中的回归问题 (LP: #1371058)
- 恢复 FileFd::ReadOnlyGzip 更改
- 当 Dir::state::lists 设置为相对路径时修复回归问题
修复 cdrom: sources 被 apt-cdrom add 重写时的回归问题
-- Michael Vogt 2014 年 9 月 23 日星期二 09:02:26 +0200
apt (0.8.16~exp12ubuntu10.19) 精确安全;紧急程度=低
安全更新:
- 错误地使未经身份验证的数据无效(CVE-2014-0488)
- 304 回复验证错误(CVE-2014-0487)
- Acquire::Gzip 索引验证不正确 (CVE-2014-0489)
- 不正确的 apt-get 下载验证 (CVE-2014-0490)
-- Michael Vogt 2014 年 9 月 15 日星期一 08:23:20 +0200
所以这些问题几周前已经修复了