zoukankan      html  css  js  c++  java
  • CVE202144228 Log4j 2 Vulnerability Log4j的安全漏洞

    2021年最后一个月爆出了Log4j的安全漏洞。

    CVE 编号为 CVE-2021-44228 , 攻击原理为利用 log4j的 lookups 功能,结合 java 的 RMI (java远程调用)可以使被攻击对象执行攻击者的RMI服务器上的一段Java代码。

    因为Log4j被广泛应用于各种应用,甚至包括一些第三方平台和软件,所以,这个影响范围是非常大的。

    1.如何排查自己的工程是否引用了存在问题的log4j

      根据Log4j自己的安全漏洞对策,版本2.15.0 以下的log4j2都存在这个漏洞。

      所以在自己的工程里引用了如下Jar包的话,都可能存在被攻击的风险。

    apache-log4j-2.0-beta1-bin/log4j-core-2.0-beta1.jar
    apache-log4j-2.0-beta2-bin/log4j-core-2.0-beta2.jar
    apache-log4j-2.0-beta3-bin/log4j-core-2.0-beta3.jar
    apache-log4j-2.0-beta4-bin/log4j-core-2.0-beta4.jar
    apache-log4j-2.0-beta5-bin/log4j-core-2.0-beta5.jar
    apache-log4j-2.0-beta6-bin/log4j-core-2.0-beta6.jar
    apache-log4j-2.0-beta7-bin/log4j-core-2.0-beta7.jar
    apache-log4j-2.0-beta8-bin/log4j-core-2.0-beta8.jar
    apache-log4j-2.0-beta9-bin/log4j-core-2.0-beta9.jar
    apache-log4j-2.0-bin/log4j-core-2.0.jar
    apache-log4j-2.0-rc1-bin/log4j-core-2.0-rc1.jar
    apache-log4j-2.0-rc2-bin/log4j-core-2.0-rc2.jar
    apache-log4j-2.0.1-bin/log4j-core-2.0.1.jar
    apache-log4j-2.0.2-bin/log4j-core-2.0.2.jar
    apache-log4j-2.1-bin/log4j-core-2.1.jar
    apache-log4j-2.2-bin/log4j-core-2.2.jar
    apache-log4j-2.3-bin/log4j-core-2.3.jar
    apache-log4j-2.4-bin/log4j-core-2.4.jar
    apache-log4j-2.4.1-bin/log4j-core-2.4.1.jar
    apache-log4j-2.5-bin/log4j-core-2.5.jar
    apache-log4j-2.6-bin/log4j-core-2.6.jar
    apache-log4j-2.6.1-bin/log4j-core-2.6.1.jar
    apache-log4j-2.6.2-bin/log4j-core-2.6.2.jar
    apache-log4j-2.7-bin/log4j-core-2.7.jar
    apache-log4j-2.8-bin/log4j-core-2.8.jar
    apache-log4j-2.8.1-bin/log4j-core-2.8.1.jar
    apache-log4j-2.8.2-bin/log4j-core-2.8.2.jar
    apache-log4j-2.9.0-bin/log4j-core-2.9.0.jar
    apache-log4j-2.9.1-bin/log4j-core-2.9.1.jar
    apache-log4j-2.10.0-bin/log4j-core-2.10.0.jar
    apache-log4j-2.11.0-bin/log4j-core-2.11.0.jar
    apache-log4j-2.11.1-bin/log4j-core-2.11.1.jar
    apache-log4j-2.11.2-bin/log4j-core-2.11.2.jar
    apache-log4j-2.12.0-bin/log4j-core-2.12.0.jar
    apache-log4j-2.12.1-bin/log4j-core-2.12.1.jar
    apache-log4j-2.13.0-bin/log4j-core-2.13.0.jar
    apache-log4j-2.13.1-bin/log4j-core-2.13.1.jar
    apache-log4j-2.13.2-bin/log4j-core-2.13.2.jar
    apache-log4j-2.13.3-bin/log4j-core-2.13.3.jar
    apache-log4j-2.14.0-bin/log4j-core-2.14.0.jar
    apache-log4j-2.14.1-bin/log4j-core-2.14.1.jar
    log4j-2.0-alpha1/log4j-core-2.0-alpha1.jar

    在Maven工程中使用 dependency tree, 获取依赖包,查看有没有上述嫌疑包被使用。

    mvn dependency:tree

    2.如何避免这个问题?

    • 排查

    如果你的工程确实引用了上述Jar包,首先应该抱着谨慎的态度排查是否你的服务已经受到攻击,排查办法是查看日志内容,看看有没有看起来不自然的日志被写进来。这些不自然的日志如前文所述,都是利用log4j的 lookups 写入的,并且攻击手段很可能是从客户端的输入进入,假设所有合法用户都不会发起攻击的话,重点排查功能应该是Login的日志写入(因为黑客不是合法用户,只能访问到Login画面),例如,login功能的日志有没有写入用户名的操作等。

    如果排查到确实有被攻击的痕迹,就需要根据怀疑被攻击的内容,对服务器的安全设施做一些调整。

    • 升级Log4j

    Log4j的2.15.0已经修复了这个问题,因此升级可以确保今后不再发生同样的问题。

    • 其他手段

    如果升级比较困难,那么设置Java启动参数log4j2.formatMsgNoLookups 为 true 也可以避免这个问题

    例如(Web容器的设置方法请参考各个容器的说明):

    java -Dlog4j2.formatMsgNoLookups=true -jar myapp.jar
    •  关于Logback

    根据SLF4j 的描述,Logback不存在这个漏洞。

    Written By BlueZealot
  • 相关阅读:
    .Net创建Windows服务完成批量导出功能(错误速查)
    WIN7 64位对Excel操作异常
    登陆优化的经验
    SQL 使用触发器常见错误
    CSS样式表优化
    JavaScript getMonth() 方法
    MVC架构 -- 初学试水<选课管理系统>
    触摸不到的天空
    嵌套 QQ、微博 通讯工具到HTML中
    CSS 实现样式下拉菜单
  • 原文地址:https://www.cnblogs.com/WestContinent/p/15679035.html
Copyright © 2011-2022 走看看