一个被严重忽略了的漏洞:数千JAVA应用程序面临远程代码执行风险

标签:安全存储技术项目平台

访客:29947  发表于:2015-11-16 11:02:52

九个月以前,在一个最受欢迎的Java程序库中,发现了一个严重的漏洞,该漏洞会将数以千计的Java应用程序及服务器置于遭到远程代码攻击的危险处境中。但由于一些原因,这个漏洞一直未被业内所重视。

这个漏洞出现在在Apache通用集合组件中的一个程序库中,这个程序库中包含了一整套使用广泛的,由Apache软件基金会维护的Java程序组件。在默认情况下,这个程序库由几个Java程序服务器和另外几家生产商包括Oracle WebLogic、IBM WebSphere, JBoss, Jenkins、 OpenNMS共同使用。

该漏洞专门针对Apache通用集合组件以及来自于Java程序中的不安全反序列化程序。在编程语言中,序列化是将数据转化为二进制格式并存储在文件或内存中,或通过网络发送出去的一个过程。而反序列化是这一过程的逆转。

研究员Chris Frohoff和Gabriel Lawrence在一月的安全会议上,第一次报道出这个漏洞,但是却没有获得太多关注。可能因为很多人觉得这是防止反序列化攻击和Java程序开发者的责任,并不是程序库创建者的责任。

Risk Based Security漏洞情报公司的首席研究员Carsten Eiram通过电子邮件表示:“虽然肯定能做出改善,但我并不认为程序库是罪魁祸首。最重要的是,不受信任的输入端应该永远也不该被盲目地反序列化。研究者应该了解程序库如何工作,以及验证输入端导入的东西,而不是相信或希望程序库自己会将它们安全化。”

在FoxGlove Security公司的研究员基于此漏洞为WebLogic, WebSphere, JBoss, Jenkins 和OpenNMS.发布了新的概念验证后,该漏洞在上周五获得了新一轮的关注。

作为回应,Oracle公司在周二发布了安全警报,包括对WebLogic的一个暂时性的缓和说明,并且该公司正致力于开发出一个永久的修补程序。Apache共同集合组件的研究员也已经开始了修复的工作。

Apache通用集合组件包含一个InvokerTransformer的类目,它可以执行反射或者动态方法调用,并且这个类目可以包含在一个序列化对象中。这就允许一个攻击者可以手动创建一个包含恶意软件的用户,在Java应用程序使用Apache Commen程序库对序列化对象进行反序列化操作时,这个用户就可以执行恶意程序。

软件供应链自动化公司Sonatype的首席技术官Joshua Corman 说:“InvokerTransmer 类目本身并无害而且也不会反序列化,但是当它们组合在一起时,安全问题就出现了。”,该公司帮助研发员追踪和管理他们在应用程序中使用的组件。

该公司的安全研究员Corman和Bruce Mayhew认为,这一问题并不局限于Apache通用集合组件中,其他一些Java组件也可能存在相同的问题。

Mayhew说:“我保证现在有一群人正在通过梳理最常用的组件来寻找可以执行某种命令的反程序化类目,这些人可能包括好人或者坏人。”

甚至在Apache共同集合组件中,根据组件中故障追踪器显示,InvokerTransform可能都不是最易受攻击的一类,有另外三类也被挑出,它们都存在着同样的问题。

FoxGlove Security公司的调查员搜索了驻留在GitHub上用于“commons-collection”的公共软件项目,共有1300个结果。然而,在企业环境中,可能有数以千计的定制的Java程序在使用这个程序库。

尽管修补程序已经发布,但仍然有很大可能性这一问题不只局限于这个特定的组件,研究员应该考虑他们是否能从classpath中移除commons-collections,或者从commons-collections文件中移除InvokerTransformer类目。这种改变应该慎重考虑,因为它们有可能会打破应用程序。

——————————————

以下是来自Sebug社区的技术细节,不喜者可自行忽略。

漏洞编号: SSV-89723

提交时间: 2015-11-12

披露/发现时间: 2015-11-06

漏洞等级: 高危(9)

漏洞类别: 命令执行

漏洞提交者: Root

影响组件: JBoss漏洞演示

使用 Payload 生成工具 ysoserial 和 PoC 来对 JBoss 进行测试。(成功远程命令执行会在服务端 /tmp 目录下创建名为 isvuln 文件)

– JBoss-6.1.0-Fianl启动 JBoss,并检查 /tmp 目录文件。


640.webp (6)

使用工具生成 Payload,并向 JBoss JMXInvokerServlet 发送包含序列化对象的请求:


640.webp (7)

再次查看服务器上 /tmp 目录下文件。


640.webp (8)

服务端在反序列化恶意构造的数据时导致命令执行,在 /tmp 目录下创建了 isvuln 文件。

影响

知道创宇安全研究团队针对 JBoss 进行了检测,得到受影响的版本列表如下:

JBoss Enterprise Application Platform 6.4.4,5.2.0,4.3.0_CP10

JBoss AS (Wildly) 6 and earlier

JBoss A-MQ 6.2.0

JBoss Fuse 6.2.0

JBoss SOA Platform (SOA-P) 5.3.1

JBoss Data Grid (JDG) 6.5.0

JBoss BRMS (BRMS) 6.1.0

JBoss BPMS (BPMS) 6.1.0

JBoss Data Virtualization (JDV) 6.1.0

JBoss Fuse Service Works (FSW) 6.0.0

JBoss Enterprise Web Server (EWS) 2.1,3.0ZoomEye 针对 JBoss 进行了探测, 得到如下数据:

检测数量:45198

验证成功数:8398ZoomEye 探测结果显示,以下厂商均受该漏洞影响

中软统一**管理系统

明鉴TM网站安全**系统 V 3.1.2

浙大**资源管理系统

浙大**关系管理系统智慧树在线**

石景山**办公自动化系统

嘉峪关市**管理服务中心

阜阳**学院

福建智能校园***平台

安徽电子**学院

黑龙江科技大学**中心老板电器 – **登入

中铁联集**服务平台

**银行**平台

**航天第*研究院**所**运营管理平台

中国科学院大学**平台

广东省***水利枢纽**网站

**电力集团公司**平台

浙江马拉松**网站

温州马拉松**网站*贷宝

易*保险

永*财产保险

青岛港**交易中心


来自网络

一个被严重忽略了的漏洞:数千JAVA应用程序面临远程代码执行风险


评论(0)

您可以在评论框内@您的好友一起参与讨论!

<--script type="text/javascript">BAIDU_CLB_fillSlot("927898");