专门为Web应用程序提供安全保护的设备-WAF

互联网网站面临着多种威胁,包括网络钓鱼和人为的恶意攻击等。这些威胁可能会导致数据泄露、系统崩溃等严重后果。

因此,我们需要采取更多有效的措施来保护网站的安全。其中WAF(Web application firewall,Web应用防火墙)就是最有效的一种防护措施。

文章目录

WAF功能简介

WAF(Web application firewall,Web应用防火墙)用于阻断Web应用层攻击,保护内网Web服务器。当设备收到来自外部的HTTP或HTTPS请求后,会对请求报文的安全性和合法性进行检测和验证,对非法的请求予以实时阻断,从而实现对内网Web服务器的有效防护。

WAF实现原理

WAF通过以下三大功能协同检测,实现对Web应用层攻击的精确识别和阻断,保护内网Web服务器免受攻击。

  • WAF特征匹配:设备通过对攻击行为的特征进行检测,能够有效地识别跨站脚本、爬虫等攻击。
  • SQL语义分析:设备通过对报文中的SQL语句进行语义分析,可精确识别SQL注入类攻击。
  • CC(Challenge Collapsar,挑战黑洞)攻击防护:设备通过对Web应用程序客户端的请求进行检测和统计,可有效识别CC攻击。

WAF特征匹配

WAF特征匹配功能通过应用层检测引擎对报文进行特征匹配来实时检测Web应用层攻击,并基于WAF策略对报文进行处理。WAF策略中定义了对哪些WAF特征进行匹配,以及对匹配成功的报文执行的动作。

识别特征并下发识别结果

管理员需要先加载特征到设备,为应用层检测引擎的特征匹配提供丰富的特征资源。

应用层检测引擎对报文进行重组、解码、切分和协议解析等处理后,将报文与WAF特征进行匹配。

当特征匹配成功时,会下发匹配结果到WAF业务模块。

推导动作

WAF业务模块根据特征匹配结果,判断出特征在WAF策略中需要执行的动作。在WAF策略中,特征可能执行如下几类动作:

  • WAF策略中指定特征的特例动作。
  • WAF策略中所有特征统一执行的动作。
  • WAF策略中指定特征的预定义动作。

动作优先级由高到低依次为:特例动作> 统一动作> 预定义动作。

执行动作

WAF业务模块根据动作推导结果,执行相应的动作:

  • 如果报文只与一个WAF特征匹配成功,则执行推导出的动作。
  • 如果报文与多个WAF特征匹配成功,则执行推导出的多个动作中优先级最高的动作。

动作优先级由高到低依次为:重置> 重定向> 丢弃> 允许。

其中,对于源阻断、报文捕获、记录日志,只要匹配成功的特征中存在这些动作就会执行。

SQL语义分析

SQL语义分析功能通过对请求报文中的SQL语句进行词法、语法和语义分析来检测是否存在SQL注入攻击,并根据检测结果对报文进行相应的处理。

相对于特征匹配功能仅匹配字符串而不懂程序本身,SQL语义分析功能可以理解程序语言,并在此基础之上检测出可疑流量。

  • 正常访问:用户使用用户名和密码登录服务器

  • SQL注入攻击:攻击者绕过用户名和密码验证登录服务器

CC(Challenge Collapsar,挑战黑洞)攻击防护

CC攻击防护功能通过对来自客户端的请求进行内容检测、规则匹配和统计计算,来检测CC攻击,从而阻断攻击请求,实现对内网Web服务器的有效防护。

设备支持请求速率和请求集中度双重检测算法对CC攻击进行识别。

每种算法可以分别配置检测阈值,当用户访问网站的统计结果达到任意一个阈值时,则认为存在CC攻击。

CC攻击防护实现流程

  1. 设备通过将报文与用户配置的过滤条件进行匹配,判断对哪些报文进行CC攻击检测。当报文与过滤条件匹配成功,则进行下一步处理;否则,放行报文。
  2. 设备基于报文的源IP地址对该IP访问网站的数据进行统计。
  3. 在指定的检测周期内,将统计结果与用户配置的检测项阈值进行匹配。若统计结果达到任意一个阈值,则认为存在CC攻击,并进入下一步处理;否则,放行报文。
  4. 设备根据用户配置的动作对报文执行相应的操作,包括源阻断、放行和记录日志。

三大检测功能的处理优先级

以上三种检测功能相互独立,互不影响。

如果只有一种功能识别出攻击报文,则对报文执行该功能配置的动作;如果多个功能均识别出攻击报文,则对报文执行多个功能中优先级最高的动作。
动作优先级从高到低依次为:重置> 重定向> 丢弃> 允许,对于黑名单、记录日志和报文捕获三个动作,只要处理动作中包含就会执行。

技术优势

WAF有三大技术优势:

  1. 支持WAF特征匹配、SQL语义分析和CC攻击防护多功能协同检测,有效提升Web攻击识别率。
  2. 当管理员掌握了Web攻击特点时,可自定义WAF特征,对攻击进行有效拦截。
  3. 在代理场景下,支持从报文的X-Forwarded-For字段提取源IP地址,更加准确的识别出攻击源,从而有效阻断恶意攻击。

推荐阅读

相关推荐
不知更鸟1 天前
Django 项目是什么
数据库·sqlite
命运之光1 天前
【最新】ChromeDriver最新版本下载安装教程,ChromeDriver版本与Chrome不匹配问题
前端·chrome
有一个好名字1 天前
MyBatis-Plus 三种数据库操作方式详解 + 常用方法大全
数据库·mybatis
星离~1 天前
Vue响应式原理详解:从零实现一个迷你Vue
前端·javascript·vue.js
-Xie-1 天前
Redis(八)——多线程与单线程
java·数据库·redis
G探险者1 天前
为什么 VARCHAR(1000) 存不了 1000 个汉字? —— 详解主流数据库“字段长度”的底层差异
数据库·后端·mysql
梦6501 天前
React 简介
前端·react.js·前端框架
一只小阿乐1 天前
react 中的判断显示
前端·javascript·vue.js·react.js·react
光影少年1 天前
useMemo 和 React.memo区别
前端·react.js·前端框架
小沐°1 天前
React-页码组件
前端·javascript·react.js