如何保护您的服务器免受DirtyCOWLinux漏洞的影响
介绍
2016 年 10 月 19 日,Linux 内核中的提权漏洞被披露。 该错误被昵称为 Dirty COW,因为根本问题是内核处理写时复制 (COW) 的方式中的竞争条件。 Dirty COW 已经存在了很长时间——至少从 2007 年开始,内核版本为 2.6.22——因此绝大多数服务器都处于危险之中。
利用此错误意味着服务器上的普通非特权用户可以获得对他们可以读取的任何文件的写访问权限,因此可以增加他们在系统上的权限。 可以从 Canonical、Red Hat 和 Debian 中找到有关 CVE-2016-5195 的更多信息。
幸运的是,大多数主要发行版已经发布了修复程序。 DigitalOcean 上的所有基础映像都已更新以包含修补的内核版本,因此您创建的未来 Droplet 将不需要更新。 但是,如果您运行的是较旧的服务器,则可以按照本教程确保您受到保护。
检查漏洞
Ubuntu/Debian
要了解您的服务器是否受到影响,请检查您的内核版本。
uname -rv
你会看到这样的输出:
Output4.4.0-42-generic #62-Ubuntu SMP Fri Oct 7 23:11:45 UTC 2016
如果您的版本早于以下版本,您将受到影响:
- 4.8.0-26.28 用于 Ubuntu 16.10
- 4.4.0-45.66 用于 Ubuntu 16.04 LTS
- 3.13.0-100.147 用于 Ubuntu 14.04 LTS
- 3.2.0-113.155 用于 Ubuntu 12.04 LTS
- 3.16.36-1+deb8u2 用于 Debian 8
- 3.2.82-1 用于 Debian 7
- 4.7.8-1 Debian 不稳定
中央操作系统
某些版本的 CentOS 可以使用 RedHat 为 RHEL 提供的这个脚本来测试您服务器的漏洞。 要尝试它,首先下载脚本。
wget https://access.redhat.com/sites/default/files/rh-cve-2016-5195_1.sh
然后用 bash
运行它。
bash rh-cve-2016-5195_1.sh
如果您容易受到攻击,您将看到如下输出:
OutputYour kernel is 3.10.0-327.36.1.el7.x86_64 which IS vulnerable. Red Hat recommends that you update your kernel. Alternatively, you can apply partial mitigation described at https://access.redhat.com/security/vulnerabilities/2706661 .
修复漏洞
幸运的是,应用修复很简单:更新系统并重新启动服务器。
在 Ubuntu 和 Debian 上,使用 apt-get
升级您的软件包。
sudo apt-get update && sudo apt-get dist-upgrade
您可以使用 sudo yum update
更新 CentOS 5、6 和 7 上的所有软件包,但如果您只想更新内核以解决此错误,请运行:
sudo yum update kernel
在具有外部内核管理的旧 Droplets 上,您还需要选择 DigitalOcean GrubLoader 内核。 为此,请转到 控制面板 ,单击要更新的服务器。 然后,点击左侧菜单中的Kernel,选择GrubLoader内核。 您可以在 this kernel management tutorial 中了解有关更新 Droplet 内核的更多信息。 具有内部内核管理的较新 Droplet 可以跳过此步骤。
最后,在所有发行版上,您都需要重新启动服务器以应用更改。
sudo reboot
结论
确保更新您的 Linux 服务器以免受此权限提升错误的影响。