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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM