云原生供应链安全通过DockerHub公

基于供应链的攻击成了时下最常见的针对信息系统攻击手段。基于供应链的攻击通常依赖性攻击向量、依赖项或产品的源代码——攻击者通过篡改和假冒一些被其他系统广泛依赖组件从而达到自己需要入侵的目的。比如去年针对SolarWinds的攻击就是使用这种方法的典型案例之一,攻击者通过在SolarWinds产品本身中注入木马后门来针达到入侵其他使SolarWinds工具的系统。

针对源代码依赖组件不是唯一攻击媒介。近年来,随着云和容器技术大力发展、推广和使用,以容器作为攻击媒介已经成了供应链工具比较主流和有效的途径。

国外云原生系统安全研究团队Sysdig同归对DockerHub上超25万个Linux镜像进行了分析,并发布了《Sysdig云原生安全使用报告》,今天我们就来学习一下相关的结论。

概述

由于容器镜像被设计成可移植的,开发人员通常会共享自己制作的镜像并通过公共容器注册表进行发布。

DockerHub目前是最受欢迎的免费和面向公众的容器注册表。用户通过DockerHub发布和共享预制容器镜像,为广大用户提供了安装和配置所有必需软件的巨大优势。攻击者逐渐意识到并且开始利用这个平台,在上面发布嵌入了恶意负载的镜像。

通过简单的一键命令dockerpullimage,这些精心布置的镜像就会下载到用户的主机或者云实例上。整个DockerHub镜像下载和安装是不透明的;因此,用户需要应在下载前检查清单(即Dockerfile),确保来源合法且镜像干净。

DockerHub

DockerHub是一个基于云的容器镜像公共存储库,世界上任何人都可以在其中免费下载、创建、存储和部署Docker容器镜像。它提供对公共开源镜像库的访问,每个用户都可以创建自己的私有存储库来存储个人镜像。

DockerHub提供由DockerLibraryProject审查和发布的官方镜像,确保遵循最佳实践并提供清晰的文档和定期更新。此外,DockerHub通过DockerVerifiedPublisherProgram支持独立软件供应商(ISV)。该计划中的开发工具供应商可以通过DockerHub分发受信任的Dockerized内容,并使用经过验证的发布者签名的镜像,从而避免用户下载恶意内容的镜像。

《Sysdig云原生安全使用报告》统计数据显示,61%的提取镜像来自公共存储库,比年增加了15%。这意味着公共存储库提供的灵活性和其他功能受到了广泛的赞赏用户,但与此同时,暴露于恶意镜像的风险增加。

域名仿冒、挖矿和秘密

Sysdig安全威胁研究团队构建了一个分类器来提取和收集有关DockerHub中最近更新镜像的信息,以确定他们在镜像层中是否包含任何异常或恶意内容。

团队提取了密码、IP和URL等信息,以评估特定镜像是否可能是恶意的。为了对大量镜像执行所有这些操作,提取和验证过程是自动化。SysdigTRT使用多种开源工具和服务来确定IP和URL是否为恶意的,方法允许对数十万张镜像的所有提取信息进行快速分析。

团队使用数月的时间里分析了超,个Linux镜像,调查的重点为全球用户上传的公共镜像,并不包括官方镜像和可验证镜像。

恶意镜像分类

Sysdig威胁研究团队对收集的恶意镜像做了分类,如下所示,主要集中为两个主要类别:恶意IP或域名,以及加密。这两类都可能对用户下载和部署DockerHub中公开可用的镜像构成威胁。

研究中的被识别为恶意镜像的镜像内容类型包括:

正如预期的那样,加密镜像是最常见的恶意镜像类型。分层嵌入的秘密也是二普遍的,这突出了秘密管理的持续挑战。由于无意中糟糕的编码实践,秘密可能会嵌入镜像中,或者这可能是由威胁行为者故意完成的。通过将SSH密钥或API密钥嵌入到容器中,攻击者可以在部署容器后获得访问权限。为防止凭据意外泄露,敏感数据扫描工具可以在开发周期中发现并提醒用户。

在分层中嵌入秘密的镜像代表了大部分恶意镜像。SysdigTRT根据泄露机密的类型将这些镜像划分为子类别,如下图所示。

SysdigTRT还将公钥归类到SSH密钥类别中,因为当其嵌入到容器镜像中时,很可能被部署用于非法用途。例如,将公钥上传到远程服务器,可以让相应私钥的所有者打开一个shell,通过SSH运行命令,类似于植入后门。

属于其他类别的密码可以允许任何人对不同的服务和平台进行身份验证,因为它们可以在层中公开访问。

伪装成合法镜像

在研究过程中,SysdigTRT还发现有些恶意镜像故意起名为何知名开源软件比较相似的名称,以欺骗用户下载和部署。这种做法被称为名称仿冒,假装它们是合法的官方形象,同时在其层中隐藏一些恶意的内容。

比如,研究中发现下面这些像被命名为知名的PHPCMS框架但实际上隐藏加密货币矿工的合法镜像。如果用户不仔细甄别就可能会下载安装这些镜像。此类错误最常发生在使用众包知识时,例如从博客或论坛复制和粘贴代码或配置。

检查这些镜像的层可确认它们为挖矿矿工:

可以直接在DockerHub上探索镜像层。例如,ynprpagamentitk/liferay的层可通过此URL访问。

有趣的是,这些镜像是由不同的用户发布的,但它们都包含相同的层,这意味着它们很可能属于同一个威胁参与者或者使用了统一脚本。此外,这些用户中的每个人都只发布了一个镜像,这使得追踪这个威胁者变得更加困难。在前面的第一层中克隆的存储库不再存在,但它的名字强烈暗示它是一个挖掘工具。此外,Github用户OhGodAPet仍然活跃,并Fork了几个挖矿工具的存储库。

在上面的最后一层中,恶意镜像使用一些参数执行“minerd”二进制文件,从镜像的下载次数可以看出,有数百名用户被诱骗下载了这些镜像,而他们并不知道他们为挖矿木马。

SysdigTRT还发现了另一位用户vibersastra,他于年7月31注册DockerHub,并上传了完全伪装的镜像被大量下载:

通过查看镜像层,可以清楚地看到这些镜像都下载了XMRigminer工具,然后使用它向特定钱包挖门罗币。如下所示:

缓解

很明显,容器镜像已经成为一个真正的攻击媒介,而非理论风险。SysdigTRT发现恶意行为者使用的方法专门针对云和容器工作负载。部署此类工作负载的组织应确保他们制定了适当的预防性和检测性安全控制措施,能够减轻针对云的攻击。根据收集这些知恶意容器镜像来源SHA-哈希校。通过校对这些恶意镜像哈希,可以在用户环境中发现镜像的容器时发出警报,并采取适当的响应措施。如果环境中出现已知的恶意容器,可以立即将其杀死、暂停或停止,同时通知安全团队。

总结

目前大部分项目都要依赖于大量的第三方软件包。这些依赖项的来源千差万别,有些是由大公司生产和支持的,而另一些是由可能不再支持他们的项目的未知方开发的。

这种共享代码的概念也已经传播到容器,人们可以在容器中轻松地在DockerHub等平台上分享其镜像,这使得测试和部署整个平台变得非常容易,但也增加了使用恶意软件的风险。威胁行为者将恶意软件放入共享容器中,希望用户下载并在其基础设施上运行它们。安装的恶意软件可以是任何东西,从加密矿工到后门,再到自动泄露数据的工具。

了解和监控组织的容器化环境中发生的事情比以往任何时候都更加重要。




转载请注明:http://www.aierlanlan.com/tzrz/5267.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了