# 使用
# 防护管理
# 网站管理
# 添加网站
- 域名/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 账号登陆
JXWAF 账号 TOKEN
登陆 JXWAF 服务中心 (opens new window)获取,用于控制台服务中心同步 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 账号登陆 设置。加载后的可在 系统管理 ->防护引擎管理 进行管理。