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

推荐阅读

相关推荐
高山我梦口香糖26 分钟前
[react]searchParams转普通对象
开发语言·前端·javascript
m0_7482352429 分钟前
前端实现获取后端返回的文件流并下载
前端·状态模式
独行soc1 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘
White_Mountain1 小时前
在Ubuntu中配置mysql,并允许外部访问数据库
数据库·mysql·ubuntu
Code apprenticeship1 小时前
怎么利用Redis实现延时队列?
数据库·redis·缓存
百度智能云技术站1 小时前
广告投放系统成本降低 70%+,基于 Redis 容量型数据库 PegaDB 的方案设计和业务实践
数据库·redis·oracle
装不满的克莱因瓶1 小时前
【Redis经典面试题六】Redis的持久化机制是怎样的?
java·数据库·redis·持久化·aof·rdb
m0_748240251 小时前
前端如何检测用户登录状态是否过期
前端
black^sugar1 小时前
纯前端实现更新检测
开发语言·前端·javascript
Clockwiseee2 小时前
php伪协议
windows·安全·web安全·网络安全