Java RMI 服务远程方法调用漏洞

Java RMI服务是远程方法调用(Remote Method Invocation)。它是一种机制,能够让在某个java虚拟机上的对象调用另一个Java虚拟机的对象的方法。
在Java Web中,很多地方都会用到RMI来相互调用。比如很多大型组织都会在后台部署一些Java应用,用于对外网站发布更新的静态页面,而这种发布命令的下达使用的就是这种RMI形式。
值得注意的是,RMI传输过程必然会使用序列化和反序列化,如果RMI服务端端口对外开发,并且服务端使用了像Apache Commons Collections这种库,那么会导致远程命令执行。
解决方法
临时解决方法:
如果您不能立刻安装补丁或者升级,建议您采取以下措施以降低威胁:
* 使用防火墙规则及文件系统访问限制
* 使用 SerialKiller 替换进行序列化操作的 ObjectInputStream 类
* 删除掉项目里的“org/apache/commons/collections/functors/InvokerTransformer.class” 文件
厂商补丁:
Apache Group
------------
目前厂商已经发布了升级补丁ACC 3.2.2 以修复这个安全问题,请到厂商的主页下载:
https://commons.apache.org/proper/commons-collections/download_collections.cgi
http://svn.apache.org/viewvc?view=revision&revision=1713307
https://commons.apache.org/proper/commons-collections/ 
https://blogs.apache.org/foundation/entry/apache_commons_statement_to_widespread

猜你喜欢

转载自www.cnblogs.com/mrhonest/p/10892254.html
今日推荐