《Elastic(中国)基础开发宝典》——Elasticsearch是否受最新的 fastjson 反序列化漏洞的影响?

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 《Elastic(中国)基础开发宝典》——Elasticsearch是否受最新的 fastjson 反序列化漏洞的影响?

2022年525日接国家网络与信息安全信息通报中心预警,开源Java开发组件 fastjson存在反序列化漏洞。攻击者可利用上述漏洞实施任意文件写入、服务端请 求伪造等攻击行为,造成服务器权限被窃取、敏感信息泄漏等严重影响。


使用Elasticsearch service的同学可能会比较关心是否会受到这个漏洞的影响?


1. Elasticsearch 的 Java 包依赖


我们可以通过官方文档的Elasticsearch依赖查看是否有使用到fastjson:

elasticsearch = 8.2.2
lucene = 9.1.0
bundled_jdk_vendor = openjdk
bundled_jdk = 18.0.1.1+2@65ae32619e2f40f3a9af3af1851d6e19
checkstyle = 9.3
# optional dependencies
spatial4j = 0.7
jts = 1.15.0
jackson = 2.10.4
snakeyaml = 1.26
icu4j = 68.2
supercsv = 2.4.0
log4j = 2.17.1
slf4j = 1.6.2
ecsLogging = 1.2.0
jna = 5.10.0
netty = 4.1.74.Final
commons_lang3 = 3.9
# when updating this version, you need to ensure compatibility with:
# - plugins/ingest-attachment (transitive dependency, check the upstream POM)
# - distribution/tools/plugin-cli
# - x-pack/plugin/security
bouncycastle=1.64
# used by security and idp (need to be in sync due to cross-dependency in testing)
opensaml = 4.0.1
# test dependencies
randomizedrunner = 2.7.7
junit = 4.12
junit5 = 5.7.1
httpclient = 4.5.10
httpcore = 4.4.12
httpasyncclient = 4.1.4
commonslogging = 1.1.3
commonscodec = 1.14
hamcrest = 2.1
mocksocket = 1.2
# benchmark dependencies
jmh = 1.26
# test dependencies
# when updating this version, also update :qa:evil-tests
jimfs = 1.2
jimfs_guava = 30.1-jre
# test framework
networknt_json_schema_validator = 1.0.48

可以看到Elasticsearch并没有使用到fastjson,对应的Elasticsearch使用的是 jackscn。


2. Elasticsearch 漏洞排查


如果不放心,在官网的安全事件中,也可以查看官方公布的整个Elastic Stack的各 个组件,在各个版本上存在的漏洞:

image.png


3. fastjson vs jackson


对于ElasticsearchJSON库,为什么选择jackson,这里转发知乎上的一篇文章 fastjson这么快老外为啥还是热衷jackson?〉》以下为其中一个答主的回答:


2014-2015年的时候,我曾经是fastjson和温少的铁粉,非常钦佩温少和他的这 个项目。温少几乎凭一己之力撑起了一个被广泛使用JSON库,而其他库几乎都是 靠一整个团队,就凭这一点,温少作为"初心不改的阿里初代开源人〃,当之无愧。


后来随着时间,温少这种"一个人扛一个项目的模式开始慢慢显露出弊端:代码 质量不过关、bug多、对社区的反馈不及时等。我自己的项目也逐步切到了 Jackson— 主要是想用同一份代码同时处理JSONYAML


另外说一个很小的点这些年给fastjson提过一些PR,翻之前的PR时候我震惊 地发现几个月前的PR全都变成了这个样子:

image.png

image.png

image.png

image.png

很明显温少force push过。force push的原因不得而知但是我猜想可能是为了 隐藏某个包含安全漏洞的commit如果是这样的话反而欲盖弥彰一一只要拿原始 仓库和被fork的仓库一对比攻击者不就立刻能找到"你想隐藏的那个commit” 了么?


更别提force push给协作带来的问题了,至少我们的master都是开启禁止force push的。还记得么?

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
1月前
|
开发框架 监控 搜索推荐
GoFly快速开发框架集成ZincSearch全文搜索引擎 - Elasticsearch轻量级替代为ZincSearch全文搜索引擎
本文介绍了在项目开发中使用ZincSearch作为全文搜索引擎的优势,包括其轻量级、易于安装和使用、资源占用低等特点,以及如何在GoFly快速开发框架中集成和使用ZincSearch,提供了详细的开发文档和实例代码,帮助开发者高效地实现搜索功能。
118 0
|
3月前
|
存储 运维 搜索推荐
运维开发.索引引擎ElasticSearch.倒序索引的概念
运维开发.索引引擎ElasticSearch.倒序索引的概念
52 1
|
6月前
|
运维 架构师 搜索推荐
7 年+积累、 Elastic 创始人Shay Banon 等 15 位专家推荐的 Elasticsearch 8.X新书已上线...
7 年+积累、 Elastic 创始人Shay Banon 等 15 位专家推荐的 Elasticsearch 8.X新书已上线...
84 4
|
6月前
|
存储 安全 数据处理
Elastic 中国开发者大会2023最新干货——Elasticsearch 7、8 新功能一网打尽
Elastic 中国开发者大会2023最新干货——Elasticsearch 7、8 新功能一网打尽
69 0
|
11月前
|
搜索推荐 索引
Elasticsearch elastic io 100%,但磁盘的iops和吞吐量没爆没啥原因吗?
Elasticsearch elastic io 100%,但磁盘的iops和吞吐量没爆没啥原因吗?
182 3
|
11月前
|
存储 缓存 监控
Elasticsearch elastic io 100%,但磁盘的iops和吞吐量没爆没啥原因吗?
Elasticsearch elastic io 100%,但磁盘的iops和吞吐量没爆没啥原因吗?
277 2
|
存储 自然语言处理 监控
ElasticSearch第三讲:ES详解 - Elastic Stack生态和场景方案
ElasticSearch第三讲:ES详解 - Elastic Stack生态和场景方案
145 0
|
Java API 数据安全/隐私保护
Elasticsearch Java API Client 开发
本场景主要介绍如何使用 Elasticsearch Java API Client 进行开发,实现常用的 CRUD 操作。
|
Java 关系型数据库 MySQL
后端开发4.Elasticsearch的搭建
后端开发4.Elasticsearch的搭建
68 0
|
缓存 安全 Java
带你读《Elastic Stack 实战手册》之8:—— 3.4.1.1.安装Elasticsearch(本地及docker)(2)
带你读《Elastic Stack 实战手册》之8:—— 3.4.1.1.安装Elasticsearch(本地及docker)(2)
161 1

相关产品

  • 检索分析服务 Elasticsearch版