在过去的几天里,Apache Commons Text 库中一个名为 Text4Shell 的新漏洞引起很大的轰动,该漏洞存在于 Apache Commons Text 1.5到1.9版本中。此警报于10月18日发布,此前检测到大量试图利用 CVE-2022-42889 安全漏洞的攻击尝试,该漏洞通过 StringSubstitutor API 实现远程代码执行,其CVSSv3 评分高达9.8分(满分10分)。为避免该漏洞关联的风险,企业需要使用可用的最新版本 Apache Commons Text 1.10.0,默认情况下禁用脚本插值。

Log4Shell 卷土重来了吗?

Text4Shell 之所以受到诸多关注是因为其名称与去年可怕的 Log4Shell 漏洞十分相似。Log4Shell 和 Text4Shell 都是在 java 开源项目中发现的。Text4Shell 漏洞的攻击方式是恶意攻击者通过利用漏洞,来使用专门为攻击设计的有效负载在易受攻击的应用程序中成功反向打开 shell,攻击者还可以通过 StringSubstitutor API 实现远程执行代码。

但是,StringSubstitution 不像 Log4j 那么普遍,目前有 2591个项目使用受影响的 Apache Commons Text 库版本。这样看来,使用 Substitution 方法并且不清理不受信任的输入的项目并不多。同时为了让 Text4Shell 可被利用,必须要设置多个先决条件。加上没有清理输入的字符串替换方法并不是很常见的做法,可以说 Text4Shell 的风险比 Log4Shell 漏洞中的 Log4j 低得多。

开发人员在写代码时出现失误很正常的事情,也是意料之中的事,而在开源生态中,许多开源维护者和贡献者并不是专业的开发人员,因此错误难以避免。Text4Shell 给大多数公司带来的最大问题就是调查和补救漏洞所需要耗费的时间,因为大多数组织缺乏工具和技术来快速发现这种依赖关系的使用情况。在这个层面上,Text4Shell 和 Log4Shell 的比较是比较恰当的。要知道,美国安全审查委员会关于 Log4Shell 的最新报告指出美国政府共计投入了33000个小时来调查和响应 Log4Shell 漏洞!

虽然开源维护者也正在努力减少失误出现,但开源软件的最终用户始终需要投资于依赖软件生命周期管理解决方案,来帮助他们选择安全适当的依赖关系并给予有效保护。同时通过提高自动化程度,为快速调查和以高水平响应此类事件做好准备。

依赖项中的依赖关系

受影响依赖项的模糊性是关键挑战。开源组件中的漏洞的普遍难题和挑战是,大多数漏洞不会影响软件开发人员直接使用的组件(也就是依赖项)。取而代之的是,这些漏洞会影响开发人员使用的依赖项的依赖关系,这也使得开发人员很难评估漏洞对于其开发的软件是否真的很重要。在 Log4Shell 的案例中,Log4j 的流行是漏洞威胁的重要核心,可怕的是你可以在任何地方找到它。

更重要的是,Log4Shell 漏洞可能会影响为直接暴露于 Internet 的系统,攻击者可以将触发漏洞的恶意字符串或文本提交到一个系统,然后通过不同的数据库和系统传播,直到漏洞利用组织网络深处易受攻击的系统。Log4j 揭示了一个非常严峻的问题,即响应广泛存在的漏洞的费用通常比漏洞本身影响更大。

安全检查刻不容缓

在近期的一篇博客文章中(见参考链接2)指出,平均每个企业都有超过40000个由开发人员直接下载的开源依赖项,而每个依赖项平均会带来77个其他的依赖项!这就会导致大规模且无法控制的依赖蔓延,同时也潜在地增加了企业攻击面。更重要也更令人担忧的是,企业中的安全团队通常对代码的使用位置和方式了解甚少,因此当漏洞被披露的时候,确定企业使用受到影响就像大海捞针一样难。

因此建议企业在应对此类问题的时候,可以尝试执行静态代码分析(SAST),以检查是否可以在特定软件的上下文中触发某些开源组件中包含的易受攻击的代码,不论这些易受攻击的组件在错综复杂的依赖关系中藏的多隐秘。

参考链接:

  1. https://securityboulevard.com/2022/10/log4shell-spring4shell-and-now-text4shell/

  2. https://www.endorlabs.com/blog/story-of-endorlabs

漏洞评分高达9.8分!Text4Shell 会是下一个 Log4Shell吗?的更多相关文章

  1. 笔记︱金融风险控制基础常识——巴塞尔协议+信用评分卡Fico信用分

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 本笔记源于CDA-DSC课程,由常国珍老师主讲 ...

  2. 微信小程序 - 五星评分(含半分)

    转载自:http://blog.csdn.net/column/details/13721.html     演示:     下载:小程序-星级评论.zip  

  3. 漏洞经验分享丨Java审计之XXE(下)

    上篇内容我们介绍了XXE的基础概念和审计函数的相关内容,今天我们将继续分享Blind XXE与OOB-XXE的知识点以及XXE防御方法,希望对大家的学习有所帮助! 上期回顾  ◀漏洞经验分享丨Java ...

  4. js解决千分符问题[收藏下]

    //js数字千分符处理 function commafy(num) { num = num + ""; var re = /(-?\d+)(\d{3})/ while (re.te ...

  5. hdu 2098 分拆素数和(一个偶数拆分成两个不同素数和 拆法数量)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=2098 分拆素数和 Time Limit: 1000/1000 MS (Java/Others)     ...

  6. 分库分表的情况下生成全局唯一的ID

    分库分表情况下 跨库的问题怎么解决? 分布式事务怎么解决? 查询结果集集合合并的问题? 全局唯一的id怎么解决? 一般要求:1.保证生成的ID全局唯一,不可重复 2.生成的后一个Id必须大于前一个Id ...

  7. PHP获取指定分钟数的下一个整数倍

    2019-6-11 11:51:03 星期二 情景: 要定时发送邮件, 邮件数据入表时就记录下其待发送时间, 然后crontab是每分钟扫描邮件表, 找出当时那一分钟需要发送的邮件 举例: 假如有一种 ...

  8. WebLogic 两处任意文件上传漏洞动态分析(CVE-2018-2894)

    0x01 前言 CNCERT前几天发公告称发现Oracle公司出品的基于JavaEE结构的中间件WebLogic产品存在一个远程上传漏洞,并得到了厂商的确认,危害程度评分高达9.8分.鉴于厂商已进行了 ...

  9. Web漏洞总结: OWASP Top 10

    本文原创,更多内容可以参考: Java 全栈知识体系.如需转载请说明原处. 开发安全 - OWASP Top 10 在学习安全需要总体了解安全趋势和常见的Web漏洞,首推了解OWASP,因为它代表着业 ...

  10. 精通C#(第6版)

    <精通C#(第6版)> 基本信息 原书名:Pro C# 5.0 and the .NET 4.5 framework,sixth edition 作者: (美)Andrew Troelse ...

随机推荐

  1. 关于.net4.0使用WhenAny实现Task超时机制

    .net4.0想要使用await/async语法糖必须要引用: Microsoft.Bcl Microsoft.Bcl.Async Microsoft.Bcl.Build 可以从nuget引用此三个包 ...

  2. 一篇适合躺收藏夹的 Nexus3 搭建 NuGet&Docker 私有库的安装使用总结

    前言 Nexus 是支持 Nuget.Docker.Npm 等多种包的仓库管理器,可用做私有包的存储分发,缓存官方包.本篇将手把手教学使用 Nexus 搭建自己的 NuGe t& Docker ...

  3. 多巴胺所表达的prediction error信号

    Dopamine reward prediction-error signalling: a two-component response (Wolfram Schultz; NATURE REVIE ...

  4. 推荐一个Node.js多版本管理的可视化工具

    关于Node.js的开发者来说,在开发机器上管理多个不同版本的Node.js是一个常见痛点.之前在开发者安全大全专栏中,提到过解决方法:使用nvm,如果对于nvm还不了解的话,可以前往了解. 对于TJ ...

  5. 在 Ubuntu 22.04 系统上为 SSH 开启基于时间的 TOTP 认证

    前言 一次性密码(英语:one-time password,简称OTP),又称动态密码或单次有效密码,是指电脑系统或其他数字设备上只能使用一次的密码,有效期为只有一次登录会话或一段短时间内.基于时间的 ...

  6. Google Colab 现已支持直接使用 🤗 transformers 库

    Google Colab,全称 Colaboratory,是 Google Research 团队开发的一款产品.在 Colab 中,任何人都可以通过浏览器编写和执行任意 Python 代码.它尤其适 ...

  7. bi报表软件开发的特点什么,产品和流程?

    BI报表软件是一种针对企业数据分析和决策支持的工具,具有高度灵活性和易用性.在当前数据化的时代,越来越多的企业开始关注BI报表软件的开发和应用,因为它们可以帮助企业更好地管理数据,更好地进行商业决策. ...

  8. excel表格怎么设置数据超链接?

    在Excel表格中,可以设置超链接来快速导航到其他单元格.工作表.文件.网页等.下面我将详细介绍如何设置数据超链接. 1. 在Excel表格中选择要添加超链接的单元格或文本. 2. 使用鼠标右键点击选 ...

  9. LambdaQueryWrapper常用方法

    /***附加条件构造器LambdaQueryWrapper常用方法 ---这几个肯定够用了*/wrapper.eq("实体类::查询字段", "条件值"); / ...

  10. [ABC281F] Xor Minimization

    div class="part"> Problem Statement You are given a sequence of non-negative integers $ ...