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

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

01

Clair:针对漏洞的漏扫工具

· 安装

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

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

git clone 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工具扫描目标,交叉验证以确保已解除警告。 如下所示,此次我们获得了绿色标记,表明我们已经修补了漏洞。

本篇作者:Geet Madan是Hacking Articles on Information Security上的合格道德黑客、研究人员和技术作家

我们是谁:

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

加入我们:

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

https://u.wechat.com/EI12IedUMg37-PBCVPxBbeQ (二维码自动识别)

小助手二维码在这里!

docker -v 覆盖了容器中的文件_「安定坊」安全卫士-容器漏洞评估相关推荐

  1. docker -v 覆盖了容器中的文件_浅谈docker中宿主机和容器之间互相copy文件的两种方式,欢迎补充...

    在dokcer的日常使用过程中,我们可能会遇到将宿主机内文件/目录copy到容器内,或者将容器的文件/目录copy到宿主机中,下面我们就来简单的谈一下关于这种情况的两种操作. 1.Docker cp命 ...

  2. win10 家庭版系统,创建用户(users\account\ 中,文件的「所有者」属性)

    ■创建后的效果 创建了一个test用户 --- ■目的 检证以下操作 ・管理者打开命令行提示符 ・cd C:\Users\test\test001 ・创建文件  type nul > test. ...

  3. android r 编译找不到头文件_「投稿」iOS逆向——砸壳与反编译

    作者:疯狂的蛋神 近来对iOS逆向十分感兴趣,就在业余时间里自己在上网找了各种资料学习,发现许多资料对于一些细节描述的不够详细,所以也踩了很多坑,我也将自己踩的一些坑总结出来,希望对大家有所帮助. 注 ...

  4. 2台电脑一根网线传文件_「教程」如何快速的在两台电脑间传输大文件?

    两台电脑如何传输文件 我们常见的就是使用U盘或者网盘进行传输 但是速度非常的慢 我们需要一种文件可以直接复制到另一台设备的方法 首先准备一根网线 然后将两台电脑连接到同一局域网内 在右下角的小电脑打开 ...

  5. go 写文件_「go」 项目多个文件编程

    golang 学习的时候很多sample 讲的都是一个文件的go 文件怎么写,但是现实中不可能所有的实现都写到一个文件里面,按照功能的不同,要么拆分成不同的文件,要么拆分成不同的文件.下面有些个人的经 ...

  6. python中yield讲解_「技术」如何深入理解Python中的 yield?

    深入理解 yield 为了理解什么是 yield,你必须理解什么是生成器.在理解生成器之前,让我们先走近迭代. Iterables 当你建立了一个列表,你可以逐项地读取这个列表,这叫做一个可迭代对象: ...

  7. ad15原理图中变压器种类_「知识」共轭结构整流变压器低压输出三排八列短网结构引线布置...

    来源:变压器技术杂志 共轭结构整流变压器低压输出三排八列短网结构引线布置 康洁,牛振忠 康洁.青岛华东电缆电器有限公司 牛振忠.青岛青波变压器股份有限公司 摘要:介绍一种共轭铁心整流变压器低压输出为三 ...

  8. python语言中的冒号_「冒号」编程语言中的冒号(:) - seo实验室

    冒号 1.lisp语言中用括弧()分割语句和定义函数参数,用空格分割原子,用分号表示注释,逗号,数组中用,用冒号(:)来定义函数命令,即可以在cad命令行里输入. 2.Python中,用()定义函数参 ...

  9. docker -v 覆盖了容器中的文件_Docker容器之安装Mysql

    Docker容器之安装Mysql 1.拉取mysql镜像 docker pull mysql 提示:此处拉取最新版本镜像. 2.通过镜像创建容器 根据需求创建Mysql容器(此处我们选择自定义映射端口 ...

最新文章

  1. 强大自己,从学习开始!2020年最有内容的订阅号,每一个都是万里挑一!
  2. python安装教程mac-Mac 安装python 3.*新版本的详细步骤
  3. 练习1-17 编写一个程序,打印长度大于80个字符的所有输入行.
  4. Asp.Net 分段,断点,下载
  5. 为什么不能线程调用类的成员函数_C++多线程编程之创建线程的几种方法
  6. freemarker和thymeleaf的使用样例
  7. Getway接口签名
  8. 牛客网——与7无关的数
  9. 强化学习经典算法笔记(十七):A3C算法的PyTorch实现
  10. 图解C/C++底层:函数栈帧的创建和销毁(下篇)
  11. 复制文件服务器启动,本地电脑与服务器之间如何远程复制粘贴文件呢?
  12. 《数学建模算法与应用第二版》——chapter13.数字图像处理
  13. 村田 | 用于人机界面和生命体征检测的压电薄膜传感器
  14. whith ~ as 用法
  15. python二元一次方程组用鸡兔同笼的思路来写编程_python二元一次方程组用鸡兔同笼的思路来写编程_《应用二元一次方程组——鸡兔同笼》......
  16. java反射例子_java反射简单例子
  17. Ubuntu 12.04系统天嵌Linux交叉编译开发工具的安装
  18. paddledet 训练旋转目标检测 ppyoloe-r 训练自己的数据集
  19. Android 修改SIM卡默认VOLTE值
  20. 借款久期还款久期 简述

热门文章

  1. WEB安全基础-XSS基础
  2. php 在字符串中 找数字,php提取字符串中的数字
  3. as cast float server sql_面试常考!SQL行转列和列转行
  4. 计组之总线:2、总线仲裁(链式查询、计数器查询、独立请求、分布式查询)
  5. LeetCode:面试题40. 最小的k个数
  6. (数据库系统概论|王珊)第七章数据库设计-第二节:需求分析
  7. (王道408考研数据结构)第八章排序-第三节1:简单选择排序
  8. http请求头中Referer的作用及危害
  9. Redis Flushdb 命令
  10. gevent开发http服务器与tcp服务器(WSGIServer、StreamServer)