Log4Shell 自查的定位
CVE-2021-44228 影响 log4j-core 特定版本范围,攻击者可通过被记录到日志的字符串触发远程类加载。评估环节的正确做法是影响面自查:清点部署中实际的 log4j-core 版本与依赖树、核对 lookup 相关配置、核对应用所在主机的出站策略。以版本与配置核查为主,不做注入验证。
基本信息
| 核查对象 | log4j-core 的部署版本与依赖来源 |
|---|---|
| 核查手段 | 文件系统清点、依赖树、运行时加载路径 |
| 缓解措施 | 升级到已修复版本,无法升级时按官方指引禁用 lookup |
| 补偿控制 | 主机出站限制、日志内容监控、WAF 规则 |
| 边界 | 只做版本与配置核查,不构造注入载荷 |
典型清点范围
- 应用发布目录与 lib 依赖目录
- 容器镜像内打包的依赖
- 中间件自带库与内嵌组件
- 数据集成与调度类工具的插件目录
- 本地开发机与测试环境,避免残留旧版本回流
版本清点示例
版本清点示例
find /opt /usr/share -name 'log4j-core-*.jar' 2>/dev/null # 全盘定位 jar 与版本
# 容器镜像内清点:检查镜像层中的依赖目录
# Java 应用核对依赖树:mvn dependency:tree | findstr log4j
# 记录:文件路径、版本号、所属应用、是否被实际加载核查结果读法
| 核查项 | 含义 | 处置建议 |
|---|---|---|
| 受影响版本 | 落在官方公布受影响范围内的版本 | 升级到修复版本并复测 |
| 不被加载的旧库 | 存在但未被运行时加载 | 仍建议清理,避免后续依赖变化引入 |
| 配置已禁用 lookup | 按官方指引关闭相关功能 | 记录为补偿控制,仍应规划升级 |
| 出站受限 | 主机无法主动外联 | 记录为补偿控制,不作为唯一防线 |
影响面取决于实际加载的版本与配置,须逐应用核实后再定级,不能按「存在 jar 即高危」一概而论。
任何情况下都不要对生产系统构造 LDAP 或 DNS 注入载荷做验证,该类验证会触发真实的外联请求。
清点记录字段
- 文件路径与文件名,确认来自哪个依赖来源
- 版本号与是否落在官方受影响范围内
- 所属应用与是否被运行时的类加载器实际加载
- 缓解状态:已升级、已禁用相关功能或依赖出站限制
- 复核时间与复核人,便于后续版本变化时重新核实