2022-05-07 04:06:38
Log4J漏洞(CNVD-2021-95914/CVE-2021-44228)核心影响范围为Log4j-core组件的2.0至2.14.1版本及2.15.0-rc1版本,修复版本为2.15.0-rc2(Maven发布为2.15.0)。SCA工具在检测该漏洞时面临四大技术挑战,需通过精准定位、源码与二进制双扫描、调用链分析及二进制特征识别等技术手段解决。以下是具体分析:
一、Log4J漏洞核心影响范围2.0 ≤ Log4j ≤ 2.14.1
2.15.0-rc1
2.15.0-rc2(GitHub最终版本)腊祥拍
Maven官方发布为2.15.0(与rc2代码一致)。

源码扫描:识别项目中直接或间接引入的Log4j-core依赖。
二进制扫描:检测未知Jar包内是否嵌套Log4j-core的class文件。
源码扫描可能遗漏二进制依赖;
二进制扫描无法识别间接引用(如Log4j-core位于项目其他目录)。
源码层面:未识别传递依赖(如A依赖B,B依赖Log4j-core)。
二进制层面:仅检测目标Jar包内是否包含Log4j-core,忽略间接引用。
Meta信息缺失:Jar包元数据不完整。
代码混淆:类名或方法名被混淆。
FatJar嵌套:多个组件打包为单个Jar。
Shadow/Shade命名:组件被重命名以避免冲突。
下载Maven包管理器数据,构建完整依赖链图谱。
识别直接与间接依赖,避免误报(如排除log4j-api)和漏报(如间接调用Log4j-core)。

源码扫描:分析项目代码中的依赖声明(如Maven POM文件)。
二进制扫描:通过独创宴没的基于CFG的模糊哈希算法提取Java二进制文件特征,识别嵌套、混淆或重命名的Log4j-core组件。
覆盖所有引入方式(直接、间接、二进制嵌套)。
对混淆代码保持高识别率。

必须支持源码与二进制双扫描;
具备完整调用链分析能力;
采用底层代码特征识别技术(如CFG模糊哈希)。

如需进一步了解测试集细节或申请试用,可联系Scantist团队获取技术支持。