开发者社区 > 云原生 > 微服务 > 正文

在Nacos中如何修复未授权访问漏洞?

在Nacos中如何修复未授权访问漏洞?

展开
收起
花开富贵111 2024-06-11 22:24:13 22 0
2 条回答
写回答
取消 提交回答
  • 为了解决Nacos的未授权访问漏洞,我们需根据您的具体情况采取相应的措施。根据提供的知识内容,这里有几种情形和解决方案:
    分析问题原因

    旧版本问题: 在Nacos早期版本中(<2.3.0),#/nacos/v1/core/cluster/nodes接口默认允许无权限访问,这可能导致未授权访问漏洞。
    身份认证绕过漏洞: 特定版本范围内的Nacos(特别是<1.4.1或1.4.1~2.2.0)存在身份认证绕过漏洞,主要是因为默认配置或未正确设置鉴权参数。

    解决方案步骤

    1. 版本升级

    推荐做法:首先考虑将Nacos服务端升级到最新稳定版本,确保包括了未授权访问相关漏洞的修复。至少应升级到2.3.0及以上版本,以自动获得对/nacos/v1/core/cluster/nodes接口访问权限的管理增强。

    1. 开启鉴权功能

    在application.properties或相应的配置文件中,确保设置nacos.core.auth.enabled=true以开启鉴权功能。这是解决身份认证绕过漏洞的基础步骤。

    1. 修改默认密钥与配置

    对于存在身份认证绕过风险的版本,需要修改默认的密钥值,包括但不限于nacos.core.auth.plugin.nacos.token.secret.key、nacos.core.auth.server.identity.key、nacos.core.auth.server.identity.value。确保这些值被更改为复杂且独特的值,避免使用默认配置。

    1. 配置防火墙与白名单

    如果因某些限制无法立即升级,且客户端通过局域网访问,可以通过配置防火墙限制外部访问,并设置Nacos服务的白名单,仅允许信任的IP或网络段访问。

    1. 限制Actuator暴露

    虽然这不是直接解决未授权访问漏洞的措施,但为了进一步增强安全性,可以限制或配置Nacos的Actuator端点暴露,避免敏感信息泄露。默认情况下,Nacos不启用Actuator,但若已开启,应按照需求仅暴露必要的端点如prometheus,并实施鉴权控制。此回答整理来自钉群“Nacos社区群2(已满,欢迎加4群:12810027056)”。

    2024-06-12 16:32:18
    赞同 展开评论 打赏
  • 漏洞描述
    该漏洞发生在nacos在进行认证授权操作时,会判断请求的user-agent是否为”Nacos-Server”,如果是的话则不进行任何认证。开发者原意是用来处理一些服务端对服务端的请求。但是由于配置的过于简单,并且将协商好的user-agent设置为Nacos-Server,直接硬编码在了代码里,导致了漏洞的出现。利用这个未授权漏洞,攻击者可以获取到用户名密码等敏感信息,还可以进行任意操作,包括创建新用户并进行登录后操作。

    影响范围
    <= Nacos 2.0.0-ALPHA.1

    < Nacos 1.4.1

    解决方法
    1.升级Nacos为最新版本
    (1)查看当前Nacos的版本

    命令:curl -X GET 'http://localhost:8848/nacos/v1/console/server/state'

    (2)升级Nacos

    参考官方:Nacos 2.0 升级文档

    image.png

    参考文档https://blog.csdn.net/m0_52985087/article/details/136879673

    2024-06-12 09:17:48
    赞同 展开评论 打赏

为微服务建设降本增效,为微服务落地保驾护航。

相关电子书

更多
Nacos架构&原理 立即下载
workshop专场-微服务专场-开发者动手实践营-微服务-使用Nacos进行服务的动态发现和流量调度 立即下载
Nacos 启航,发布第一个版本, 云原生时代助力用户微服务平台建设 立即下载