如何修复和保护Linux服务器免受CentOS 5/6/7或RHEL 5/6/7上的脏COW漏洞的侵害

在本文中,我们将学习如何修复Dirty Cow Linux漏洞CentOS / Red Hat,Dirty Cow Linux漏洞已于2016年10月19日升级,因为这是Linux操作系统在内核级别的特权升级漏洞,并已披露。名称为Dirty Cow的Dirty COW将为内核处理COW(写时复制)创造条件,这种情况已经存在很长时间了,因为大多数服务器都处于危险之中。实际上,这在Redhat上称为CVE-2016-5195。这可能会影响Red Hat Enterprise Linux 5,6,7附带的内核。

肮脏的母牛意味着服务器上的普通用户或非特权用户将获得对他们可以读取的所有文件的写访问权,从而增加了对系统的访问权限。

由于大多数Linux发行版已经发布了该漏洞的修复程序,因此不必担心,我们可以使用本文来修复此问题。

检查CentOS / RHEL机器中的漏洞

要检查CentOS / RHEL机器上的漏洞,我们需要运行以下脚本,其中我们在RHEL和CentOS上有很多内核。

我们可以使用以下链接从Redhat存储库下载脚本

# wget https://access.redhat.com/sites/default/files/rh-cve-2016-5195_1.sh
Output:
--2016-11-21 11:41:19--
https://access.redhat.com/sites/default/files/rh-cve-2016-5195_1.shResolving access.redhat.com... 104.120.145.18
Connecting to access.redhat.com|104.120.145.18|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 16478 (16K) [application/x-sh]
Saving to: “rh-cve-2016-5195_1.sh”
100%[======================================>] 16,478 72.4K/s in 0.2s
2016-11-21 11:41:19 (72.4 KB/s) - “rh-cve-2016-5195_1.sh” saved [16478/16478]

下载文件后,我们需要为脚本添加可执行权限。

# chmod +x rh-cve-2016-5195_1.sh

现在,我们将运行脚本来检测计算机是否易受攻击,或者不使用我们刚刚下载的脚本。

# ./rh-cve-2016-5195_1.sh
Output:
Your kernel is 2.6.32-642.6.1.el6.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 .

修复CentOS / RHEL上的脏牛漏洞

我们只需更新内核并重新启动服务器,即可直接从RHEL / CentOS存储库直接应用此修复程序

以下是更新CentOS / RHEL机器上所有软件包的命令。

# sudo yum update
Output:
yum update
Loaded plugins: fastestmirror, security
Setting up Update Process
Determining fastest mirrors
epel/metalink | 4.9 kB 00:00
* base: mirror.fibergrid.in
* epel: epel.scopesky.iq
* extras: mirror.fibergrid.in
* updates: mirror.fibergrid.in
…
…
Resolving Dependencies
--> Running transaction check
---> Package bind-libs.x86_64 32:9.8.2-0.47.rc1.el6_8.1 will be updated
---> Package bind-libs.x86_64 32:9.8.2-0.47.rc1.el6_8.3 will be an update
---> Package bind-utils.x86_64 32:9.8.2-0.47.rc1.el6_8.1 will be updated
---> Package bind-utils.x86_64 32:9.8.2-0.47.rc1.el6_8.3 will be an update
---> Package httpd.x86_64 0:2.2.15-54.el6.centos will be updated
---> Package httpd.x86_64 0:2.2.15-55.el6.centos.2 will be an update
---> Package httpd-tools.x86_64 0:2.2.15-54.el6.centos will be updated
---> Package httpd-tools.x86_64 0:2.2.15-55.el6.centos.2 will be an update
---> Package java-1.7.0-openjdk.x86_64 1:1.7.0.111-2.6.7.2.el6_8 will be updated
---> Package java-1.7.0-openjdk.x86_64 1:1.7.0.121-2.6.8.1.el6_8 will be an upda te
…
kamailio-debuginfo.x86_64 0:4.4.4-1.1
kamailio-mysql.x86_64 0:4.4.4-1.1
kamailio-unixodbc.x86_64 0:4.4.4-1.1
kernel-firmware.noarch 0:2.6.32-642.11.1.el6
kernel-headers.x86_64 0:2.6.32-642.11.1.el6
kexec-tools.x86_64 0:2.0.0-300.el6_8.1
libblkid.x86_64 0:2.17.2-12.24.el6_8.1
libgcrypt.x86_64 0:1.4.5-12.el6_8
libuuid.x86_64 0:2.17.2-12.24.el6_8.1
nss.x86_64 0:3.21.3-2.el6_8
nss-sysinit.x86_64 0:3.21.3-2.el6_8
nss-tools.x86_64 0:3.21.3-2.el6_8
nss-util.x86_64 0:3.21.3-1.el6_8
perf.x86_64 0:2.6.32-642.11.1.el6
policycoreutils.x86_64 0:2.0.83-30.1.el6_8
selinux-policy.noarch 0:3.7.19-292.el6_8.2
selinux-policy-targeted.noarch 0:3.7.19-292.el6_8.2
tzdata.noarch 0:2016i-1.el6
tzdata-java.noarch 0:2016i-1.el6
util-linux-ng.x86_64 0:2.17.2-12.24.el6_8.1
Complete!

更新完成后,我们需要重新引导计算机以使更新生效,以下是重新引导计算机的命令。

# sudo reboot

在更新内核更新后验证系统

在升级软件包并更新DirtyCow漏洞的机器之后,我们需要检查内核是否已升级,以下是验证命令。

我们可以运行前面步骤中下载的脚本来检查漏洞,也可以运行以下命令–

./rh-cve-2016-5195_1.sh
Output:
Your kernel is 2.6.32-642.11.1.el6.x86_64 which is NOT vulnerable.

我们可以看到该脚本,如果它表明该计算机不容易受到攻击。

# uname -r
Output:
2.6.32-642.11.1.el6.x86_64

如我们所见,内核已从2.6.32-642.6.1.el6.x86_64更新为2.6.32-642.11.1.el6.x86_64,因此Linux计算机不受Dirty Cow漏洞的影响。

在以上文章中,我们了解了如何使用RHEL的脚本在CentOS / RHEL Linux机器上检查Dirty Cow漏洞,并且还学习了如何修复Dirty Cow漏洞并在更新后进行验证。