MSE Nacos 配置安全最佳实践|学习笔记(一)

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 快速学习 MSE Nacos 配置安全最佳实践

开发者学堂课程【MSE Nacos配置安全最佳实践MSE Nacos 配置安全最佳实践】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/969/detail/14890


MSE Nacos 配置安全最佳实践

 

内容介绍

.Nacos 安全漏洞事件

.安全保护手段

.Nacos 配置中心介绍

.Nacos 配置中心架构

.黑客攻击 Nacos 的途径

.防护攻击手段

.鉴权演示

.微服务框架接入 MSE Nacos

.MSE Nacos 安全的最佳实践

 

一、 Nacos 安全漏洞事件

Nacos安全漏洞事件主要就是一个安全工程师,他发现了一个 Nacos的安全漏洞,那么因为该漏洞是公开的,所以已经被清空了,可以大概浏览一下整个事件发生的一些过程,可以参考当中的一些讨论。

回到 Nacos安全漏洞,它的影响面是Nacos server小于1.4.1的这么一个版本,这个漏洞的发生,它本身是提供了一个配置鉴权的能力的,那么开始开启鉴权之后,用户其实是需要携带着usename和password这样的一个认证信息来访问max server,这本质上来说是没什么问题的。

图片1.png 

但是由于开源 Nacos的一个实现问题,它使得攻击者就可以绕开这个认证。相当于是通过走后门的形式就可以攻击到 Nacos server。

一个漏洞其实本质上来说可以认为是一个后门,由于 Nacos是开源的一个特性,它可以很好的去被一些攻击者所发现,那么这个漏洞在1.4.1之后的版本也迅速被修复了。

还记得当时很多的一个公众号,包括博客新闻都开始报道了这件事儿,作为Nacos使用者发生了安全漏洞以后,并不是意味着这是一场一场灾难,因为常规的一个的一些常规的安全保护手段,很多公司都采取了。


二、安全保护手段

1.禁止开放公网

在大多数的时候生产上部署的  Nacos其实是只能够被内网的一些服务器去访问的,他并没有开放一个公网的端口,所以说黑客想要攻击到 Nacos,那就必须先进入到vbc内部。那么这个相对而言是比较困难的。

2.增加安全组和 acl 等白名单网络限制

如果是一些测试期权,开放的公网方便在开发环境进行一些调试,是也意味着的有这么一个被攻击的可能性,但是在暴露出公网的时候,就应该有这样的一个警惕性。

大多数情况下,对那些暴露在公网的ecs包括Nacos,都会配置上一定的一个安全组和acl从而对他的请求来源作为一定的白名单的一些限制。

3.开启 Nacos 鉴权的方案

开启 Nacos鉴权的方案来规避,即使是以后的一些漏洞都可以给它阻挡掉。 Nacos鉴权主要分为两个方面,第一个方面是开源 Nacos是怎么去做鉴权的。第二点是商业化的Nacos他是怎么样去做鉴权。


三、Nacos 配置中心介绍

1.什么时候用

在介绍鉴权方案之前,先对 Nacos的配置中心去做一个简单的介绍。第一点是会在项目的启动配置文件里面去使用 Nacos配置中心,从而达到一个把配置放在远程的效果。那么最常见的可能 Spin cloud框架,它所使用的application,properties都会出现。

第二点是可以把一些动态的功能开关放到分布式的一个配置的中心当中。

例如在大促的时候,可以把一些功能给降级掉,那么这样的功能是在运行时被关闭的,就可以通过 Nacos斯配置中心去实现。

第三点就是服务治理的规则,在使用一些微服框架,包括double,像swing cloud,他们本身都提供了一些服务治理规则,而这些服务治理规则通常都是放在配置中心当中的,而 swing cloud和double这样的一个微服框架,它都对 Nacos进行了一定的适配。

这三种场景是非常常见的三种场景。

那么理论上来说 Nacos斯的配置中心也可以被用做任何动态推送的场景,都可以用它来充当这么一个分布式配置中心的这么一个组件。

2.保证 Nacos 配置中心的安全性

把一些很重要的配置信息,例如像数据库的连接串,以及一些服务治理的规则,它是很有可能直接影响应用的一个运行时的。

一方面这些配置例如数据库连接上的一些密码,可能是一些私密信息,一些大促的时候的开关要一旦被攻破的话,那么可能是带来的后果是灾难性的。

防止配置它被篡改。其实就是分为读写两方面。

 

四、Nacos 配置中心架构

图片2.png

先来看这张图的右半部分,他介绍的是一个 Nacos的服务段的内核实现,可以看到节点1到节点3,它组成了一个 Nacos的集群。

可以理解这三台机器上面分别就部署着knocks server的一个应用,那么它们的背后会连接着一个配置持久化层。

通常情况下配置持久化存在max当中的实现,它其实就是一个my circle,三个节点当然也不一定是三个,在生产当中可以是5个,可以是7个,会把配置持久化保存在my circle当中,那么这三个节点内部,也会进行信息的相互同步,从而三个节点加上一个my circle共同组成的一个 Nacos的服务端。

再来看左边,是两类最典型的客户端,下面这部分,用户通过操作可以访问到无论是开源还是商业化,MSE的商业化,都提供了这么一个配置管理控制台的这么一个入口,通过配管理控制台去修改 Nacos的配置,那么这更多的是一个站在人的一个视角主动去维护,往上看,写到了一个 Nacos的client,那么更多的时候是被代码层去使用的。

那一种情况是可以直接去使用 Nacos的SDK去进行配置的获取或者是配置的写入,也有可能是一个微服务治理框架,它集成了Nacos,从而进行一个配置的读取,监听以及更改。

这张架构其实不需要太深入的去理解,但是了解这个架构可以更好的去了解如何去进行 Nacos的安全防护。


五、黑客攻击 Nacos 的途径

 

可能泄漏端

攻击手段

Nacos 客户端

未认证授权用户通过客户端获取/修改配置

控制台

未认证授权用户通过控制台获取/修改配置

Nacos 集群内

伪装成 Nacos 集群的节点获取/修改配置

持久化层

直接查DB,获取/修改配置

 

用户常见的使用 Nacos客户端的一个形式,第一个是 Nacos的一个客户端,第二个是 Nacos的控制台。像刚才的Nacos安全漏洞,其实它通过一定的手段绕开了一个 Nacos的鉴权行为,他可以未经认证,也没有拿到授权,就可以通过这种非法的途径去获取,甚至是修改配置。

Nacos集成内和持久化成并不常见,但是在极端情况下,它也是有可能会被攻击到的。如果攻击者侵入到了vbc内部,但是他没有办法去获取到aksk,他还是没有办法通过 Nacos客户端或者是控制台来获取到配置的,但是它可以通过把自己伪装成一个Nacos集成的内部的节点,等待着其他的真正的Nacos的节点给它进行信息的同步,它也能够获取到配置。

那么还有一个更简单的方法就是Nacos背后是有一个持久化层的,甚至黑客它攻击到这个vbc内部以后,它可以直接去DB里面去获取配置,甚至是修改配置。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
2月前
|
存储 缓存 安全
Nacos 安全零信任实践
本文将介绍如何基于安全零信任的理念来保证 Nacos 的数据安全。
13003 3
|
2月前
|
人工智能 Serverless 测试技术
nacos常见问题之Serverless 应用引擎2.0不支持 MSE nacos如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
|
2月前
|
网络协议 Nacos 数据安全/隐私保护
MSE微服务引擎注册问题之nacos注册失败如何解决
MSE(MicroService Engine)微服务引擎是阿里云提供的一种微服务治理平台,它通过提供服务注册、发现、配置管理等功能来支撑微服务架构的稳定运行;本合集旨在梳理MSE微服务引擎的核心特性、部署流程,以及实践中可能遇到的问题和相应的解决方案,以助力用户优化微服务架构的实施和管理。
|
9月前
|
Java Nacos
在MSE微服务引擎中,可以使用Java代码进行Nacos下线操作
在MSE微服务引擎中,可以使用Java代码进行Nacos下线操作
149 3
|
2月前
|
存储 安全 Nacos
使用KMS为MSE-Nacos敏感配置加密的最佳实践
本文主要介绍通过KMS密钥管理服务产生的密钥对敏感的AK等数据进行加密之后可以有效解决泄漏带来的安全风险问题,其次通过KMS凭据托管的能力直接将MSE的主AK进行有效管理,保障全链路无AK的业务体验,真正做到安全、可控。
92532 5
|
2月前
|
运维 监控 安全
MSE Nacos 配置变更审计平台使用指南
MSE Nacos 配置变更审计平台使用指南
|
2月前
|
存储 安全 Nacos
MSE Nacos,解决敏感配置的安全隐患
本文向大家介绍,MSE Nacos 是如何解决敏感配置的安全隐患,并提供使用 MSE Nacos 加解密敏感配置的最佳实践。
|
2月前
|
Nacos
MSE nacos读取不到nacos配置
MSE nacos读取不到nacos配置
41 0
|
2月前
|
弹性计算 Dubbo 应用服务中间件
MSE微服务引擎安装问题之nacos-sync安装失败如何解决
MSE(MicroService Engine)微服务引擎是阿里云提供的一种微服务治理平台,它通过提供服务注册、发现、配置管理等功能来支撑微服务架构的稳定运行;本合集旨在梳理MSE微服务引擎的核心特性、部署流程,以及实践中可能遇到的问题和相应的解决方案,以助力用户优化微服务架构的实施和管理。
|
9月前
|
安全 Java Nacos
『MSE』阿里云中“间”力量MSE-Nacos
注册配置中心 MSE-Nacos (以下简称 MSE-Nacos),即 Nacos 的企业版,开箱即用的 Nacos 云服务,对 Nacos 内核进行企业级稳定性加固,故障自动检测及恢复、多可用区容灾、推空保护等特性,具有风险管理能力,全局持续分析并管理集群风险;企业级安全基于 RAM 鉴权体系,可构建细粒度的安全控制能力,集成阿里云 KMS 提供配置加密能力,帮企业更安全地使用 Nacos 服务
64013 10
『MSE』阿里云中“间”力量MSE-Nacos