Apache Log4j 漏洞 CVE-2021-45046

一、攻击流程

二、影响范围

三、排查方法

  1、可以通过检查日志中是否存在 jndi:ldap:// 、jndi:l:rmi等字符来发现可能的攻击行为

  2、奖惩日志的相关堆栈报错,信息里面是否有JndiLookup、ldapURLContext等于jndi调用相关的堆栈信息

  3、利用工具

四、修复思路

 1、禁止用户请求参数出现攻击关键字;

 2、禁止lookup下载远程文件;

 3、禁止log4j的应用连接外网;

 4、禁止log4j使用lookup;

 5、从log4j jar包中删除lookup;

五、 修复方案

1、将Log4j框架升级到2.16.0版本

2、使用安全产品防护:WAF、PASP......

3、升级JDK到11.x之后 (零时方案)

4、修改Log4j配置 (零时方案)  

     (1)修改jvm参数 -Dlog4j2.formatMsgNoLookups=true

     (2)修改配置

       log4j2.formatMsgNoLookups=True

     ( 3)将系统环境变量

      FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为 true

5、删除JndiLookup.class (零时方案)

 六、spring-boot 修复

 maven配置修改:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.16.0</version>
</dependency>
<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.16.0</version>
</dependency>

gradel 配置修改

configurations {
    //排除对默认logging的依赖
    compile.exclude module: 'spring-boot-starter-logging'
}

implementation 'org.apache.logging.log4j:log4j-api:2.16.0'
implementation 'org.apache.logging.log4j:log4j-core:2.16.0'

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值