安全社区

黑盾云安全社区,与你一起分享安全领域的知识与智慧

海峡信息-紧急通告2015年第7号

紧急通告2006-04-10 18:36:05 1920次围观

福建省海峡信息技术有限公司
安全服务部
安全通告
                                                                              
[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://bobao.360.cn/learning/detail/2259.html
 

上一篇: 海峡信息-安全通告2014年第04号(bash漏洞)