目录
检查容器运行情况
查看当前正在运行的容器。可以使用此命令检查是否有异常或未知的容器在运行。
docker ps
进入容器详细查看
docker exec -it [容器名称/ID] /bin/bash
进入容器的shell环境,以便进行进一步的检查和分析。这个命令可以让你在容器内执行命令,检查容器中的文件、进程和网络连接等信息。
获取容器的详细信息
docker inspect [容器名称/ID]
获取容器的详细信息,包括容器的配置、网络设置和挂载的卷等。这个命令可以帮助你了解容器的运行环境和相关配置。
//获取容器名
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
//查看网络信息
docker inspect -f="{
{json .NetworkSettings}}" dvwa
查看容器内部文件系统的变化
docker diff [容器名称/ID]
三种状态(A - Add, D - Delete, C - Change )
可以使用此命令检查容器是否被修改或添加了不应存在的文件。
查看容器内运行的进程
docker top [容器名称/ID]
通过这个命令可以检查容器内运行的进程是否正常,以及是否有异常进程存在。
查看容器的日志信息
docker logs [容器名称/ID]
通过查看日志,可以检测到异常的行为、错误信息或者可疑的活动。
实时查看容器的资源使用情况
docker stats [容器名称/ID]
包括CPU利用率、内存使用量和网络流量等。这个命令可以帮助你发现异常的资源使用情况。
查看Docker网络的配置和状态
docker network ls
可以使用此命令检查是否存在未知或异常的网络连接。
失陷容器应急处理
确认容器失陷后,一般我们可以采取暂停容器、隔离容器甚至杀死容器的方式来做紧急处理。
(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>
第三方工具来进行更深入的安全入侵检测
-
Docker Bench for Security:这是一个由Docker官方提供的开源工具,用于检查Docker容器和宿主机的安全配置是否符合最佳实践。
-
Clair:这是一个用于扫描Docker镜像中的漏洞的工具,可以帮助你发现容器镜像中存在的安全问题。
-
Trivy:https://github.com/aquasecurity/trivy
- 一款全面且多功能的安全扫描仪。 Trivy拥有查找安全问题的扫描器,并将目标定位在可以找到这些问题的地方。
- 容器镜像
- 文件系统
- Git仓库(远程)
- 虚拟机映像
- Kubernetes
- AWS