1.6 WAF

作者: 最酷的崽_ec69 | 来源:发表于2019-11-04 17:01 被阅读0次

    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
          补充内容
    • Web防护
      • 网络层防护
        • DDOS攻击
        • Syn Flood
        • Ack Flood
        • Http/HttpS Flood(CC攻击)
        • 慢速攻击
      • 应用层防护和功能
        • URL黑白名单
        • HTTP协议规范(包括特殊字符过滤、请求方式、内容传输方式,例如:multipart/form-data,text/xml,application/x-www-form-urlencoded)
        • 注入攻击(form和URL参数,post和get)
          • SQL注入防御
          • LDAP注入防御
          • 命令注入防护(OS命令,webshell等)
          • XPath注入
          • Xml/Json注入
        • XSS攻击(form和URL参数,post和get,现阶段分为三类攻击:存储式(危害大,也是一种流行方式),反射式、基于Dom的XSS)
        • 目录遍历(Path Traversal)
        • form表单数据验证和表单篡改和注入(表单验证银行卡、数据、日期等)
        • 认证管理和会话劫持(cookie加密:防护会话劫持,包括cookie超时)。
        • 内容过滤(这儿强调上传内容过滤post form和get 参数,主要应用论坛)
        • Web服务器漏洞探测(apache版本等隐藏,站点隐藏)
        • 爬虫防护(基于SRC IP,周期判断访问数,爬虫白名单除外)
        • CSRF(Cross-site request forgery)(WAF采用token方式处理能够解决)
        • 篡改(包括盗链)(WAF周期爬服务器网页,进行对比验证,如果篡改发现篡改,Client访问WAF网页)
        • Web服务器漏洞扫描(模拟攻击,判断缺陷,自动配置对应规则)
        • cache加速(静态页面优化,PDF,图片等,需要周期映像)
        • 错误码过滤(探测服务,及其目录结构)
        • 站点转换(URL rewrite)
        • 发现攻击锁定(发现攻击,锁定用户)
        • 查杀毒
        • 加密传输(http -> https转化,即client-waf之间通过https,waf与server之间http)。
        • URL ACL(URL匹配一些规则)。
    • 防止Web信息泄露
      * 银行卡(信用卡、借记卡)、社保卡、驾照等,采用覆盖和隐藏两种方式。
      * 敏感词过滤、Web中关键词(政治敏感词、技术关键词等)
      * 防止文件泄露(word、pdf等扩展文件及其关键词),Web服务器上的文件。

    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
    • 少见特性未在规则列表中

    1.6.6. 参考链接

    相关文章

      网友评论

          本文标题:1.6 WAF

          本文链接:https://www.haomeiwen.com/subject/hkcsvctx.html