共计 7331 个字符,预计需要花费 19 分钟才能阅读完成。
近日一则《SUSE 公布 NeuVector:业内首个开源容器平安平台》的文章被转载于各大 IT 新闻网站。作为 SUSE 家族的新进成员,在 3 个月后便履行了开源承诺,着实让人赞叹。那么 NeuVector 到底有哪些过人之处能失去 SUSE 的青眼?而比照各平安厂商的开源平安产品又有哪些冲破?接下来,我会以一个 SecDevOps 的视角对 NeuVector 进行简要剖析。
开源云原生平安产品现状
NeuVector 此次开源的并非某个组件或者平安工具,而是一套残缺的容器平安平台。这与其余各大云原生平安厂商的开源策略有很大的区别。目前,云原生畛域沉闷的开源厂商包含:Aqua Security, Falco(sysdig), Anchore, Fairwinds, Portshift 等,以及被红帽收买的 Stackrox,除此还有像 Clair 这样来自大厂的平安工具。而传统的平安厂商尽管都有面向原生平安的产品,然而鲜有软件开源。云原生平安产品成为了创新型平安厂商冲破传统厂商重围的一条重要赛道。而开源则更像他们测验其产品的试金石。
我的项目 | 厂商 | 链接 | Star | 类型 | 开源工夫 |
---|---|---|---|---|---|
clair | Quay | https://github.com/quay/clair | 8.4k | 镜像扫描 | 2015-11-13 |
trivy | Aqua | https://github.com/aquasecuri… | 10.1k | 镜像扫描 | 2019-04-11 |
kube-hunter | Aqua | https://github.com/aquasecuri… | 3.4k | 破绽扫描 | 2018-07-18 |
kube-bench | Aqua | https://github.com/aquasecuri… | 4.5k | CIS 平安基线 | 2017-06-19 |
starboard | Aqua | https://github.com/aquasecuri… | 968 | Dashboard | 2020-03-17 |
tracee | Aqua | https://github.com/aquasecuri… | 1.5k | 基于 eBPF 的零碎事件追踪 | 2019-09-18 |
anchore-engine | anchore | https://github.com/anchore/an… | 1.4k | 破绽扫描 | 2017-09-06 |
kyverno | kyverno.io | https://github.com/kyverno/ky… | 1.8k | Kubernetes 策略与审计 | 2019-02-04 |
GateKeeper | OPA (sysdig) | https://github.com/open-polic… | 1.3k | Kubernetes 策略与审计 | 2018-10-26 |
falco | falcosecurity(sysdig) | https://github.com/falcosecur… | 4.4k | 基于内核模块的零碎事件追踪、正告 | 2016-01-19 |
terrascan | accurics.com | https://github.com/accurics/t… | 2.7k | 通用的 IaS 配置扫描 | 2017-09-11 |
Kubei | portshift | https://github.com/cisco-open… | 489 | 镜像扫描(带面板) | 2020-03-22 |
Polaris | Fairwinds | https://github.com/FairwindsO… | 2.4k | 配置扫描与策略 | 2018-11-15 |
kubesec | controlplaneio | https://github.com/controlpla… | 667 | Kubernetes 配置扫描 | 2017-10-10 |
KubeEye | KubeSphere | https://github.com/kubesphere… | 424 | 基于策略的 Kubernetes 集群配置扫描 | 2020-11-07 |
kube-linter | Stackrox(RedHat) | https://github.com/stackrox/k… | 1.8k | Kubernetes 配置扫描 | 2020-08-13 |
上表中,咱们列举出了来自各个平安厂商的次要开源我的项目。从下面的表格中咱们能够看出, 目前开源安全软件集中在四大类别:
- 镜像破绽扫描
- 合规、基线扫描
- Kubernetes 安全策略、配置管理
- 威逼检测
除上述四类工具外,网络安全也是云原生平安的重要一环,但目前次要由 CNI 网络插件反对,并未在其余平安厂商找到相干产品。这些工具目前都处于绝对割裂的状态。除 starboard 我的项目是整合了 Aqua 开源平安产品线的繁难平安平台外,其余厂商并未开源相似 NeuVector 的平台级别我的项目。且 starboard 目前也仅能只能主动执行破绽扫描、配置审计、CIS 基线等基本功能。仅仅利用以上工具,运维开发人员则很难将其整合,造成一套欠缺的平安解决方案。从各个我的项目的 Star 数量上也可看出像 Trivy,TerraScan 等各类扫描工具相较运行时平安工具 Falco,Tracee 更受到社区用户的欢送。这跟扫描类工具更易于施行,能够与 CI/CD 流水线疾速集成有,兴许有着亲密的关系。而运行时平安工具则须要与其它 IT 零碎进行整合或二次开发能力施展出平安防护的作用。学习、应用、施行难度的晋升,大大的妨碍了其遍及水平。而 NeuVector 的开源则很可能突破这一现状,让社区用户轻松的部署一套残缺的平安平台,应用以往付费商业平台才具备的性能。
云原生容器平安平台
接下来,咱们看一下作为云原生容器平安平台的 NeuVector 到底有哪些举世无双的开源性能。
对立平台
首先,作为一个平台应具备对立的装置部署能力,而不须要用户去思考如何去集成各类平安组件从而达到相应的平安需要。目前,能够通过官网提供的 Helm 安装包或 yaml 文件在已有的 Kubernetes 集群上可轻松的部署 NeuVector。NeuVector 由 5 个次要服务组成:
- Manager, NeuVector 的 Web 控制台,为用户提供了对立的治理 UI,便于用户查看安全事件、治理平安解决方案、规定等。
- Controller, Backend 服务器及控制器,治理如 Enforcer、Scanner 等其余组件,散发安全策略及调度扫描工作。
- Scanner, 用户执行破绽扫描、基线扫描等工作。
- Enforcer, 一个轻量级的容器,用于拦挡零碎事件,执行安全策略等。通常以 Daemon set 运行再集群中的每个节点上。
- Updater,用于更新 CVE 数据库。
其次,对立的治理立体。可能治理 Kubernetes 平台中的各种资产,如容器、镜像、主机、过程等。针对各种组件配置规定,策略。执行打算工作,如合规扫描,镜像扫描等。NeuVector 目前性能曾经绝对比较完善,与 Sysdig、Aqua 等商业平台的次要性能相似。胜利装置 NeuVector 后,用户即可通过浏览器关上 NeuVector 的控制台。在控制台的导航栏中蕴含了,资产治理、策略管理、平安危险、告诉、平台设置及联邦集群等五项外围性能,顺次开展后便可窥见它弱小的性能了。
Assets | Policy | Security Risks | Notifications | Settings |
---|---|---|---|---|
Platforms | Admission Control | Vulnerabilities | Security Events | Users & Roles |
Nodes | Groups | Vulnerabilities Profile | Risk Reports | Configuration |
Containers | Network Rules | Compliance | Events | LDAP/AD Settings |
Registries | Response Rules | Compliance Profile | – | SAML Setting |
System Components | DLP Sensors | – | – | OIDC Settings |
— | WAF Sensors | – | – | – |
再次,组件之间的联动能力。NeuVector 能主动发现应用程序、容器和服务的行为。通过学习模式、监控模式、保护模式的转换无效的晋升了效率。对已知的容器行为建模后,违反规定的行为都将触发安全事件。这些的安全事件会被汇总到Security Events
模块,并通过于 Response Rules
配置事件的响应规定,执行告诉告警、主动阻断等响应动作。
可视化平安威逼剖析面板
NeuVector 的可视化面板能无效的帮忙管理员剖析以后零碎存在的危险。汇总显示了零碎中的安全事件,主机 / 容器破绽,Ingress/Egress 流量等。还反对 pdf、csv 导出性能,不便用户生成报告和剖析。
资产治理
资产治理显示了节点、容器、镜像仓库、NeuVector 本身组件的相干信息。以不同的视角查看相干资产的平安危险,针对不同资产执行扫描工作。
事件告诉
NeuVector 的告诉模块蕴含了安全事件、危险 (合规与破绽) 事件与零碎事件。
安全事件中记录了违反白名单的事件或匹配的黑名单事件。例如,咱们能够在网络规定中设置白名单,所有未在白名单中容许的网络连接都将被拦挡,并记录安全事件。在安全事件中,还能够查看网络、过程、文件事件等各类事件。并批改事件规定,将误报退出信赖事件中。
用户权限治理与认证系统集成
NeuVector 控制台具备用户治理性能,对用户权限进行限度。并且能够与第三方用户管理系统进行集成,如 LDAP、SAML、OIDC 等,能够通过与用户管理系统内的用户组权限进行匹配,简化用户受权的流程。办法用户集成已有的用户受权基础设施。
联邦集群治理
NeuVector 反对多集群治理性能,创立主集群后,即可在主集群中配置联邦规定。这些规定能够被主动的散发到其余集群中。通过联邦集群能够对立的部署治理各个集群的安全策略与规定,简化治理流程。被纳管集群无权求改这些联邦规定,保障了纳管集群不会违反平安规定,晋升了纳管集群的安全性。
性能比照
接下来,咱们再看一下 NeuVector 内置的平安工具箱与以后支流的开源平安工具比照。
镜像破绽扫描
镜像破绽扫描工具中,Clair,Trivy,Anchore-engine 垄断绝大部分开源市场,又有像 Snyk 这样的商业产品。在这些我的项目中 Trivy 作为后起之秀,在短短 3 年内即超过了 Clair,成为最风行的工具,这与 Trivy 弱小的性能有着密不可分的关系。Trivy 岂但反对 Alpine, RHEL, CentOS, Ubuntu 等零碎软件包的破绽扫描。还反对基于开发语言的依赖包破绽扫描,如 Go, Python, PHP, Node.js Java, .Net 等。基于 GitHub Action 自动化工作会从各大厂商的官网 CVE 破绽库拉取最新的破绽信息,及时更新 Trivy 破绽库。
从 NeuVector 的代码库中能够看出,目前破绽扫描能够反对基于 apk, dpkg, rpm 散发包的检测,外围代码十分简练。但因为其尚未公布破绽库,因而很难判断其破绽扫描的准确性和全面性。还须要期待 NeuVector 公布下一步的开源打算,以全面的理解其相干的倒退布局。置信在短期内 NeuVector 的破绽扫描应该难以撼动 Trivy 的位置。
合规查看
NeuVector 内置的合规性检测反对包含 CIS Kubernetes/docker Benchmarks,以及 PCI, NIST,GDPR 和 HIPAA 等行业标准合规检测模板。对于 CIS Kubernetes Benchmarks 能够反对 OpenShift 和 GKE 的自动检测,但因为 CIS Kubernetes Benchmarks 检测脚本尚不能反对自定义规定,目前对于公有云或应用第三方装置工具部署的集群环境会受到限制。另外, 因为 NeuVector 的检测代码都是由 bash 脚本开发,其扩展性和配置性不如 kube-bench 灵便。
目前,其余合规性检测工具都只针对某一种规范,很难兼顾其它,而 NeuVector 更加全面和通用,用户能够自定义合规检测脚本,能够定制针对主机或容器或第三方组件的合规性检测。而不局限于 CIS 或其余规范的规定。但另一方面,官网文档中倡议审慎应用自定义合规检测脚本,因为自定义脚本具备主机和容器的 root 执行权限,并且没有命令限度,可能存在潜在的平安危险。
网络拓补图
网络拓补图应用了可视化的形式显示容器 - 容器和容器 - 主机之间间网络通讯关系,帮忙咱们剖析潜在的平安危险,晋升了网络的可观测性。Weave Scope, Cilium Hubble 都反对网络拓补图性能。Weave Scope 的应用范畴更加宽泛, 不局限于 Kubernetes,还可在 Docker,Mesosphere 等平台进行部署。Hubble 尽管依赖于 Cilium,然而 Cilium 不仅性能优越,而且将可察看性和安全性作为首要的性能个性,因而 Hubble 也作为其外围组件也被宽泛应用。而且 Cilium 作为社区中煊赫一时的网络插件,将来大有超过 Calico 之势。
从性能角度剖析,Weave Scope 更加侧重于网络性能剖析和调试,并反对插件,可定制化 UI 性能。Hubble 则更偏差于微服务治理,可显示微服务的依赖关系,对应用层协定有更好的反对。通过 Hubble 也可观测到哪些服务发动了外网拜访或域名解析以及被网络策略拦挡的网络连接等。
NeuVector 的 Network Activity 性能着重于网络安全性。帮忙网络管理员辨认异样流量。治理网络安全策略,执行隔离命令等。尽管他们的视图性能类似、原理相通,但因为其性能重点不一样,横向比照的意义无限。
内核事件审计
通过内核事件剖析零碎和利用的行为是运行时平安检测的重要一环。通过 Linux 内核监控的零碎中的事件,事件产生速度极快,对外围模块效率要求极高。因而,目前支流计划会采纳 eBPF,像 Tracee 就应用了 eBPF + Golang 的组合作为事件的收集引擎。内核模块也是另一种可选计划,Falco 目前即反对 eBPF 也反对内核模块,灵活性较高,对低版本内核有更好的反对。NeuVector 还短少事件收集的设计文档,因为工夫仓促,并未通过代码深刻理解 NeuVector 事件收集的模式。仅从代码构造上看,代码绝对较简单,短少正文,组件之间的关系仅凭命名很难确定。心愿官网能尽快欠缺相干文档,便于进一步了解剖析。
装置试用
接下来咱们通过 KubeSphere 来装置试用 NeuVector。
进入 kubectl 终端
首先登录 KubeSphere Console,进入 ” 平台治理 ”,抉择 ” 集群治理 ”。
进入 ”ks-installer”,抉择 ” 利用负载 ”,抉择 ” 工作负载 ”,我的项目设置为 ”kubesphere-system”,抉择 ”ks-installer”。
进入 ks-installer 的 Pod 终端。
应用 helm 装置 NeuVector
- 创立 namespace
kubectl create namespace neuvector
- 创立 serviceaccount
kubectl create serviceaccount neuvector -n neuvector
- 增加 neuvector 的 helm 仓库
helm repo add neuvector https://neuvector.github.io/neuvector-helm/
- 装置 neuvector
helm install my-neuvector --namespace neuvector neuvector/core
-
替换镜像
因为 neuvector 镜像须要权限能力获取,这里将镜像替换为 preview 版本
更多装置信息请参考:https://github.com/neuvector/…
kubectl set image deployment.apps/neuvector-controller-pod *=neuvector/controller.preview:5.0.0-preview.1 -n neuvector
kubectl set image deployment.apps/neuvector-manager-pod *=neuvector/manager.preview:5.0.0-preview.1 -n neuvector
kubectl set image deployment.apps/neuvector-scanner-pod *=neuvector/scanner.preview:latest -n neuvector
kubectl set image daemonset.apps/neuvector-enforcer-pod *=neuvector/enforcer.preview:5.0.0-preview.1 -n neuvector
kubectl get cronjob/neuvector-updater-pod -n neuvector -o yaml | sed 's#image: registry.neuvector.com/updater:latest#image: neuvector/updater.preview:latest#' | kubectl replace -f -
-
查看 neuvector 服务状态
拜访 neuvector UI
- 应用 kubernetes node ip 和 node port 拜访 neuvector UI, e.g. http://1.2.3.4:34567
- 默认用户明码:
admin/admin
- 应用条款点击 “I accept”
- 批改默认明码
点击用户抉择 ”my profile”, 点击 ”EDIT PROFILE” - 查看 Dashboard
开源社区
从 Github 仓库的信息来看,NeuVector 开源还处于起步阶段。仅仅颁布了代码而已,目前还没有明确的 RoadMap,Release Plan,社区的治理形式也尚不明确。这些问题都亟待解决。思考到 Rancher 社区的成熟度,这所有应该只是工夫问题,置信 NeuVector 会很快的步入正轨。
总结
NeuVector 填补了平安产品的空缺。尽管各个功能模块并非业界最强,然而其全生命周期的平安治理能力是其余开源工具所不能企及的。如果将来 NeuVector 可打造成开放式平台,集成业内的优良工具舍短取长,必将施展出更大的作,并在开源平安市场占有一席之地。
本文由博客一文多发平台 OpenWrite 公布!