【漏洞分析】Apache ShardingSphere-Proxy <5.3.0 身份认证绕过

本文涉及的产品
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 【漏洞分析】Apache ShardingSphere-Proxy <5.3.0 身份认证绕过

漏洞简介


2022年12月22日,Apache 官方公告发布 ShardingSphere-Proxy 5.3.0 之前版本存在身份绕过漏洞(CVE-2022-45347)。当 ShardingSphere-Proxy 使用 MySQL 作为后端数据库时,由于 ShardingSphere-Proxy 在客户端认证失败后没有完全清理数据库会话信息,攻击者可利用未关闭的会话信息绕过 ShardingSphere-Proxy 的 MySQL 身份验证,执行任意 sql 命令。


漏洞分析


Apache ShardingSphere 是一个可将任意数据库转换为分布式数据库的生态系统,ShardingSphere-Proxy 是一个支持 MySQL 和 PostgreSQL 的数据库代理,提供了一个数据库服务器,并封装了数据库二进制协议来支持异构语言。


以 Apache ShardingSphere 5.2.1 版本为例, 用户可通过配置连接 ShardingSphere-Proxy 操作后端 MySQL 数据库:

1.png

(ShardingSphere-Proxy 应用场景示意图)

在该漏洞中存在的交互过程如下:

1.png

(MySQL client 与 ShardingSphere-Proxy 交互图)

以Python为例,当使用错误的账号密码通过 MySQL连接库(如pymysql)连接 ShardingSphere-Proxy:

import pymysql
# MySQL client 连接 ShardingSphere-Proxy
db = pymysql.connect(host='localhost',
                     port=3307,
                     user='root',
                     password='Wrong password',
                     database='sharding_db')
cursor = db.cursor()
cursor.execute("show tables")
results = cursor.fetchall()
print(results)
db.close()

此时 pymysql 将根据返回的报文抛出异常,程序终止:

1.png

(ShardingSphere-Proxy 身份认证失败抛出异常)

但这时ShardingSphere-Proxy 的 MySQL 身份认证模块并未关闭 MySQL 客户端连接会话:

1.png

(MySQLAuthenticationEngine#authenticate 源码)

攻击者如果构造一个忽略身份验证失败消息的MySQL客户端,则可以通过ShardingSphere-Proxy继续操作后端数据库。例如可以将pymysql中抛出异常的代码注释掉:

1.png

(删除 pymysql#connections.py 中的错误处理逻辑)

再次尝试可以发现在使用错误的账号密码连接后,仍然能够正常使用SQL语句,获得相应的数据返回结果:

1.png

(绕过 ShardingSphere-Proxy 身份验证并操作后端数据库)

1.png

(ShardingSphere-Proxy 后端数据库信息)

ShardingSphere-Proxy v5.3.0 commits 中在 MySQL 客户端认证失败后清理 context 修复此漏洞:

1.png

(漏洞修复代码)


给开发者的建议


对失效的会话信息及时清理关闭,防止会话重用的风险。此类风险较为普遍,例如 LibreNMS 在22.10.0之前的版本也出现过类似的问题,由于未对失效的 cookie 进行清理,导致攻击者可利用旧的 cookie 进行登录。

对临时文件或文件流及时关闭,防止内存泄露或过多的资源消耗导致拒绝服务。


参考链接


https://www.oscs1024.com/hd/MPS-2022-64480

https://lists.apache.org/thread/l5rz7j4rg10o7ywtgknh2f5hxnv6yw3l

https://github.com/apache/shardingsphere/commit/f3cc852dcbba89244ffcaef15a03ebf29693a14d


关于墨菲安全


墨菲安全是一家为您提供专业的软件供应链安全管理的科技公司,能力包括代码安全检测、开源组件许可证合规管理、云原生容器安全检测、软件成分分析(SCA)等,丰富的安全工具助您打造完备的软件开发安全能力(DevSecOps)。


旗下的安全研究团队墨菲安全实验室,专注于软件供应链安全相关领域的技术研究,关注的方向包括:开源软件安全、程序分析、威胁情报分析、企业安全治理等。公司核心团队来自百度、华为等企业,拥有超过十年的企业安全建设、安全产品研发及安全攻防经验。

相关文章
|
存储 Apache
Apache Hudi Savepoint实现分析
Apache Hudi Savepoint实现分析
301 0
|
3月前
|
存储 自然语言处理 分布式计算
Apache Doris 3.1 正式发布:半结构化分析全面升级,湖仓一体能力再跃新高
Apache Doris 3.1 正式发布!全面升级半结构化分析,支持 VARIANT 稀疏列与模板化 Schema,提升湖仓一体能力,增强 Iceberg/Paimon 集成,优化存储引擎与查询性能,助力高效数据分析。
623 4
Apache Doris 3.1 正式发布:半结构化分析全面升级,湖仓一体能力再跃新高
|
消息中间件 数据挖掘 Kafka
Apache Kafka流处理实战:构建实时数据分析应用
【10月更文挑战第24天】在当今这个数据爆炸的时代,能够快速准确地处理实时数据变得尤为重要。无论是金融交易监控、网络行为分析还是物联网设备的数据收集,实时数据处理技术都是不可或缺的一部分。Apache Kafka作为一款高性能的消息队列系统,不仅支持传统的消息传递模式,还提供了强大的流处理能力,能够帮助开发者构建高效、可扩展的实时数据分析应用。
806 5
|
9月前
|
存储 SQL Apache
为什么 Apache Doris 是比 Elasticsearch 更好的实时分析替代方案?
本文将从技术选型的视角,从开放性、系统架构、实时写入、实时存储、实时查询等多方面,深入分析 Apache Doris 与 Elasticsearch 的能力差异及性能表现
968 17
为什么 Apache Doris 是比 Elasticsearch 更好的实时分析替代方案?
|
6月前
|
人工智能 运维 监控
Aipy实战:分析apache2日志中的网站攻击痕迹
Apache2日志系统灵活且信息全面,但安全分析、实时分析和合规性审计存在较高技术门槛。为降低难度,可借助AI工具如aipy高效分析日志,快速发现攻击痕迹并提供反制措施。通过结合AI与学习技术知识,新手运维人员能更轻松掌握复杂日志分析任务,提升工作效率与技能水平。
|
消息中间件 监控 数据挖掘
基于RabbitMQ与Apache Flink构建实时分析系统
【8月更文第28天】本文将介绍如何利用RabbitMQ作为数据源,结合Apache Flink进行实时数据分析。我们将构建一个简单的实时分析系统,该系统能够接收来自不同来源的数据,对数据进行实时处理,并将结果输出到另一个队列或存储系统中。
1121 2
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
存储 JSON 物联网
查询性能提升 10 倍、存储空间节省 65%,Apache Doris 半结构化数据分析方案及典型场景
本文我们将聚焦企业最普遍使用的 JSON 数据,分别介绍业界传统方案以及 Apache Doris 半结构化数据存储分析的三种方案,并通过图表直观展示这些方案的优势与不足。同时,结合具体应用场景,分享不同需求场景下的使用方式,帮助用户快速选择最合适的 JSON 数据存储及分析方案。
671 15
查询性能提升 10 倍、存储空间节省 65%,Apache Doris 半结构化数据分析方案及典型场景
|
监控 Cloud Native BI
8+ 典型分析场景,25+ 标杆案例,Apache Doris 和 SelectDB 精选案例集(2024版)电子版上线
飞轮科技正式推出 Apache Doris 和 SelectDB 精选案例集 ——《走向现代化的数据仓库(2024 版)》,汇聚了来自各行各业的成功案例与实践经验。该书以行业为划分标准,辅以使用场景标签,旨在为读者提供一个高度整合、全面涵盖、分类清晰且易于查阅的学习资源库。
474 8
|
存储 数据挖掘 数据处理
Apache Paimon 是一款高性能的数据湖框架,支持流式和批处理,适用于实时数据分析
【10月更文挑战第8天】随着数据湖技术的发展,越来越多企业开始利用这一技术优化数据处理。Apache Paimon 是一款高性能的数据湖框架,支持流式和批处理,适用于实时数据分析。本文分享了巴别时代在构建基于 Paimon 的 Streaming Lakehouse 的探索和实践经验,包括示例代码和实际应用中的优势与挑战。
654 1

推荐镜像

更多