如何在构建阶段保护镜像安全

首先,可以参考以下这篇文章,在构建命令的时候多加注意,避免触及安全边界:云原生时代下的容器镜像安全(上)

接下来,我们可以通过已有的镜像安全检测工具,对早已存在的镜像进行安全扫描,并对当前正在构建的镜像设置阻断规则,将安全防护前移至 CI/CD 阶段,当前市面上已知的镜像检测工具有:trivy、anchor、veinmind等,我只试用了veinmind,所以详细描述一下veinmind的试用过程:

首先 veinmind 支持检测镜像内的恶意文件、敏感信息、弱口令、后门、异常历史命令,支持镜像资产清点,支持集成到 CI/CD 进行检测,支持镜像阻断,支持使用 helm 安装部署。

集成到 Jenkins:

问脉镜像安全扫描开源工具之集成 jenkins 配置

问脉镜像安全扫描开源工具之集成 jenkins 演示

集成到 Gitlab:

问脉镜像安全扫描开源工具之集成gitlab演示

设置阻断规则进行镜像阻断:

镜像阻断

详细记录一下 docker 镜像阻断功能:

# first
./veinmind-runner authz -c config.toml 
# second
dockerd --authorization-plugin=veinmind-broker

其中config.toml,包含如下字段

字段名字段属性含义
policyactionstring需要监控的行为
enabled_plugins[]string使用哪些插件
plugin_params[]string各个插件的参数
risk_level_filter[]string风险等级
blockbool是否阻断
alertbool是否报警
logreport_log_pathstring插件扫描日志
authz_log_pathstring阻断服务日志

action 原则上支持 DockerAPI 所提供的操作接口
如下的配置表示:当 创建容器或推送镜像 时,使用 veinmind-weakpass 插件扫描ssh服务,如果发现有弱密码存在,并且风险等级为 High 则阻止此操作,并发出警告。最终将扫描结果存放至plugin.log,将风险结果存放至auth.log。

[log]
plugin_log_path = "plugin.log"
auth_log_path = "auth.log"
[listener]
listener_addr = "/run/docker/plugins/veinmind-broker.sock"
[[policies]]
action = "container_create"
enabled_plugins = ["veinmind-weakpass"]
plugin_paramas = ["veinmind-weakpass:scan.serviceName=ssh"]
risk_level_filter = ["High"]
block = true
alert = true
[[policies]]
action = "image_push"
enabled_plugins = ["veinmind-weakpass"]
plugin_params = ["veinmind-weakpass:scan.serviceName=ssh"]
risk_level_filter = ["High"]
block = true
alert = true

项目地址:https://github.com/chaitin/veinmind-tools
使用文档:https://veinmind.chaitin.com/docs/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值