# 使用


# 防护管理

# 网站管理

# 添加网站

  • 域名/IP 输入需要防护网站的域名或 IP,例如输入域名 test.jxwaf.com。域名支持通配符,例如 *.jxwaf.com。如果防护的网站地址为 IP 地址,则直接输入 IP 地址即可,例如 1.1.1.1。
  • 协议类型 选择开启的协议类型,必须选择一项,选择 HTTPS 需要进行 SSL 证书配置
  • SSL 证书配置
    • SSL 证书管理 通过 系统管理 -> SSL 证书管理 功能进行统一的配置维护,配置完证书后,在此选择相应证书即可。
    • 手动输入 手动输入证书公钥和私钥,证书格式为 PEM
  • 源站地址 输入源站 IP 地址
  • 源站端口 输入源站端口
  • 回源协议 选择回源协议,即源站 WEB 服务器支持的协议类型

DEMO: 图片描述 如图所示,则添加网站配置为: 图片描述 配置完成后,需修改 DNS 配置: www.test.com -> 192.168.1.1 改为: www.test.com -> 10.0.0.1

# 防护配置

  • 基础安全防护

    • Web 防护引擎

      Web 防护引擎的核心为语义分析引擎,使用的引擎版本可以在 系统管理 -> 防护引擎管理 进行配置,可通过 服务中心 -> 引擎更新 更新防护引擎。

      注意: 默认情况下,第一次进入控制台会自动加载 JXWAF 官方提供的防护引擎,如因网络问题等原因未能完成加载,可通过 服务中心 -> 引擎更新 手动加载防护引擎,并在系统管理 -> 防护引擎管理 将加载的引擎设置为默认引擎。

      支持的防护类型如下:

      • SQL 注入防护
      • XSS 防护
      • 命令注入防护
      • WebShell 上传防护
      • 敏感文件泄露防护
      • 路径穿越防护
      • 高危 Nday 防护
    • Web 防护规则

      Web 防护规则统一在 系统管理 -> 防护规则管理 -> Web 防护规则管理 进行配置,通过 点击 “加载规则” 按钮,加载需要的防护规则或防护规则组。规则的执行优先级为从上到下依次执行,通过 "优先级调整" 按钮,可以调整规则的优先级。

    • Web 白名单规则

      Web 白名单规则统一在 系统管理 -> 防护规则管理 -> Web 白名单规则管理 进行配置,通过 点击 “加载规则” 按钮,加载需要的 Web 白名单规则或 Web 白名单规则组。规则的执行优先级为从上到下依次执行,通过 "优先级调整" 按钮,可以调整规则的优先级。

  • 流量安全防护

    • 流量防护引擎

      流量防护引擎的核心为人机识别算法,使用的引擎版本可以在 系统管理 -> 防护引擎管理 进行配置,可通过 服务中心 -> 引擎更新 更新防护引擎。如需定制人机识别算法或本地部署人机识别 JS 文件,可以登陆 JXWAF 服务中心 (opens new window) 进行定制。

      注意: 默认情况下,第一次进入控制台会自动加载 JXWAF 官方提供的防护引擎,如因网络问题等原因未能完成加载,可通过 服务中心 -> 引擎更新 手动加载防护引擎,并在系统管理 -> 防护引擎管理 将加载的引擎设置为默认引擎。

      支持的防护功能为:

      • 高频 CC 攻击防护
      • 慢速 CC 攻击防护
      • 无差别紧急防护
    • 流量防护规则

      流量防护规则统一在 系统管理 -> 防护规则管理 -> 流量防护规则管理 进行配置,通过 点击 “加载规则” 按钮,加载需要的防护规则或防护规则组。规则的执行优先级为从上到下依次执行,通过 "优先级调整" 按钮,可以调整规则的优先级。

    • 流量白名单规则

      流量白名单规则统一在 系统管理 -> 防护规则管理 -> 流量白名单规则管理 进行配置,通过 点击 “加载规则” 按钮,加载需要的流量白名单规则或流量白名单规则组。规则的执行优先级为从上到下依次执行,通过 "优先级调整" 按钮,可以调整规则的优先级。

  • 名单防护

    名单防护功能基于 HASH 匹配算法实现,可以对大量的恶意流量特征进行针对性处置(例如对大量 IP/session 进行封禁),通过 OpenApi,可以实现与外部安全系统的协同联动。

    名单配置统一在 系统管理 -> 名单配置管理 进行管理,通过 点击 “加载名单” 按钮,加载需要的名单防护配置。名单配置的执行优先级为从上到下依次执行,通过 "优先级调整" 按钮,可以调整规则的优先级。

  • 组件防护

    组件防护统一在 系统管理 -> 防护组件管理 进行配置,通过 点击 “加载组件” 按钮,加载需要的组件。组件的执行优先级为从上到下依次执行,通过 "优先级调整" 按钮,可以调整规则的优先级。如有定制化需求,可以登陆 JXWAF 服务中心 (opens new window) 进行定制。

# 网站分组管理

网站分组管理与网站管理的区别在于,同一个分组下面的网站共享相同的防护配置。 注意: 当 网站(域名/IP) 同时存在 网站管理 和 网站分组管理 时,将忽略 网站分组管理 的配置,以 网站管理 配置为主。

# 新建网站分组

  • 分组名称

    以字母开头,仅支持下划线“_”及中横线“-”两种特殊字符

  • 分组详情

    • 网站管理

    • 添加网站

      详情参考 网站管理 -> 添加网站

    • 网站配置

# 防护配置

详情参考 网站管理 -> 防护配置

# 全局名单管理

全局名单将对所有接受到的请求生效,无论是否存在对应的网站配置

详情参考 网站管理 -> 防护配置 -> 名单防护

# 全局组件管理

全局组件将对所有接受到的请求生效,无论是否存在对应的网站配置

详情参考 网站管理 -> 防护配置 -> 组件防护

# 日志报表

  • 基础安全报表
  • 流量安全报表
  • 名单防护报表
  • WAF 日志查询分析
  • 名单操作日志查询

# 节点管理

  • WAF 配置更新

    默认为开启状态,关闭后节点将无法获取最新配置,用于灰度发布使用

  • 名单数据更新

    默认为开启状态,关闭后节点将无法获取最新配置,用于灰度发布使用

# 系统管理

# 基础配置

  • API_KEY

    JXWAF 节点获取控制台配置的认证凭证

  • API_PASSWORD

    JXWAF 节点获取控制台配置的认证凭证

  • JXWAF 账号登陆

  • 网络连接代理

    • 代理地址

      如果处于内网隔离的状态,可以通过设置 HTTP 代理访问 JXWAF 服务中心来加载引擎或获取更新,需输入 HTTP 代理地址而不是 SOCK5 代理地址,例如: http://10.10.1.10:3128

# SSL 证书管理

# 添加 SSL 证书

注意:证书格式为 PEM,即 nginx 服务器使用的 SSL 证书格式。

  • SSL 证书域名

    申请证书时使用的域名,例如:www.jxwaf.com或 *.jxwaf.com

  • 公钥

    证书公钥,需要包含证书链

  • 私钥

    证书私钥

# 防护引擎管理

  • 默认引擎

    同一时间只能存在一个默认引擎,默认引擎将被加载到 JXWAF 节点

# 防护规则管理

# Web 防护规则管理

  • 规则名称

    字母开头,字母或数字组合,仅支持_和-两种符号

  • 规则详情

    规则应用场景描述

  • 匹配参数

POST /test?sign=123 HTTP/1.1
Host: login.jxwaf.com
Sec-Ch-Ua: "Chromium";v="103", ".Not/A)Brand";v="99"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "macOS"
Cookie: session=asd
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Referer: https://www.jxwaf.com/
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

user=test&password=123456
参数类型 参数 说明 例子
http_args path 访问请求的 URI 地址 /test
query_string 访问请求的 URL 地址中的参数部分 sign=123
method 访问请求的方法,例如 GET、POST、DELETE、PUT、OPTIONS 等。 POST
src_ip 访问请求的来源 IP 地址 1.1.1.1
raw_body 访问请求的原始请求内容 user=test&password=123456
version 访问请求的协议版本 1.1
scheme 访问请求的访问模式,值为 http 或 https http
raw_header 访问请求的原始请求头 Host: login.jxwaf.com 一直到 Connection: close 的内容
header_args host 访问请求中 header 头的 Host 信息 login.jxwaf.com
cookie 访问请求中 header 头的 Cookie 信息 session=asd
referer 访问请求中 header 头的 Referer 信息 https://www.jxwaf.com/
user_agent 访问请求中 header 头的 User-Agent 信息 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36
自定义 访问请求中 Header 头中的指定的信息,例如输入 Accept-Language zh-CN,zh;q=0.9
cookie_agrs 自定义 访问请求中 Cookie 中的指定信息,例如输入 session asd
uri_agrs 自定义 访问请求的 URL 地址中的参数部分,通常指 URL 中”?”后面的部分。例如输入 sign 123
post_agrs 自定义 访问请求的 BDOY 参数的值,例如输入 user test
json_post_agrs 自定义 访问请求的 BDOY 参数的值,格式为 JSON 格式,假如 BODY 内容为:{"user":"test","password":"123456"},假如输入 user test
shared_dict 自定义 选择已配置的共享字典 ,可以在 系统管理 -> 共享字典配置管理 中进行配置 字典值类型为字符串和数字两种,可通过配置参数处理的 获取数据类型 方法,来判断是否存在该值
  • 参数处理

    • 不处理 当无需对参数进行预处理时选择此项

    • 小写处理

    • BASE64 解码 如果字符串非 BASE64 格式,则解码失败且返回为空

    • 长度计算

    • URL 解码

    • UNICODE 解码

    • 十六进制解码

    • 获取数据类型

      数据类型 处理后的返回值
      字符串 string
      空(不存在) nil
      数字 number
      数组 table
      布尔值 boolean
  • 匹配方式

    • 正则匹配

    • 前缀处理

    • 后缀处理

    • 包含

    • 不包含

    • 等于

    • 不等于

    • 数字大于

    • 数字小于

    • 数字等于

    • 数字不等于

    • 匹配内容

      输入要匹配的内容

    • 执行动作

      • 阻断请求

        默认返回 403,可通过 系统管理 -> WAF 处置页面配置 进行设置

      • 拒绝响应

        WAF 不响应请求,不返回任何信息

      • 观察模式

      • 人机识别

        可通过JXWAF 服务中心 (opens new window)对人机识别进行定制

        • 标准

          转为 CC 攻击研发的人机识别算法,无需交互

        • 滑块

          在标准基础上增加滑块认证

        • 图片验证码

          在标准基础上增加图片验证码认证

      • 共享字典写入

        选择已配置的共享字典 ,可以在 系统管理 -> 共享字典配置管理 中进行配置。字典值类型为数字时,第一次调用值为 1,每次写入增加 1。字典值类型为字符串时,写入字符串"true",如果已经存在,将刷新字典值过期时间。

      • 名单写入

        选择已配置的共享字典 ,可以在 系统管理 -> 名单配置管理 中进行配置。

        • 日志记录

          选择是否开启日志记录,默认为开启状态

# Web 白名单规则管理

规则配置相同部分请参考 系统管理 -> 防护规则管理 -> Web 防护规则管理,仅针对差异部分进行说明

  • 放行请求

    WAF 防护模块的执行顺序为:

    全局组件-> 全局名单->名单防护->流量白名单规则->流量防护规则->流量防护引擎->Web 白名单规则->Web 防护规则-> Web 防护引擎->组件防护 放行请求将直接结束 WAF 检测流程,直接跳过后续检测。在 Web 白名单规则阶段将不执行 Web 防护规则检测,Web 防护引擎和组件防护这三个阶段

  • 基础防护功能加白

    选择基础防护功能进行加白,支持多选

    • Web 防护引擎加白

    • Web 防护规则加白

  • Web 防护规则加白

    选择已配置的防护规则或规则组进行加白,支持多选

  • Web 防护引擎功能加白

    选择防护引擎功能加白,支持多选

# 流量防护规则管理

请参考 系统管理 -> 防护规则管理 -> Web 防护规则管理

# 流量防护白名单管理

规则配置相同部分请参考 系统管理 -> 防护规则管理 -> Web 防护规则管理,仅针对差异部分进行说明

  • 放行请求

    WAF 防护模块的执行顺序为:

    全局组件-> 全局名单->名单防护->流量白名单规则->流量防护规则->流量防护引擎->Web 白名单规则->Web 防护规则-> Web 防护引擎->组件防护

    放行请求将直接结束 WAF 检测流程,直接跳过后续检测。在流量白名单规则阶段将不执行流量防护规则,流量防护引擎,Web 白名单规则,Web 防护规则,Web 防护规则,组件防护。

  • 流量防护功能加白

    选择流量防护功能进行加白,支持多选

    • 流量防护引擎加白

    • 流量防护规则加白

  • 流量防护规则加白

    选择已配置的防护规则或规则组进行加白,支持多选

  • 流量防护引擎功能加白

    选择防护引擎功能加白,支持多选

# 防护组件管理

通过 服务中心 -> 防护组件更新 进行加载

# 名单配置管理

# 新建名单

  • 名单名称

    字母开头,字母或数字组合,仅支持_和-两种符号

  • 名单描述

  • 数量上限

    名单数量上线,当达到上线时,新增名单将写入失败

  • 过期时间(秒)

    名单过期时间,过期后将自动删除。

  • 匹配参数

    规则配置相同部分请参考 系统管理 -> 防护规则管理 -> Web 防护规则管理,仅针对差异部分进行说明

    • ctx_args

      用于获取通过组件提取的变量

    • string

      输入字符串,将直接进行拼接

  • 执行动作

    • 阻断请求

      默认返回 403,可通过 系统管理 -> WAF 处置页面配置 进行设置

    • 网络层阻断

      将通过 JXWAF 节点服务器上的 iptables+ipset 实现网络层阻断,具体用法请查看 经验分享 栏目

    • 拒绝响应

      WAF 不响应请求,不返回任何信息

  • 放行请求

    WAF 防护模块的执行顺序为:

    全局组件-> 全局名单->名单防护->流量白名单规则->流量防护规则->流量防护引擎->Web 白名单规则->Web 防护规则-> Web 防护引擎->组件防护 选择将跳过后序所有检测环节

  • 防护加白

    • 基础防护加白

    • 流量防护加白

  • 观察模式

  • 人机识别

    可通过JXWAF 服务中心 (opens new window)对人机识别进行定制

    • 标准

      转为 CC 攻击研发的人机识别算法,无需交互

    • 滑块

      在标准基础上增加滑块认证

    • 图片验证码

      在标准基础上增加图片验证码认证

  • 重复写入抑制(秒)

    当通过规则触发名单写入时,相同名单值在设置时间内将不会重复写入

# 添加条目

  • 条目名称

    新增名单条目的值,比如名单设置值为 IP,则输入: 1.1.1.1

# 共享字典配置管理

  • 字典名称

    字母开头,字母或数字组合,仅支持_和-两种符号

  • 字典描述

  • 匹配参数

    请参考 系统管理 -> 防护规则管理 -> Web 防护规则管理

  • 字典值类型

    • 数字

      第一次写入值为 1,每次写入增加 1

    • 字符串

      字符串初使值为字符串 true

  • 过期时间(秒)

    字典值过期时间

# 日志配置

  • 本地调试记录

    临时调试时开启,仅记录部分关键数据

  • 远程日志记录

    协议为 syslog,仅支持 TCP 协议传输 - 日志服务器 IP - 日志服务器端口

  • 全流量日志记录

    所有接收到的请求都记录日志

# 报表配置

  • JXLOG
  • 阿里云
  • 腾讯云

# WAF 处置页面配置

  • 域名未配置页面
    • HTTP 响应码
    • 响应内容
      • 无响应内容 无响应内容为只返回响应码,根据 nginx 默认配置进行处置
      • HTML 响应内容
  • Web 攻击拦截页面
  • 流量攻击拦截页面
  • 名单防护拦截页面

# WAF 异常处理配置

  • WAF 绕过对抗

    • 请求存在多个同名参数绕过

      当请求中存在多个同名参数时,WAF 默认会取第一个参数名的值,这种情况是常见的 WAF 绕过手法,开启防护可以阻断这种异常请求

    • 参数数量超过默认设置值

      默认情况下,WAF 会解析 200 个参数,当超过默认值,后续参数将不会解析,开启防护可以阻断这种异常请求

    • 请求 body 超过最大设置值

      获取 body 的最大值为 10m,超过将导致 waf 无法获取 body 进行检测,开启可以阻断这种异常请求

  • SSL 连接数耗尽

    可通过发起大量不存在域名的 SSL 连接来耗尽 JXWAF 节点服务器的请求连接数,通过判断单位时间内同一 IP 的连接数量,来判断是否存在攻击,发现攻击后将攻击 IP 写入名单,并在网络层进行阻断,名单需设置执行动作为网络层阻断才能达到防护效果。

    • 异常连接数量统计

    • 统计时间(秒)

    • 写入名单

# 服务中心

# 引擎更新

  • 官方引擎

    官方提供的防护引擎版本,用户可按需加载,加载后的可在 系统管理 ->防护引擎管理 进行管理。

  • 自定义引擎

    用户自定义配置的防护引擎,需要先在 系统管理 -> 基础配置 -> JXWAF 账号登陆 完成 JXWAF 账号登陆 设置。加载后的可在 系统管理 ->防护引擎管理 进行管理。