快速搜索

最近发布

深化交流促发展 携手共进谋新篇——中国信息通信研究院来所参观交流

我所召开2025年工作会议

国家重点研发计划“半导体功率器件多参数综合测试仪”项目启动会暨实施方案论证会顺利召开

医药工业数智化转型卓越战略人才班在国家卓越工程师实践基地举办,高规格高起点加快医药工业战略人才队伍建设

我所召开2024年度工作总结暨表彰大会

Apache曝出高危漏洞,中国互联网被血洗

  • 2016-04-28
  • 来源:信息安全研究中心
  • 供稿人:赵弘洋
  • 字体:

4月26日,互联网上披露了安全威胁程度为高的Apache Struts2 S2-032远程代码执行漏洞。各大漏洞报告平台短时间内收到大量关于此漏洞的报告,其中银行占很大比例。预计接下来几天会迎来该漏洞利用的爆发峰,由此造成的潜在数据泄漏量难以估计。该漏洞除了会影响银行与互联网企业以外,还可能影响政府、证券、保险等行业,相关网站须提前做好安全应急与防范措施。

图1 某漏洞报告平台上部分存在该漏洞的网站

该漏洞官方编号S2-032,CVE编号CVE-2016-3081,CNVD编号CNVD-2016-02506。特定版本的Apache Struts2服务在开启动态方法调用(DMI)的情况下,可以被远程执行任意命令,即存在该漏洞。利用该漏洞,黑客可以在存在该漏洞的网站服务器上执行任意命令,部署木马,窃取网站数据,甚至以受害网站服务器为跳板,对企业内网进行渗透和破坏。

Apache Struts2是第二代基于Model-View-Controller (MVC)模型的java企业级web应用框架,是目前国内外较为流行的容器软件中间件之一。Struts2的核心jar包“struts2-core”中,存在一个名为“default.properties”的默认配置文件用于配置全局信息,当配置信息为“struts.enable.DynamicMethodInvocation = true”时,即开启动态方法调用。在目前的安全策略中,尽管Struts2框架本身对部分动态调用方法进行了特殊字符传递的限制,但攻击者仍能通过OGNL表达式静态调用获取ognl.OgnlContext的DEFAULT_MEMBER_ACCESS属性,进而覆盖_memberAccess参数绕过访问控制,最终在受控服务器端执行任意代码。

针对S2-032漏洞,我所信息安全中心给出如下两种解决方法:

1、禁用动态方法调用

修改Struts2的配置文件“default.properties”,将“struts.enable.DynamicMethodInvocation”的值设置为false,例如:

< constant name="struts.enable.DynamicMethodInvocation" value="false" / >;

2、升级软件版本

该漏洞影响的软件版本为2.3.20-2.3.28(2.3.20.2、2.3.24.2两个版本除外),若条件允许,可升级Struts版本至2.3.20.2、2.3.24.2或者2.3.28.1,上述三个版本均不存在该漏洞。

升级地址:https://struts.apache.org/download.cgi#struts23281

相关链接:http://www.cnvd.org.cn/flaw/show/CNVD-2016-02506

                https://cwiki.apache.org/confluence/display/WW/S2-032

                http://struts.apache.org/docs/s2-032.html