Apache Struts2 作为世界上最流行的 Java Web 服务器框架之一,近期被爆出两大高危漏洞:S2-045(CVE-2017-5638)和S2-046(CVE-2017-5638)。消息公布后,在互联网界引起了轩然大波。
黑客可通过漏洞远程代码执行
其中编号为CVE-2017-5638的漏洞(S2-045),是基于Jakarta plugin插件的Struts远程代码执行漏洞。该漏洞会造成RCE远程代码执行,恶意用户可在上传文件时通过修改HTTP请求头中的Content-Type值来触发该漏洞,进而执行系统命令,可直接造成系统被控制。黑客通过Jakarta文件上传插件实现远程利用该漏洞执行代码。编号为S2-046的漏洞则是攻击者可通过Content-Length或者Content-Disposition构造恶意的OGNL内容,同样会造成远程代码执行。
全球互联网上开放的Apache Struts分布
中国互联网上开放的Apache Struts分布
此前某东的12GB用户信息数据包在网络上外泄的事件就是源自2013年 Struts 2的安全漏洞造成。泄露的数据包中包括了某东的用户名、密码、邮箱、QQ号、电话号、身份证信息等,其内部数据多达数千万条。某东在2016年12月10日也通过官方微信公众号针对此事件进行了证实与回应。
Struts 作为一个“世界级”开源架构,在我国广泛应用于教育、金融、互联网、通信等重要行业,它的一个高危漏洞危害都有可能造成重大的互联网安全风险和巨大的经济损失。纵观Struts安全问题列表(下图),可以远程代码执行的漏洞竟多达13个(黄色高亮标注)。
Struts安全问题列表
以往Struts高危漏洞事件回顾
回顾一下以往Struts的几次重点安全事件,梳理一下Struts危机的来龙去脉,不难发现每一个安全漏洞都可能造成巨大的风险。
2012年,S2-007(S2-XXX是Struts官方自己的漏洞编号,对应的是 CVE-2012-0838)爆发,和S2-003、S2-005的漏洞源头都是一样的,都是struts2对OGNL的解析过程中存在漏洞,导致黑客可以通过OGNL表达式实现代码注入和执行。
受影响版本:Struts 2.0.0 – Struts 2.2.3,需要更新到2.2.3.1。
2013年,S2-016(CVE-2013-2251)和S2-017(CVE-2013-2248)爆发,也是远程代码执行高危漏洞,新闻报道这是黑客的疯狂盛宴。
受影响版本:Struts 2.0.0 – Struts 2.3.15,需要更新到2.3.15.1
2016年,Apache Struts2 服务在开启动态方法调用的情况下可以远程执行任意命令,官方编号 S2-032(CVE-2016-3081)。黑客利用该漏洞,可对企业服务器实施远程操作,从而导致数据泄露、远程主机被控、内网渗透等重大安全威胁。
受影响版本:Struts 2.3.20 – Struts Struts 2.3.28 (except 2.3.20.3 and 2.3.24.3),需要更新到Struts versions 2.3.20.3, 2.3.24.3 or 2.3.28.1。
前文介绍的2017年的两个远程代码执行的高危漏洞S2-045(CVE-2017-5638)和S2-046(CVE-2017-5638)
受影响版本:Struts 2.3.5 – Struts 2.3.31, Struts 2.5 – Struts 2.5.10,需要更新到Struts versions Struts 2.3.32 or Struts 2.5.10.1。
根据Macfee对漏洞传播的研究,黑客对漏洞的利用速度往往高于安全管理人员的防护速度。
因此,怎样在0DAY漏洞爆发后,赶在黑客的狂欢和肆虐前快速“堵住”高危漏洞以完善网络安全对于各行业用户来说至关重要。但是实际情况却让人堪忧。联软近期进行的网络调研结果显示,有相当多企业的安全运维人员不知道自己是否用到了Struts,不知道在自家的网络中哪些设备或服务可能受到攻击,因此在此类漏洞爆发后不仅会面对巨大的压力,同时也不能快速进行针对性的安全加固和危机补救。
面对如Struts漏洞此类安全危机,联软推出基于SCAP(Security Content Automation Protocol)协议和标准开发的UniSIMS服务器安全运维技术解决方案。其提供了智能资产识别和管理能力,以及可以无限扩展的安全检查能力。为此,UniSIMS的解决方案在金融,通信运营商等领域受到客户的一致好评。
快速检查受影响的设备
首先是帮助管理员快速了解网络安全状况,利用UniSIMS的快速安全检查能力,安全管理员可以把Struts漏洞检查规则迅速推向所有的服务器设备,在几分钟之内得到结果,清楚的知晓哪些服务器设备上存在风险。
精准查找风险组件网络位置
UniSIMS可以针对所有服务器进行精细的资产管理,能有效收集和管理服务器上详细的资产信息,细致到WEB中间件使用的架构(例如Struts),以及在中间件上部署哪些应用等。因此,安全管理员可以在管理后台快速的查找出受Struts影响的应用和其版本,了解其部署在哪些中间件上(例如Tomcat或JBOSS)、其运行在那些设备上,以及这些设备的运维负责人。以此来快速的安排漏洞修补和网络加固工作。
在开源组件极其广泛使用的今天,资产深度管理解决方案尤为重要。如曾经带来震撼的OPENSSL漏洞、前段时间的淘宝的FASTJSON组件漏洞等也可以用联软UniSIMS来进行快速定位和防范。与此同时,随着IT架构日益复杂以及业务应用和网络设备的不断增加,管理员需要面对越来越繁杂的运维管理工作,因此需要一个有效的资产管理解决方案来进行管理,让业务安全可控。
本文转自d1net(转载)