摘要
Log4Shell 展示了“日志数据也是不可信输入”。当应用把攻击者可控字符串交给受影响版本的 Log4j 2 处理时,消息查找机制可能触发 JNDI 访问;结合运行时条件,最终可造成远程代码执行。
为什么难以一次清理
Log4j 经常作为间接依赖存在于大型 Java 应用、商业软件、设备固件和历史部署中。只搜索应用根目录的 JAR 文件容易漏掉嵌套归档、容器层、旧镜像、离线节点和供应商打包组件。
治理建议
- 以资产清单和依赖关系为起点,不以公网扫描结果代替内部排查。
- 使用厂商支持的安全版本,并验证应用实际加载的类路径。
- 清理旧容器镜像、构建缓存和回滚包,避免漏洞版本重新进入生产。
- 对 DNS、LDAP/RMI 等异常出站连接保留检测能力。
- 将组件识别方法沉淀为持续的软件供应链检查,而不是一次性应急脚本。