云盾WAF实现虚拟补丁——记一起Web漏洞应急响应

来自真实案例的虚拟总结。见招拆招,而且还得以最快的速度完成,云盾WAF扛得起!

忧伤的周六早晨

“云盾.先知”的渗透测试服务到底靠不靠谱?今年8月,在公司领导的授权下,我们充值体验了一把。答案是:先知白帽子的渗透测试水平杠杠的。周六大清早的,就给我们送来一份大礼:“远程代码执行漏洞”!

云盾WAF实现虚拟补丁——记一起Web漏洞应急响应

先知平台白帽子黑客通过平台向我们提交了一个非常严重的漏洞:公司某外部合作平台在用的低版本PHPWind BBS存在严重安全漏洞,导致外部攻击者可直接利用漏洞执行系统命令。

漏洞信息请参考:https://www.secpulse.com/archives/44006.html

冷静,冷静再冷静

当时,团队成员的心情可谓一波三折。首先是心已冷:“完了,被拿了shell,安全没做好,怎么跟老板交差……”;紧接着就是自我安慰:“毕竟是通过先知平台发现的漏洞,庆幸没有栽在真正的黑客手里啊!”;再后来就是:“这么严重的漏洞,我们得尽快启动漏洞响应流程进行修复处置。问题是,这大周六的,咱能叫得起开发吗?就算修复升级也没这么快啊,公司发布流程走一遍也不知道是猴年马月……”

理论上说,从漏洞被发现到实际修复为止,暴露的时间越长对公司安全越不利。万一有攻击者在这个时间窗口成功利用了该漏洞,后果不堪设想。

在联系完开发人员并冷静思考之后,我们意识到要完成这个漏洞的修复,远没有我们想象的那么简单,原因是:

  • 首先这是一个PHPWind BBS的PHP漏洞(废话)
  • 公司最后一名PHP工程师已经离职,目前都是Java栈技术团队(那上面就不是废话了)
  • 公司论坛已经很久没有升级,标准修复措施是升级版本
  • 公司的论坛是在开源代码基础上进行二次开发的,无法直接使用官方升级包
  • 就算系统能够升级,标准的修复、测试、备份、发布和验证流程根本无法实现满足该漏洞对应的时效性要求

后背一阵冷汗,现在该怎么办?

借助云盾WAF实现虚拟补丁临时缓解漏洞

庆幸的是,该BBS早先已经接入了阿里云WAF保护。因此,安全团队可以通过WAF配置相应的规则,制作虚拟补丁,临时缓解该漏洞的影响。

我们认真地分析了该漏洞的原理和利用过程,发现:漏洞利用过程中必须请求一次特定URL才能实现,即:http://bbs.example.com/plugin.php?H_gate=vendor 。该URL是一个供应商信息列举的插件,即使无法使用,也不影响正常的业务。基于该URL的规则,安全团队判定:可以通过WAF实现虚拟补丁拦截。

进入云盾WAF配置界面

登录阿里云控制台,通过导航菜单【安全(云盾)】|【Web应用防火墙(网络安全)】|【域名配置】找到当前服务器的域名bbs.example.com。

云盾WAF实现虚拟补丁——记一起Web漏洞应急响应

配置WAF防护策略

通过点击域名bbs.example.com作用域内的【安全开关】|【防护配置】的超链接,进入WAF配置界面。

WAF产品支持多个维度的安全防护,包括:

  • Web应用攻击防护
  • 恶意IP惩罚
  • CC安全防护
  • 大数据深度学习引擎
  • 精准访问控制
  • 封禁地区
  • 新智能防护引擎
  • 网站防篡改
  • 数据风控
  • 防敏感信息泄漏

ps:流量经过Web应用防火墙时,首先依次匹配精准访问控制中的规则、再进行CC攻击的检测、最后进行Web应用攻击防护,配置各类规则时请注意内在顺序。

本次虚拟补丁配置需要用到【精准访问控制】,所以该功能务必处于开启状态。在该功能已经开启的前提下,点击超链接【前去配置】。

云盾WAF实现虚拟补丁——记一起Web漏洞应急响应

进入配置界面,直接点击【新增规则】,在弹出的对话框中进行URL匹配及拦截配置。针对本次漏洞利用的关键URL:http://bbs.example.com/plugin.php?H_gate=vendor, 为降低拦截的误判率,设置规则如下:

  • 规则名称:Web漏洞虚拟补丁
  • 匹配条件:字段URL包含plugin.php
  • 匹配条件:Params包含H_gate=vendor
  • 匹配动作:阻断

云盾WAF实现虚拟补丁——记一起Web漏洞应急响应

填写完规则后,点击【确定】,完成规则配置,规则即时生效。

云盾WAF实现虚拟补丁——记一起Web漏洞应急响应

关键匹配字段说明

在配置界面【匹配字段】后的信息图表上悬停鼠标,系统会提示可用的匹配字段,包括:

  • IP
  • URL
  • Referer
  • User-Agent
  • Params
  • Cookie
  • Content-Type
  • X-Forwarded-For
  • Content-Length
  • Post-Body

各字段形象化的映射关系如下:

云盾WAF实现虚拟补丁——记一起Web漏洞应急响应

ps:匹配中规则后的动作有三种:阻断、放行(可选择后续是否继续进行Web攻击拦截或CC攻击)、告警(只记录不阻断)。规则之间是有先后匹配顺序的,可点击规则排序达到最优的防护效果。

验证拦截效果

完成WAF配置后,访问触发漏洞的URL:http://bbs.example.com/plugin.php?H_gate=vendor ,浏览器直接提示访问请求已经被阿里云WAF拦截,bingo!

云盾WAF实现虚拟补丁——记一起Web漏洞应急响应

后续

安全团队除了通过WAF制作虚拟补丁,临时缓解漏洞影响,实际在漏洞响应过程中之执行了如下动作:

  • 对网站代码和Web服务器进行深入安全调查
  • 确保本次白帽子发现漏洞之前,该漏洞不曾被黑客利用
  • 找到开发大牛,对PHP代码漏洞进行修复并发布上线
  • 增强服务器安全监控,部署阿里云安骑士客户端
  • 彻查公司内部同类开源项目的版本及漏洞情况
  • 制定Web安全漏洞测试规范
  • 重新评估网站的综合安全性
  • 将先知安全众测列入下一阶段工作计划

安全从来就不是单一环节的问题,从业人员必须能够从一个点看到多个层面的问题,从而有效提升企业信息系统的整体安全,并将安全运营带入正轨!

总结

云盾WAF产品总体功能强大,能够满足绝大多数中小企业的Web应用安全防护。本文只是从一起漏洞应急案例介绍了:如何在极短的时间内通过阿里云云盾产品Web应用防火墙WAF制作虚拟补丁,临时缓解Web漏洞的影响。

本期分享到此为止。抛砖引玉,期待与业界同仁碰撞思想,一起成长。

上一篇:月饼事件代码


下一篇:1024程序员创造营|钉钉搭—氚云低代码训练营,开放报名啦!