首页 > 其他分享 >基于ClamAV技术的容器安全建设

基于ClamAV技术的容器安全建设

时间:2023-05-18 15:55:06浏览次数:39  
标签:容器 基于 Trivy ClamAV 扫描 安全 运行

https://www.freebuf.com/articles/system/353092.html

概述

随着云原生技术被越来越多的企业使用,容器作为云原生技术架构最重要的基础组件之一,容器自身是否存在安全风险、是否提供足够的安全机制来保障业务安全问题运行,成为了企业实践云原生架构最大的绊脚石之一。试想,如果容器存在一个严重漏洞,那么基于容器的一切数据甚至是运行容器的宿主机,将被攻击者控制。

据《Sysdig 2022 云原生安全和使用报告》显示,超过75%的运行容器存在高危或严重漏洞、62%的容器被检测出包含shell命令、76%的容器使用root权限运行。

那么如何发现这些危险的容器、如何发现容器中是否包含恶意文件了?这篇文章试着提供一个基于ClamAV的容器安全建设方法,供大家参考。

ClamAV介绍

ClamAV是一个开源病毒扫描工具,最近发布了1.0正式版本,稳定性有了很大提升,同时,ClamAV也从0.96版本支持针对容器的规则编写,具体规则编写方法,可以参考官方文档

新版ClamAV的安装过程有几个需要注意的地方:

  1. Linux环境如果不存在ClamAV用户名、用户组,则直接手动创建即可。
  2. 运行是如果提示目录不存在,手动创建后,设置为ClamAV用户可读写。
  3. 根据官方文档生成配置文件后,需要打开配置文件,删除无用的Example那一行,不然运行是会报错。

ClamAV更新规则库

由于ClamAV官方不在提供更新规则库连接,因此,很多网上的方法都无法使用,这地方,直接介绍一个最简单的办法。

  1. 下载安装cvdupdate工具:pip install cvdupdate
  2. 运行cvdupdate命令更新规则库:cvdupdate update
  3. 启动规则库私服:cvdupdate serve
  4. 打开freshclam配置文件: /usr/local/etc/freshclam.conf,找到PrivateMirror配置项,取消前面的注释,如果第三步的私服和clamav在一台机器,则可以配置为:PrivateMirror localhost:8000
  5. 运行freshclam命令导入clamav规则

ClamAV扫描容器

ClamAV扫描方式有两种

  1. daemon方式:先运行clamd daemon进程,然后使用clamdscan把要扫描的对象传给clamd daemon扫描。
  2. cli方式:使用clamscan命令,指定目标扫描。
    为简单演示,本篇文章使用clamscan cli方式进行扫描。
  3. 导出容器镜像文件
    与Trivy不同的是,ClamAV需要对容器里的文件内容进行扫描,所以,在扫描之前,我们需要先把容器镜像导出来,比如我们导出名为:vibersastra/ubuntu的镜像:
    docker save -o ubuntu.tar vibersastra/ubuntu:latest
  4. 解压扫描容器镜像
    解压上一步导出的镜像文件:tar xvf ubuntu.tar,假设我们解压到了temp目录,则可以使用 clamscan -r temp进行扫描(-r表示递归扫描),扫描结果如下:

通过ClamAV,可以成功发现容器中包含的挖矿病毒文件。

tips:由于clamscan每次都需要load一次规则库文件,导致每次开始扫描都很慢,在正式的环境中,建议使用daemon方式运行。

与Trivy结合实现安全左移

到这,我们已经学会了ClamAV的使用,接下来,如何使用ClamAV实现安全左移,把安全问题发现在业务上线前了?

Trivy这个工具,相信很多了解容器安全的小伙伴都在用,通过Trivy可以发现容器镜像的安全漏洞,包括容器里的静态代码。但是Trivy是一个发现漏洞的工具,至于容器镜像里是否存在恶意样本,比如远控病毒、挖矿木马等,Trivy是无法发现的,一个典型的Trivy扫描容器的接入如下:

所以,我们可以通过综合使用Trivy和ClamAV,来保障容器运行时的安全:

  • trivy:确认容器无漏洞,从而无法被攻击。
  • clamav:保证容器运行时无恶意文件,从而杜绝供应链攻击。

结语

随着使用docker的企业越来越多,容器防病毒也将会得到更多的关注,这在一定程度上可以借鉴主机安全建设的思路,但容器的灵活性,注定无法像主机那样部署Agent,更多的还是依赖宿主机层面的Agent,实现对容器的安全扫描,从而排除安全风险。

标签:容器,基于,Trivy,ClamAV,扫描,安全,运行
From: https://www.cnblogs.com/dhcn/p/17412200.html

相关文章

  • FMC子卡设计资料原理图450-基于ADRV9009的双收双发射频FMC子卡 数字信号处理卡 射频收
    FMCJ450-基于ADRV9009的双收双发射频FMC子卡   一、板卡概述       ADRV9009是一款高集成度射频(RF)、捷变收发器,提供双通道发射器和接收器、集成式频率合成器以及数字信号处理功能。这款IC具备多样化的高性能和低功耗组合,FMC子卡为2路输入,2路输出的......
  • 35基于java的校园二手交易系统或跳蚤市场设计与实现
    基于java的校园二手交易系统或跳蚤市场设计与实现,可适用于二手交易平台,二手商城,交易商城,大学生交易平台,购物平台,大学生跳蚤平台等等项目概述随着网络技术的发展,在线购物越来越流行。目前,大学生特别是毕业生的闲置物品很多,很多可以重复使用,但不方便携带。目前市场上针对大学生......
  • 如何解决dotnet程序打包的docker镜像创建容器后容器内的date时间正确但是dotnet获取到
    这个问题通常是由于时区设置不正确导致的。你可以尝试以下解决方法:在Dockerfile中设置时区:在Dockerfile中添加以下命令:RUNln-sf/usr/share/zoneinfo/Asia/Shanghai/etc/localtime这将设置容器的时区为上海时区。你也可以替换成你所在的时区。在dotnet程序中设置时区:......
  • 基于算法通信过程中的常用协议介绍
    基于算法通信过程中的常用协议介绍1、HTTP(HypertextTransferProtocol):HTTP是一种应用层协议,用于客户端和服务器之间的通信。它基于请求-响应模型,通过发送HTTP请求和接收HTTP响应来进行通信。HTTP协议常用于Web应用中,可以用于传输算法请求和响应数据。2、REST(Representation......
  • Spring Cloud开发实践(六): 基于Consul和Spring Cloud 2021.0的演示项目
    目录SpringCloud开发实践(一):简介和根模块SpringCloud开发实践(二):Eureka服务和接口定义SpringCloud开发实践(三):接口实现和下游调用SpringCloud开发实践(四):Docker部署SpringCloud开发实践(五):Consul-服务注册的另一个选择SpringCloud开发实践(六):基......
  • 基于爬山优化算法的三维曲面极值搜索matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:   2.算法涉及理论知识概要       爬山法是一种优化算法,其一般从一个随机的解开始,然后逐步找到一个最优解(局部最优)。假定所求问题有多个参数,我们在通过爬山法逐步获得最优解的过程中可以依次分别将某个参数的值增加或者......
  • m基于LK光流提取算法的三维医学图像运动估计matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要1950年,Gibson首先提出了光流的概念,所谓光流就是指图像表现运动的速度。物体在运动的时候之所以能被人眼发现,就是因为当物体运动时,会在人的视网膜上形成一系列的连续变化的图像,这些变化信息在不同时间,不断的流过眼......
  • 基于FPGA的FIR低通滤波器verilog开发,包含testbench测试程序,输入噪声信号使用MATLAB
    1.算法仿真效果VIVADO2019.2/matlab2022a仿真结果如下:运行matlab:将matlab得到的数据文件保存到FPGA的project_13.sim\sim_1\behav\xsim路径,测试仿真时,可以自动调用matlab任意产生的测试数据。rtl:2.算法涉及理论知识概要FIR(FiniteImpulseResponse)滤波器:有限长单位冲激......
  • 基于爬山优化算法的三维曲面极值搜索matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要爬山法是一种优化算法,其一般从一个随机的解开始,然后逐步找到一个最优解(局部最优)。假定所求问题有多个参数,我们在通过爬山法逐步获得最优解的过程中可以依次分别将某个参数的值增加或者减少一个单位。爬山法是......
  • 基于FPGA的FIR低通滤波器verilog开发,包含testbench测试程序,输入噪声信号使用MATLAB
    1.算法仿真效果VIVADO2019.2/matlab2022a仿真结果如下: 运行matlab:    将matlab得到的数据文件保存到FPGA的project_13.sim\sim_1\behav\xsim路径,测试仿真时,可以自动调用matlab任意产生的测试数据。   rtl:   2.算法涉及理论知识概要       ......