Web应用防火墙--规则防护

2023-10-31

一、什么是Web应用防火墙?

Web应用防火墙对网站、APP的业务流量安全及合规性保护,对业务流量的识别恶意特征提取、分析识别出恶意流量并进行处理, 将正常安全的流量回源到业务服务器, 保护网站核心业务和数据安全。

京东云Web应用防火墙的产品架构示意图如下:

二、Web攻击常见的检测手段?

Web攻击常见的三种检测手段,规则检测、AI检测或语义检测。

1.规则检测:效率高、识别精准度高。其表现形式是正则表达式,通过正则表达式或组合来检测攻击,例如:OWASP Top10十大安全漏洞,也有与其对应的规则集合 owasp top10 rules set,通过规则拦截恶意攻击已经是各大厂商的主流检测手段。目前各大WAF厂商都有自己的安全规则集合。

2.AI检测:通过AI机器学习或深度学习算法来检测Web攻击, 能检出未知威胁, 缺点检测效率低,一般用于离线检测,误报率相对较高, 具体取决于算法模型及训练样本等。

3.语义检测:通过对SQL或XSS注入进行语法及词法分析来检测攻击, 鉴于算法特点, 误报率较高,一般用于告警, 不直接拦截业务请求。

三、公有云上用户及业务场景的特点

公有云上的用户包含各个行业,业务场景具有多样性和复杂性的特点,例如:电商和政务云都是公有云的常见客户,通用的规则集合可以有效满足用户的防护需求, 但针对特点活动场景,例如优惠券活动、重点场景需要针对性定制不同的防护规则集合, 以满足特殊场景下防护需求。

四、针对公有云多态、复杂的业务场景的解决方案

1.默认规则组: 采用规则组集合的方式进行全面安全防护。

2.规则组分级: 规则组级别分为宽松、正常、严格,用以满足不同场景或同一场景不同时期的需求。

3.自定义规则组:定制化的防御策略组,针对复杂,特定需求的业务场景,例如:专门针对SQL注入自定义规则组,在选择规则时只选择SQL注入类的规则。

4.误报处理:通过白名单对请求特征加白或在自定义规则组中去掉误报的规则来处理误报。

4.1 默认规则组

Web应用攻击防护引擎基于内置的专家经验规则集,自动为网站防御SQL注入、XSS跨站,webshell上传、命令注入、后门隔离、非法文件请求、路径穿越、常见应用漏洞攻击等通用的Web攻击。

4.2 规则组分级

规则组级别分为宽松、正常、严格,用以满足不同场景或同一场景不同时期的需求。

例如在平时我们将规则组设置为正常级别, 但是在重保时期可以将规则组提升为严格级别,从而来阻断更多的攻击风险。

正常级别:检测常见的Web应用攻击(默认选择)。

严格级别:当您需要更严格地防护路径穿越、SQL注入、命令执行时,建议选择此等级。

宽松:当发现存在较多误拦截,或者业务存在较多不可控的用户输入时,可以选择此等级。

4.3 自定义规则组

定制化的防御策略组,针对复杂,特定需求的业务场景,例如:专门针对SQL注入自定义规则组,在选择规则时只选择SQL注入类的规则。

例如:

选择一个规则组模板,之后对模板内的规则进行删除,或添加新的规则到规则组中;

已选择的安全规则

未添加的安全规则

4.4 解决业务误报

4.4.1 自定义规则组

通过自定义规则组除去误报规则的方式来解决误报问题。

4.4.2 白名单加白

基于请求特征对误报流量加白, 加白后的流量会被WAF bypass,从而解决误报问题。

五、京东云WAF规则检测引擎主要特性

1.实时全面检测http报文,且跨包流量无遗漏检测;

2.自适应内容解析:自适应解析JSON、XML、Multipart等数据格式,提升检测的准确率;

3.自适应解码:包括URL、HTML、Base64、Unicode、十六进制、二进制等多种格式解码,提高检测的召回率;

4.支持HPP参数污染及依赖注入攻击防护,自适应SQL、XSS去注释。

作者:京东科技 范朋飞

来源:京东云开发者社区 转载请注明来源

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Web应用防火墙--规则防护 的相关文章

随机推荐

  • 使用SourceTree将本地项目推送至GitLab

    背景 正常一般是先在 GitLab 上建好项目 然后再通过 SourceTree 克隆到本地 但有时候忘记了 直接在本地新建了项目 这个时候想把本地项目也放到 GitLab 上托管 步骤 1 在GitLab上新建一个项目 添加一个READM
  • 前端页面适配之postcss-px-to-viewport

    一 简介 postcss px to viewport 是一个 PostCSS 插件 用于将 CSS 中的 px 单位转换为 vw 或 vh 单位 它可以帮助我们实现在不同屏幕尺寸下的自适应布局 以提高页面的响应性和可用性 二 postcs
  • keil遇到FCARM - Output Name not specified, please check 'Options for Target - Utilities'解决方法

    近期又开始复活学ARM 结果以前很容易就编译通过的事竟然出现意外 提示 FCARM Output Name not specified please check Options for Target Utilities 原因是加载文件时为了
  • Netty的客户端使用Socks5代理,netty-handler-proxy源码浅析

    目录 前言 使用 源码浅析 版本 目录结构 ProxyHandler Socks5ProxyHandler socks5代理服务 待续 前言 需求的出发点是这样 一个netty代理服务 里面有netty服务端 ServerBootstrap
  • 通用路由封装协议--GRE的简单配置

    基于华为设备简单配置GRE GRE 通用路由封装协议 一 GRE是什么 二 GRE有什么用 1 多协议本地网可以通过GRE隧道传输 2 与IPSec结合 保护组播数据 三 GRE怎么用 1 隧道接口 Tunnel接口 2 配置 参考 GRE
  • SpringBoot默认的8080端口在哪?

    配置文件中 点击port 进入到ServerProperties类 ServerProperties这个类中 读取配置文件server开头的配置 定位类文件所在位置 找到对应jar包的META INF下的json文件 端口默认值在json文
  • Spring最佳实践: 构建高效可维护的Java应用程序

    博主猫头虎 带您 Go to New World 博客首页 猫头虎的博客 面试题大全专栏 文章图文并茂 生动形象 简单易学 欢迎大家来踩踩 IDEA开发秘籍专栏 学会IDEA常用操作 工作效率翻倍 100天精通Golang 基础入门篇 学会
  • Spring 基础概念和核心思想

    目录 一 Spring 是什么 1 认识 loC 2 理解 Spring loC 3 DI 概念说明 一 Spring 是什么 我们通常所说的 Spring 指的是 Spring Framework Spring 框架 它是 个开源框架 有
  • 【廖雪峰python入门笔记】变量

    1 静态语言和动态语言中的变量表示 静态语言在定义变量时必须指定变量类型 如果赋值的时候类型不匹配 就会报错 例如Java是静态语言 赋值语句如下 int a 123 a是整数类型变量 a mooc 错误 不能把字符串赋给整型变量 和静态语
  • json-c编译及修改libjson.so动态库名称

    1 git clone https github com json c json c git 功能 获取源码 2 cd json c 功能 进入目录 3 autogen sh 功能 生成configure ac 再生成configure配置
  • 栅栏密码(Fence)——python解密

    简介 所谓栅栏密码 就是把要加密的明文分成N个一组 然后把每组的第1个字连起来 形成一段无规律的话 不过栅栏密码本身有一个潜规则 就是组成栅栏的字母一般不会太多 一般不超过30个 也就是一 两句话 实现 一般比较常见的是2栏的栅栏密码 比如
  • 算法训练营第三十九天(8.30)

    Leecode 123 买卖股票的最佳时机 III 123 买卖股票的最佳时机III 123 买卖股票的最佳时机III 题目地址 力扣 LeetCode 官网 全球极客挚爱的技术成长平台 题目类型 股票问题 class Solution p
  • 前端页面边距设置

    内边距 padding 边框到内容区的距离 padding top 上内边距 padding right 右内边距 padding bottom 下内边距 padding left 左内边距 也可以使用padding设置四个方向的值 pad
  • 现阶段游戏类型

    了解游戏类型 每一个游戏类型下所诞生的游戏产品侧重点略有不同 了解游戏类型并找到属于自己的产品定位 可以在后面的技术定位和实际开发时不至于走许多弯路 更重要的是 当所有参与开发的人员对产品的主要方向已经有了明确的概念时 产品所针对的用户群体
  • CentOS 7.2下Filebeat+Kafka+ELK生产部署(安全加固)

    01架构说明 在需要采集日志的服务器上部署Filebeat服务 它将采集到的日志数据推送到Kafka集群 Logstash服务通过input插件读取Kafka集群对应主题的数据 期间可以使用filter插 数据做自定义过滤解析处理 然后通过
  • Linux基础:如何切换终端

    1 在linux中可以使用命令来切换终端 终端中tty1为图形界面 剩余为命令行界面 2 切换终端的命令为 sudo chvt 2 在终端2中登录用户xu 此时使用who命令或者w命令查看当前系统用户 此时可以看到 终端1图形界面登录的是r
  • 区块链学习8:超级账本项目Fabric中的背书、背书节点、背书策略、背书签名

    前往老猿Python博文目录 在Hyperledger Fabric区块链中 有背书节点进行背书 Hyperledger Fabric 使用背书策略来定义哪些节点需要执行交易 Hyperledger Fabric在区块链交易方面采取了一个新
  • iOS进阶面试题----经典10道

    所有的群都已到人数上限 本着 与时俱进 精神 建了个 iOS面试 公众号 大家扫码关注后 可直接发消息给我 iOS面试相关的问题我会尽量一一回复 OneV s Den在博客里出了10道iOS面试题 用他的话是 列出了十个应聘Leader级别
  • pytorch中mm()函数的用法

    x x mm self w x与w相乘 注 x必须是tensor 才可以应用该方法 参考链接 https blog csdn net genous110 article details 87801605
  • Web应用防火墙--规则防护

    一 什么是Web应用防火墙 Web应用防火墙对网站 APP的业务流量安全及合规性保护 对业务流量的识别恶意特征提取 分析识别出恶意流量并进行处理 将正常安全的流量回源到业务服务器 保护网站核心业务和数据安全 京东云Web应用防火墙的产品架构