国内外的用户都在使用云原生技术来提高应用的开发效率和可管理性,不少用户运用开源 Harbor 制品仓库,管理敏捷软件供应链中云原生应用的镜像,包括镜像存储、镜像扫描和镜像签名等功能。
Harbor 已经提供了一些高级的安全功能,例如,对镜像进行扫描,以发现潜在的安全问题。Harbor 的镜像扫描功能本质上属于静态扫描,即通过 Trivy,Clair,雅客云 (Arksec) 等漏洞扫描器(scanner),对镜像进行由事件触发或周期性的扫描。静态扫描可检测到镜像文件中潜在的威胁,但部分有风险的镜像仍有可能通过扫描器的检测,并被部署到 Kubernetes 集群中,从而引入了运行时的风险。
举个例子,Harbor 对某个镜像进行了扫描,检测结果是该镜像达到一定的安全级别,允许它上线运行。过了一段时间,有个新的 CVE 漏洞被发现,恰好该镜像包含了这个漏洞,在漏洞修复前 Harbor 不再容许该镜像上线。但是对已经处于运行态的镜像来说,Harbor 则无能为力。
鉴于 Harbor 重点在云原生应用的静态安全保护,面对日趋严重的 “供应链攻击” 的风险,用户需要提高另一方面的安全能力,即动态安全保护(运行时安全保护)。
为此,我们推出了全新的开源项目 CNSI, 即云原生安全检测器(Cloud Native Security Inspector),项目代号: Narrows。在 Harbor 的基础上,Narrows 增强了动态安全方面的能力,它允许用户对 Kubernetes 集群和其中的工作负载进行运行时的安全态势评估。镜像仓库中的镜像可以在被引入到 Kubernetes 的集群时被扫描,同时 Kubernetes 集群本身的配置和状态一并被扫描并生成安全报告。从而让管理员发现、标记集群中所存在的安全漏洞,并对有漏洞的工作负载进行隔离。
Narrows 所带来的运行时动态安全扫描能力非常关键,它帮助管理员对 Kubernetes 集群和其上工作负载有更好的安全状态控制和感知,而不仅仅是只关注工作负载的生命周期。
Narrows 提供的能力包括:
・ 对运行时的漏洞动态检测和感知
・ 发现 Kubernetes 集群的错误配置
・ 在工作负载运行时,终止进行中的攻击
・ 对扫描报告进行汇总、聚合和分析并提供开放的 API 接口
・ 与 Harbor 无缝的集成。对于外部公共镜像仓库的镜像,可以自动同步到 Harbor 中,以生成安全数据。
Narrows 与 Harbor 进行了集成,如上图。Narrows 允许用户通过简单的界面来定义对 Kubernetes 集群中工作负载的安全期望,并根据用户指定的扫描器和扫描周期对工作负载进行扫描。对于不满足安全要求的工作负载进行隔离。
当前版本的 Narrows 支持三种扫描器,分别是:
1.Image scanner (镜像扫描器)
将 Kubernetes 集群中镜像的安全漏洞等级与用户期望的安全漏洞等级进行比较,可以对不满足安全预期的工作负载进行隔离。
2.Kubebench scanner (Kubebench 扫描器)
使用 kubebench 对 Kuberentes 集群的配置进行扫描,发现不合理的配置项并提供修改建议。
3.Risk scanner (运行风险扫描器)
对于工作负载中所包含的软件包进行扫描,并提供对应的 CVE 详情。
我们计划通过接入新的安全数据源和引入新的扫描器来增强 Narrows 的检测能力。与此同时,我们将进一步深入研究并扩展对安全漏洞和不安全负载的处理能力。在安全数据分析洞察部分,我们期望可以将多维度的安全数据进行综合汇总,按照不同的场景和用户的偏好进行安全风险排序、筛选和结果呈现。
Narrows 已经由 VMware 公司开源,采用商业化友好的阿帕奇 2.0 软件许可,方便用户作扩展和创新。在社区方面,雅客云 (Arksec) 在 Narrows 最新发布中贡献了排序功能,可结合容器运行时的扫描对安全漏洞进行优先级排序。雅客云也将持续参与 Narrows 项目,计划贡献多项安全能力。
Narrows 已经开源,项目的 Github 地址是:
https://github.com/vmware-tanzu/cloud-native-security-inspector
欢迎广大用户参与到我们的开源项目中,并期待您的使用和反馈。如果您对 Narrows 开源项目感兴趣,希望与我们更密切地合作,或者希望进行测试和试用、提出建议或 bug,请发邮件至 narrows @ vmware.com。
内容来源|公众号:VMware 中国研发中心