[转帖]Docker Hub上镜像发现挖矿蠕虫病毒,已导致2000台主机感染
Docker Hub上镜像发现挖矿蠕虫病毒,已导致2000台主机感染
https://www.kubernetes.org.cn/5951.html 本来想说可以用 official版本的镜像 但是一想 之前也有开源软件被人植入 恶意代码的情况 angular 还是哪一家的组件库. 安全问题 的确很有风险.
安全公司Palo Alto Networks威胁情报小组Unit 42发现一种新型的Graboid挖矿绑架病毒,目前已知这个蠕虫已经感染了超过2,000台不安全的Docker主机,用于挖掘Monero加密货币,研究人员提醒,虽然这个挖矿蠕虫没有复杂程序技术,但是由于他有能力从C2(Command and Control)服务器下载新脚本,因此可以简单地转换成勒索软件或是任何恶意软件,企业应提高保护自身Docker主机的能力。
过去也有以蠕虫病毒的形式,来散布挖矿绑架恶意软件的案例,但是这是第一次挖矿绑架蠕虫被发现存在Docker社区版本中,使用容器进行传播。研究人员表示,由于大多数传统端点保护软件,都不会检查容器中的资源以及动作,因此这种恶意动作难以被发现。
整个攻击链从攻击者在公共网络中选定一个不安全的Docker守护行程(Daemon)开始,在上面执行从Docker Hub拉取的恶意镜像容器,并且从C2服务器下载一些脚本以及容易受攻击的主机列表,接着挑选下一个攻击目标以传播蠕虫。Graboid会在容器中进行挖矿以及散布蠕虫,每次迭代Graboid随机挑选三个目标,在第一个目标安装蠕虫,停止第二个目标的矿工行动,并在第三个目标上启动矿工,而这样的机制让采矿行为变得非常随机。
也就是说,当被害者主机被感染时,恶意容器并不会立刻启动,必须要等待另外一个受感染主机的信号挖矿程序才会被启动,而正在挖矿的主机也会随机接收到其他受感染的主机停止挖矿的信号。每台受感染主机的矿工都由其他受感染的主机随机控制,研究人员表示,他们不清楚这种随机控制的设计动机,因为以规避侦测的角度来看,这样的机制效果不佳,比较可能是设计不良或是有其他的目的。
Unit 42进行了模拟,来了解蠕虫整体采矿的能力,包括蠕虫散布的速度,以及每个矿工在受感染的主机上平均活动时间,研究人员提到,以2,000台主机规模进行的实验,蠕虫病毒要花费大概60分钟,才能感染其中1,400台易受感染的主机,由于受感染主机上矿工随机启动和停止的挖矿行为,每个矿工约只有65%的时间处于活动状态,每个矿工采矿周期平均仅持续250秒。
研究团队分析了蠕虫使用的主机列表,其中包含2,034台易受攻击的主机,57.4%的IP来自中国,而13%位于美国,在Graboid使用的15台C2服务器中,主机列表中列了其中的14台,这表示攻击者会控制易受感染主机的Docker守护行程,在上面安装网页服务器容器,并将恶意载体放在上面。
Graboid攻击会使用到的Docker镜像pocosow/centos已经被下载超过一万次,而gakeaws/nginx也已经被下载6,500次,Unit 42发现gakeaws还发布了另一个挖矿绑架镜像gakeaws/mysql,其内容与gakeaws/nginx相同。不过这些有害镜像,都在研究人员与Docker团队联络后,全部被移除。
研究人员警告,当没有适当的身份验证机制,企业不应该把Docker守护行程暴露在公共网络上,而且其实在预设情况下,Docker社区版是不会暴露Docker守护行程的。企业应该使用Unix Socket来跟本地Docker守护行程沟通,或是使用SSH连接远端Docker守护行程。
企业需注意在防火墙规则中加入白名单,限定流入流量的来源,并且不可从未知的注册表或是未知使用空间拉取Docker镜像,平时也该定期检查系统是否存在未知的容器或是镜像,也可以使用云端安全解决方案,辨识恶意容器。
参考:https://www.ithome.com.tw/news/133655
[转帖]Docker Hub上镜像发现挖矿蠕虫病毒,已导致2000台主机感染的更多相关文章
- Docker入门系列之三:如何将dockerfile制作好的镜像发布到Docker hub上
这个系列的前两篇文章,我们已经把我们的应用成功地在Docker里通过nginx运行了起来,并且用dockerfile里制作好了一个镜像. Docker入门系列之一:在一个Docker容器里运行指定的w ...
- docker学习笔记7:发布镜像到docker hub上
镜像创建好后,很重要的一个操作就是共享和发布.可以将自己创建的镜像发布到docker hub上,也可以发布到自己的私有docker hub上. 要想发布镜像到dokcer hub上,首先要在dokce ...
- docker学习笔记4:利用docker hub上的mysql镜像创建mysql容器
docker hub上有官方的mysql镜像,我们可以利用它来创建mysql容器,作为一个服务容器使用. 1.下载mysql镜像 docker pull mysql 2.创建镜像 docker run ...
- 在Docker Hub上你可以很轻松下载到大量已经容器化的应用镜像,即拉即用——daocloud国内镜像加速
Docker之所以这么吸引人,除了它的新颖的技术外,围绕官方Registry(Docker Hub)的生态圈也是相当吸引人眼球的地方. 在Docker Hub上你可以很轻松下载到大量已经容器化的应用镜 ...
- 利用Docker Hub上的Nginx部署Web应用
Docker Hub上提供了很多镜像,如Nginx,我们不需要自己从ubuntu开始装Nginx再做发布,只需要先下载镜像到本地 docker pull nginx 在/opt下新建文件夹API,将需 ...
- Docker Hub公共镜像仓库的使用
创建账号并登陆这里是登陆入口 登陆账号 登陆进入之后里面目前仓库,现在去创建一个 下面我选的是公共仓库,别人也可以访问到 在服务器上登陆进来,进行上传镜像到仓库 [root@docker ~]# do ...
- 在Docker Hub上查找可用的Image映像
任何人都可以创建Docker Image映像,你可以浏览Docker Hub来查找这些Image映像. 定位Whalesay 映像 打开你的浏览器,浏览Docker Hub: Docker Hub包含 ...
- docker hub 本地镜像登录
docker的登录信息存放在home目录下的.docker文件夹下,查看 cat ~/.docker/config.json { "auths": { "gcyimgs. ...
- 关于 Docker Hub 上不能注册 Docker ID 的问题
1. 引言 我们中国大陆访问dockerhub的时候,想要注册一个dockerID,发现sign up按钮是灰色的,不能点击进行注册.这个时候通过点击右键"查看网页源代码"和&qu ...
随机推荐
- CodeForeces 842d Vitya and Strange Lesson ——(带lazy标记的01字典树)
给一个序列,每次操作对这个序列中的所有数异或一个x,问每次操作完以后整个序列的mex值. 做法是去重后构建01字典树,异或x就是对root加一个x的lazy标志,每次pushDown时如果lazy的这 ...
- 【Python 代码】3D TIF 拆成若干张tif (ISBI细胞数据集)
from libtiff import * imgdir = TIFF3D.open("train-labels.tif") imgarr = imgdir.read_image( ...
- 利用Git上传项目到github以及遇到的问题
今天学习如何利用git从本地端上传项目,以及遇到问题的解决方法 1.要有自己的github账号,并创建一个仓库, 2.输入仓库的名称,直接Create 注:记住常见成功后的这个地址,后边要用到: 3. ...
- Oracle查看当前用户所在的表空间
1.用户 查看当前用户的缺省表空间 select username,default_tablespace from user_users; 1 查看当前用户的角色 select * from user ...
- useState 的介绍和多状态声明(二)
useState的介绍 useState是react自带的一个hook函数,它的作用是用来声明状态变量. 那我们从三个方面来看useState的用法,分别是声明.读取.使用(修改).这三个方面掌握了, ...
- Apollo简介及项目集成
1. 产生背景 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关.参数的配置.服务器的地址…… 对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境.分集群管理配置,完善的权限 ...
- Fixed-Length Frames 谈谈网络编程中应用层(基于TCP/UDP)的协议设计
http://blog.sina.com.cn/s/blog_48d4cf2d0101859x.html 谈谈网络编程中应用层(基于TCP/UDP)的协议设计 (2013-04-27 19:11:00 ...
- FFmpeg 参数详解(二)
https://blog.csdn.net/yizhizouxiaqu/article/details/52233673 5.参数选项 如果没有特殊声明,所有的数字参数都以一个字符串代表数字的形式作为 ...
- 使用kindeditor获取不到富文本框中的值
获取不到富文本框中的值,网上一搜一堆,但最终没有几个能解决问题的,折腾一番最终解决.注意就是红色代码,加上之后就可以解决问题了. KindEditor.ready(function (K) { var ...
- Qt比较字符串Qstring是否相等
Qt比较字符串Qstring是否相等 QString str = "相等"; if(str ==QString::fromLocal8Bit("球形")) { ...