首页 > 其他分享 >Docker 容器入侵排查

Docker 容器入侵排查

时间:2023-06-15 09:44:59浏览次数:40  
标签:容器 inspect dvwa 排查 使用 Docker root docker

随着越来越多的应用程序运行在容器里,各种容器安全事件也随之发生,例如攻击者可以通过容器应用获取容器控制权,利用失陷容器进行内网横向,并进一步逃逸到宿主机甚至攻击K8s集群。

容器的运行环境是相对独立而纯粹,当容器遭受攻击时,急需对可疑的容器进行入侵排查以确认是否已失陷,并进一步进行应急处理和溯源分析找到攻击来源。在应急场景下,使用docker命令可以最大程度利用docker自身的特性,快速的获取相关信息而无需进入容器内部,帮助我们进行溯源分析和解决问题。


 1.1 检查容器运行情况

使用docker ps  查看当前运行的容器,创建时间、运行状态、端口映射。

[root@ecs-t /]# docker ps
CONTAINER ID   IMAGE                          COMMAND                  CREATED             STATUS             PORTS                          NAMES
b06352ff26cc   sagikazarmark/dvwa             "/run.sh"                About an hour ago   Up About an hour   3306/tcp, 0.0.0.0:81->80/tcp   dvwa

1.2 检查运行容器详细信息

使用docker inspect来获取容器的详细信息。

//获取容器名
docker inspect -f {{.Name}}  dvwa  

 //获取容器网络的相关信息
docker inspect -f {{.NetworkSettings}} dvwa   
docker inspect -f {{.NetworkSettings.IPAddress}} dvwa 

//目录在宿主机的具体挂载位置
docker inspect -f="{{json .Mounts}}" dvwa   
docker inspect -f "{{range .Mounts}} {{println .Source .Destination}} {{end}}" dvwa

1.3 检查容器资源的使用情况

使用docker stats 查看容器的CPU、内存、网络 I/O等情况,以确认是否存在资源异常的情况。

[root@ecs-t /]# docker stats dvwa

CONTAINER ID   NAME      CPU %     MEM USAGE / LIMIT     MEM %     NET I/O           BLOCK I/O         PIDS
b06352ff26cc   dvwa      0.00%     76.21MiB / 3.686GiB   2.02%     23.6kB / 57.6kB   24.1MB / 67.7MB   27

1.4 检查容器中进程信息

使用docker top 查看容器中的进程信息,通过PID/PPID/CMD等信息来辅助定位异常进程。

如下图:java父进程(PID:84010)触发bash反弹shell的子进程(PID:84281)。

1.5  查看容器中日志

使用docker logs查看容器日志,并通过关键字定位异常信息位置。

如下图:通过特征关键字找到可疑的jndi请求。

1.6 查看容器中的文件变化

使用docker diff命令可以找出容器内文件状态变化。备注:三种状态(A - Add, D - Delete, C - Change )。

如下图:通过新增文件目录快速定位webshell文件。

1.7 失陷容器应急处理

确认容器失陷后,一般我们可以采取暂停容器、隔离容器甚至杀死容器的方式来做紧急处理。

(1)使用docker pause,暂停容器中所有的进程。

(2)使用docker commit,用于将被入侵的容器来构建镜像,从而保留现场痕迹,以便溯源。

(3)将正在运行的Docker容器禁用网络。

//将运行中的容器与用户定义的网桥断开连接
[root@localhost ~]#docker network disconnect bridge <container-name>

//禁用veth
[root@localhost ~]#docker exec -it <container-name> cat /sys/class/net/eth0/iflink
29
[root@localhost ~]#ip link show |grep 29
29: vethbf5239e@if28: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue masteefault 
[root@localhost ~]# ip link set vethbf5239e down

(4)使用docker kill 杀掉运行中的容器。

docker kill -s KILL <container-name>

标签:容器,inspect,dvwa,排查,使用,Docker,root,docker
From: https://www.cnblogs.com/xiaozi/p/17481973.html

相关文章

  • 批量下载微软云blob容器到本地(解决内容编码是gzip下载后乱码的问题)
    问题1(无法解决):因为要将微软云存储中的数据迁移到其他腾讯云cos中。但是由于微软云存储每一个blob容器中存在内容编码为gzip的js、css文件。导致在腾讯云上,使用存储迁移功能的时候,从微软云迁移到腾讯云存储的js、css文件都无法完全同步(js、css文件会同步失败)。所以只能先下载到本......
  • Docker CLI docker container export 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • [C++] 什么是vertor容器?
    基本概念C++中的vector是一种顺序容器,是一个封装了动态大小数组的顺序容器,可以存放任意类型的数据。vector可以随着元素的加入自动扩充其大小,并且支持在中间插入或删除元素。vector的声明方式为:vector<元素类型>数组名;例如,声明一个储存整数的vector变量可以这样写:......
  • 搭建 Docker 私有镜像仓库
    我们获取镜像,绝大多数情况下,从Docker官方仓库或者知名第三方仓库(如阿里云)中获取,但是对于公司内基于自身的业务生成的Docker镜像,很有可能涉及到商业利益,肯定不能对外公开,因此需要存放在公司的Docker私有镜像仓库中。有关Docker的私有仓库的搭建过程,也非常简单,一般是获取和......
  • docker启动tomcat时区差了8小时
    docker启动tomcat时区差了8小时进入tomcat容器,一般在/usr/local/tomcat/bin找到目录下的catalina.sh文件,在这里修改时区大概100多行,下面这个JAVA_OPTS就是我们加进去的#OSspecificsupport.$var_must_besettoeithertrueorfalse.cygwin=falseJAVA_OPTS="-se......
  • docker的安装
    1.安装gcc,gcc-c++,yum-utils,由于蜜蜂已经安装过了,这里显示已是最新版[root@bee~]#yuminstall-ygccgcc-c++yum-utils2.指定镜像仓库(其实就是配置几个yum)[root@bee~]#yum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3.......
  • docker 安装mysql-server
    ################查找mysql-server镜像:dockersearchmysql-server[root@igoodful~]#dockersearchmysql-serverINDEXNAMEDESCRIPTIONSTARSOFFICIALAUTOMATEDdocker.iodock......
  • 云原生之使用docker部署httpd服务
    (云原生之使用docker部署httpd服务)一、检查系统版本[root@node~]#cat/etc/os-releaseNAME="CentOSLinux"VERSION="7(Core)"ID="centos"ID_LIKE="rhelfedora"VERSION_ID="7"PRETTY_NAME="CentOSLinux7(Core)"AN......
  • docker搭建wordpress
    ==========================docker的安装与部署==========================dockerimages 查看镜像dockerps-a 查看当前已有容器状态dockerexec-it容器编码(无重复前三位即可)或容器名称=================容器有点像虚拟机docker服务秒级启动finalshell连接centos7=......
  • 利用DSF深度优先搜索来解容器倒水问题
    在一些面试算法或智力题中,时不时会遇到容器倒水的问题,例如,有三个容器,分别是10升,7升,4升,7升和4升的容器装满了水,10升容器是空的,如果将容器a中的水倒入容器b时,必须使得a中的水全部倒完,或者b被倒满,问有没有一种倒水序列,使得7升容器或4升容器中只有2升的水。这个问题怎么会跟图论的深度......