Nacos集群Raft反序列化漏洞-修复
Posted beawh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nacos集群Raft反序列化漏洞-修复相关的知识,希望对你有一定的参考价值。
近日,奇安信CERT监测到 Nacos 集群Raft反序列化漏洞(QVD-2023-13065),在Nacos集群处理部分Jraft请求时,攻击者可以无限制使用hessian进行反序列化利用,最终实现代码执行。鉴于该漏洞仅影响集群间通信端口 7848(默认配置下),若部署时已进行限制或未暴露则风险可控,建议客户做好自查及防护。
目前官方已发布安全修复更新,受影响用户可以升级到Nacos 1.4.6、Nacos 2.2.3。如果不能更新需要封禁7848端口来缓解该漏洞。
之前nacos2.0.3是通过docker镜像安装的,最新版本nacos2.2.3官网无提供镜像包,故需自己制作镜像包。
1)获取nacos镜像构建的docker 镜像包。
git clone https://github.com/nacos-group/nacos-docker.git
2)修改Dockerfile配置文件
ARG NACOS_VERSION=2.2.3
#此处修改成nacos自己需要最新的版本号。
具体Dockerfile 内容如下:
FROM centos:7.9.2009
LABEL maintainer="pader <huangmnlove@163.com>"
# set environment
ENV MODE="standalone" \\
PREFER_HOST_MODE="ip"\\
BASE_DIR="/home/nacos" \\
CLASSPATH=".:/home/nacos/conf:$CLASSPATH" \\
CLUSTER_CONF="/home/nacos/conf/cluster.conf" \\
FUNCTION_MODE="all" \\
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk" \\
NACOS_USER="nacos" \\
JAVA="/usr/lib/jvm/java-1.8.0-openjdk/bin/java" \\
JVM_XMS="1g" \\
JVM_XMX="1g" \\
JVM_XMN="512m" \\
JVM_MS="128m" \\
JVM_MMS="320m" \\
NACOS_DEBUG="n" \\
TOMCAT_ACCESSLOG_ENABLED="false" \\
TIME_ZONE="Asia/Shanghai"
ARG NACOS_VERSION=2.2.3
ARG HOT_FIX_FLAG=""
WORKDIR $BASE_DIR
RUN set -x \\
&& yum update -y \\
&& yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel iputils nc vim libcurl \\
&& yum clean all
RUN curl -SL https://github.com/alibaba/nacos/releases/download/$NACOS_VERSION$HOT_FIX_FLAG/nacos-server-$NACOS_VERSION.tar.gz -o /home/nacos-server.tar.gz \\
&& tar -zxvf /home/nacos-server.tar.gz -C /home \\
&& rm -rf /home/nacos-server.tar.gz /home/nacos/bin/* /home/nacos/conf/*.properties /home/nacos/conf/*.example /home/nacos/conf/nacos-mysql.sql \\
&& ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone
ADD bin/docker-startup.sh bin/docker-startup.sh
ADD conf/application.properties conf/application.properties
# set startup log dir
RUN mkdir -p logs \\
&& touch logs/start.out \\
&& ln -sf /dev/stdout start.out \\
&& ln -sf /dev/stderr start.out
RUN chmod +x bin/docker-startup.sh
EXPOSE 8848
ENTRYPOINT ["bin/docker-startup.sh"]
3)构建镜像:
docker build -t nacos/nacosbuild .
4)nacos服务跑起来
5)访问验证一下版本号:
php反序列化网站漏洞修复指南
php反序列化网站漏洞修复指南
分类专栏: ***测试公司 网站安全漏洞检测 网站漏洞修复
版权
先来说说序列化是什么吧,序列化是将对象的状态信息转换成可以存储或传输的形式的过程。在序列化期间,将对象的当前状态写入临时或永久存储区。稍后,您可以通过从存储区读取或恢复对象的状态重新创建对象。简而言之,序列化是一种将一对象转换为一个字符串的方法,该字符串可以以特定格式在进程之间跨平台传输。
php的反序列化漏洞,php的盲点,也是一个常见的漏洞,这种漏洞充满了一些场景,虽然有些很难调用,但是成功的后果很危险。漏洞形成的根本原因是没有序列识别程序,从而导致序列字符串的检测。反序列化漏洞不仅仅存在于php中,而且还存在于java、python中。基本上是一样的原理。在java反序列化中,调用反序列化的readobject方法isalized,并在不编写readobject方法时引起漏洞。
因此,在开发过程中出现了共同的反序列化漏洞:可以绕过重写对象输入流对象的解析类方法中的检测。使用第三方类的黑名单控件。虽然java比php更加严格,但几乎不可能使用黑名单机制禁用大型应用程序中的所有危险对象。因此,如果在审计过程中发现使用黑名单过滤的代码,那么大多数代码都有一两条可以被利用的代码。而黑名单方法只能确保当前的安全性,如果稍后添加新的特性,可能会引入利用漏洞的新方法。因此黑名单不能保证序列化过程的安全性。事实上,大部分反序列化漏洞是由于使用不安全的基础库造成的。***gabriellawrence和chrisfrohoff于2015年发现的apachecommons集合库,直接影响到大型框架,如weblogic、websphere、jboss、jenkins、opennms。脆弱性的影响直到今天才得到解决,如果大家有无法解决的网站漏洞修复问题可以去看看网站安全公司那边,国内像Sinesafe,绿盟,启明星辰都是网站安全公司解决漏洞问题的。
以上是关于Nacos集群Raft反序列化漏洞-修复的主要内容,如果未能解决你的问题,请参考以下文章