你的K8s 运行时环境安全吗? KubeXray帮你保护K8s环境及应用

引言

大多数安全措施都是为了防止漏洞逃跑而设计的, 在此以前,咱们也分享了一些第三方安全扫描的文章(请移步到历史文章中查看),尽早识别应用程序的风险意味着您能够防止或限制它部署到您的系统中(安全左移策略)。有了这些知识或工具,容器中任何可能形成损坏的漏洞均可以安全地留在由您的安全策略围栏后面。java

可是,当这些漏洞已经逃跑时,咱们能作什么呢? 如何确保已经在Kubernetes pods中运行的容器和应用程序符合您当前的风险和策略?git

背景(运行时安全管控)

因为大多数应用程序严重依赖于包管理器和开源存储库,所以它们很容易受到来自这些源的恶意或不安全代码的***。想象咱们交付的软件 Application 是一张饼,咱们本身开发的代码仅占其中很小一部分,见下图:
你的K8s 运行时环境安全吗? KubeXray帮你保护K8s环境及应用github

最近,当Javascript社区得知npm module中流行的事件流包被一个针对比特币钱包平台的恶意包更新时,他们很是愤怒。在被发现和报道以前的三个月里,这个包被下载了近800万次。
虽然来自社区包管理器的此类事件并不常见,但并很多见。一年前,npm发现并删除了39个恶意包。因此不少包在咱们安全策略发现以前可能已经进入到了生产环境数据库

解决方案

在介绍如何对运行时进行安全控制以前,先回顾一下常见漏洞扫描工具的原理:这里以JFrog Xray 为例:
通用二进制分析工具和策略引擎JFrog Xray,会实时扫描Artifactory制品库中的容器镜像,war包,以及Npm module 等二进制制品,执行深度递归扫描,逐层检查应用程序的全部组件,并与多个漏洞数据源(已知漏洞数据库)进行一一对比,从而判断是否存在已知漏洞 或License许可证策略问题,同时为被扫描文件(Docker 镜像,Npm Module)添加相关元数据。
你的K8s 运行时环境安全吗? KubeXray帮你保护K8s环境及应用npm

Xray 漏洞扫描平台分析

DevOps管理员能够根据Xray扫描平台所发现的风险级别,配置策略来限制或阻止Kubernetes部署这些Docker 镜像。可是能够发现仅仅使用Xray,只能将漏洞限制在运行时以前。安全

为了解决这个问题,JFrog提供了KubeXray 组件,这是一个开源软件项目,它将通用二进制安全分析工具Xray的安全性扩展到Kubernetes pods运行时。
使用Xray扫描容器映像生成的元数据,KubeXray能够对已经部署的内容(容器镜像等)进行安全策略管控
KubeXray监控全部活动Kubernetes Pod资源,以帮助您:服务器

  1. 捕捉当前在全部Kubernetes吊舱中运行的应用程序中最新报告的风险或漏洞
  2. 对正在运行的应用程序强制执行当前策略,即便您已经更改了这些策略
  3. 对未被Xray扫描且风险未知的正在运行的应用程序执行策略

经过这种方式,KubeXray能够帮助您将逃逸的漏洞进行安全的控制。微信

KubeXray 是什么?

在Kubernetes将容器镜像部署到pods以前,Xray检测风险并将策略应用于容器镜像,KubeXray检测风险并将策略应用于已经运行或即将运行的Kubernetes pod。
KubeXray监视来自Kubernetes服务器和Xray的安全事件,并为Kubernetes运行的全部pods执行当前的安全策略。KubeXray监听这些事件流:运维

  1. 部署新服务(Pod)
  2. 升级现有服务
  3. 新的许可证策略,例如某个License许可证类型不容许在运行时使用
  4. 一个新的安全问题

当检测到问题时,KubeXray会根据您设置的当前策略进行响应。您能够选择如下可能的操做之一:ide

  • Scaledown为直到0。所需的服务状态更新为0,使其在仍然能够查询时处于非活动状态
  • 删除漏洞容器镜像的相应Kubernetes资源
  • 忽略它,让pod继续运行

KubeXray还了解不一样Kubernetes资源(状态集和部署)之间的差别,并容许对每种资源应用不一样的策略操做。

虽然KubeXray主要是将Xray的深度扫描安全性扩展到运行Kubernetes pods,但它也为未被Xray扫描的pods提供了一些策略控制,例如从存储库(而不是Artifactory)部署的容器映像。对于没有通过x射线扫描的pod,所以其风险是未知的,您能够指定要采起的单独策略操做。

KubeXray 工做原理

KubeXray监听Kubernetes集群中运行的每一个pod,并使用Xray元数据(什么时候可用以及是否可用)来肯定安全策略控制。

  1. 对于Kubernetes上的每一个pod(运行或计划运行),KubeXray检查Xray元数据中的漏洞或License许可证策略问题。若是发现任何风险,KubeXray将采起相应的控制操做。

  2. 若是Kubernetes pod中的任何容器镜像(正在运行或计划运行)没有被Xray识别——由于它没有被扫描,或者由于它没有从Artifactory 下载——那么KubeXray将以未知风险来应用当前的策略集。

每当在Xray上添加或更新新策略,或报告新漏洞时,KubeXray都会检测到此更改,并检查现有pod是否存在问题。若是发现任何风险,KubeXray将当即根据当前安全策略进行安全控制。

以下图所式: 显示对漏洞pod的每一个策略操做过程(忽略/删除/缩容)。
你的K8s 运行时环境安全吗? KubeXray帮你保护K8s环境及应用
你的K8s 运行时环境安全吗? KubeXray帮你保护K8s环境及应用
你的K8s 运行时环境安全吗? KubeXray帮你保护K8s环境及应用

上面提到:KubeXray根据发现的风险和DevOps管理员配置的策略应用策略操做。
策略操做是在一个 values.yaml 文件中设置。您能够为如下条件配置策略操做(缩容、删除或忽略):

  • 未扫描——未被 Xray 扫描deployments ,您还能够指定命名空间的白名单;使用这些命名空间的deployments 将不该用安全策略操做。
  • 安全性——因为漏洞而存在安全问题的deployments 。
  • License许可证——许可证不符合策略的deployments 。

上述每种条件都为Deployments 和StatefulSets提供了单独的策略操做设置。

KubeXray安装使用

KubeXray工具是一个开源软件项目,能够在Github存储库中找到并安装它(https://github.com/jfrog/kubexray)。
要使用KubeXray,您必须具有:

  • 一个已获受权及正在运行Artifactory 服务
  • 一个已获受权及正在运行Xray服务
  • 一个 正在运行的Kubernetes集群
  • 客户端Kubectl
  • Helm客户端以及Helm服务端配置(Tiler)

快速安装KubeXray:

JFrog Helm仓库中提供的一个Helm Chart,能够快速安装或升级JFrog KubeXray到正在运行的Kubernetes集群。要自定义KubeXray的配置,请参阅Github Readme文档。

安装KubeXray后,能够在values.yaml中设置前文提到的策略操做。让JFrog KubeXray监视您的Kubernetes pod,控制Kubernetes 集群运行时存在的安全漏洞或License 许可证问题。

总结

常见的第三方漏洞安全监管工具通常只在控制运行时以前进行安全控制,在运行时未能作到相应的监管控制,KubeXray能够帮助咱们快速对运行时资源进行安全管控,而且其做为一个开源软件项目,咱们期待着继续加强KubeXray以得到更健壮的操做和特性,并欢迎开发人员在社区提出改进意见和提交代码。

更多精彩内容请关注公众号:JFrog杰蛙DevOps

也能够添加官方微信号:JFrogjiewachina

更多技术分享能够关注2月13日在线课堂:《容器持续交付流水线最佳实践》

课程介绍

做为运维、工程效能、sre

你是否对开发人员代码质量良莠不齐而感到愤恨?

你是否对开发人员使用的不一样开发语言而眼花缭乱?

你是否对不一样技术栈的质量度量标准无从下手?

你是否曾经由于开发一句“环境问题,和代码无关”而莫名背锅?

听完这节课,教你如何度量开发人员的代码质量

课程内容

SonarQube 是一代码质量管理的工具,它主要用于度量源代码的质量。能够支持多种开发语言,好比 java,C, C#, go,C++, Python, Groovy 等。帮助你发现代码的漏洞,Bug,坏味道以及技术债务等信息。

本节课会基于SonarQube,讲解运维、工程效能、Sre团队如何自动化度量开发人员代码质量,如何在DevOps体系中集成代码质量扫描,提供最佳实践及平台建设思路,课程中也会提供实操演示环节。

本期话题

  1. SonarQube介绍

  2. SonarQube使用详解

  3. SonarQube最佳实践

  4. 运维人员如何评估业务代码质量

课堂活动

本期课堂讲师会在结束前进行抽奖活动

第一名:小爱蓝牙耳机

第二名:JFrog新版T恤

第三名:JFrog新版T恤

报名连接:https://www.bagevent.com/event/6360865

相关文章
相关标签/搜索