螣龙安全手册:容器漏洞评估

 

 

 

现阶段,我们正在从虚拟化过渡到容器化,一些我们所熟悉的容器化技术就包括了诸如docker或quay.io等。一般来说,我们可以通过配置程序依赖环境来为特定应用程序建立镜像,通常当开发人员使用容器时,它不仅把程序进行了打包,同时也可以将程序封装成操作系统一部分。可糟糕的是,我们不知道容器的连接库是否已打补丁或是否易受到攻击。

因此,今天我们要来展示的是“如何在任何基础架构中进行容器审计以及漏洞评估”。

 

01

 

Clair:针对漏洞的漏扫工具

 

· 安装

CoreOS开发了一个很棒的容器扫描工具—Clair。

Clair是一个开源项目,用于静态分析应用程序和Docker容器中的漏洞,使用以下命令可在git的帮助下克隆该软件包

gitclone  https://github.com/arminc/clair-scanner.git 

 

· Docker镜像漏洞扫描

在本地计算机上运行docker

apt install golang

构建库以安装Clair的所有依赖项

cd clair-scanner

make build

make cross

如果主机中没有docker镜像,那么可以提取一个用于漏洞评估的新镜像如下:

docker pull ubuntu:16.04

在本地端口5432运行docker镜像

docker run -d -p 5432:5432 --name db arminc/clair-db:latest

运行docker image for postgres以链接Clair scan。

docker run -d -p 6060:6060 –-link db:postgres –- name clair arminc/clair-local-scan:latest

使用Clair扫描容器或容器镜像的漏洞。

Syntax: ./clair-scanner -ip <docker ip> -routput.jason <docker-image>

./clair-scanner –-ip 172.17.0.1 -r report.json ubuntu:16.04

 

Boom !!! 我们得到的扫描输出显示50个未批准的漏洞。

 

 

02

 Bench - security :针对容器基线的漏扫工具

 

· 简介

Docker Bench for Security是一个脚本,用于检查有关在生产中部署Docker容器的安全问题。docker-bench根据互联网安全中心CIS对于docker1.13.0+的安全规范进行一系列的安全检查,bench对当前主机内的参数进行检查,输出相应的结果。

 

· 安装

git  clone https://github.com/docker/docker-bench-security.git

cd docker-bench-security

docker-compose run --rm docker-bench-security

 

· 容器基线安全扫描

主机上有一些docker镜像:

如下所示的一组命令为Docker基线审计过程。

docker run -it --net host --pid host --userns host --cap-add audit_control \

-eDocker_CONTENT_TRUST=$DOCKER_ 

CONTENT_TRUST \

  -v /etc:/etc:ro \                                                

  -v /usr/bin/containerd:/usr/bin/containerd:ro \

  -v /usr/bin/runc:/usr/bin/runc:ro \

  -v /usr/lib/systemd:/usr/lib/systemd:ro \

  -v /var/lib:/var/lib:ro \

  -v /var/run/docker.sock:/var/run/docker.sock:ro \

--label docker_bench_security\

    docker/docker-bench-security

每个配置建议的输出结果为“信息”,“警告”,“合格”和“注释”,如下所述:

1.主机配置

2. Docker Daemon配置

3. Docker Daemon配置文件

4.容器镜像和安装文件

5.容器的runtime文件

6. Docker安全策略

也就是说,从截图中观察到已经创建了针对运行docker映像的root权限的警报。

要解决这种类型的配置错误,要先停止docker的运行过程,然后再次以低权限用户访问,并运行docker映像,如下所示:

docker stop $(docker ps -aq)

docker rm $(docker ps -aq)

docker run -itd –user 1001:1001 ubuntu

如果漏洞已修复,需再次使用bench工具扫描目标,交叉验证以确保已解除警告。 如下所示,此次我们获得了绿色标记,表明我们已经修补了漏洞。

我们是谁:

安定坊是一个由白帽安全攻防爱好者组成的社群,这里有很多的爱好者交流与分享国内外前沿的安全攻防技术、国际安全事件、工具等。

加入我们:

扫描下方小助手二维码即可进群获得最新免费安全工具,一手国际安全资讯和国内外安全教材完整版PDF哦!

 

 

posted @ 2020-09-17 21:59  螣龙安科  阅读(212)  评论(0编辑  收藏  举报