本文实测用云盾WAF实现虚拟补丁。当遇到Web漏洞的时候,安全负责人和运维人员可以用来“见招拆招”啦。
忧伤的周六早晨
“云盾.先知”的渗透测试服务到底靠不靠谱?今年8月,在公司领导的授权下,我们充值体验了一把。答案是:先知白帽子的渗透测试水平杠杠的。周六大清早的,就给我们送来一份大礼:“远程代码执行漏洞”!
先知平台白帽子黑客通过平台向我们提交了一个非常严重的漏洞:公司某外部合作平台在用的低版本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防护策略
通过点击域名bbs.example.com作用域内的【安全开关】|【防护配置】的超链接,进入WAF配置界面。
WAF产品支持多个维度的安全防护,包括:
- Web应用攻击防护
- 恶意IP惩罚
- CC安全防护
- 大数据深度学习引擎
- 精准访问控制
- 封禁地区
- 新智能防护引擎
- 网站防篡改
- 数据风控
- 防敏感信息泄漏
ps:流量经过Web应用防火墙时,首先依次匹配精准访问控制中的规则、再进行CC攻击的检测、最后进行Web应用攻击防护,配置各类规则时请注意内在顺序。
本次虚拟补丁配置需要用到【精准访问控制】,所以该功能务必处于开启状态。在该功能已经开启的前提下,点击超链接【前去配置】。
进入配置界面,直接点击【新增规则】,在弹出的对话框中进行URL匹配及拦截配置。针对本次漏洞利用的关键URL:http://bbs.example.com/plugin.php?H_gate=vendor, 为降低拦截的误判率,设置规则如下:
- 规则名称:Web漏洞虚拟补丁
- 匹配条件:字段URL包含plugin.php
- 匹配条件:Params包含H_gate=vendor
- 匹配动作:阻断
填写完规则后,点击【确定】,完成规则配置,规则即时生效。
关键匹配字段说明
在配置界面【匹配字段】后的信息图表上悬停鼠标,系统会提示可用的匹配字段,包括:
- IP
- URL
- Referer
- User-Agent
- Params
- Cookie
- Content-Type
- X-Forwarded-For
- Content-Length
- Post-Body
各字段形象化的映射关系如下:
ps:匹配中规则后的动作有三种:阻断、放行(可选择后续是否继续进行Web攻击拦截或CC攻击)、告警(只记录不阻断)。规则之间是有先后匹配顺序的,可点击规则排序达到最优的防护效果。
验证拦截效果
完成WAF配置后,访问触发漏洞的URL:http://bbs.example.com/plugin.php?H_gate=vendor ,浏览器直接提示访问请求已经被阿里云WAF拦截,bingo!
后续
安全团队除了通过WAF制作虚拟补丁,临时缓解漏洞影响,实际在漏洞响应过程中之执行了如下动作:
- 对网站代码和Web服务器进行深入安全调查
- 确保本次白帽子发现漏洞之前,该漏洞不曾被黑客利用
- 找到开发大牛,对PHP代码漏洞进行修复并发布上线
- 增强服务器安全监控,部署阿里云安骑士客户端
- 彻查公司内部同类开源项目的版本及漏洞情况
- 制定Web安全漏洞测试规范
- 重新评估网站的综合安全性
- 将先知安全众测列入下一阶段工作计划
- 安全从来就不是单一环节的问题,从业人员必须能够从一个点看到多个层- 面的问题,从而有效提升企业信息系统的整体安全行,并将安全运营带入正轨!
总结
云盾WAF产品总体功能强大,能够满足绝大多数中小企业的Web应用安全防护。本文只是从一起漏洞应急案例介绍了:如何在极短的时间内通过阿里云云盾产品Web应用防火墙WAF制作虚拟补丁,临时缓解Web漏洞的影响。
本期分享到此为止。抛砖引玉,期待与业界同仁碰撞思想,一起成长。
原文发布时间为:2017-10-27
本文来自云栖社区合作伙伴“阿里云安全”,了解相关信息可以关注“阿里云安全”微信公众号