1.低版本(nacos<1.4.1)默认白名单UA
开启鉴权功能后,服务端之间的请求也会通过鉴权系统的影响。考虑到服务端之间的通信应该是可信的,因此在1.2~1.4.0版本期间,通过User-Agent中是否包含Nacos-Server来进行判断请求是否来自其他服务端。
但这种实现由于过于简单且固定,导致可能存在安全问题。因此从1.4.1版本开始,Nacos添加服务身份识别功能,用户可以自行配置服务端的Identity,不再使用User-Agent作为服务端请求的判断标准。
默认nacos/conf/application.properties中开启了白名单UA
nacos.core.auth.enable.userAgentAuthWhite=true
### 开启鉴权
nacos.core.auth.enabled=true
### 关闭使用user-agent判断服务端请求并放行鉴权的功能
nacos.core.auth.enable.userAgentAuthWhite=false
### 配置自定义身份识别的key(不可为空)和value(不可为空)
nacos.core.auth.server.identity.key=example
nacos.core.auth.server.identity.value=example
** 注意 ** 所有集群均需要配置相同的server.identity信息,否则可能导致服务端之间数据不一致或无法删除实例等问题。
2.默认token.secret.key
Nacos服务管理平台因默认密钥导致的认证绕过漏洞。在默认配置为未修改的情况下,攻击者可以构造用户 token 进入后台,导致系统被攻击与控制。许多Nacos 用户只开启了鉴权,但没有修改默认密钥,导致Nacos系统仍存在被入侵的风险
使用jwt.io对accessToken进行构造(exp时间需要为当天)
修改nacos.core.auth.default.token.secret.key的默认值
3.未开启授权
将nacos.core.auth.enabled设置为true
4.sql注入
与(1.低版本(nacos<1.4.1)默认白名单UA)解决方案一致
5.Jraft Hessian反序列化漏洞
Nacos是一个开源的、易于使用的动态服务发现、配置和服务管理平台,适合构建云原生应用。它提供了一种统一的数据管理和服务发现解决方案。 Nacos在处理某些基于Jraft的请求时,采用Hessian进行反序列化,但并未设置限制,导致应用存在远程代码执行(RCE)漏洞。
影响版本:
1.4.1 <= Nacos < 1.4.6 使用cluster集群模式运行
1.4.0、2.0.0 <= Nacos < 2.2.3 任意模式启动均受到影响
1.临时缓解方案:
老版本非集群模式下,可通过限制7848端口来进行缓解
2.升级修复方案:
官方已发布新版本修复了该漏洞,可下载最新版本进行升级。
6.默认账号
输入 nacos/nacos 成功登陆后台
与(1.低版本(nacos<1.4.1)默认白名单UA)解决方案一致
附加:nacos2.3.0配置文件总览