应急响应篇近源攻击Docker镜像容器分析Dockfile路径定位基线扫描
Docker应急
Docker拉取的镜像被攻击者拿下,植入后门或挖矿等恶意应用,那么该如何应急?
1、启动镜像
例子1:docker run -itd --restart=always -e POOL_URL=pool.supportxmr.com:5555 -e POOL_USER=45rfqYG9iNPddvenLpjFskJUhFgqBkdhDeah3X8D8ZJM3KpKqZWCLz3ewLsVd269tZiEyQRV53Ldv2DJb6xeuFokF7SBb1p --name xmrig pmietlicki/xmrig
例子2:
git clone https://github.com/vulhub/vulhub.git
cd vulhub/shiro/CVE-2016-4437
docker compose up -d
2、镜像分析
使用docker history命令查看指定镜像的创建历史,加上–no-trunc,就可以看到全部信息。
docker history pmietlicki/xmrig
使用dfimage从镜像中提取Dockerfile,在这里可以清晰地看到恶意镜像构建的过程
dfimage -sV=1.36 pmietlicki/xmrig
查看镜像的配置信息
docker inspect --format=‘{{json .Config}}’ pmietlicki/xmrig
获取镜像的运行路径
docker inspect --format=‘{{.GraphDriver.Data.LowerDir}}’ pmietlicki/xmrig
3、处置镜像
查看镜像:docker ps
进入镜像:docker exec -it xxxxx /bin/bash
暂停镜像:docker pause <容器ID>
删除镜像:
docker rm -f
docker rmi <IMAGE_NAME>
4、基线检测
https://github.com/anchore/grype/releases
rpm -ivh grype_0.80.0_linux_amd64.rpm
grype
grype --scope all-layers
https://github.com/aquasecurity/trivy
wget https://github.com/aquasecurity/trivy/releases/download/v0.54.1/trivy_0.54.1_Linux-64bit.deb
sudo dpkg -i trivy_0.54.1_Linux-64bit.deb
trivy image xxx:xxxx
docker 挖矿木马应急响应
服务器发现异常
top发现cpu占比过高的进程怀疑挖矿病毒
kill -9 ,发现该进程kill不掉
ps -aux 找到对应path 跟踪path 发现此路径不存在
又发现进程中运行了systemed 说明存在docker容器,怀疑挖矿病毒是在docker里
docker ps 查看存在的镜像
docker history <docker_name> --no -trunc 查看指定镜像的历史创建信息,包括创建时加载了哪些命令,配合grep搜素查找关键词
进入docker镜像 docker exec -it <镜像id> /bin/bash
进去之后查看执行查看进程命令 ps -aux 会发现病毒运行的pid
kill 如果kill不掉进程
用dfimage 来分析docker镜像,可以查看config信息
dfimage -sV=1.36 pmietlicki/xmrig
docker inpsect 也可查看docker里的配置信息和镜像在磁盘中的运行路径
docker inspect --format=‘{{.GraphDriver.Data.LowerDir}}’
docker可以看作本机和虚拟机的关系,虚拟的目录也是存放在本机磁盘上的
本地磁盘路径+docker路径就能在本机找到病毒文件进行查杀
找docker本身缺陷和漏洞(基线检查)
若是非程序的后门连接要使用监听工具监听docker的网络行为
docker 镜像应用扫描器来做极限检查trivy和grype