专门为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地址,更加准确的识别出攻击源,从而有效阻断恶意攻击。

推荐阅读

相关推荐
tatasix7 分钟前
MySQL UPDATE语句执行链路解析
数据库·mysql
Hacker_LaoYi8 分钟前
网络安全与加密
安全·web安全
dr李四维14 分钟前
iOS构建版本以及Hbuilder打iOS的ipa包全流程
前端·笔记·ios·产品运营·产品经理·xcode
南城花随雪。20 分钟前
硬盘(HDD)与固态硬盘(SSD)详细解读
数据库
儿时可乖了21 分钟前
使用 Java 操作 SQLite 数据库
java·数据库·sqlite
懒是一种态度23 分钟前
Golang 调用 mongodb 的函数
数据库·mongodb·golang
天海华兮25 分钟前
mysql 去重 补全 取出重复 变量 函数 和存储过程
数据库·mysql
雯0609~35 分钟前
网页F12:缓存的使用(设值、取值、删除)
前端·缓存
℘团子এ38 分钟前
vue3中如何上传文件到腾讯云的桶(cosbrowser)
前端·javascript·腾讯云
Koi慢热42 分钟前
路由基础(全)
linux·网络·网络协议·安全