JXWAFJXWAF
首页
JXWAF
WebTDS
GitHub
首页
JXWAF
WebTDS
GitHub
  • WebTDS文档

    • 产品介绍
    • 部署教程
    • 操作指南
    • API调用
    • 策略仓库

操作指南

引擎配置说明

匹配参数

waf_log

  • host

请求的目标域名(Host头)。

  • uri

请求的路径部分(不包含查询参数)。

  • query_string

URL中的查询参数(?后的内容)。

  • cookie

请求中的Cookie头内容。

  • raw_body

原始请求体(如POST提交的数据)。

  • src_ip

客户端IP(可能经过代理处理后的IP)。

  • raw_src_ip

原始客户端IP(未经过代理处理的IP)。

  • raw_headers

完整的原始请求头(包括自定义头)。

  • status

HTTP响应状态码(如200、403)。

  • raw_resp_headers

完整的原始响应头。

  • raw_resp_body

原始响应体内容。

  • user_agent

客户端的User-Agent头。

  • method

HTTP请求方法(如GET、POST等)。

  • request_uri

完整的原始请求URI(包含路径和查询参数)。

  • version

HTTP协议版本(如HTTP/1.1)。

  • scheme

请求协议(http或https)。

  • ssl_protocol

使用的SSL/TLS协议版本(如TLSv1.2)。

  • ssl_cipher

加密套件名称(如ECDHE-RSA-AES256-GCM-SHA384)。

  • request_time

请求时间

  • process_time

请求总耗时(从接收到客户端请求到完成响应)。

  • jxwaf_devid

设备标识符。

  • upstream_addr

后端服务器地址(如192.168.1.1:8080)。

  • upstream_response_time

后端服务器(Upstream)处理请求的时间。

  • upstream_status

后端服务器返回的原始状态码(可能不同于WAF响应)。

  • group_name

网站分组

  • request_uuid

当前请求的唯一ID

  • waf_node_uuid

节点UUID

  • iso_code

客户端IP所属国家的ISO代码(如CN、US)。

  • city

客户端IP所属城市(如Beijing)。

  • waf_module

WAF防护模块。

  • waf_policy

WAF防护策略。

  • waf_action

WAF执行的动作

  • waf_extra

附加信息(如执行动作详情)。

cookie_table

获取指定的cookie值

query_string_table

获取指定的query_string参数值,例如 query_string_table:aaa , 可以获取 a=1&aaa=2 中aaa的值,值为 2

body_table

获取指定的请求体参数的值

json_body_table

解析JSON请求体后的结构化数据,例如 json_body_table:user_id ,可以获取 {"user_id":"xxx"} 的值

ctx

获取组件中用户自定义的参数值

string

返回输入的字符串

policy_args

获取 检测策略配置 -> 策略参数配置 中 指定参数的配置内容,通过配置内容获取具体的参数值

global_dict

根据全局字典的配置,获取对应的字典值

inner_dict

根据内部字典的配置,获取对应的字典值

base_component_result

获取基础组件的匹配结果,可以选择匹配方式中的 参数存在判断 ,来确定是否匹配成功

name_list_result

获取名单匹配的匹配结果,可以选择匹配方式中的 参数存在判断 ,来确定是否匹配成功

rule_result

获取规则匹配的匹配结果,可以选择匹配方式中的 参数存在判断 ,来确定是否匹配成功

analysis_component_result

获取分析组件的匹配结果,可以选择匹配方式中的 参数存在判断 ,来确定是否匹配成功

参数处理

不处理

不进行处理,获取数据为 "a",则返回"a"

URL解码

获取数据为"test%3Da%26test2%3Db",则返回"test=a&test2=b"

长度计算

获取数据为"AbcdEf",则返回“6”

小写处理

统一转为小写,获取数据为"AbcdEf",则返回“abcdef”

BASE64解码

获取数据为"QWJjZEVm",则返回"AbcdEf",如果解码失败,则返回 nil

UNICODE解码

获取数据为"\u0073\u0073\u0073\u0061\u0061",则返回"sssaa"

十六进制解码

获取数据为"\x61\x61\x61\x62\x62\x62",则返回"aaabbb"

匹配方式

参数存在判断

判断参数是否存在,只有两个选项,参数存在 和 参数不存在

正则匹配

通过正则表达式进行匹配,需符合PCRE的语法要求

前缀匹配

检查字符串开头

后缀匹配

检查字符串结尾

包含

检查是否包含子串

不包含

检查是否包不含子串

等于

完全匹配字符串

不等于

不匹配字符串

数字大于

参数数值与输入数值对比大于

数字小于

参数数值与输入数值对比小于

数字等于

参数数值与输入数值对比等于

数字不等于

参数数值与输入数值对比不等于

数字大于策略参数

参数数值大于指定的策略参数,系统将通过策略参数名称获取对应的策略参数配置,通过配置内容获取具体的参数值

数字小于策略参数

参数数值小于指定的策略参数,系统将通过策略参数名称获取对应的策略参数配置,通过配置内容获取具体的参数值

数字等于策略参数

参数数值等于指定的策略参数,系统将通过策略参数名称获取对应的策略参数配置,通过配置内容获取具体的参数值

数字不等于策略参数

参数数值不等于指定的策略参数,系统将通过策略参数名称获取对应的策略参数配置,通过配置内容获取具体的参数值

字典值与当前结果值相同

当前字典配置获取的数据,是否与字典键存储的字典值相同

字典值与当前结果值不同

当前字典配置获取的数据,是否与字典键存储的字典值不同

字典值与当前结果值相差大于

当前字典配置获取的数据,是否与大于字典键存储的字典值

字典值与当前结果值相差小于

当前字典配置获取的数据,是否与小于字典键存储的字典值

字典值与当前结果值相差等于

当前字典配置获取的数据,是否与等于字典键存储的字典值

字典值与当前结果值相差不等于

当前字典配置获取的数据,是否与不等于字典键存储的字典值

执行动作

检测成功

检测策略匹配成功,执行检测策略中 告警配置 和 处置配置

内部字典写入

根据内部字典配置,写入字典键和字典值

内部字典删除

根据内部字典配置,删除对应的字典记录

全局字典写入

根据全局字典配置,写入字典键和字典值

全局字典删除

根据全局字典配置,删除对应的字典记录

观察

仅进行日志记录,不执行实际动作

控制台功能说明

线上环境

  • 加载操作

点击 加载 按钮 ,选择需要加载到线上环境的配置,配置需要加载到线上环境才会在节点上生效。

  • 优先级调整

配置执行顺序从上到下,可以点击 优先级调整 按钮,对配置执行优先级进行调整

事件运营

  • 查看详情

查看事件告警的详细信息,其中 ctx_args 为用户自定义参数,可以通过 配置管理 -> 策略告警配置 -> ctx参数记录 传入自定义参数

  • 确认

确认告警事件

  • 驳回

驳回告警事件

  • 加白

对告警进行加白处理,可以通过 配置管理 -> 策略告警配置 -> 加白配置 设置加白执行的动作

  • 处置

对告警进行处置处理,可以通过 配置管理 -> 策略告警配置 -> 处置配置 设置处置执行的动作

行为轨迹

  • 查看行为轨迹

查看攻击实体的行为轨迹

  • 事件运营

跳转到事件运营,查看当前攻击实体的所有告警事件

日志查询

查看原始日志,包括各个线上检测配置的匹配情况,检测策略开启调试模式后,可以查看各个字典的变化情况

基础组件配置

  • 基础组件名称

  • 基础组件描述

  • 组件代码

需要将lua代码base64编码后输入

  • 组件配置

json格式,将通过 conf_data 传入组件

模版如下

local _M = {}
local cjson = require "cjson.safe"

function _M.check(conf_data)
  if conf_data == nil then
    return
  end
  return
end

return _M

名单匹配配置

  • 名单名称

  • 名单描述

  • 过期时间(秒)

默认永久生效,可自定义过期时间,当超过过期时间,会自动删除过期的条目

  • 匹配参数

支持多个参数组合拼接,当某一参数不存在时,将导致匹配失败

规则匹配配置

  • 规则名称
  • 规则描述
  • 规则匹配
    • 匹配参数
    • 参数处理
    • 匹配方式
    • 匹配内容

详细配置内容,查看 引擎配置说明

分析组件配置

  • 分析组件名称

  • 分析组件描述

  • 组件代码

需要将lua代码base64编码后输入

  • 组件配置

json格式,将通过 conf_data 传入组件

模版如下,相比基础组件,可以通过 name_list_item_data 传入名单匹配配置中的条目数据

local _M = {}
local cjson = require "cjson.safe"

function _M.check(conf_data,name_list_item_data)
  if conf_data == nil then
    return
  end
  local test_name_list_data = name_list_item_data['test_name_list']
  return
end

return _M

检测策略配置

新增检测策略

  • 检测策略名称
  • 检测策略描述
  • 白名单配置
    • 名单配置

      名单匹配成功,自动跳过检测策略

    • 规则配置

      规则匹配成功,自动跳过检测策略

  • 告警配置

获取 配置管理 -> 策略告警配置 的配置信息,当检测策略检测成功后,根据配置信息执行相应的告警操作

  • 处置配置
    • 处置接口

      获取 配置管理 -> 处置接口配置 的配置信息,当检测策略检测成功后,根据配置信息调用相应的接口

    • 处置组件

      获取 配置管理 -> 处置组件配置 的配置信息,当检测策略检测成功后,根据配置信息执行相应的组件代码

  • 内部字典过期时间(秒)

内部字典统一的过期时间,对所有内部字典配置生效,过期后字典键将自动删除

  • 策略参数配置

匹配参数在策略内的映射,方便统一管理, 例如可以设置 count 为 string:100 ,在策略规则中 引用 policy_args:count 即可获得100,如果后续需要变更阀值,在 检测策略 里调整即可,无需修改策略规则

  • 调试模式

开启调试模式后,原始日志将各个字典的变化情况,可用于调试策略和排查故障

新增策略规则

  • 策略名称
  • 规则名称
  • 规则详情
  • 规则匹配
    • 匹配参数
    • 参数处理
    • 匹配方式
    • 匹配内容 执行动作

详细配置内容,查看 引擎配置说明

加载策略仓库配置

  • 仓库地址

输入策略仓库配置地址,例如 jxwaf/test

  • 授权码

可选项,部分检测策略需要授权才可以使用

  • 强行加载

请谨慎开启,当存在相同名称的配置时,开启强行加载,将删除旧配置,加载新配置。需要确认是否会对线上环境造成影响

全局字典配置

  • 全局字典名称
  • 全局字典详情
  • 字典键参数

支持多个参数组合拼接,当某一参数不存在时,将导致字典失效

  • 字典值类型
    • 数字

    数字初使值固定为0,每次执行动作调用增加1

    • 字符串

    字符串值固定为字符串true

    • 自定义字符串

    支持多个参数组合拼接,当某一参数不存在时,将导致字典失效

  • 过期时间(秒)

全局字典的过期时间,过期后字典键将自动删除

策略告警配置

  • 告警名称
  • 告警描述
  • 攻击实体

触发告警的实体对象类型,如IP地址、用户账号、设备ID等。

  • 风险类型

告警对应的威胁分类,用于区分攻击类型。

  • 事件运营

开启后,告警信息将同步到控制台,可以在运营中心对告警进行运营

  • 告警通知

开启后,可以选择通过钉钉,企业微信或者飞书发生告警信息

  • 加白配置

对告警进行加白处理,可以选择名单写入或者接口调用,支持多个配置

  • 处置配置

对告警进行处置处理,可以选择名单写入或者接口调用,支持多个配置

  • ctx参数记录

用于记录组件中的用户自定义参数,参数内容需要是字符串类型

  • 策略告警抑制
    • 抑制参数配置

    支持多个参数组合拼接,当某一参数不存在时,将导致抑制失败

    • 抑制时间(秒)

    相同时间内,相同的抑制参数值只会执行一次告警操作

处置接口配置

  • API名称
  • API描述
  • API地址
  • API参数配置

发送的请求内容为JSON格式,支持多个参数组合,将根据参数配置获取对应的参数值,之后序列化为JSON格式的请求内容

  • 处置接口调用抑制
    • 抑制参数配置

    支持多个参数组合拼接,当某一参数不存在时,将导致抑制失败

    • 抑制时间(秒)

    相同时间内,相同的抑制参数值只会执行一次调用API操作

处置组件配置

  • 组件名称

  • 组件描述

  • 组件代码

需要将lua代码base64编码后输入

  • 组件配置

json格式,将通过 conf_data 传入组件

  • 处置组件调用抑制
    • 抑制参数配置

    支持多个参数组合拼接,当某一参数不存在时,将导致抑制失败

    • 抑制时间(秒)

    相同时间内,相同的抑制参数值只会执行一次调用API操作

模版如下

local _M = {}
local cjson = require "cjson.safe"

function _M.check(conf_data)
  if conf_data == nil then
    return
  end
  return
end

return _M

基础信息

查看或者修改 wtds_auth 的值

控制台配置

  • waf_log参数自定义配置

用于修改匹配参数中waf_log参数的内容。使用JXWAF的用户无需修改该选项,默认关闭即可

日志传输配置

  • 本地调试

临时调试时开启,仅对处置请求生效,仅记录部分关键数据

  • 远程日志记录

通过TCP传输日志数据,日志数据为json格式

  • 日志服务器地址

  • 日志服务器端口

日志查询配置

  • 日志查询配置

  • ClickHouse服务器地址

  • ClickHouse服务器端口

端口默认为9004,即ClickHouse的MySQL兼容查询端口

  • 用户名

  • 密码

  • 数据库名称

最近更新:: 2025/4/14 21:40
Contributors: chenjc, jiongrizi, root
Prev
部署教程
Next
API调用