大多数安全措施都是为了防止漏洞逃跑而设计的, 在此以前,咱们也分享了一些第三方安全扫描的文章(请移步到历史文章中查看),尽早识别应用程序的风险意味着您能够防止或限制它部署到您的系统中(安全左移策略)。有了这些知识或工具,容器中任何可能形成损坏的漏洞均可以安全地留在由您的安全策略围栏后面。java
可是,当这些漏洞已经逃跑时,咱们能作什么呢? 如何确保已经在Kubernetes pods中运行的容器和应用程序符合您当前的风险和策略?git
因为大多数应用程序严重依赖于包管理器和开源存储库,所以它们很容易受到来自这些源的恶意或不安全代码的***。想象咱们交付的软件 Application 是一张饼,咱们本身开发的代码仅占其中很小一部分,见下图:github
最近,当Javascript社区得知npm module中流行的事件流包被一个针对比特币钱包平台的恶意包更新时,他们很是愤怒。在被发现和报道以前的三个月里,这个包被下载了近800万次。
虽然来自社区包管理器的此类事件并不常见,但并很多见。一年前,npm发现并删除了39个恶意包。因此不少包在咱们安全策略发现以前可能已经进入到了生产环境数据库
在介绍如何对运行时进行安全控制以前,先回顾一下常见漏洞扫描工具的原理:这里以JFrog Xray 为例:
通用二进制分析工具和策略引擎JFrog Xray,会实时扫描Artifactory制品库中的容器镜像,war包,以及Npm module 等二进制制品,执行深度递归扫描,逐层检查应用程序的全部组件,并与多个漏洞数据源(已知漏洞数据库)进行一一对比,从而判断是否存在已知漏洞 或License许可证策略问题,同时为被扫描文件(Docker 镜像,Npm Module)添加相关元数据。npm
DevOps管理员能够根据Xray扫描平台所发现的风险级别,配置策略来限制或阻止Kubernetes部署这些Docker 镜像。可是能够发现仅仅使用Xray,只能将漏洞限制在运行时以前。安全
为了解决这个问题,JFrog提供了KubeXray 组件,这是一个开源软件项目,它将通用二进制安全分析工具Xray的安全性扩展到Kubernetes pods运行时。
使用Xray扫描容器映像生成的元数据,KubeXray能够对已经部署的内容(容器镜像等)进行安全策略管控
KubeXray监控全部活动Kubernetes Pod资源,以帮助您:服务器
经过这种方式,KubeXray能够帮助您将逃逸的漏洞进行安全的控制。微信
在Kubernetes将容器镜像部署到pods以前,Xray检测风险并将策略应用于容器镜像,KubeXray检测风险并将策略应用于已经运行或即将运行的Kubernetes pod。
KubeXray监视来自Kubernetes服务器和Xray的安全事件,并为Kubernetes运行的全部pods执行当前的安全策略。KubeXray监听这些事件流:运维
当检测到问题时,KubeXray会根据您设置的当前策略进行响应。您能够选择如下可能的操做之一:ide
KubeXray还了解不一样Kubernetes资源(状态集和部署)之间的差别,并容许对每种资源应用不一样的策略操做。
虽然KubeXray主要是将Xray的深度扫描安全性扩展到运行Kubernetes pods,但它也为未被Xray扫描的pods提供了一些策略控制,例如从存储库(而不是Artifactory)部署的容器映像。对于没有通过x射线扫描的pod,所以其风险是未知的,您能够指定要采起的单独策略操做。
KubeXray监听Kubernetes集群中运行的每一个pod,并使用Xray元数据(什么时候可用以及是否可用)来肯定安全策略控制。
对于Kubernetes上的每一个pod(运行或计划运行),KubeXray检查Xray元数据中的漏洞或License许可证策略问题。若是发现任何风险,KubeXray将采起相应的控制操做。
每当在Xray上添加或更新新策略,或报告新漏洞时,KubeXray都会检测到此更改,并检查现有pod是否存在问题。若是发现任何风险,KubeXray将当即根据当前安全策略进行安全控制。
以下图所式: 显示对漏洞pod的每一个策略操做过程(忽略/删除/缩容)。
上面提到:KubeXray根据发现的风险和DevOps管理员配置的策略应用策略操做。
策略操做是在一个 values.yaml 文件中设置。您能够为如下条件配置策略操做(缩容、删除或忽略):
上述每种条件都为Deployments 和StatefulSets提供了单独的策略操做设置。
KubeXray工具是一个开源软件项目,能够在Github存储库中找到并安装它(https://github.com/jfrog/kubexray)。
要使用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体系中集成代码质量扫描,提供最佳实践及平台建设思路,课程中也会提供实操演示环节。
本期话题
SonarQube介绍
SonarQube使用详解
SonarQube最佳实践
课堂活动
本期课堂讲师会在结束前进行抽奖活动
第一名:小爱蓝牙耳机
第二名:JFrog新版T恤
第三名:JFrog新版T恤