赞
踩
除了商业软件以外,不断发展的开源软件
项目也能够提供一定的安全功能。以下是其中的一些开源项目,它 们一般被用在非关键业务的保护场景中。#### Kubernetes 原生网络策略
Kubernetes 网络策略提供 L3/L4(IP 地址 / 端口)级别的网络隔离。Kubernetes 本身并不提供网络功能, 它只是将网络接口开放出来,进而使用相关的网络插件来支持网络策略的执行。比如 Flannel[25]、Calico
[26]、 Contiv[68]、Cilium[69]、Kube-router[70]等。#### Istio
Istio 是由 Google、IBM 和 Lyft开源的微服务管理、保护和监控的框架。它通过创建一个服务网格(Service Mesh)来管理服务到服务通信,包括路由、认证、授权和加密。其架构图如下:
Istio 的定义可以简述为提供一种简单的方式来建立已部署服务的网络,具备负载均衡、服务到服务认证、监 控等功能,而不需要改动任何服务代码。
如上图所示,Istio 主要由控制平面和数据平面组成:
(1)数据平面
(2)授权
Istio 的授权功能也可称为基于角色的访问控制(RBAC),RBAC 为 Istio Mesh 中的服务提供命名空间级别, 服务级别和方法级别的访问控制,其特点为:
Grafeas[72]是 2017 年 Google 联合 JFrog、IBM和其它一些公司推出的一款用于审计和管理软件供应链的工具。
随着 DevOps、微服务的不断发展,软件交付的速度越来越快,交付的二进制包(包括 Docker 镜像)基本呈 现出指数增长的趋势。由于软件开发中多种语言的数据规范存在较大差异,例如 Go 语言使用 URL定义自己的组 件地址、Java 有自己的相应规范、Docker 使用 Sha256 表示每一层,这些规范的差异性,导致容器镜像在交付 生产环境前,很难判断容器镜像内包含的多种语言的二进制包的质量信息以及漏洞信息。
Grafeas 起源于容器的安全质量管理,但从官方对其定义来看它并不局限于容器,而是通过开源工件元数据 API提供统一方式来审计、监控软件组件。这里的“软件”可以是容器镜像,也可以是 war、jar 或 zip 包。
图 5.4 展示了在容器环境中,在镜像交付生产环境之前,多方参与的编码、构建、扫描、测试、部署步骤。 在上述每个阶段,Grafeas 都会通过 Grafeas API 将其关键元数据进行收集。特别在部署阶段,可以有效地检测 是否符合最终的安全规范。
Grafeas 的安全策略可以通过与第三方工具的集成来执行,它可以用于管理 CI/CD管道,但并不会管理运行 时的容器安全。
Clair 是 CoreOS 于 2015 年 11 月发布的开源容器分析工具,旨在解决容器镜像的安全漏洞问题。Clair 对容 器镜像执行静态分析,并将其内容与公共漏洞数据库相关联,形成对应的分析报告。
Image Scan Worker Notifier
PostSQL DB
Detector WebHook
Clair 模块主要包括检测器(Detector)、获取器(Fetcher)、通知器(Notifier)和数据库(PostSQL)等。 当对某个镜像进行检测时,首先对镜像进行特征的提取,然后再将这些特征匹配 CVE漏洞库。具体流程包括:
从history 中获取lay erIDs
否
存 在 是
镜像分析 保存镜像到本地 读取m anifest.json 解析每一层
layerIDs
获取漏洞信息 匹配C VE漏洞 解析特征版本 解析nam espace 发送lay er.tar到API 打印扫描报告 CVE漏洞入库 定时抓取C VE漏洞
用户可以通过轻量的 Clair 客户端工具 Clairctl[73]执行简单的命令行,实现镜像的上传、扫描、输出报告等。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。