Lazy loaded image
Collections
容器安全之镜像扫描 - 自由早晚乱余生 - 博客园
00 min
Jan 3, 2024
Apr 13, 2024
type
status
date
summary
tags
category
URL
password
slug
icon

一、镜像扫描

  1. docker scan
  1. Trivy(推荐使用)
  1. clair
  1. harbor-scanner 支持中文漏洞库
针对上述解决方案,我们调查了 TrivyClaireAnchore EngineQuayDocker hubGCR 等几种扫描工具,从不同维度进行对比。(来源于网络)
notion image
本文主要介绍下 docker scan 和 Trivy

二、镜像扫描可以存在的场景

    1. 构建镜像的整个流水线
    2. docker scan
    3. Trivy
    1. 镜像仓库定期扫描
    2. harbor-scanner-trivy
    3. harbor-scanner
    1. 运行时,在镜像拉取到主机节点,启动时扫描镜像漏洞,禁止镜像运行。
    2. ImagePolicyWebhook

三、 docker scan

docker scandocker 官方推出来的插件。
使用之前需要安装此插件

3.1、Centos 安装插件

获取当前安装的版本

3.2、登录 dockerhub 用户

在使用 docker scan 之前,我们需要登录我们的 dockerhub 用户,否则扫描不了。
登录

3.3、扫描

3.4、使用限制

免费扫描限制为10/月。

四、Trivy(推荐使用)

Trivy 是 漏洞、配置错误、Secret 等 全面且多功能的安全扫描仪。
支持扫描
  • Container Image
  • Filesystem
  • Git Repository (remote)
  • Virtual Machine Image
  • Kubernetes
  • AWS

4.1、 安装

示例命令

4.2、下载DB

注意下载 DB 是比较慢的,如果我们有对应的梯子,可以用的话最好使用梯子。 我这边是通过我电脑的 Clash 监听的端口,然后我服务器配置 http 和 https 代理。
临时使用代理

4.3、使用

结果

五、镜像扫描到部署阶段

5.1、ImagePolicyWebhook 容器镜像扫描

具体的操作可以查看 k8s 官方文档: ImagePolicyWebhook
其中我们可以看到需要调用到第三方的webhook, 是存在一个kainlite/kube-image-bouncer:ImagePolicyWebhook 和 GenericAdmissionWebhook Kubernetes 入场控制器的简单端点 (github.com) 组件。 这个组件实现的内容就是判断我们当前的镜像是否为 latest 的镜像。 是返回 "allowed": false
我们其实是可以对于这个组件进行改造,增加一些定制化的内容, 比如去调用一些接口获取对应的镜像的安全扫描结果,如果扫描结果是pass 的话,就可以部署,否则的话,就不允许部署。
作者:理想三旬
本人承接各种项目维护和python项目开发, 如果觉得文章写得不错,或者帮助到您了,请点个赞,加个关注哦。运维学习交流群:544692191
本文版权归作者所有,欢迎转载,如果文章有写的不足的地方,或者是写得错误的地方,请你一定要指出,因为这样不光是对我写文章的一种促进,也是一份对后面看此文章的人的责任。谢谢。
上一篇
Defender Control v2.1
下一篇
服务器入侵之找出隐藏字符的原理 - 自由早晚乱余生 - 博客园