当前位置: 首页 > news >正文

应急响应篇近源攻击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

http://www.xdnf.cn/news/31339.html

相关文章:

  • MPTCP 的吞吐困局
  • 数据库基础-B+树
  • 使用 #pragma warning(push) 局部开启更高等级
  • 性能比拼: Elixir vs Go
  • MATLAB 控制系统设计与仿真 - 39
  • 春和景明-C语言简单代码
  • 又一张支付牌照注销
  • 实现窗口函数
  • Python+Selenium+Pytest+POM自动化测试框架封装(完整版)
  • M|触碰你
  • HTML+CSS+JS(1)
  • 深度学习数据预处理:Dataset类的全面解析与实战指南
  • 基于机器学习 LSTM 算法的豆瓣评论情感分析系统
  • 方法引用和构造器引用
  • vulnhub靶场之【hacker-kid】靶机
  • 洛谷 P2606 [ZJOI2010] 排列计数
  • 第六周作业
  • 详细的PyCharm安装教程
  • STL——红黑树的封装及map/set的模拟实现
  • 重读《人件》Peopleware -(7)Ⅰ管理人力资源Ⅵ-莱特瑞尔 Laetrile
  • 【后端】【python】Python 爬虫常用的框架解析
  • 如何保存服务器mysql数据库的数据到本地文件
  • Java 并发性能优化:线程池的最佳实践
  • nohup的使用
  • MySQL中常用函数的分类及示例
  • rpcrt4!COMMON_AddressManager函数分析之和全局变量rpcrt4!AddressList的关系
  • 面向新一代扩展现实(XR)应用的物联网框架
  • 打靶日记 zico2: 1
  • Qt编写推流程序/支持webrtc265/从此不用再转码/打开新世界的大门
  • 初始 Vue