排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
好消息:有免费工具能彻底分析Log4J 严重的RCE漏洞
好消息:有免费工具能彻底分析Log4J 严重的RCE漏洞
软件质量报道
2021-12-14
870
近日,知名的
日志框架
Log4j
被爆出
远程代码执行(RCE)漏洞——差不多是十年来最严重的安全漏洞,被
国家信息安全漏洞共享平台(CNVD)收录了为
CN
VD-2021-9
5914(被NVD暂编为CVE-2021-44228)
。而
Log4j作为apache推出的一款主流日志框架,被大量用于业务系统开发,使用范围很广,
Apache Struts2、Apache Solr、Apache Druid、Apache Flink和许多公司等均受影响。
图1 漏洞的影响面很广
1. 背景交待
此漏洞由Lookup功能引发,Log4j在默认情况下会开启Lookup功能,提供给客户一种添加特殊值到日志中的方式。此功能中也包含了对JNDI的Lookup,但
由于Lookup对加载的JNDI内容未做任何限制
,使得攻击者可以通过JNDI注入实现远程加载恶意类到应用中,从而造成RCE。
图2 漏洞机制(from: sophos Labs)
核弹级别的开源组件
Log4J
的RCE漏洞爆出来之后,整个安全行业都忙着修复。各种漏洞分析文章,各家的工具来修复,阻击漏洞纷纷出场。
目前
2.0
到
2.14.1
之间的任意版本,以及
log4j-2.15.0-rc1
均受此漏洞影响,修复版本为
log4j-2.15.0-rc2
(注意:
github
停在了
log4j-2.15.0-rc2
,
maven
官方以
log4j-2.15.0-rc2
版本发布了
log4j-2.15.0
)。下文均以
CNVD-2021-95914
代称此漏洞,将有漏洞的
log4j
所有版本简称为
log4j.
2. 如何应对这次漏洞分析之四大挑战
?
由于
log4J
几乎遍布
Java
应用,人工筛查哪些应用包含此组件困难极大。
软件成分分析(
SCA
)是解决此困难的工具
。而我们通过筛查对比目前市场上可用的能响应
CNVD-2021-95914
扫描的
SCA
工具,发现情况并不如意。其中涉及不少技术挑战,尚不能被目前的工具所解决。本文逐个剖析这些挑战。
1
漏洞定位
:
log
4
j
的真正漏洞代码出现在
log4j-core
的子组件。修复其他组件不一定能有效消除漏洞。很多产品都产生了误报的行为,让客户白忙一场
(
图3
)。
图3 Log4j-core 漏洞定位
CNVD-2021-95914
真实影响的是
log4j-core
这个组件,但由于
log4j
的
<group_id>org.apache.logging.log4j</group_id>
下有很多组件,如
log4j-api, log4j-slf4j-impl
等。目前市场上的
SCA
系统中,我们发现部分厂商会错误的把单独出现的非
log4j-core
的组件,比如
log4j-api
标为有
CNVD-2021-95914
漏洞,这会给修复工作制造噪音。详细误报分析信息请与我们联系。
2
兼具源码扫描和二进制
Jar
扫描
: 目前市场上对于
CNVD-2021-95914
的
SCA
扫描工具都不能兼具扫描源码包和二进制
Jar
包的能力。
我们认为
这
两
方面同等重要
。源码扫描侧重在整体上把握企业当前项目中是否需要以直接或者间接的形式引入
log4j-core
组件。而二进制扫描的意义在于,对于未知的
jar
包,其内部是否真的存在
log4j-core
的
jar
或者
class
文件。我们的扫描工具在底层打通了二进制扫描和源码扫描的引擎和数据,可以同时给出
log4j-core
在源码和二进制包中的真实分布情况。请访问
https:
//scantist.io
进行扫描分析和试用。
3
间接调用
: 很多时候待测程序没有直接使用
log
4
j
,但是
log
4
j
可能被其他组件间接调用,比如
MyBaits
。
甚至有专门的的一个网站把用到
log
4
j
的其他组件做了一个列表
。但是这些列表都是不完整的。为了完全扫描出来,需要一个完整的调用链分析。很多产品都产生了漏报的行为,让客户忙完之后并没有完整解决危机。在目前的工具中,部分
SCA
工具无法正确识别源码层面的传递依赖。而部分工具由于只提供二进制
Jar
分析,必须要求
log4j-core.jar
或者其等价
class
文件真实存在在被测试
jar
包中。而在实际生成环境中,
log4j-core.jar
可能存在在项目的其他目录,只是被用户
Jar
间接引用了,那上述这些工具就会造成漏报。
4
二进制分析
:有些情况下
log
4
j
是其他项目通过
jar
打包的形式调用的,这就需要
jar
二进制分析能力。在
jar
的编译分发过程中,因为各种原因,存在
meta
信息确实、代码混淆、
fatJar
嵌套、名称
shadow/shade
等现象。
如果不能从
Jar
包底层代码结构获取特征信息,
SCA
将不能正确识别
Jar
包中真实包含的组件,造成漏报行为
。请访问
scantist.io
以
试用其二进制扫描功能。另外我们针对
log4j
的情况,构造了一套测试集,用于识别
Jar
文件中出现的各种情况,可用于场景模拟,也可用于工具对比,具体情况请与我们联系。
我们分析了市面上可以做软件成分分析的工具,基本上只能扫描源码或者二进制,检测结果大部分情况不尽人意。结果中出现大量误报和漏报,误报导致开发团队做不必要的更新,漏报会导致重大安全风险。
Scantist
SCA
能做到精准的定位,完整的调用链分析和二进制扫描。这样的话就能给客户做的最完整和精准的保护。
在软件调用链分析方面,我们把
maven
的包管理器数据都下载和收集起来,对完整的依赖链有准确的检测结果。
图4 依赖链示意图
在二进制扫描方面,我们有独创的基于
CFG
的模糊哈希算法对
Java
二进制文件进行分析和签名,这样对改动的和甚至混淆过的开源组件也有非常好的识别效果。
3. 如何利用
Scantist
SCA
检测及分析?
为了解决开源软件的漏洞检测和管理的问题,
Scantist
S
CA
产品是一套完整的解决方案,同时支持源码和二进制扫描,通过提供对应用程序软件供应链的更大可视性,主动帮助企业管理开源库的安全性和合规性风险。
Scantist
SCA
通过分析软件应用程序中已知的第三方库和组件的特殊签名,并与漏洞和许可证数据库进行交叉对比,以识别软件开发和部署阶段中的安全隐患。
图5 SCA平台界面
针对此次
log4j
2
漏洞,
S
cantist
SCA
做出快速响应,对
C
VE-2021-44228
漏洞提供精确检测及支持。
图6 Log4j2检测结果
如需通过检测可访问
Scantist
SCA
平台
https:
//scantist.io
(虽然它不在
2021年软件测试工具总结——安全性测试工具
的清单中)
数据库
文章转载自
软件质量报道
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨