在本项目中,我们发现了一种通过恶意容器进行的近期攻击,并实现了一种安全机制来阻止它。
网络攻击已成为企业和小型企业面临的严峻挑战,这在很大程度上源于其IT资源各组件中的漏洞。了解这些威胁是保护组织数据和资产的第一步。常见的攻击形式包括恶意软件、勒索软件和网络钓鱼。近期研究强调了针对容器基础设施的攻击日益增多。攻击者通常通过公共搜索引擎和扫描工具定位配置不当的容器来进行利用。 因此,在本项目中,我们利用CVE-2019-5736 Docker漏洞实现了一次攻击,并确定了一种阻止攻击的安全机制。
我们使用以下设置来安全地实现攻击和安全机制。在搭载Windows操作系统的基础机器上,部署了运行Ubuntu 18.04操作系统的VMware工作站虚拟机。此外,在Ubuntu 18.04上安装了Docker 18.03.1-ce (Runc 1.0.0-rc5) 容器应用程序。
“usr/docker/runc”是一个敏感的內部可执行文件,任何第三方用户都不应能够修改它。然而,Docker版本18.03存在漏洞,导致它不会记录“runc” Docker文件的修改;因此,攻击者可以利用该漏洞修改“usr/docker/runc”文件,并获取我们Linux系统的root访问权限。
结果:
此漏洞的根本原因在于恶意Docker镜像能够修改“/usr/docker/runc”文件,并将恶意代码注入该可执行文件中。
为了阻止此攻击发生,我们使用“Chattr”命令将“/usr/docker/runc”文件设置为不可变。结果,漏洞利用无法运行,攻击者端没有响应。
我们应用的安全机制确实阻止了攻击,这意味着我们能够阻止恶意代码利用我们发现的特定Docker文件的漏洞。对于该安全机制,我们不能使用‘chmod’命令,因为在我们利用的这个特定漏洞中,攻击者已经获得了root权限。因此,‘chmod’命令无法阻止攻击。
在本项目中,我们选择实施一种利用CVE-2019-5736漏洞(CVSS评分高)的攻击,该攻击使攻击者能够以root权限远程访问用户的机器。我们成功执行了攻击,并找到了阻止它的安全机制。
挑战: