Apache Struts2 作为世界上最流行的 Java Web 服务器框架之一,3月7日带来了本年度第一个高危漏洞—— CVE 编号 CVE-2017-5638。
其原因是由于 ApacheStruts2 的 Jakarta Multipart parser 插件存在远程代码执行漏洞,攻击者可以在使用该插件上传文件时,修改 HTTP 请求头中的 Content-Type 值来触发该漏洞,导致远程执行代码。
Struts 作为一个“世界级”开源架构,它的一个高危漏洞危害有多大,下面两张图可以让大家对这个漏洞的影响范围有一个直观认识。
全球互联网上开放的Apache Struts分布
中国互联网上开放的 ApacheStruts 分布
数据来源:绿盟科技威胁情报中心 NTI
从3月7日漏洞曝出到3月9日不到36个小时的时间里,大量用户第一时间通过绿盟云的 Structs2 紧急漏洞检测服务对自己的网站进行检测,共计 22000 余次。通过对这些数据进行分析,我们可以看到:
1. 从检测数据来看,教育行业受Struts2漏洞影响最多,其次是政府、金融、互联网、通信等行业。
我们对检测出漏洞的页面逐一访问,去掉一些无法访问的页面后,按照行业进行了分类,其中,教育行业数量最多占 23%,其次是政府占 19%,金融占 17%,互联网占 10%,通信行业占 3%以及其他行业领域占 27%。
2. 从地域来看,北、上、广、沿海城市等经济发达地区成为Struts2漏洞高发区,与此同时修复情况也最及时。
从检测页面的地域分布上看,北京最积极占22%,其次是广东9.8%,浙江8.2%,上海7.8%,福建4.9%。从最终的检测结果来看,这也符合“多检多得”的排序,北京检出漏洞页面数量最多占23.6%(符合首都政治教育中心的定位),广东13.7%,浙江10.4%,上海7.9%,福建7.3%。
3. 从应对漏洞积极性来说,金融、政府、教育位列前三甲。根据检测结果以及绿盟工程服务团队响应客户反馈统计,应对本次 Struts2 漏洞,金融行业应急反应最为迅速,在漏洞爆发后采取行动也是最迅速的,无论是自行升级漏洞软件还是联系厂商升级防护设备都走在其他行业前列,很多金融行业站点在几个小时之内再次扫描时已经将漏洞修补完成。
检测与修复方案
目前检测服务器是否受漏洞影响,最有效快捷的方式是使用绿盟云紧急漏洞检测服务(关注“绿盟云”微信服务号—服务菜单—紧急漏洞检测)。
如果您的设备已经检测出存在Struts2漏洞,根据您的具体情况有以下三种解决方式:
1. 官方解决方案
官方已经发布版本更新,尽快升级到不受影响的版本(Struts 2.3.32或Struts 2.5.10.1),建议在升级前做好数据备份。
Struts 2.3.32 下载地址:
https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.3.32
Struts 2.5.10.1下载地址:
https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.10.1
2. 临时修复方案
在用户不便进行升级的情况下,作为临时的解决方案,用户可以进行以下操作来规避风险:
在 WEB-INF/classes 目录下的 struts.xml 中的 struts 标签下添加 ;
在WEB-INF/classes/目录下添加 global.properties,文件内容如下:
struts.messages.upload.error.InvalidContentTypeException=1
配置过滤器过滤 Content-Type 的内容,在 web 应用的 web.xml 中配置过滤器,在过滤器中对 Content-Type 内容的合法性进行检测:
3. 技术解决方案
对于没有网络防护设备的企业,可以使用专业厂商的防护设备进行防护;或者使用专业安全厂商的针对性安全服务对已有业务进行漏洞排查和修复。
正在使用安全防护设备的企业,目前各大安全厂商都已经推出针对该漏洞的紧急升级包,请及时升级已有防护设备的防护规则和检测规则。
尽管如此,应对突发漏洞,日常防护方面建议您使用绿盟远程评估系统 RSAS、WEB 应用漏洞扫描系统 WVSS 等产品做好防范工作,防患于未然。
扫码关注“绿盟云”微信服务号
免费检测Struts2高危漏洞,结果立等可取