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

简介: 本文从一起漏洞应急响应案例介绍了:如何在极短的时间内通过阿里云云盾产品Web应用防火墙WAF制作虚拟补丁,临时缓解Web漏洞的影响。

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

忧伤的周六早晨

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

15069547049868

先知平台白帽子黑客通过平台向我们提交了一个非常严重的漏洞:公司某外部合作平台在用的低版本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。

15069580944095

配置WAF防护策略

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

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

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

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

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

15069584667896

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

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

15069586272533

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

15069590028448

关键匹配字段说明

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

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

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

15069593026226

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

验证拦截效果

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

15069598146943

后续

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

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

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

总结

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

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

目录
相关文章
|
3月前
|
安全 算法 Linux
CentOS7下部署长亭科技雷池Web应用防火墙(WAF)开源社区版
CentOS7下部署长亭科技雷池Web应用防火墙(WAF)开源社区版
411 0
|
5月前
|
安全 前端开发 JavaScript
互联网并发与安全系列教程(07) - 常见的Web安全漏洞(其它漏洞)
互联网并发与安全系列教程(07) - 常见的Web安全漏洞(其它漏洞)
52 0
|
5月前
|
安全 NoSQL Java
互联网并发与安全系列教程(06) - 常见的Web安全漏洞(CSRF攻击)
互联网并发与安全系列教程(06) - 常见的Web安全漏洞(CSRF攻击)
67 0
|
2月前
|
SQL 安全 关系型数据库
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞,品相还不错,可执行任意 SQL 语句。 总之,吃了一惊,一个防 SQL 注入的工具居然也有 SQL 注入漏洞。 请看这段代码
413 1
|
7月前
|
安全 Java 程序员
Web安全性测试系列(三)文件上传漏洞核心原理详解
Web安全性测试系列(三)文件上传漏洞核心原理详解
|
2月前
|
SQL 安全 Java
Java Web安全性:常见的漏洞及防护措施
Java Web安全性:常见的漏洞及防护措施
118 0
|
3月前
|
SQL 安全 关系型数据库
01WEB漏洞环境搭建
【1月更文挑战第4天】给单位零基础小伙伴准备的网安入门教程,本教程是基于蚁景实验室搭建,基于自建虚拟机搭建需自行准备前置环境,01WEB漏洞环境搭建
|
4月前
|
SQL 安全 网络安全
【Web渗透测试】—Web漏洞
【Web渗透测试】—Web漏洞
|
5月前
|
SQL 安全 JavaScript
什么是 WAF - Web Application Firewall
什么是 WAF - Web Application Firewall
66 0
|
5月前
|
SQL 安全 JavaScript
互联网并发与安全系列教程(05) - 常见的Web安全漏洞(XSS攻击、SQL注入、防盗链)
互联网并发与安全系列教程(05) - 常见的Web安全漏洞(XSS攻击、SQL注入、防盗链)
59 0