问题篇整改Nacos漏洞——升级Nacos以及开启鉴权问题整理

Posted 小z♂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了问题篇整改Nacos漏洞——升级Nacos以及开启鉴权问题整理相关的知识,希望对你有一定的参考价值。

        在这里总结记录一下,工作中对于nacos漏洞处理时遇到的问题,对于nacos的漏洞问题是如下情况:

  • 认证权限认证绕过漏洞

  • 影响版本:Nacos <= 2.0.0-ALPHA.1

  • (由于不当处理User-Agent导致的未授权访问漏洞 。通过该漏洞,攻击者可以进行任意操作,包括创建新用户并进行登录后操作)

对于nacos的整改方案是如下两处:

  1. 升级nacos版本
  2. 开启nacos鉴权

qq交流群导航——>231378628

第一步:

即是升级nacos版本,公司内部项目nacos的版本是1.3几,直接升级nacos服务端为2.0.0以上,公司云上有2.0.3的nacos镜像,直接升级nacos2.0.3的镜像即可。


第二步:

升级nacos服务端版本后,这时还需要开启nacos鉴权,有好几种方式开启,可以通过修改nacos配置文件开启,公司项目上是通过docker方式开启的,所以通过nacos的官方文档推荐的方式进行开启,如下:

Nacos Docker 快速开始

  • NACOS_AUTH_ENABLE,默认false,设置为true
  • NACOS_AUTH_CACHE_ENABLE,默认false,设置为true

此处注意一个问题:

NACOS_AUTH_IDENTITY_KEY,NACOS_AUTH_IDENTITY_VALUE,这两个配置是有默认值的,不一定需要使用上。


第三步:

再访问nacos漏洞的那些地址,例如:

ip:端口/nacos/v1/auth/users?username=test&password=test,可以看到已经无法访问,就说明鉴权开启成功了。


第四步:

如果是nacos升级了版本的,那么一定会遇到一个问题,那就是客户端无法将服务注册到nacos了(即使在客户端的配置文件配置了账号密码依旧会注册不到注册中心)。

我修改后的配置:

报错:unknown user!

com.alibaba.nacos.api.exception.NacosException: <html><body><h1>Whitelabel Error Page</h1><p>This application has no explicit mapping for /error, so you are seeing this as a fallback.</p><div id='created'>Sat May 14 06:51:53 CST 2022</div><div>There was an unexpected error (type=Forbidden, status=403).</div><div>unknown user!</div></body></html>

原因是:升级了nacos服务端的版本后,导致nacos服务端的版本和nacos-client的jar包版本不匹配了,就导致服务无法注册到nacos注册中心了。

解决办法:

我先说说自己遇到的坑:我首先想到的是将nacos对应的springboot,springcloudalibab,springcloud的版本全部替换成对应版本,结果我发现,问题大了,这会导致项目出现很多的问题,例如feign也出现了问题,feign的版本也不匹配了,一开始没发现feign的问题,把feign的调用全部加上@lazy懒加载,发现服务是成功注册了,但是调用实际上还是会出现问题。

Requested bean is currently in creation: Is there an unresolvab circular reference?

感觉把事情复杂化了,结果还是看了一眼官网,只改变nacos-client的版本,其他springboot,springcloudalibab,springcloud的版本全部恢复原状。

 

注意:网上资料是说,1.x版本nacos-client能访问2.x版本nacos-server,但是2.x版本nacos-client不能访问1.x nacos-server。但是。。。。。。。。。。。

我原来的server是1.x,client是1.x,所以应该正常,此时我server升到了2.x,按照网上的说法,此时我的是1.3.3应该也能正常注册才对,但是结果不尽人意,报错了。

com.alibaba.nacos.api.exception.NacosException: <html><body><h1>Whitelabel Error Page</h1><p>This application has no explicit mapping for /error, so you are seeing this as a fallback.</p><div id='created'>Sat May 14 06:51:53 CST 2022</div><div>There was an unexpected error (type=Forbidden, status=403).</div><div>unknown user!</div></body></html>

最终还是将nacos-client的版本也升到对应的nacos-server的版本,2.*。 

这个是官方推荐的。 

 

等保整改之开启Nacos认证-漏扫发现我们使用Nacos时存在未授权访问的漏洞

背景

还是之前的一个小项目,部署在专网中,等保在做了一次漏扫后,说是有个高危漏洞要求整改。打开漏洞扫描报告后,总体网络风险级别为:比较危险: nacos未授权访问漏洞 ,漏洞详细信息如下:

Nacos 未授权访问!?这还了得??

我们知道, Nacos 结合了注册中心与配置中心,本身在进入后台管理页面时也有一个认证(当然,我们的 Nacos 部署在专网中,并修改了默认密码),这让我们误以为后续的服务注册、配置读取与更新也是开启认证的。显然这就是自以为是的想法,这就是光顾着使用技术,而没有相对深入研究导致的安全事故。其实,官方文档中明确说明: Nacos 服务端默认是不需要登录的,这样会导致配置中心对外直接暴露。

试想一下,你的服务注册、配置读取与更新接口竟然是暴露的,没有任何认证拦截的;尤其是配置中心,通过 URL 可以直接访问到完整的配置信息,甚至包括各种服务的密码信息等,就问怕不怕。。

Nacos官方文档列出了以下服务发现与配置管理的接口:

  • 服务注册

以上是关于问题篇整改Nacos漏洞——升级Nacos以及开启鉴权问题整理的主要内容,如果未能解决你的问题,请参考以下文章

阿里 Nacos 惊爆安全漏洞,火速升级!

阿里Nacos安全漏洞,火速升级(附修复建议)

nacos安全漏洞问题

nacos版本升级和开启权限认证配置(1.3.2—2.0.3)

nacos版本升级和开启权限认证配置(1.3.2—2.0.3)

阿里Nacos安全漏洞以绕过身份验证