古老的“脏牛”虫

古老的“脏牛”虫

我刚刚听说了这个漏洞“Dirty COW”,它允许任何具有文件读取权限的用户写入文件并获得管理权限。我该如何防范这个漏洞?

答案1

古老的“脏牛”虫

此错误自内核版本 2.6.22 以来一直存在。它允许具有读取权限的本地用户获得管理权限。已发出警告(Softpedia:Linux 内核 4.8.3、4.7.9 和 4.4.26 LTS 将修复“Dirty COW”安全漏洞),并建议用户升级到内核 Linux 内核 4.8.3、Linux 内核 4.7.9 和 Linux 内核 4.4.26 LTS。此链接具有误导性因为 Ubuntu 不支持这些内核版本。

这个答案是为 Ubuntu 用户量身定制的,并告诉您:

  • 推荐给 Ubuntu 用户的内核版本
  • 如何显示当前内核版本
  • 如何修复 Ubuntu 支持的内核
  • 如何修复不受支持的 Ubuntu 内核

Ubuntu 用户“Dirty COW”推荐的内核

Ubuntu 于 2016 年 10 月 20 日发布了安全更新,以修补所有受支持的 Ubuntu 版本使用的内核:Softpedia:Canonical 已修复所有支持的 Ubuntu 操作系统中古老的“Dirty COW”内核错误

Canonical 敦促所有用户立即安装以下软件来修补其系统:

  • 适用于 Ubuntu 16.10 的 linux-image-4.8.0-26 (4.8.0-26.28)
  • 适用于 Ubuntu 16.04 LTS 的 linux-image-4.4.0-45 (4.4.0-45.66)
  • 适用于 Ubuntu 14.04 LTS 的 linux-image-3.13.0-100 (3.13.0-100.147)
  • 适用于 Ubuntu 12.04 LTS 的 linux-image-3.2.0-113 (3.2.0-113.155)
  • linux-image-4.4.0-1029-raspi2 (4.4.0-1029.36)

Ubuntu 14.04 LTS 的 Xenial HWE 内核也已更新至版本 linux-image-4.4.0-45(4.4.0-45.66~14.04.1),Ubuntu 12.04 LTS 的 Trusty HWE 内核已更新至版本 linux-image-3.13.0-100(3.13.0-100.147~precise1)。

请按照 Canonical 提供的说明立即更新您的 Ubuntu 安装:https://wiki.ubuntu.com/Security/Upgrades

显示当前内核版本

要显示当前运行的内核版本,请使用Ctrl++打开终端,然后输入:AltT

uname -a

内核版本你启动了然后显示如下:

Linux dell 4.8.1-040801-generic #201610071031 SMP Fri Oct 7 14:34:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

请记住,安装带有补丁的新内核后,您仍然可以从 Grub 启动旧内核版本。旧版本不会应用补丁,此内核版本 4.8.1 就是这种情况。

再次记住,Ubuntu 不支持内核版本 4.8.1。

如何修复 Ubuntu 支持的内核

由于 Ubuntu 已发布该错误的修复程序,因此用户只需升级系统即可。如果启用了每日安全更新,则内核升级已完成。请检查上面的内核列表,了解您的内核版本。

如果 Ubuntu 尚未自动升级你的内核版本,则运行:

sudo apt-get update
sudo apt-get dist-upgrade
sudo reboot

重新启动后,重复上一节的说明检查当前内核版本。

如何修复不受支持的 Ubuntu 内核

一些使用较新硬件的安装可能使用不受支持的内核,例如4.8.1或更高版本。如果是这样,您将需要手动升级内核。虽然上面的错误报告链接说使用内核4.8.3,但截至 2016 年 10 月 30 日,4.8.5它是最新的,安装方法如下:

cd /tmp
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8.5/linux-headers-4.8.5-040805_4.8.5-040805.201610280434_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8.5/linux-headers-4.8.5-040805-generic_4.8.5-040805.201610280434_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.8.5/linux-image-4.8.5-040805-generic_4.8.5-040805.201610280434_amd64.deb
sudo dpkg -i *.deb
sudo reboot

重启后,重复前面两节的说明来检查当前内核版本。

答案2

我根本不是专家,但是在阅读了一些有关“Dirty COW”的内容后,我真的很想检查一下在几个小时前完成最新更新后我是否还好。

从我的关键词搜索结果中,我选择了这篇文章和讨论,因为它听起来很有希望。现在,我可以轻松地验证我的 Xenial Xerox 系统的“COW 补丁”状态,方法是首先按照上述文章的说明进行操作显示当前内核版本(结果,它是linux-image-4.4.0.-45:)。虽然uname -a没有详细说明补丁,但它显示了当前安装的内核版本,这让我能够跟踪用户 643722 的建议——并且成功了:

apt list --installed | grep linux-image-4.4.0-45

尽管显示了一条意外的额外线条......

WARNING: apt does not have a stable CLI interface. 
Use with caution in scripts.

...下一行是所希望得到的信息:

linux-image-4.4.0-45-generic/xenial-updates,xenial-security,now 4.4.0-45.66 amd64  [Installiert,automatisch]

感谢所有人——Linux/Ubuntu 贡献者迅速将解决方案纳入更新,并在用户之间迅速传播知识。

答案3

您需要使用以下命令升级您的软件包apt-get

sudo apt-get update && sudo apt-get dist-upgrade

您还可以启用livepach 服务

巧合的是,就在漏洞公布前,我们发布了适用于 Ubuntu 16.04 LTS 的 Canonical Livepatch 服务。在最初几个小时内,数千名在 Ubuntu 16.04 LTS 系统上启用了 canonical-livepatch 的用户自动在后台接收并应用了 Dirty COW 修复程序,无需重启!

  1. https://ubuntu.com/livepatch并检索你的 livepatch 令牌 安装 canonical-livepatch snap

    $ sudo snap install canonical-livepatch

  2. 使用您的令牌启用服务

    $ sudo canonical-livepatch 启用 [TOKEN]

  3. 使用以下方式随时检查状态:

    $ canonical-livepatch 状态--verbose

  4. 升级

    `$ sudo apt install 无人值守升级

  5. 旧版本的 Ubuntu(或升级到 16.04 的 Ubuntu 系统)可能需要使用以下命令启用此行为:

    $ sudo dpkg-reconfigure 无人值守升级

`

相关内容