观天

Nacos漏洞历史与加固方案

一、简介

Nacos 是构建云原生的动态服务发现、配置管理和服务管理平台。

二、历史漏洞

  1. 目前已知Nacos组件存在身份验证绕过漏洞、未授权访问漏洞、默认token.secret.key泄露、弱口令。
  2. 历史漏洞影响版本1.4.0 <= Nacos < 1.4.6及2.0.0 <= Nacos < 2.2.3。
  3. 安全版本Nacos = 2.2.3、Nacos=1.4.6

提示:低版本建议升级至2.2.3或以上,因为低版本通过加固也无法防御部分漏洞的攻击。

1、Nacos默认登录账户nacos/nacos ,必须更改。

登录Nacos控制台,修复默认账户密码,修改密码必须复杂。

2、 身份验证绕过

Nacos在1.4.0 <= Nacos < 1.4.6或更低,通过过User-Agent中是否包含Nacos-Server来进行判断请求是否来自其他服务端,导致漏洞产生,攻击者通过修改User-Agent的信息为“Nacos-Server”即可绕过登录验证。

3、未授权访问

接口未授权访问泄露nacos用户信息及其配置信息、可利用添加、修改、删除账户,以达到直接登录nacos管理后台。

4、token.secret.key泄露

默认token.secret.key被官方公开,被恶意利用同样会导致身份验证绕过。默认nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

三、加固方案:

整改前注意备份application.properties配置和nacos,所有集群服务器必须保持配置一致性,避免出现集群异常。以下key值不可直接复制,为了你的安全,麻烦自己重新定义key值。

Nacos配置文件application.properties配置:

nacos.core.auth.enabled=true #开启鉴权
nacos.core.auth.enable.userAgentAuthWhite=false #关闭userAgent,高版本默认已经关闭,防止Nacos-Server身份验证绕过。默认为false,严禁设置为true。
nacos.core.auth.server.identity.key=serverIdentity 
nacos.core.auth.server.identity.value=security #identity.key和identity.value不建议使用默认值serverIdentity和security。需要更改为其它

公开默认token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789 #默认SecretKey。
#自定义密钥时,推荐将配置项设置为Base64编码的字符串,且原始密钥长度不得低于32字符。官方说明修改不需要重启服务,但可能存在缓存的情况。评估是否需要重启Nacos。
举个例子:
token.secret.key=SecretKey012345678901234567890123456789012345678900000000000000000000 #例如修改SecretKey,先不要直接填写,进行base64编码。

Base64编码:SecretKey012345678901234567890123456789012345678900000000000000000000
#base64编码。

Base64编码后:token.secret.key=U2VjcmV0S2V5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAwMDAwMDAwMDAwMDAwMDAwMDAw
#base64编码后填写到token.secret.key=

 

赞(1)
未经允许不得转载:观天 » Nacos漏洞历史与加固方案