山石网科关于Struts2远程代码执行漏洞(CVE-2017-5638)的声明


3月7日,国家信息安全漏洞共享平台(CNVD)收录并披露了Apache Struts2 S2-045远程代码执行漏洞(CNVD-2017-02474,对应CVE-2017-5638),远程攻击者利用该漏洞可直接取得网站服务器控制权。截止发稿,互联网上已经出现多个利用该漏洞的POC。山石网科在此提醒广大客户尽快针对该漏洞进行修补,或者升级您的安全防护措施。

Struts2是Apache项目下的一个web 框架,帮助Java开发者利用J2EE来开发Web相关应用。作为网站开发的底层通用模板,Struts2在大型互联网企业、政府、金融机构等行业有着广泛的应用。来自国家信息安全漏洞共享平台(CNVD)的抽样统计显示,互联网上采用Apache Struts2框架的网站受本次漏洞影响的比例高达60.1%。

关于Struts2漏洞的具体信息及修补方案:
*漏洞编号* CVE-2017-5638
*漏洞等级*
*漏洞名称* S2-045:Struts2远程执行代码漏洞
*漏洞描述* 基于Jakarta Multipart的解析器在执行文件上传时,存在可能的远程代码执行,恶意用户可通过修改HTTP请求头中的Content-Type值,构造恶意请求来触发该漏洞,进而执行任意系统命令。
*影响版本* Struts 2.3.5 – Struts 2.3.31 Struts 2.5 – Struts 2.5.10
*修补及防护方案*
1、升级到Struts 2.3.32或Struts 2.5.10.1,官方升级地址:
https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.3.32
https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.10.1
2、Struts2默认使用Jakarta的Common-FileUpload框架来上传文件,可以删除commons-fileupload-x.x.x.jar文件,但这样操作会导致网站上传功能无法正常使用。
3、使用Jakarta之外其他文件解析器,比如cos或pell。需要修改struts.multipart.parser或(struts.multipart.hander)常量的值为cos/pell,并在classpath中增加相应上传组件的类库。
4、升级您的安全防护产品,比如WAF和NIPS,确保其已经具备针对该漏洞的防护能力。

采用山石网科安全防护产品应对Struts2 S2-045漏洞:
山石网科全系安全产品不受S2-045漏洞的影响;部署山石网科Web应用防火墙、NIPS、NGFW后,可以有效阻断利用该漏洞的攻击行为。

山石网科Web应用防火墙
1、Struts2 S2-045漏洞利用的特征包含了一个非法的Content-Type字段,山石网科Web应用防火墙规则中有针对Content-Type内容合法性的检测。如果您启用了该规则,非法的字段会触发HTTP协议异常告警,进而被拦截。
2、山石网科的安全事件响应团队第一时间开发出针对S2-045漏洞的精准防护规则,并已在现网验证能够有效阻断基于S2-045漏洞的攻击行为。已经部署山石网科Web应用防火墙产品的客户可以执行规则库在线升级,或联系本地的山石网科技术支持人员,为您执行升级操作。

下图是山石网科Web应用防火墙的威胁分析界面截图,可以看到,通过匹配HTTP协议异常特征和最新的Web框架漏洞攻击特征,可以准确检测到S2-045漏洞利用行为并精确阻断。

通过HTTP协议异常检测,可以检测到S2-045漏洞并进行阻断

采用最新的规则库,检测到漏洞利用行为并精确阻断

山石网科NIPS和下一代防火墙
同时,山石网科NIPS和下一代防火墙的规则库也已经升级,用户对NIPS和下一代防火墙的特征库进行升级之后,可以有效防御针对S2-045漏洞的攻击行为。

关于山石网科Web应用防火墙
山石网科Web应用防火墙是新一代专业Web应用安全防护产品,专注于为网站及Web应用系统提供专业的应用层深度防御。广泛适用于政府、企业、金融、教育等行业中涉及Web应用安全防护的场景,满足如PCI-DSS、等级保护、行业规范等政策法规的安全建设要求。

山石网科Web应用防火墙采用双安全引擎等多种先进技术,有效抵御SQL注入、跨站、挂马、恶意扫描等常见Web攻击,支持敏感信息防泄露、网页防篡改、应用层DDoS防护等功能,最大限度的保障网站运行安全;同时,山石网科Web应用防火墙支持Web应用加速、应用负载均衡、Bypass和HA等功能,为Web应用提供全方位的防护解决方案。