首页 > IT基础架构 > 网络安全 > 什么是 Dirty COW 漏洞
什么是 Dirty COW 漏洞?
Dirty COW(分配为 CVE-2016-5195)是某些版本的 Linux 内核中的权限提升漏洞,会影响运行早于 2018 的 Linux 内核版本的 Linux 和 Android 系统。
通过利用 Dirty COW 漏洞,攻击者可以获得对其他只读内存映射的写入访问权限。这使他们能够提高他们在系统中的帐户特权,例如,通过覆盖/etc/passwd中的用户UID或修改现有的setuid文件以包含提高特权的指令。
“Dirty COW”漏洞于2016年10月披露,自2007年以来一直潜伏在流行的操作系统核心代码中。在披露时,这个漏洞影响了大多数Linux发行版和内核版本。受影响的分配包括:
CentOS Linux 7.x
CentOS Linux 6.x
CentOS Linux 5.x
Debian Linux wheezy
Debian Linux jessie
Debian Linux stretch
Debian Linux sid
Ubuntu Linux precise (LTS 12.04)
Ubuntu Linux trusty
Ubuntu Linux xenial (LTS 16.04)
Ubuntu Linux yakkety
Ubuntu Linux vivid/ubuntu-core
Red Hat Enterprise Linux 7.x
Red Hat Enterprise Linux 6.x
Red Hat Enterprise Linux 5.x
SUSE Linux Enterprise 11
SUSE Linux Enterprise 12
Dirty COW是社区采用的特权升级漏洞之一,它的名字来源于它所利用的内核特性——写时复制(COW)。
自2.6.22版本(2007年9月发布)以来,这个漏洞一直困扰着Linux内核,但在4.8.3、4.7.9、4.4.26和更新的Linux内核版本中已经打了补丁。也就是说,有充分的证据表明,网络攻击者在野外利用脏牛来接管未打补丁的服务器,尽管该漏洞的执行本身不会在web服务器日志中留下任何痕迹。它也是Android恶意软件的一个组成部分。
Dirty COW 漏洞的工作原理
Dirty COW漏洞利用是一种竞争条件漏洞利用。在这种情况下,攻击者利用内核在运行时获得的root权限,并创建了竞争条件,使特权从低级用户升级到具有完全 root权限的用户。
什么是竞争条件?
当一个正在运行的软件程序遇到多个并发执行的代码路径时,它会“混淆”软件,并在代码路径之间产生“竞争”,导致它们以不同于预期的顺序结束,从而导致错误和意外的应用程序行为。
在利用Dirty COW的情况下,竞争发生在两个操作之间:一个操作写入COW内存映射,另一个操作不断地处理它们。当这些操作不停地重复时,内核可能会将数据写入只读内存映射,而不是首先创建数据的私有副本。或者,目标系统将崩溃。

如何防止Dirty COW漏洞利用攻击
1. 通过机密泄露防止代码执行
为了防范 CVE-2016-5195 漏洞(又名 Dirty COW),控制服务器访问和权限至关重要。此漏洞利用要求攻击者能够在系统上编写和执行代码。
确保适当的访问控制和凭据到位是一项关键的防御措施。机密蔓延等问题(即密码、API 密钥和凭据等敏感信息在系统中不受控制地分发和暴露)可能是 Dirty COW 漏洞发生的门户。
确保适当的访问控制和凭证到位是关键的防御措施。在整个系统中不受控制地分发和暴露密码、API密钥和凭据等敏感信息可能导致攻击发生。
2. 扫描 IaC 和容器
为了保护容器化应用程序免受Dirty COW攻击,定期扫描基础设施即代码(IaC)和容器很重要。Dirty COW甚至可以修改容器内的只读数据。可以通过检查CI/CD安全管道中的内核版本来自动化此过程。
3. 自动化内核修补
自动化内核修补是响应 Dirty COW 等漏洞的关键。最初,一旦有可用的修复程序,就必须手动修补受影响的系统。但是,手动修补可能重复且耗时。更好的方法是自动实时修补。许多 Linux 发行版为其企业客户提供此服务。
自动化内核补丁是响应Dirty COW等漏洞的关键。及时进行打补丁来修复受影响的系统可以很大程度降低漏洞被利用的风险。
参读链接:
https://spectralops.io/blog/what-is-the-dirty-cow-exploit-and-how-to-prevent-it/
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70000012/viewspace-3012211/ ,如需转载,请注明出处,否则将追究法律责任。