Java组件远程代码执行漏洞持续影响超10个月 - APT防御产品

Java组件远程代码执行漏洞持续影响超10个月

Apache Commons Collections组件当中的一项缺陷令Java应用服务器陷入遭受侵袭的风险当中。

一套高人气Java库当中存在着于九个多月之前发现的安全漏洞,而这一状况继续将成千上万Java应用程序及服务器陷入远程代码执行的攻击风险当中。

该 项漏洞存在于Apache Commons当中,这套库当中包含着一系列使用范围极广的Java组件,并由Apache软件基金会负责维护。该库被默认使用于大量Java应用程序服 务器以及包括甲骨文WebLogic、IBM WebSphere、JBoss、Jenkins以及OpenNMS等其它产品当中。

该 项漏洞专门存在于Apache Commons的Collections组件当中,而且会收集不安全的Java对象反序列化内容。在编程语言当中,序列化是指将数据转化为二进制格式以保 存为文件、驻留在内存中或者通过网络进行发送的过程。反序列化则是该流程的逆向执行过程。

这项漏洞最早是在今年1月的一次安全会议上被研究人员Chris Frohoff与Gabriel Lawrence所曝光,不过当时其并没有引起人们多少重视,这可能是因为大多数人认为预防反序列化攻击的责任应该由Java应用开发人员所承担——而非第三方库的构建者。

“我 认为我们不该单纯责怪第三方库,不过其确实可以做出改进,”安全漏洞情报企业Risk Based Security公司首席研究官Carsten Eiram在电子邮件中指出。“总而言之,不可信的输入内容不应被盲目进行反序列化处理。开发人员应当了解到库的工作原理并利用库进行输入内容验证,而非 简单认为或者指望库本身拥有解决安全问题的能力。”

研究企业FoxGlove Security公司根据其对WebLogic、WebSphere、Jboss、Jenkins以及OpenNMS等进行的概念验证,于上周五对该安全漏洞进行了新一轮报告与强调。

作为响应,甲骨文方面于本周二发布了一份安全警报,其中包含针对WebLogic Server的临时解决指令——此外甲骨文还在积极开发永久性补丁。Apache Commons Collections的开发人员们也已经开始了相应的修复工作。

Apache Commons Collections中包含一个InvokerTransformer类,其负责执行反射或者叫作动态方法调用,并且允许开发人员在其中添加一个序列化 对象。这可能允许攻击者在用户输入的对象中添加恶意内容,并在该对象由Java应用程序利用Apache Commons库进行序列化时让对应恶意内容得以执行。

InvokerTransformer类本身并不 存在漏洞,而且也不涉及序列化,但二者相结合之后则会导致上述安全问题,Sonatype公司CTO Joshua Corman指出——这是一家软件供应链自动化厂商,旨在帮助开发人员追踪并管理其在应用程序当中使用的各项组件。

Corman与Sonatype公司安全研究人员Bruce Mayhew认为,这项问题并不限于Apache Commons Collections,其它Java组件可能也面临着同样的问题。

“我向大家保证,目前有很多人都在对各类常见组件进行梳理,希望找出其它一些同样允许命令意外执行的序列化类,”Mayhew表示。“当然,其中有些是好人,有些则是意图搞破坏的恶意人士。”

甚至单纯着眼于Apache Commons Collections,InvokerTransformer都不是惟一存在安全漏洞的类,针对该组件漏洞追踪报告的讨论意见指出。目前已经有其它三个类被单独挑选出来,作为可能存在同样问题的备选关注对象。

FoxGlove Security公司的研究人员们搜索了托管于GitHub之上的各使用了“commons-collection”公开软件项目,并发现了1300多个 结果。不过除了这些,企业环境中还可能存在着成千上万以定制化方式创建且使用该库的Java应用程序。

这 个问题很可能超出特定组件范畴而广泛存在,因此在相关补丁正式发布之前,开发人员应当考虑自己能够将commons-collections从 classpath当中移除或者将InvokerTransformer类从common-collections jar文件中移除。当然,在实施这类变更之前开发人员还需要进行认真权衡,因为其很有可能破坏应用程序的正常运行能力。


转载请注明出处 APT防御产品 » Java组件远程代码执行漏洞持续影响超10个月

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址