当前位置: 首页 > 软件库 > 管理和监控 > 安全相关 >

fix_log4j2

log4j2 漏洞缓解工具
授权协议 未知
开发语言 Google Go
所属分类 管理和监控、 安全相关
软件类型 开源软件
地区 国产
投 递 者 訾淇
操作系统 跨平台
开源组织 腾讯
适用人群 未知
 软件概览

fix_log4j2 提供一种暂时不需要修复镜像,直接批量修改线上容器运行状态的方法,来临时缓解 log4j2 漏洞影响,大体操作思路是:

  1. 通过镜像扫描工具,筛选出漏洞影响镜像;
  2. 通过漏洞镜像,自动化定位受影响服务,提取运行参数和环境变量等信息;
  3. 批量服务部署的配置文件,自动化重启相关服务;

本工具使用

命令行方式

获取

  • 下载源码到本地,需要golang(>=1.5)环境,进入目录执行make build,可执行程序会被编译到./bundles/目录下
  • COS上下载已经编译好的可执行文件

配置

配置示例

main:
  # kubeConfig 可选,可使用环境变量 KUBECONFIG 来指定
  kubeConfig: /root/.kube/config

clue: # 需要处理的镜像列表 images: - docker.io/vulfocus/log4j2-rce-2021-12-09:latest - docker.io/library/busybox@sha256:b5cfd4befc119a590ca1a81d6bb0fa1fb19f1fbebd0397f25fae164abe1e8a6a - ccr.ccs.tencentyun.com/yunding/tcss-agent:1.8.2109.20

现阶段,镜像名称需要填入完整的名称,比如使用了来自Docker Hubvulfocus/log4j2-rce-2021-12-09镜像,需要完整的填入省略的HostTag部分,即docker.io/vulfocus/log4j2-rce-2021-12-09:latest

执行

./bundles/fix_log4j -c ./config.yaml

Kubernetes Job 方式

执行kubectl apply -f https://tcss-compliance-1258344699.cos.ap-guangzhou.myqcloud.com/tools/fix_log4j2/job.yaml

工具执行逻辑

  1. 对k8s集群中的所有Pod进行遍历,发现引用了包含风险镜像的容器,列出待处理的Pod列表
  2. 根据待处理的Pod列表获取最上层调度资源,如Deployment,DaemonSet
  3. Deployment,DaemonSet等资源执行修复,即检查Pod.Spec 中的CommandArgs,如果是java启动的,则加入-Dlog4j2.formatMsgNoLookups=true参数
  4. 执行更新

风险和注意事项

  1. 当前版本暂时只支持对>=2.10+的版本,更低版本暂不支持
  2. 更新工作负载有失败的可能,需要关注工作负载的状态、注意对业务的影响

TODO

  • 支持较老版本的修复策略
  • 支持其它修复策略
  • 环境变量 FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS=true
  • 支持更新后的检查,如果失败可自动回滚
  • 支持镜像更新
  • 支持自动检查,而不用指定具体镜像列表
  • log4j.dtd I use log4j in most of the projects for logging and use XML based configuration. Most of the part in log4j.xml is common and all we need to add appenders and loggers. 我在大多数项目中使用log4j进行日志记录,并

  • How to use Log4j 2 with Spring Boot2.X Adding Log4j2 All the Spring Boot starters depend on spring-boot-starter-logging, which uses Logback by default. For using Log4j2, you need to exclude spring-boo

  • log4j:warn找不到 If you are reading this, you must be using log4j framework and got below error message. 如果您正在阅读本文,则必须使用log4j框架并收到以下错误消息。 log4j:WARN No appenders could be found for logger log4j:WARN Plea

  • log4j2的配置,不同级别日志保存在不同文件夹(基于Springboot) 1.前言汇总 目的是想按照按照规定的格式打印在控制台,以及以文件的形式保存下来,并且按照日志的级别,保存为不同的log文件. 首先你得搭建一个简单的springboot项目,这个就直接在网上查,例子数不胜数 然后在pom.xml文件中添加依赖: <dependency> <groupId>org.springframe

  • 0 漏洞相关信息 https://issues.apache.org/jira/projects/LOG4J2/issues/LOG4J2-3201?filter=allissues https://mp.weixin.qq.com/s/Yq9k1eBquz3mM1sCinneiA https://www.zhihu.com/question/505025655/answer/2267000256

  • pom配置 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> <dependency> <groupId

  • 参考 https://www.bilibili.com/read/cv14385171 https://learnku.com/articles/63565 1、# 下载最新jar包 curl -O https://repo.maven.apache.org/maven2/org/apache/logging/log4j/log4j-core/2.17.2/log4j-core-2.17.2.ja

  • 下载  Avaya Aura System Manager 8.1.3.x Hot Fix for Log4j vulnerabilities.   42兆 上传到SMGR服务器,smgr 8.1.3.x有效,之前版本无需关注 执行:SMGRPatchdeploy System_Manager_Log4j_CVEs_R8.1.3.x_Patch2_r810014070.bin sunhongyu

 相关资料
  • 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0 任意密码找回 这是补天平台上的一个案例: http://www.118114.cn/reg.jsp 首先注册一个账号,然后找回。 我们收到的验证码是六位数。如果网站没有设置频率限制,或者最大尝试次数限制的话,那我们自然就会想到可以爆破它。 然后抓提交手机验证码的封包,我们可以看到没有任何图片验证码: 发送到 Burp 的 I

  • 我有一个非常旧的Solr版本,我一直在试图看看它是否受到每个人都很害怕的Log4Shell漏洞的影响(CVE-2021-44228)。 CVE似乎只适用于更高版本,但一位同事不买账,所以我试图找出真相。

  • 1 内存 这个讲义的“区域”(Area)和“段”(Segment)与多数教程正好相反,译文中已更正。 在 PC 架构中,程序中有四个基本读写段:栈、数据、BSS 和堆。数据、BSS 以及堆区可统称为“数据区域”。在“内存布局和栈”的教程中,Peter Jay Salzman 详细描述了内存布局。 栈:栈通常在内存的高地址。通常“向下增长”:从高地址到低地址。无论何时进行函数调用,栈都会使用。 数据

  • 问题内容: 今天,我们的企业架构师提到在JRE 1.7中发现了一个最近的漏洞。我发现了一篇文章JRE 1.7漏洞,建议禁用Java 。 我正在工作中运行JDK 1.5和1.6(就像许多组织一样,我们不是最新的技术),所以那里没有问题。 在家里,我正在使用Java SE 7u6进行开发。我正在与Spring Security的Grails一起玩,试图继续学习。 我已经在家庭开发机器上的所有浏览器中都

  • 如何检测SonarQube LTS 8.2版本中的log4j漏洞。 我尝试了这个社区参考,但是找不到8.2版本的。 https://community.sonarsource.com/t/sonarqube-sonarcloud-and-the-log4j-vulnerability/54721

  • 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为 XSS 。恶意攻击者往 Web 页面里插入恶意 JavaScript 代码,当用户浏览器该页之时,嵌入 Web 页面里的代码会被执行,从而达到恶意攻击用户的目的

  • 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0 很多 Web 应用都提供了从其他服务器上获取数据的功能。使用用户指定的 URL,web 应用可以获取图片,下载文件,读取文件内容等。这个功能如果被恶意使用,可以利用存在缺陷的 Web 应用作为代理,攻击远程和本地服务器。这种形式的攻击成为服务器请求伪造(SSRF)。 原理 <?php $url = @$_GET['url']

  • 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0 CSRF(Cross-site request forgery跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则