NeuVector 会是下一个爆款云原生安全神器吗?

cdb13f7ca693ea28304c0dba95b725ec.png

近日一则《SUSE 发布 NeuVector:业内首个开源容器安全平台》的文章被转载于各大 IT 新闻网站。作为 SUSE 家族的新进成员,在 3 个月后便履行了开源承诺,着实让人赞叹。那么 NeuVector 究竟有哪些过人之处能得到 SUSE 的青睐?而对比各安全厂商的开源安全产品又有哪些突破?接下来,我会以一个 SecDevOps 的视角对 NeuVector 进行简要分析。

开源云原生安全产品现状

NeuVector 此次开源的并非某个组件或者安全工具,而是一套完整的容器安全平台。这与其他各大云原生安全厂商的开源策略有很大的区别。目前,云原生领域活跃的开源厂商包括:Aqua Security, Falco(sysdig), Anchore, Fairwinds, Portshift 等,以及被红帽收购的 Stackrox,除此还有像 Clair 这样来自大厂的安全工具。而传统的安全厂商虽然都有面向原生安全的产品,然而鲜有软件开源。云原生安全产品成为了创新型安全厂商突破传统厂商重围的一条重要赛道。而开源则更像他们检验其产品的试金石。

项目厂商链接Star类型开源时间
clairQuayhttps://github.com/quay/clair8.4k镜像扫描2015-11-13
trivyAquahttps://github.com/aquasecurity/trivy10.1k镜像扫描2019-04-11
kube-hunterAquahttps://github.com/aquasecurity/kube-hunter/3.4k漏洞扫描2018-07-18
kube-benchAquahttps://github.com/aquasecurity/kube-bench4.5kCIS 安全基线2017-06-19
starboardAquahttps://github.com/aquasecurity/starboard968Dashboard2020-03-17
traceeAquahttps://github.com/aquasecurity/tracee1.5k基于 eBPF 的系统事件追踪2019-09-18
anchore-engineanchorehttps://github.com/anchore/anchore-engine1.4k漏洞扫描2017-09-06
kyvernokyverno.iohttps://github.com/kyverno/kyverno1.8kKubernetes 策略与审计2019-02-04
GateKeeperOPA (sysdig)https://github.com/open-policy-agent/gatekeeper1.3kKubernetes 策略与审计2018-10-26
falcofalcosecurity(sysdig)https://github.com/falcosecurity/falco4.4k基于内核模块的系统事件追踪、警告2016-01-19
terrascanaccurics.comhttps://github.com/accurics/terrascan2.7k通用的 IaS 配置扫描2017-09-11
Kubeiportshifthttps://github.com/cisco-open/kubei489镜像扫描(带面板)2020-03-22
PolarisFairwindshttps://github.com/FairwindsOps/polaris2.4k配置扫描与策略2018-11-15
kubeseccontrolplaneiohttps://github.com/controlplaneio/kubesec667Kubernetes 配置扫描2017-10-10
KubeEyeKubeSpherehttps://github.com/kubesphere/kubeeye424基于策略的 Kubernetes 集群配置扫描2020-11-07
kube-linterStackrox(RedHat)https://github.com/stackrox/kube-linter1.8kKubernetes 配置扫描2020-08-13

上表中,我们列举出了来自各个安全厂商的主要开源项目。从上面的表格中我们可以看出,目前开源安全软件集中在四大类别:

  1. 镜像漏洞扫描

  2. 合规、基线扫描

  3. Kubernetes 安全策略、配置管理

  4. 威胁检测

除上述四类工具外,网络安全也是云原生安全的重要一环,但目前主要由 CNI 网络插件支持,并未在其他安全厂商找到相关产品。这些工具目前都处于相对割裂的状态。除 starboard 项目是整合了 Aqua 开源安全产品线的简易安全平台外,其他厂商并未开源类似 NeuVector 的平台级别项目。且 starboard 目前也仅能只能自动执行漏洞扫描、配置审计、CIS 基线等基本功能。仅仅利用以上工具,运维开发人员则很难将其整合,形成一套完善的安全解决方案。从各个项目的 Star 数量上也可看出像 Trivy,TerraScan 等各类扫描工具相较运行时安全工具 Falco,Tracee 更受到社区用户的欢迎。这跟扫描类工具更易于实施,可以与 CI/CD 流水线快速集成有,也许有着密切的关系。而运行时安全工具则需要与其它 IT 系统进行整合或二次开发才能发挥出安全防护的作用。学习、使用、实施难度的提升,大大的阻碍了其普及程度。而 NeuVector 的开源则很可能打破这一现状,让社区用户轻松的部署一套完整的安全平台,使用以往付费商业平台才具有的功能。

云原生容器安全平台

接下来,我们看一下作为云原生容器安全平台的 NeuVector 究竟有哪些独一无二的开源功能。

统一平台

首先,作为一个平台应具备统一的安装部署能力,而不需要用户去思考如何去集成各类安全组件从而达到相应的安全需求。目前,可以通过官方提供的 Helm 安装包或 yaml 文件在已有的 Kubernetes 集群上可轻松的部署 NeuVector。NeuVector 由 5 个主要服务组成:

23857552a042f0f5e3ac492c4d8ec376.png

NeuVector 架构
  • Manager, NeuVector 的 Web 控制台,为用户提供了统一的管理 UI,便于用户查看安全事件、管理安全解决方案、规则等。

  • Controller, Backend 服务器及控制器,管理如 Enforcer、Scanner 等其他组件,分发安全策略及调度扫描任务。

  • Scanner, 用户执行漏洞扫描、基线扫描等任务。

  • Enforcer, 一个轻量级的容器,用于拦截系统事件,执行安全策略等。通常以 Daemon set 运行再集群中的每个节点上。

  • Updater, 用于更新 CVE 数据库。

其次,统一的管理平面。能够管理 Kubernetes 平台中的各种资产,如容器、镜像、主机、进程等。针对各种组件配置规则,策略。执行计划任务,如合规扫描,镜像扫描等。NeuVector 目前功能已经相对比较完善,与 Sysdig、Aqua 等商业平台的主要功能类似。成功安装 NeuVector 后,用户即可通过浏览器打开 NeuVector 的控制台。在控制台的导航栏中包含了,资产管理、策略管理、安全风险、通知、平台设置及联邦集群等五项核心功能,依次展开后便可窥见它强大的功能了。

AssetsPolicySecurity RisksNotificationsSettings
PlatformsAdmission ControlVulnerabilitiesSecurity EventsUsers & Roles
NodesGroupsVulnerabilities ProfileRisk ReportsConfiguration
ContainersNetwork RulesComplianceEventsLDAP/AD Settings
RegistriesResponse RulesCompliance Profile-SAML Setting
System ComponentsDLP 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,进入"平台管理",选择"集群管理"。

44166b1c855f37214bd85a91429635c6.png

进入"ks-installer",选择"应用负载",选择"工作负载",项目设置为"kubesphere-system",选择"ks-installer"。

30988cec7fa585c1be4d7bce623f5e77.png

进入 ks-installer 的 Pod 终端。

91c4f2c582ab3773d1a7de4e94106816.png

使用 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
4e140ae94e9e26f560f76daa26b20f4c.png
  • 替换镜像

    由于 neuvector 镜像需要权限才能获取,这里将镜像替换为 preview 版本。
    更多安装信息请参考:https://github.com/neuvector/neuvector-helm/tree/master/charts/core。

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 -
3280c7b6c05e0e5f879718f7900d0abd.png
  • 查看 neuvector 服务状态

f9f9e256e9a1dcfa531ccb9d4c5edf8d.png1761326f1016167408363835593e727b.png049e792ff5df6d70472d5c2632937b4c.png2b0c0d99804a552e2cbe6e1b60438110.png

访问 neuvector UI

  • 使用 kubernetes node ip 和 node port 访问 neuvector UI, e.g. http://1.2.3.4:34567

  • 默认用户密码:admin/admin

c0af949d557d33ece07541e70d14e181.png
  • 使用条款点击 "I accept"

7ba695ef990ca9f40ffce0f133bae193.png
  • 修改默认密码

    点击用户选择"my profile",点击"EDIT PROFILE"

36cc0625ab0fe3d8e2172a83c274f2b0.png
  • 查看 Dashboard

e48943939c07ce1544e0caf378bb6ca3.png

开源社区

从 Github 仓库的信息来看,NeuVector 开源还处于起步阶段。仅仅公布了代码而已,目前还没有明确的 RoadMap,Release Plan, 社区的治理方式也尚不明确。这些问题都亟待解决。考虑到 Rancher 社区的成熟度,这一切应该只是时间问题,相信 NeuVector 会很快的步入正轨。

总结

NeuVector 填补了安全产品的空缺。虽然各个功能模块并非业界最强,但是其全生命周期的安全治理能力是其他开源工具所不能企及的。如果未来 NeuVector 可打造成开放式平台,集成业内的优秀工具取长补短,必将发挥出更大的作,并在开源安全市场占有一席之地。


关于 KubeSphere

KubeSphere (https://kubesphere.io)是在 Kubernetes 之上构建的开源容器混合云,提供全栈的 IT 自动化运维的能力,简化企业的 DevOps 工作流。

KubeSphere 已被 Aqara 智能家居、爱立信、本来生活、东软、华云、新浪、三一重工、华夏银行、四川航空、国药集团、微众银行、杭州数跑科技、紫金保险、去哪儿网、中通、中国人民银行、中国银行、中国人保寿险、中国太平保险、中国移动、中国电信、天翼云、中移金科、Radore、ZaloPay 等海内外数千家企业采用。KubeSphere 提供了开发者友好的向导式操作界面和丰富的企业级功能,包括 Kubernetes 多云与多集群管理、DevOps (CI/CD)、应用生命周期管理、边缘计算、微服务治理 (Service Mesh)、多租户管理、可观测性、存储与网络管理、GPU support 等功能,帮助企业快速构建一个强大和功能丰富的容器云平台。

 ✨ GitHub:https://github.com/kubesphere

 💻 官网(中国站):https://kubesphere.com.cn

 👨‍💻‍ 微信群:请搜索添加群助手微信号 kubesphere

4aff11af725c6e5a97e0a5dafcf72bea.gif

<think>嗯,用户问的是“一定要懂大学数学知识才能制作出爆款的独立游戏吗?”这个问题看起来有点挑战性。首先,我需要明确用户的需求。可能是一个刚入行的游戏开发者,或者对游戏开发感兴趣但担心自己数学基础不够的人。他们想知道是否必须掌握高深的数学知识才能做出受欢迎的游戏。 接下来,我要分析独立游戏的成功因素。独立游戏通常更注重创意、玩法、美术和故事,而不是复杂的数学运算。比如《星露谷物语》或《Among Us》这样的游戏,它们的成功更多在于独特的机制和用户体验,而不是数学模型。所以,数学知识可能不是必需的,但某些方面可能需要基础数学,比如物理引擎或图形处理。 然后,我需要考虑用户可能的误解。他们可能认为数学是游戏开发的门槛,但实际上,很多工具和引擎(如Unity、Unreal Engine)已经封装了大部分数学运算,开发者不需要深入理解背后的数学理论。但另一方面,如果涉及到自定义物理效果或算法,可能需要一定的数学基础。 还要区分不同游戏类型的需求差异。比如,3D游戏可能需要更多的线性代数知识,而2D游戏或解谜游戏可能只需要基础几何或逻辑知识。用户可能没有明确游戏类型,所以需要涵盖不同情况。 另外,用户可能想知道如何在不懂数学的情况下制作游戏,或者是否需要学习特定的数学知识。这时候需要提供替代方案,比如使用现有工具、学习基本概念、团队合作等。 还要考虑爆款游戏的案例,说明成功的关键因素。比如,《Minecraft》的成功在于创意和社区,而不是数学;而《Braid》的时间操控机制可能需要一定的物理模拟知识,但这可能由引擎处理。 最后,总结时要强调数学的重要性因项目而异,但并非必须掌握大学数学才能成功。鼓励用户根据项目需求学习相关知识,利用现有资源,注重创意和用户体验。</think>### **制作爆款独立游戏是否需要大学数学知识?** 游戏开发的数学需求因项目类型和目标而异,并非所有独立游戏都需要掌握大学级别的数学知识。以下是关键分析: --- #### **1. 爆款独立游戏的核心成功要素** - **创意与玩法创新**: - 《星露谷物语》(Stardew Valley)的成功源于农场模拟的沉浸感与社交互动设计,而非复杂数学。 - 《Among Us》通过简单的“狼人杀”机制实现病毒式传播。 - **美术与叙事**: - 《空洞骑士》(Hollow Knight)以手绘美术和碎片化叙事吸引玩家。 - 《Undertale》通过打破第四面墙的叙事方式引发讨论。 - **用户交互体验**: - 《Braid》的时间操控机制依赖逻辑设计而非高阶数学。 **结论**:数学知识并非爆款游戏的核心门槛,创意和用户体验更为关键。 --- #### **2. 数学知识的实际应用场景** | **游戏类型** | **所需数学深度** | **典型数学工具** | **是否必须掌握?** | |--------------------|--------------------------|--------------------------------------|----------------------------| | **2D平台跳跃游戏** | 基础几何与三角函数 | 向量运算(移动、碰撞检测) | ✅ 小学/中学数学即可满足需求 | | **3D开放世界游戏** | 线性代数与微积分 | 矩阵变换(摄像机控制)、物理模拟 | ❌ 可依赖引擎(如Unity)封装 | | **策略/模拟游戏** | 概率统计与逻辑建模 | 资源分配算法、随机事件设计 | ✅ 概率基础即可 | | **物理引擎开发** | 常微分方程(ODE)数值解 | 刚体动力学、碰撞响应 | ❌ 仅需调用现成库(如Box2D) | | **程序化生成** | 分形几何/噪声函数 | Perlin噪声、Voronoi算法 | ✅ 可复用开源代码 | --- #### **3. 无需高深数学的开发工具与策略** - **引擎与中间件**: - Unity/Unreal Engine:封装物理、渲染等底层数学运算(如`Rigidbody`组件)。 - GameMaker Studio:通过拖拽逻辑块实现复杂行为,无需手动编写数学公式。 - **现成算法库**: - 物理引擎:Box2D(2D)、PhysX(3D)。 - 程序化生成:NoiseSharp(噪声生成)、Tilemap(地图编辑)。 - **协作与外包**: - 数学难题可寻求团队中技术美术(TA)或程序员协助。 - 资产商店购买数学相关的预制模块(如动态光照插件)。 --- #### **4. 必须掌握的数学基础(非高阶)** - **向量运算**:角色移动、方向计算(如`Vector2.MoveTowards`)。 - **三角函数**:旋转、圆周运动(如炮塔瞄准)。 - **概率与随机数**:掉落率、随机事件(如`Random.Range`)。 - **基础逻辑**:状态机设计(如NPC行为切换)。 **示例代码(Unity C#)**: ```csharp // 简单角色移动(向量运算) transform.position += Vector3.forward * speed * Time.deltaTime; // 炮塔旋转对准玩家(三角函数) Vector3 direction = player.position - transform.position; float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg; transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward); ``` --- #### **5. 学习数学的替代方案** - **可视化学习工具**: - 使用GeoGebra理解向量几何。 - 通过ShaderToy实验图形学数学(如光照公式)。 - **工程化思维**: - 遇到问题时针对性学习(如搜索“A*算法数学原理”)。 - 抄袭优秀开源项目代码(如GitHub上的游戏Demo)。 - **社区资源**: - 《游戏编程算法与技巧》(书籍):提供数学问题的工程化解决方案。 - YouTube教程(如Brackeys的Unity教程系列)。 --- ### **总结:数学知识的“必要性”分级** | **游戏类型** | **大学数学需求** | **替代方案** | **成功案例** | |--------------------|------------------|----------------------------------|----------------------------| | **休闲/文字游戏** | ❌ 无需求 | 使用RPG Maker、Twine等工具 | 《去月球》《Undertale》 | | **2D动作游戏** | ✅ 基础几何 | Unity内置物理引擎 | 《蔚蓝》《Hollow Knight》 | | **3D硬核物理游戏** | ✅ 线性代数 | 调用PhysX库 | 《人类一败涂地》 | | **策略/模拟游戏** | ✅ 概率统计 | Excel建模验证机制 | 《星露谷物语》《文明》系列 | --- ### **结论** - **爆款游戏无需“硬啃”大学数学**:创意、美术和玩法设计是核心竞争力。 - **数学是工具,非门槛**:根据需求学习基础概念,或通过引擎/社区资源绕过复杂推导。 - **建议路径**: 1. 优先掌握向量、三角函数、概率的工程化应用。 2. 遇到瓶颈时针对性学习(如学习四元数解决“万向锁”问题)。 3. 利用现成工具快速验证创意,而非重复造轮子。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值