咨询热线:

栏目列表

您所在的位置 >> 主页 > 技术研究 > 安全通告 > >> 正文

紧急通告2015年第7号(java反序列化漏洞)

时间:2015-11-24 11:06 来源:海峡信息 作者:admin 点击:

福建省海峡信息技术有限公司
安全服务部
安全通告
[2015年第07号]
 
尊敬的海峡用户:
最近几年,不断的有java反序列化漏洞被曝光,至2015年11月6日,FoxGlove Security安全团队的@breenmachine 介绍了如何利用Java反序列化漏洞来攻击WebLogic、WebSphere、JBoss、Jenkins、OpenNMS这些著名的Java应用,来实现远程代码执行,才引起了高度重视。这意味着黑客可以利用java反序列化漏洞,实现远程代码执行,这是一个极其严重的问题。
【漏洞危害】
    攻击者可以利用java反序列化漏洞实现远程代码的任意执行,如可调用java中方法Runtime.getRuntime().exec()来实现远程任意系统命令执行,危害极大。
【受威胁对象】
    只要有使用java中的类ObjectInputStream处理反序列化的应用系统均有可能存在java反序列化漏洞。由于目前互联网中已出现利用java反序列化漏洞对weblogic、WebSphere、JBoss、Jenkins的攻击代码,所以使用此类应用的系统,受黑客攻击的可能性较大,请特别注意使用这些应用的系统。
【漏洞成因】
     Java反序列化就是把字节流转换为java对象,如果Java应用对用户输入的不可信数据做了反序列化处理,那么攻击者可以通过构造恶意输入,让反序列化产生非预期的对象,非预期的对象在产生过程中就有可能带来任意代码执行。这个问题的根源在于java中的类ObjectInputStream中方法readObject()在反序列化时,没有对生成的对象的类型做限制。
【修复方案】
    因为受影响的多家厂商在今年1月拿到POC至今都没有对该问题做任何修复,所以短期内并不会有官方补丁放出,如果很重视这个安全问题并且想要有一个临时的解决方案,可以参考如下:
1、下载由NibbleSecurity公司在github上放出了一个临时补丁SerialKiller(下载地址:https://github.com/ikkisoft/SerialKiller)。下载这个jar后放置于classpath,将应用代码中的java.io.ObjectInputStream替换为SerialKiller,之后配置让其能够允许或禁用一些存在问题的类,SerialKiller有Hot-Reload,Whitelisting,Blacklisting几个特性,控制了外部输入反序列化后的可信类型。
2、在不影响业务的情况下,临时删除掉项目里的“org/apache/commons/collections/functors/InvokerTransformer.class”文件。
3、针对jboss应用可以选择关闭jmx-console。

【参考资料】
http://www.freebuf.com/vuls/86566.html
http://blog.chaitin.com/2015-11-11_java_unserialize_rce/?from=timeline&isappinstalled=0#rd
 



福建省海峡信息技术有限公司版权所有
1999-2015 Fujian Strait Information Corporation. All Rights Reserved.
闽ICP备06011901号 Email:siss@heidun.net TEL:0591-87303715 地址:福建省福州市北环中路61号海峡信息大楼2F