1.6. WAF
本文最后更新于1720天前,其中的信息可能已经有所发展或是发生改变。

1.6.1. 简介

1.6.1.1. 概念

WAF(Web Application Firewall,Web应用防火墙)是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供加固的产品。

在市场上,有各种价格各种功能和选项的WAF。在一定程度上,WAF能为Web应用提供安全性,但是不能保证完全的安全。

1.6.1.2. 常见功能

  • 检测异常协议,拒绝不符合HTTP标准的请求
  • 对状态管理进行会话保护
  • Cookies保护
  • 信息泄露保护
  • DDoS防护
  • 禁止某些IP访问
  • 可疑IP检查
  • 安全HTTP头管理
    • X-XSS-Protection
    • X-Frame-Options
  • 机制检测
    • CSRF token
    • HSTS

1.6.1.3. 布置位置

按布置位置,WAF可以分为云WAF、主机防护软件和硬件防护。云WAF布置在云上,请求先经过云服务器而后流向主机。主机防护软件需要主机预先安装对应软件,如mod_security、ngx-lua-waf等,对主机进行防护。硬件防护指流量流向主机时,先经过设备的清洗和拦截。

1.6.2. 防护方式

WAF常用的方法有关键字检测、正则表达式检测、语法分析、行为分析、声誉分析、机器学习等。

基于正则的保护是最常见的保护方式。开发者用一些设定好的正则规则来检测载荷是否存在攻击性。基于正则的防护较为简单,因此存在一些缺点。例如只能应用于单次请求,而且正则很难应用到一些复杂的协议上。

基于语法的分析相对正则来说更快而且更准确,这种分析会把载荷按照语法解析成的符号组,然后在符号组中寻找危险的关键字。这种方式对一些载荷的变式有较好的效果,但是同样的,对解析器要求较高。

基于行为的分析着眼的范围更广一些,例如攻击者的端口扫描行为、目录爆破、参数测试或者一些其他自动化或者攻击的模式都会被纳入考虑之中。

基于声誉的分析可以比较好的过滤掉一些可疑的来源,例如常用的VPN、匿名代理、Tor节点、僵尸网络节点的IP等。

基于机器学习的WAF涉及到的范围非常广,效果也因具体实现和场景而较为多样化。

除了按具体的方法分,也可以根据白名单和黑名单的使用来分类。基于白名单的WAF适用于稳定的Web应用,而基于黑名单则适合处理已知问题。

1.6.3. 扫描器防御

  • 基于User-Agent识别
  • 基于攻击载荷识别
  • 验证码

1.6.4. WAF指纹

  • 额外的Cookie
  • 额外的Header
  • 被拒绝请求时的返回内容
  • 被拒绝请求时的返回响应码
  • IP

1.6.5. 绕过方式

1.6.5.1. 基于架构的绕过

  • 站点在WAF后,但是站点可直连
  • 站点在云服务器中,对同网段服务器无WAF

1.6.5.2. 基于资源的绕过

  • 使用消耗大的载荷,耗尽WAF的计算资源

1.6.5.3. 基于解析的绕过

  • 字符集解析不同
  • 协议覆盖不全
  • 协议解析不正确
  • 站点和WAF对https有部分不一致
  • WAF解析与Web服务解析不一致
    • 同一个参数多次出现,取的位置不一样
    • HTTP Parameter Pollution (HPP)
    • HTTP Parameter Fragmentation (HPF)

1.6.5.4. 基于规则的绕过

  • 等价替换
    • 大小写变换
      • select => sEleCt
      • <sCrIpt>alert(1)</script>
    • 字符编码
      • URL编码
      • 十六进制编码
      • Unicode解析
      • Base64
      • HTML
      • JSFuck
      • 其他编码格式
    • 等价函数
    • 等价变量
    • 关键字拆分
    • 字符串操作
  • 字符干扰
    • 空字符
      • NULL (x00)
      • 空格
      • 回车 (x0d)
      • 换行 (x0a)
      • 垂直制表 (x0b)
      • 水平制表 (x09)
      • 换页 (x0c)
    • 注释
  • 特殊符号
    • 注释符
    • 引号(反引号、单引号、双引号)
  • 利用服务本身特点
    • 替换可疑关键字为空
      • selselectect => select
  • 少见特性未在规则列表中

点击数:177

    暂无评论

    发送评论 编辑评论

    
    				
    |´・ω・)ノ
    ヾ(≧∇≦*)ゝ
    (☆ω☆)
    (╯‵□′)╯︵┴─┴
     ̄﹃ ̄
    (/ω\)
    ∠( ᐛ 」∠)_
    (๑•̀ㅁ•́ฅ)
    →_→
    ୧(๑•̀⌄•́๑)૭
    ٩(ˊᗜˋ*)و
    (ノ°ο°)ノ
    (´இ皿இ`)
    ⌇●﹏●⌇
    (ฅ´ω`ฅ)
    (╯°A°)╯︵○○○
    φ( ̄∇ ̄o)
    ヾ(´・ ・`。)ノ"
    ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
    (ó﹏ò。)
    Σ(っ °Д °;)っ
    ( ,,´・ω・)ノ"(´っω・`。)
    ╮(╯▽╰)╭
    o(*////▽////*)q
    >﹏<
    ( ๑´•ω•) "(ㆆᴗㆆ)
    😂
    😀
    😅
    😊
    🙂
    🙃
    😌
    😍
    😘
    😜
    😝
    😏
    😒
    🙄
    😳
    😡
    😔
    😫
    😱
    😭
    💩
    👻
    🙌
    🖕
    👍
    👫
    👬
    👭
    🌚
    🌝
    🙈
    💊
    😶
    🙏
    🍦
    🍉
    😣
    Source: github.com/k4yt3x/flowerhd
    颜文字
    Emoji
    小恐龙
    花!
    上一篇
    下一篇