网站建设、公众号开发、微网站、微商城、小程序就找牛创网络 !

7*24小时服务专线: 152-150-65-006 023-68263070 扫描二维码加我微信 在线QQ

无线安全团结互助,让我们共同进步!

当前位置:主页 > 技术资讯 > 网络安全 > 无线安全 >

我们的优势: 10年相关行业经验,专业设计师量身定制 设计师一对一服务模式,上百家客户案例! 企业保证,正规流程,正规合作 7*24小时在线服务,售后无忧

分析攻击Docker平台恶意行为使用的策略和技术以及检测和阻止这些活动的措施

文章来源:重庆网络安全 发布时间:2020-02-07 10:19:21 围观次数:
分享到:

摘要:大多数恶意活动都涉及加密劫持(主要用于Monero挖矿),但是一些受感染的Docker被用来发起其他攻击或在其主机上安装rootkit。 攻击者还会从公开可用的日志中找到敏感信息。

      在过去的几年中,Docker技术的普及已大大增加,并且在该技术迅速发展的同时,它已成为攻击者的主要攻击目标。 大多数恶意活动都涉及加密劫持(主要用于Monero挖矿),但是一些受感染的Docker被用来发起其他攻击或在其主机上安装rootkit。 攻击者还会从公开可用的日志中找到敏感信息,例如应用程序凭据和基础结构配置。 攻击者将整个主机文件系统加载到一个容器中,并访问主机操作系统(OS)以从容器中进行读取/写入。

恶意活动分为以下四类:


  1.使用恶意代码部署容器映像


  首先将恶意映像推送到公共注册表,然后将映像提取并部署到不安全的Docker主机。


  2.部署良性容器映像并在运行时下载恶意负载。


  在Docker主机上部署良性映像,然后下载恶意有效负载并在良性容器中执行它。


  3.在主机上部署恶意负载


  将整个主机文件系统挂载到容器中,然后从该容器访问主机文件系统。


  4.从Docker日志中获取敏感信息


  获取Docker日志以查找敏感信息,例如凭据和配置。

Docker守护程序

  守护程序始终在后台运行。 它在单个主机上管理容器。 在运行时,它管理Docker对象,例如图像,容器,网络和存储。 应用程序或用户通常使用Docker客户端进行身份验证并与Docker守护程序进行交互。 如果有多个主机作为服务或集群,则Docker守护程序可以与其他Docker守护程序进行通信。


  默认情况下,Docker守护进程在/var/run/Docker.sock中创建一个非网络的Unix域套接字,只有具有root特权或Docker组成员身份的进程才能访问它。 如果客户端需要远程访问Docker守护程序,则Docker守护程序可以打开TCP套接字并在端口2375上列出REST API请求。您还可以使用TLS配置双向身份验证,以保护客户端和远程守护程序之间的通信。 但是,TLS配置可能很复杂,用户有时会犯错误,并无意间将未经身份验证的守护程序暴露给Internet。


  收集公共Docker守护程序

  由于建立TLS的复杂性,研究人员在Internet上发现了许多配置错误和不安全的守护程序。 一些Docker守护程序没有加密或身份验证。 某些Docker守护程序配置了TLS,但这些守护程序无法验证客户端证书。 无需验证客户端证书,任何人都可以建立到守护程序的加密但未经验证的连接。 发现这些不安全的Docker守护程序的攻击者可以完全控制Docker平台,并执行诸如部署新容器,登录到任何活动容器以及下载容器映像之类的操作。 由于Docker守护程序以root身份运行,因此攻击者也可以完全控制主机。


  为了了解攻击者在不安全的Docker主机上使用的策略和技术,研究人员定期扫描Internet上的公共Docker守护程序,并在2019年9月至2019年12月之间收集其元数据。在此期间,发现大约有5000个Docker守护程序暴露在服务器上。  Internet,其中10-15%的守护程序无需身份验证即可访问。 研究人员通过只读请求从不安全主机中收集元数据,如表所示。

image.png

总共识别出1,400多个唯一的不安全Docker主机,8,673个活动容器,17,927个Docker映像和15,229个卷。 图显示了Docker守护程序的位置分布和它们的Docker版本和操作系统类型。

image.png

image.png

使用恶意代码部署容器映像

  每个Docker映像包都具有运行应用程序所需的依赖项。 结果,应用程序可以在任何平台,操作系统和基础结构上以相同的方式运行,并且恶意应用程序可以以相同的方式部署。 攻击者使用诸如Docker Hub和Quay之类的公共容器注册表来存储和传递恶意容器映像。 由于Docker Hub是大多数Docker主机的默认注册表,因此通常用于存储和交付恶意映像。 这些恶意软件直接作为容器安装,并在受感染的主机上运行。 它们通常只是窃取CPU,内存或网络资源,而不会损害同一主机上的其他容器或进程。 由于恶意代码内置在容器映像中,因此分析工具通常可以在部署映像之前识别恶意文件。 如表所示,在Docker Hub上发现了大量包含恶意代码的映像。

image.png

image.png

部署良性容器映像并下载恶意负载

  启动容器后,其文件系统和活动进程通常保持不变。 但是,如果没有用于限制文件系统访问的安全策略(例如AppArmor或SELinux),攻击者就可以在运行时在容器中安装并执行恶意有效负载。 分析工具擅长识别容器映像中的恶意代码,但它们看不到运行时安装的恶意负载。 攻击者可以在安装和操作后从Docker Hub部署经过验证的官方映像,并将恶意进程注入到容器中。


  在图中,恶意脚本已下载并在正式的Ubuntu映像中执行。下载了两个恶意脚本,并通过Alpine映像在主机文件系统上运行。 显示了通过Busybox映像添加到主机的crontab中的base64编码的脚本。

image.png

在主机上部署恶意负载

  不安全的Docker守护程序允许攻击者访问所有容器和映像,但是该守护程序无法直接提供对主机操作系统的访问。 通常,攻击者将整个主机文件系统安装到一个容器中,然后从该容器访问主机操作系统。 装入整个主机文件系统后,几乎可以从容器读取/写入主机上的所有文件。


  在图中,攻击者创建了一个容器,该容器将整个主机文件系统(/)加载到容器文件系统(/ mnt)中。 显示了如何从容器对主机文件系统执行恶意加载。  chroot命令将调用进程的根目录更改为/ mnt,指向主机文件系统的根目录。  chroot完成后,恶意进程实际上在主机文件系统上运行。


  图中显示了一种使用已挂载的文件系统攻击主机的技术。 图中,攻击者通过将恶意负载发送到容器中的主机挂载点(/ mnt),在主机上创建了恶意cron作业。 图中,新的公共密钥被添加到主机的根目录中。 该密钥支持通过ssh访问主机操作系统。 图中,恶意代码被下载并通过安装点放置在主机引导过程目录rc3.d中。

image.png

image.png

从Docker日志中获取敏感信息

  默认情况下,Docker守护程序会维护每个容器从创建到终止的事件和日志。 日志对于调试和审核至关重要,但是敏感信息(例如配置和凭据)也可能从日志中泄漏。


  在图中,从命令日志中显示了应用程序密码。etcd服务器的IP和密钥文件的位置从命令日志中泄漏出来。

image.png

在整个研究过程中,发现了一组网站,这些网站通常用于传递恶意有效负载或从受感染主机接收数据。 这些域中的大多数都允许用户匿名上传和下载文件。

image.png

这项研究深入研究了攻击者在攻击Docker平台时使用的策略和技术,以及检测和阻止这些活动的措施。 大多数漏洞是由于将不安全的Docker守护程序暴露于Internet所致,因此防御策略包括:


  在Docker守护程序套接字上配置TLS时始终强制进行相互身份验证


  使用Unix套接字与Docker守护程序进行本地通信,或使用SSH连接到远程Docker守护程序


  仅允许客户端IP白名单访问Docker服务器


  在Docker中启用内容信任,仅提取经过签名和验证的图像


  扫描每个容器映像中的漏洞和恶意代码。


  部署保护工具以监视正在运行的容器。


本文由 重庆网络安全 整理发布,转载请保留出处,内容部分来自于互联网,如有侵权请联系我们删除。

相关热词搜索:攻击Docker平台 攻击行 攻击Docker策略和技术 重庆网络安全

上一篇:IotShark:物联网流量监控与分析平台,监控物联网设备所发送或接收的数据趋势,通过发动ARP攻击、设置包转发和中间人包嗅探器来处理
下一篇:Web Shell攻击:net.exe侦察,nbstat.exe扫描其他目标系统,最后使用PsExec横向移动

热门资讯

鼠标向下滚动