Warning: Array to string conversion in /home/wwwroot/myf5/wp-content/plugins/wpjam-basic/public/wpjam-utils.php on line 496
近日国内安全公司发现Apache struts 出现基于content-type的value的远程可执行漏洞,由于漏洞不需要实质性的上传文件,普通的经过构造的请求都可以简单的实现攻击,因此危害较大。
针对此漏洞,BIGIP可以帮助客户快速部署防御措施,以下进行简单总结。
注意,由于攻击可能存在各种各样的变形特征,考虑到尽可能少的误杀,以及规避尽可能的逃逸技术,以下irule内容是在和Support安全工程师Bean以及SDM Jobs经过反复讨论及测试后的结果,非常感谢Bean搭建攻击环境及反复斟酌测试。
防御措施:
- 如果你正在使用ASM产品,恭喜,只要你确保在主动防御策略中启用了 illegal meta character in header 或者在被动防御中正确启用了与系统、语言相匹配的特征库,默认即可防御。测试表明,基本配置即可阻断攻击。
- 如果没有使用ASM,则可以在LTM上部署irule
when HTTP_REQUEST { if {[HTTP::header exists "Content-Type"]}{ set ctheader [string tolower [HTTP::header "Content-Type"]] if {($ctheader contains "multipart/form-data") and (($ctheader contains "'") or ($ctheader contains "ognl") or ($ctheader contains "java.lang")) }{ log local0. "Found Struts S2-045 attack! [HTTP::header "Content-Type"]" #if yuo want to reset the connection, pls remove the comment of the below line #reject } } }备注:漏洞要被利用,value基本攻击特征包含 multipart/form-data,${...},%{....},考虑到可能的escape技术,未采用该特征。 以上特征匹配参考了ASM在防御时所匹配的特征以及漏洞实际要被使用时需包含OGNL命令。
- 另一个irule方法供参考
when HTTP_REQUEST { if {([HTTP::header exists "Content-Type"])}{ set ctheader [string tolower [HTTP::header "Content-Type"]] if {($ctheader contains "multipart/form-data") and not($ctheader starts_with "multipart/form-data")}{ log local0. "Found Struts S2-045 attack! Rejecting a request with Content-type [HTTP::header "Content-Type"] to [HTTP::uri] from [IP::client_addr]" #if you do not want to reset the connection, then comment out the lien below reject } } } - 对于F5 设备自身是否受该漏洞影响,请参考:https://support.f5.com/csp/article/K43451236 简单的说,F5所有产品不受影响
Array