前言

近年来,随着云计算的发展,企业数字化的进程不断加快,业务纷纷开始上云,云原生的概念最近两年也是十分火热,在新业务场景下也随之产生了新的安全问题,如k8s安全、devsecops、微服务安全、Service Mesh安全、容器安全等等,本文主要是对于容器安全产品——Aqua 的调研。

容器安全是近几年比较热门非细分领域,Gatner 在2020年把容器安全也放到了CWPP领域 ,国外出现了一批专门做容器安全的厂商,如 :Apcera、Aqua、StackRox和Twistlock等,国内一些之前专注于主机层面安全问题的厂商也在自家产品中加入了对docker容器的安全考虑(如:青藤云),以适应客户在混合云场景下的安全需求,也出现了专注于容器安全的初创型公司(如:小佑科技)。

本文主要是基于个人粗浅的认识,对 Aqua 的容器安全产品做一点介绍。Aqua 诞生于2015年,短短5年已经完成了A、B、C、D轮融资(截止2020年5月),以容器安全起家,专注于云原生场景下的安全问题,从官网大致能看出,Aqua 的核心产品是 Aqua Platform ,由容器安全模块,CSPM 云安全管理平台、k8s安全模块、容器/镜像安全模块、Serverless 安全模块、VM安全模块等组成,几乎涵盖了云原生场景下全生命周期的安全问题,这次主要讨论的只是是其中一个子模块——容器安全。

一、产品理念

产品理念可以从官网、白皮书、市场宣传策略来看,从中能发现产品想向我们传达什么、突出什么。

Aqua 容器安全部分的产品理念是:使用业界最先进的容器安全解决方案,保障基于容器的云原生应用从开发到运行的全生命周期安全。

如下是官网宣传的几个点:

  • Risk and Compliance 风险与合规
  • Mitigate Attacks 威胁缓解
  • Cross-Platform Security 跨平台安全

1、Risk and Compliance——风险与合规

Aqua 会在pipline 的 CI 阶段对容器镜像进行扫描,将安全问题前置,在构建阶段就尽可能地减少潜在攻击面,并且具备日志审计和取证功能,对于容器和k8s运行过程中的异常行为信息都能详细记录;对于强监管的金融行业来说,Aqua 的风险视图模块不仅能形象地展示出集群的风险情况,还详细展示了运行部署中的漏洞以及所有出入站的网络连接,很好地满足PCI-DSS中的第六和第十条规定。

2、Mitigate Attacks——缓解供应链攻击和 0 day 漏洞攻击

Aqua 通过运行时保护和异常行为分析,对攻击行为进行及时阻断,保护工作负载的正常运行。

3、Cross-Platform Security——跨平台兼容能力

Auqa 支持多种容器运行环境: Window、linux、VM、裸金属以及一些 Container-as-a-Service 产品(如 AWS Fargate 、Azure Container Instances),甚至是 VMware 的 Tanzu 平台(把虚拟机和Kubernetes结合起来,对虚拟机和容器以及物理机统一进行管理)。

二、产品功能

  • 构建阶段CI/CD镜像扫描
  • 镜像动态分析
  • 灵活的镜像保证策略
  • 风险视图
  • 漏洞防护
  • 采用Drift Prevention实现运行时保护
  • 行为分析
  • 负载防火墙
  • K8s Secrets 保护
  • 审计和取证

1、镜像扫描

Aqua支持在CI build 阶段以及容器build后,依据实时更新、类型丰富的漏洞库信息,对恶意软件、敏感信息、OSS license 及 安全配置等问题进行扫描,分别展示出每个镜像高、中、低不同等级的漏洞情况。

2、容器运行时的威胁分析

攻击者们总是在不断尝试着如何对容器发起攻击,如 挖矿、凭据窃取、数据盗取、利用容器发起DDOS攻击等等。镜像扫描是十分必要的一类工具,然而静态扫描对于高级恶意软件是个盲区,需要有一种方法来评估容器镜像中的已知和未知风险,由此产生了运行时(runtime)检测方案。Aqua 有一个基于沙箱的解决方案——Aqua DTA,能够对容器在运行态存在的安全风险进行检测和分类,包括:

  • 容器构建阶段提前识别安全风险

    Aqua DTA会从注册表和CI构建管道扫描镜像, 防止在构建阶段引入恶意镜像。
  • 部署前检测

    镜像部署前会先在安全沙箱中运行,以检测例如容器逃逸、反弹shell、恶意软件、后面植入等威胁。
  • 保护容器应用免受攻击

    Mitigate the risks of data theft, credential theft, using containers for DDoS, and cryptocurrency resource abuse targeted by Advanced Persistent Threats and polymorphic malware.

    缓解容器受到例如 DDos(利用容器发起)、挖矿、高级威胁、恶意软件等威胁。

3、灵活的镜像保证策略(image assurance policies)

Aqua的镜像保证策略采用了静态和动态检测结合的方法,帮助判断哪些镜像能通过pipline流程,build并运行在你的集群或主机上;镜像保证策略是一些检测项的集合,包含漏洞评分/严重程度、恶意软件严重程度、敏感数据、root特权或超级用户权限使用等,通过类似Dashbord的方式,详细展示出镜像各监测项的安全状况 。

4、k8s 集群风险视图

https://blog.aquasec.com/kubernetes-security-risk-explorer

当你的工作负载运行在k8s上时,比较困难的是难以知道安全GAP点具体在哪里,不能直接展现出集群上面的安全隐患;devsecops团队面对海量的告警不知从哪下手 ,而 Aqua Risk Explorer 正适用于这种场景,它能够基于集群的维度,实时、可视化地展示 K8s 集群中的安全风险,并给出优先级建议。

Aqua Risk Explorer 是k8s集群的动态风险地图,给出了集群、主机、容器、服务等节点间的逻辑示意图,对每个风险项提供了安全风险评分,它展示了namespaces、deploymens、node(hosts)、容器及组成容器的镜像风险情况,还有 namespaces 之间的网络连接及其安全风险评分。

对于每个deployment,风险视图展示了build容器的镜像以及这些镜像存在的安全风险,点击下钻能看到风险的详细情况以及缓解措施。

随着组织逐渐转向更大规模的Kubernetes部署,对其动态变化的风险进行持续监控、实时可见变得至关重要,Risk Explorer 这一功能够很好的满足这样需求。

5、vShield(Vulnerability Shield)

容器镜像中经常存在各种已知的漏洞,由于安全人力等各种原因难以及时完全地彻底修复,为了防止漏洞被攻击恶意利用,vShield 提供了一种能力:在无需修改应用代码的情况下,非入侵式的、自动依据漏洞优先级阻断漏洞利用行为,『It acts as a virtual patch to prevent the exploitation of a specific vulnerability and provides visibility into such exploitation attempts. 』,能够阻断并且提供对这种恶意攻击行为的可见性,工作 起来就像 “虚拟补丁”似的,应该类似RASP,起到运行时防护的作用,一旦发生攻击能立刻报警并阻断。

6、Drift Prevention and Runtime Policies

根据镜像的数字签名,Aqua通过比较容器镜像相对于其原始镜像是否发生变化来判断是否遭受到了攻击。这种特性可阻止包括 0 day攻击在内的不少攻击向量;另外,runtime 运行时检测能够发现和阻断可疑行为,例如端口扫描、异常IP连接 以及拒绝服务攻击等。

7、容器行为分析

Aqua的行为分析能力使用先进的机器学习技术来分析容器的行为,包括文件访问、网络访问、卷挂载、系统调用等,减少了容器的攻击面,针对特权提升提供了另一层防御。

8、负载防火墙

Aqua通过基于应用程序标识和上下文将容器网络限制在规定范围内来限制攻击影响扩大,Aqua 的负载防火墙能够自动的发现网络连接并且给出对应的策略规则,基于服务特征、url、Ip等仅允许合法连接,对未授权或异常连接报警和阻断,Aqua 负载防火墙支持和K8s网络插件(如Weave和Flannel)以及服务网格(如Istio)同时工作。

9、k8s Secret 保护

K8s Secret 对象

Secret 对象类型用来保存敏感信息,例如密码、OAuth 令牌和 SSH 密钥等,这样的信息可能会被放在 Pod 规约中或者镜像中。 用户可以创建 Secret,同时系统也创建了一些 Secret。Kubernetes Secret 默认情况下存储为 base64-编码的、非加密的字符串。 默认情况下,能够访问 API 的任何人,或者能够访问 Kubernetes 下层数据存储(etcd) 的任何人都可以以明文形式读取这些数据。

通过对 secrets 在传输、静止状态加密,Aqua 能够在容器运行阶段保证 secrets 的安全,secrets 存储在内存而非硬盘中,仅当容器需要使用它是才对容器可见;和 secrets 管理工具如 HashiCorp, CyberArk, AWS KMS or Azure Vault 等集成,并且对于用户来说无需重启容器,就能实现对 secrets 的更换、废弃 等操作,并且整个过程保持对用户透明可见,通过Aqua还能看见哪些 secrets 是正在被使用的、以及被哪些容器使用。

10、取证与审计

Aqua 会从镜像、容器、编排工具、主机等层面实时收集数据,提供日志类型的数据流到 SIEM 等分析监控工具中,当发现有违反安全策略的行为,Aqua就会收集 用户上下文信息、k8s上下文信息(namespace、node、pod)、镜像以及注册表上下文等源数据信息,以便安全人员能及时定位威胁。

三、最后

这是一篇存货文章了,现在来看存在一些不足:1)对产品的认识不够、(技术角度)分析不够深入;2)并且本篇文章仅从单一产品角度来看,没有横向针对同类型产品做比较;3)云相关的知识需要补充学习

容器安全产品Aqua调研的更多相关文章

  1. 容器安全与EDR的异同

    以Docker为代表的容器技术,直接运行于宿主机操作系统内核,因此对于容器安全,很多人会有着这样的疑问:EDR(Endpoint Detection and Response)等主机安全方案,能否直接 ...

  2. kubernetes 降本增效标准指南| 容器化计算资源利用率现象剖析

    作者:詹雪娇,腾讯云容器产品经理,目前主要负责腾讯云集群运维中心的产品工作. 张鹏,腾讯云容器产品工程师,拥有多年云原生项目开发落地经验.目前主要负责腾讯云TKE集群和运维中心开发工作. 引言 降本增 ...

  3. 使用 K8s 进行作业调度实战分享

    最近在公司的数据同步项目(以下简称 ZDTP)中,需要使用到分布式调度数据同步执行单元,目前使用的方案是将数据同步执行单元打包成镜像,使用 K8s 进行调度. 在 ZDTP 中,数据同步的动作可抽象成 ...

  4. 理解Docker(6):若干企业生产环境中的容器网络方案

    本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  5. 《Kafka Stream》调研:一种轻量级流计算模式

    原文链接:https://yq.aliyun.com/articles/58382 摘要: 流计算,已经有Storm.Spark,Samza,包括最近新起的Flink,Kafka为什么再自己做一套流计 ...

  6. OpenStack调研:OpenStack是什么、版本演变、组件关系(Havana)、同类产品及个人感想

    一点调研资料,比较浅,只是觉得部分内容比较有用,记在这里: 首先,关于云计算,要理解什么是SAAS.PAAS.IAAS,这里不述:关于虚拟化,需要知道什么是Hypervisor,这里也不述: Open ...

  7. 互联网云生态下DDOS安全产品的一些考虑和测试方法(一)

    DDOS攻击简介 安全的三要素——“保密性”.“完整性”和“可用性”中,DOS(Denial of Service拒绝服务攻击)所针对的目标是服务的“可用性”.这种攻击方式利用目标系统的网络服务功能缺 ...

  8. Solr调研总结

    http://wiki.apache.org/solr/ Solr调研总结 开发类型 全文检索相关开发 Solr版本 4.2 文件内容 本文介绍solr的功能使用及相关注意事项;主要包括以下内容:环境 ...

  9. OS版本调研

    1引言 1.1 编写目的 本文的主要目的是通过对当前项目中使用的各种版本的操作系统进行比较,分析各自特性和稳定程度,最终推荐合适的版本作为当前的标准系统. 1.2 背景 当前,部门负责管理维护的现网使 ...

随机推荐

  1. mysql 建表后 重新构建 自增字段 (保留 原有字段结构)

    添加字段 1.去除原id的自增功能:ALTER TABLE A_A MODIFY COLUMN id int(10) NOT NULL FIRST ; 2.添加名称为cstId,类型为bigint的字 ...

  2. mapboxgl 纠偏百度地图

    缘起 之前分享了mapboxgl 互联网地图纠偏插件,插件当时只集成了高德地图. 文章发布后,有小伙伴在后台留言,希望插件也能支持百度地图. 刚好国庆假期有时间就研究了一下. 插件加载瓦片原理 首先, ...

  3. CentOS7下Hadoop伪分布式环境搭建

    CentOS7下Hadoop伪分布式环境搭建 前期准备 1.配置hostname(可选,了解) 在CentOS中,有三种定义的主机名:静态的(static),瞬态的(transient),和灵活的(p ...

  4. 每日总结:Java课堂测试第三阶段第二次优化 (四则运算) (2021.9.22)

    package jisuan2; import java.util.*;import java.util.Scanner; public class xiaoxue { public static v ...

  5. 洛谷3571 POI2014 SUP-Supercomputer (斜率优化)

    一道神仙好题. 首先看到有多组\(k\),第一反应就是离线. 考虑贪心. 我们每次一定是尽量选择有儿子的节点.以便于我们下一次扩展. 但是对于一个\(k\),每次贪心的复杂度是\(O(n)\) 总复杂 ...

  6. shopping cart

    #Author:Kevin_hou #定义产品列表 product_list =[ ('HUAWEI',5999), ('Watch',500), ('Nike',800), ('Toyota',20 ...

  7. SharkCTF2021 bbpop题记

    一道挺好的web. 做完这一题,感觉php序列化(甚至魔术方法)之类的有点开始玩明白了. 题面很长: 预备知识: PHP类的方法中,有一部分以下划线开头的"魔术方法".不同于普通方 ...

  8. SpringCloud微服务实战——搭建企业级开发框架(六):使用knife4j集成Swagger2接口文档

    knife4j是为集成Swagger生成api文档的增强解决方案,前后端Java代码以及前端Ui模块进行分离,在微服务架构下使用更加灵活, 提供专注于Swagger的增强解决方案,不同于只是改善增强前 ...

  9. [no code][scrum meeting] Beta 7

    $( "#cnblogs_post_body" ).catalog() 例会时间:5月21日15:30,主持者:彭毛小民 下次例会时间:5月22日15:30,主持者:赵涛 昨日为5 ...

  10. elasticsearch地理位置查询

    elasticsearch地理位置查询 一.背景 二.geo数据类型 1.geo_point 2.geo_shape 三.此处对geo_point类型实战 1.背景 2.插入地点数据 1.创建索引 2 ...