Web应用防火墙(WAF)测评

Web应用防火墙(WAF)三级等保现场测评取证命令单:按 GB/T 22239-2019 安全区域边界与安全计算环境控制点编排,覆盖硬件 WAF、软件 WAF 与云 WAF 的部署形态、身份鉴别、访问控制、安全审计、入侵防范(OWASP 规则组与防护模式)、数据完整性与保密性、备份恢复、剩余信息保护与个人信息保护,给出控制台取证项、命令行核验命令、判定要点与高风险口径,适用于等级测评现场使用。

定位:Web应用防火墙(WAF)三级等保现场测评取证命令单,按 GB/T 22239-2019 安全区域边界(8.1.2)与安全计算环境(8.1.4)控制点分节组织核查方法、核查命令、判定要点与取证要求。 适用范围:硬件 WAF(透明串接/反向代理串联部署)、软件 WAF(ModSecurity、雷池等部署于 Linux 主机的引擎型 WAF)与云 WAF(CNAME 接入/云产品接入);三类形态的控制台核查项在本文通用,差异项单列说明。 配套测评:27、等保2.0-绿盟网络入侵检测系统(NIDS)(同板块边界检测类设备)、8、等保2.0绿盟堡垒机测评日志审计系统测评;配套加固:17、加固方案总纲;高风险口径:22、高风险判定指引与加固对照表

使用说明:

  • 本文以设备 Web 控制台核查为主、命令行取证为辅:硬件 WAF 各厂商 CLI 互不兼容,本文不收录厂商私有 CLI 命令;命令行命令均从运维测试机或软件 WAF 所在 Linux 主机执行,回显连同命令行一起截图。
  • 每个控制点小节按「对应控制点 → 判定要点 → 取证要求 → 核查命令/核查方法 → 备注 → 预期证据」编排;涉及实测验证(改口令、测试 payload、SNMP 探测)的操作必须先取得被测单位书面授权,并在测试后恢复原状。
  • 命令不存在或输出与示例差异较大时,先确认产品形态(硬件/软件/云)与版本,再换用等效核查方法或转入配置文件、管理控制台取证,不得据命令缺失直接判不符合
  • 示例输出中的地址、域名、账户均为演示值(如 192.168.10.5、demo.local),现场须替换为真实取证结果并对涉及个人信息与内网管理地址的内容脱敏后再入报告。

不适用标识说明:

  • 使用 【不适用】 明确标记现场可判定为不适用的控制点。
  • 判定依据采用 GB/T 28448-2019"按测评对象实际功能、是否直接处理数据、是否具备该类安全机制判定"的原则;WAF 兼具"区域边界防护手段"与"被测设备"双重身份,控制点归属先定性再取证,不适用须在报告中写明对象边界理由。

测评对象定位与双重身份

WAF 在三级等保现场测评中有双重身份,取证前先按部署与用途定性,避免把区域边界证据记到安全计算环境名下(或反之):

视角归属测评侧重
作为边界防护手段安全区域边界(8.1.2)为被测系统提供的攻击检测与阻断(8.1.2.3)、基于应用协议和应用内容的访问控制(8.1.2.2 d))、恶意代码网络侧检测(8.1.2.4)、边界侧审计(8.1.2.5)
作为被测设备安全计算环境(8.1.4)设备自身管理面的身份鉴别、访问控制、安全审计、数据完整性与保密性、备份恢复、剩余信息保护、个人信息保护

基础信息与部署形态

对应控制点:非独立控制点(测评对象与资产确认);部署形态与冗余情况佐证 GB/T 22239-2019 8.1.2.1 边界防护 a)(跨越边界的访问和数据流通过受控接口通信)、8.1.3.2 网络架构 e)(关键设备硬件冗余)

判定要点:型号/版本、部署模式、HA 状态、保护对象清单四项均可取证且与网络架构图一致 → 符合;部署模式与台账不符、保护对象清单存在漏项(被测单位 Web 系统未全部纳入防护)→ 部分符合;设备实际未接入业务路径(有设备无引流)→ 该设备不能作为安全区域边界的防护证据。

取证要求:系统概览/关于页截图(型号、软件版本、特征库版本)、部署拓扑图与接口连接表、HA 状态页截图、保护对象清单与被测单位 Web 系统清单比对表、云 WAF 补 CNAME 解析记录截图。

A. 设备版本与型号

核查方法:登录 WAF 管理控制台,进入「系统概览 / 关于 / 系统信息」页面,记录产品型号、硬件规格、软件版本号、特征库/规则库版本与更新日期。

核查命令(软件 WAF 引擎所在主机):

# ModSecurity 引擎版本(官方最新:v2 分支 2.9.x,v3 分支 3.0.x)
grep -i -E "ModSecurity" /var/log/nginx/error.log 2>/dev/null | head -n 3
# 查看引擎加载与规则目录
grep -rE "Include.*crs" /etc/nginx/modsecurity/ 2>/dev/null | head -n 5
  • 备注:版本信息用于判断是否停服(EOL)与特征库更新能力,与入侵防范一节联动。
  • 预期证据:系统信息页截图、软件版本回显截图。
示例输出(节选)
控制台「系统概览」(节选,演示值)
设备型号:WAF-DEMO-2100
软件版本:V6.0R4 build 20260612
特征库版本:2026-08-28(自动更新,每日 03:00)
系统时间:2026-09-03 10:02:51(NTP 同步:192.168.10.100)

B. 部署模式与接口连接

核查方法:对照拓扑图现场查看接口连接:透明串接模式核查 WAN/LAN 口与交换机对接端口;反向代理模式核查代理监听地址与源站地址;旁路镜像模式核查镜像/分光来源端口。核对每台被测业务服务器与 WAF 的连接关系。

  • 备注:透明串接模式还应核查接口的 BYPASS(硬旁路)功能状态——设备断电/故障时业务是否直通,避免单点故障。
  • 预期证据:拓扑图(标注 WAF 接入点)、接口连接表照片、BYPASS 功能说明或配置截图。
示例输出(节选)
部署模式核查记录(演示值)
部署模式:透明串接(三层透明)
WAN 口:GE0/1 ←→ 核心交换机 GE1/0/24(上行)
LAN 口:GE0/2 ←→ 服务器区交换机 GE1/0/1(下行,连接 Web 前置)
BYPASS:已启用(断电直通,软件旁路开关:关闭)
镜像口:无(未启用旁路检测)

C. HA 与硬件冗余

核查方法:核查双机热备/主备状态页(心跳状态、配置同步状态、最近一次主备切换时间);索取 HA 切换演练记录;串联部署单机运行时核查 BYPASS 硬旁路作为补偿。

判定要点:串联部署且已配置双机热备、同步正常 → 符合;单机串联但 BYPASS 有效且有切换预案 → 部分符合;单机串联且无任何冗余或旁路补偿 → 部分符合并给出整改建议。

  • 预期证据:HA 状态页截图、切换演练记录、BYPASS 配置截图。

D. 保护对象清单比对

核查方法:从 WAF 控制台导出「防护对象 / 防护站点 / 域名清单」,与被测单位备案的系统清单(定级对象中的 Web 应用)逐项比对;对清单外新上线的 Web 系统核查是否补录。

核查命令(核对云 WAF 域名解析引流):

# 云 WAF(CNAME 接入):业务域名应解析至 WAF 分配的 CNAME 地址
dig www.demo.local CNAME +short
nslookup -type=cname www.demo.local
  • 备注:清单内存在未被解析引流/未接入的域名,属漏保护,判部分符合;漏保护对象涉及重要业务系统的,在报告中单列整改建议。
  • 预期证据:WAF 防护对象清单截图(导出文件)、系统清单比对表、DNS 解析回显截图。
示例输出(节选)
dig www.demo.local CNAME +short
www.demo.local.w.kunlunslb.com.        #(演示值:已按云 WAF 要求 CNAME 接入)
;demo-mail.local 未返回 CNAME —— 清单比对:该系统未接入 WAF(漏保护项)

E. 云 WAF 差异与核查项对应

核查方法:云 WAF 无本地设备,控制台核查项按以下对应关系取证:

核查项硬件/软件 WAF云 WAF
版本/型号系统概览/关于页控制台实例信息、版本公告页
部署形态串接接口/代理监听CNAME 解析记录、云产品接入引流端口
HA/冗余双机热备状态页云侧多节点容灾,取服务商 SLA 与实例规格截图
保护对象防护对象/站点清单域名/防护对象清单(控制台导出)
日志外送Syslog 服务器配置云日志服务对接(如华为云 LTS,可设 1~365 天留存)
策略备份配置文件导出防护策略导出/规则模板
  • 备注:接入方式与原理以官方文档为准,如阿里云 WAF 3.0 官方文档明确支持"云产品接入、CNAME 接入和混合云接入"三种方式,CNAME 接入"采用反向代理的方式,通过添加域名并将域名的 DNS 解析指向 WAF 的 CNAME 地址"实现引流。
  • 预期证据:云控制台实例与域名清单截图、解析记录截图、SLA 材料复印件。

身份鉴别

对应控制点:GB/T 22239-2019 8.1.4.1 身份鉴别 a)~d)(WAF 自身管理面按安全计算环境-安全设备测评)

判定要点:管理账户唯一且非默认口令、口令复杂度与定期更换已配置、失败处理与会话超时已启用、远程管理走加密通道 → 符合;仅满足其中一部分(如仅改口令但无复杂度/无锁定/无超时)→ 部分符合;沿用出厂默认口令、管理台可 HTTP 明文登录 → 不符合(高风险)。

取证要求:账户清单与口令策略配置截图、错误口令登录锁定实测记录、会话超时实测记录、双因素配置页或未启用截图、SNMP 团体字核查记录、HTTPS 强制跳转实测记录。

A. 默认账户与默认口令

核查方法:在「用户管理」导出账户清单,核查 admin 等出厂账户的当前名称与启用状态;访谈确认口令已修改后,在授权前提下用出厂默认口令尝试登录实测,验证已失效。

判定标准:默认账户已重命名或口令已改为强口令(实测默认口令不可登录)→ 符合;默认口令仍可登录 → 不符合(高风险)。

  • 预期证据:账户清单截图、默认口令登录失败实测截图、口令变更审批记录。

B. 口令复杂度、失败锁定与会话超时

核查方法:在「系统配置 / 密码策略」核对口令长度、字符类别、有效期三项;核对登录失败次数限制、锁定时长、空闲会话超时;现场分别用弱口令设置、错误口令连续登录、登录后静置三种方式实测。

核查命令(软件 WAF 主机辅助核查口令策略落库情况,演示值):

# 以常见部署为例:核查引擎管理面口令策略配置项是否存在(按实际组件调整路径)
grep -rE -i "password.*(minlength|complexity|expire)" /opt/waf/conf/ 2>/dev/null | head -n 5
  • 预期证据:口令策略配置页截图、弱口令被拒绝与账户锁定提示截图、会话超时自动退出截图。
示例输出(节选)
控制台「系统配置/密码策略」(节选,演示值)
口令最小长度:12 位
复杂度要求:大写字母 + 小写字母 + 数字 + 特殊字符,至少包含 3 类
口令有效期:90 天
登录失败锁定:5 次失败锁定 30 分钟
会话空闲超时:10 分钟自动退出

C. 双因素鉴别

核查方法:核查管理台登录是否启用第二因素(短信验证码 / UKey / OTP 动态令牌 / 证书),现场演示登录;未启用时核查是否经由堡垒机或统一认证平台在外围实现组合鉴别。

判定标准:采用「口令 + 基于密码技术的第二因素(UKey/OTP/证书)」→ 符合;仅「口令 + 短信验证码」(第二因素非密码技术)或经堡垒机承载 → 部分符合;仅用户名口令单因素 → 不符合(三级系统常见判定,参照 NIDS 文章口径)。

  • 预期证据:双因素配置页截图或登录演示记录、堡垒机对接说明、访谈纪要。

D. 管理协议加密与 SNMP 团体字

核查命令(从测试机执行,须授权):

# 1) 管理台应仅提供 HTTPS:HTTP 管理地址应不可达或强制跳转
curl -sI --connect-timeout 5 http://192.168.10.5/ | head -n 5
# 2) HTTPS 端口协议协商(示例管理端口 8443,-brief 输出协议版本与套件)
echo | openssl s_client -brief -connect 192.168.10.5:8443 2>/dev/null | head -n 2
# 3) SNMP 默认团体字实测:改用 public/private 探测应超时
snmpwalk -v 2c -c public 192.168.10.5 system 2>&1 | head -n 3
  • 备注:SNMP 团体字默认值(public/private)必须修改;若设备未启用 SNMP 服务,记录"未启用"作为证据。TLS 协商结果应无 SSLv3/TLS1.0 等弱版本(详见数据完整性与保密性两节)。
  • 预期证据:HTTP 访问实测截图、TLS 协商回显、SNMP 探测超时回显、SNMP 配置页截图。
示例输出(节选)
curl -sI http://192.168.10.5/
curl: (7) Failed to connect to 192.168.10.5 port 80   #(管理台未开放 HTTP,仅 8443/HTTPS)

snmpwalk -v 2c -c public 192.168.10.5 system
Timeout                                               #(默认团体字已失效,实测通过)

访问控制

对应控制点:GB/T 22239-2019 8.1.4.2 访问控制 a)~g)(设备自身管理面);作为边界防护手段同时承担 8.1.2.2 访问控制 a)~d)——其中 d)“根据会话状态信息对进出网络的数据流进行基于应用协议和应用内容的访问控制"正是 WAF 的核心能力

判定要点:管理来源受 ACL 限制、角色分立(系统管理员/审计管理员/安全管理员)、默认账户已改名或禁用、边界侧防护策略(黑白名单/区域封禁等)已按需配置 → 符合;有账户体系但权限未最小化、管理限制仅靠网络侧单边实现 → 部分符合;管理端口对全网开放、仅单一超级管理员统管 → 不符合(高风险)。

取证要求:管理端口 ACL/绑定地址配置截图、账户—角色—人员对照表、默认账户处置记录、边界侧策略模块启用清单截图、实测越权记录。

A. 管理端口来源限制

核查方法:核查 WAF 自身「管理员登录地址限制 / 可信主机」配置;同时核查网络侧限制(交换机 ACL、防火墙策略仅放行堡垒机/运维网段访问管理端口)。软件 WAF 在主机侧核查防火墙规则。

核查命令(软件 WAF 主机 / 网络侧核查,演示值):

# 主机侧:iptables / firewalld 仅放行运维网段访问管理端口
iptables -L INPUT -n --line-numbers | head -n 20
firewall-cmd --list-all 2>/dev/null
# 主机侧:管理端口实际监听地址
ss -lntp | grep -E ":8443|:443" | head -n 5
  • 判定标准:设备侧与网络侧至少一侧实现来源限制且实测非授权地址不可达 → 符合;仅依赖网络侧、设备侧未配置 → 部分符合;两侧均无限制 → 不符合。
  • 预期证据:可信主机/登录地址限制截图、ACL/防火墙策略截图、非授权地址登录被拒实测记录。
示例输出(节选)
ss -lntp | grep -E ":8443|:443"
LISTEN 0 128 192.168.10.5:8443  ...  users:(("waf-mgmt",pid=1823))
iptables -L INPUT -n --line-numbers(节选)
1    ACCEPT     tcp  --  192.168.20.0/24  0.0.0.0/0  tcp dpt:8443   #(仅运维网段可访)
2  DROP    tcp -- 0.0.0.0/0        0.0.0.0/0  tcp dpt:8443

B. 角色分立与默认账户处置

核查方法:在「用户管理 / 角色管理」核对系统管理员、审计管理员、安全管理员三类角色是否启用并分人持有;实测越权(审计管理员尝试修改防护策略应被拒绝);核查默认账户是否改名/禁用、多余与过期账户是否清理。

  • 判定标准:三员角色齐备、分人持有、互不兼任,默认账户已处置 → 符合;角色存在但实际同一人兼任 → 部分符合;仅单一 admin 统管 → 不符合。
  • 预期证据:账户与角色对照表、越权实测截图、账户停用审批记录、访谈纪要。

C. 边界侧访问控制策略(WAF 防护功能)

核查方法:在「防护配置」核查边界侧策略模块的启用与规则设置:IP 黑白名单、区域封禁、自定义规则(五元组/URL/UA)、扫描防护等;抽查 2~3 条策略条目与业务需求的一致性;核查默认放行/拒绝原则的说明。

  • 备注:以上模块名称参照阿里云 WAF 3.0 官方文档防护配置清单(IP 黑名单、自定义规则、扫描防护、CC 防护、区域封禁、网页防篡改、信息泄露防护、威胁情报等),各厂商命名有差异,按设备实际功能页取证。
  • 预期证据:防护策略清单与启用状态截图、策略条目样例、策略变更审批记录。

安全审计

对应控制点:GB/T 22239-2019 8.1.4.3 安全审计 a)~d)(设备自身);8.1.2.5 安全审计 a)~d)(作为边界节点承担的网络边界审计);《网络安全法》第二十一条第(三)项"采取监测、记录网络运行状态、网络安全事件的技术措施,并按照规定留存相关的网络日志不少于六个月”

判定要点:防护日志、访问日志与管理员操作日志三类齐备,留存不少于 6 个月且外送至日志审计系统 → 符合;仅记录部分日志、本地留存不足 6 个月但已外送集中存储、或告警策略未启用 → 部分符合;审计未启用或普通管理员可删改审计记录 → 不符合(高风险)。

取证要求:日志类型与字段样例截图、Syslog/日志服务外送配置截图、日志审计系统侧接收记录、最早日志时间戳(证明留存时长)、日志导出与备份记录、非审计管理员越权删除实测记录。

A. 审计覆盖与日志类型

核查方法:区分三类日志逐一取证:①防护日志(攻击事件:命中规则、攻击类型、源/目的 IP、防护动作);②访问日志(全量 HTTP 请求);③管理员操作日志(登录/注销、策略变更、配置修改)。抽取最近一条管理员操作记录核对时间、用户、事件类型、结果四要素;核查设备与 NTP 时钟同步状态。

  • 备注:与 NIDS 一致的取证口径——攻击/防护日志不能替代管理员操作审计,两类都要截图。
  • 预期证据:三类日志样例截图(含时间、用户、事件类型、结果)、NTP 同步状态截图。
示例输出(节选)
控制台「日志中心 > 攻击防护日志」(节选,演示值)
时间:2026-09-02 14:21:37  攻击类型:SQL注入(规则 942100 类语义)
源IP:203.0.113.77  目标:demo.local /api/product  动作:拦截  等级:高危
控制台「系统管理 > 操作日志」(节选)
2026-09-01 09:12:04  audit_admin  查询日志  成功  来源IP:192.168.20.31
2026-08-30 16:40:11  sec_admin    修改CC防护阈值  成功  来源IP:192.168.20.31

B. 日志留存与外送

核查方法:核查「日志外送 / Syslog 服务器」配置(服务器地址、端口、协议、启用的日志类型),并在日志审计系统侧确认实际接收;查询 WAF 本地最早日志时间戳核算留存时长;云 WAF 核查日志服务对接与留存天数设置。

核查命令(软件 WAF 主机核查日志外送配置,演示值):

# rsyslog 远程外送配置(@=UDP,@@=TCP)
grep -rE "^[@*].*@(192\.168|10\.|172\.)" /etc/rsyslog.conf /etc/rsyslog.d/ 2>/dev/null | head -n 5
# 本地访问日志样例:核对是否记录攻击字段
tail -n 5 /var/log/waf/access.log 2>/dev/null
  • 判定标准:留存 ≥6 个月(本地或集中存储任一满足即可,须证据闭环)→ 符合;留存不足但已外送且集中侧满足 → 符合(以集中侧证据为准);本地不足且无外送 → 不符合(高风险)。
  • 预期证据:Syslog 配置截图、日志审计系统接收查询截图、最早日志时间戳截图、云 WAF 日志服务配置与留存天数截图。

C. 告警策略与日志导出备份

核查方法:核查告警策略启用状态与通知方式(邮件/短信/Syslog/平台联动),抽查近期告警的送达记录;核查日志导出功能与定期备份任务配置、备份产物清单。

  • 预期证据:告警策略配置截图、告警通知送达记录、日志备份任务与产物截图。

D. 审计记录保护与审计账户分立

核查方法:用非审计管理员账户尝试删除/清空日志,验证被拒绝;核查审计管理员角色独立于系统管理员;核查日志文件/存储的防篡改能力(外送即视为异地副本,作为补偿证据)。

  • 判定标准:非审计管理员无法删改审计记录且审计账户独立 → 符合;仅能通过删除日志操作受限、无独立审计账户 → 部分符合;任意管理员可清空日志 → 不符合(高风险)。
  • 预期证据:越权删除实测截图、审计管理员角色配置截图、日志外送补偿说明。

入侵防范

对应控制点:GB/T 22239-2019 8.1.2.3 入侵防范 a)~d)(关键网络节点处检测、防止或限制从外部/内部发起的网络攻击行为;对网络行为特别是新型攻击行为进行分析;记录攻击源 IP、攻击类型、攻击目标、攻击时间并在严重入侵事件时报警);8.1.2.4 恶意代码和垃圾信息防范 a)(网络侧恶意代码检测——WAF 侧重 WebShell 上传/传布检测与防护机制升级更新);设备本体 8.1.4.4 e)(发现并修补自身已知漏洞)

判定要点:防护功能清单全面开启、特征库/规则库按时更新、防护模式为阻断(或告警但有等效阻断补偿)、规则调优有审批、自身漏洞及时修补 → 符合;只告警不阻断、规则库长期未更新、防护清单存在明显缺项 → 部分符合;防护未启用或业务流量实际未经过 WAF → 不符合。

取证要求:防护模块与规则组启用清单截图、特征库版本与更新记录截图、防护模式配置截图、误报白名单审批记录、授权实测拦截记录、漏洞扫描与补丁升级记录。

A. 防护功能开启清单

核查方法:在「防护配置」逐模块核查启用状态:OWASP Top 10 攻击规则组(SQL 注入、XSS、命令/代码执行、文件包含、WebShell 上传检测)、CC 攻击防护、扫描器识别、网页防篡改、威胁情报等;记录默认动作与规则等级。

核查命令(软件 WAF:ModSecurity + OWASP Core Rule Set 引擎核查,演示值):

# CRS 规则组:官方规则文件编号 920~955(941=XSS、942=SQLi、930=LFI、932=RCE、955=WebShell 等)
ls /etc/nginx/modsecurity/crs/rules/ 2>/dev/null | head -n 12
# CRS 采用异常评分:入站/出站阈值(官方默认 5/4)与偏执等级(PL1~PL4,官方默认 1)
grep -rE "setvar:tx\.(inbound|outbound)_anomaly_score_threshold" /etc/nginx/modsecurity/crs/crs-setup.conf 2>/dev/null
grep -rE "setvar:tx\.(blocking_|detection_)?paranoia_level" /etc/nginx/modsecurity/crs/crs-setup.conf 2>/dev/null
  • 备注:OWASP CRS 官方文档对偏执等级(paranoia level)的表述为"paranoia level (PL) 定义了 CRS 的激进程度",PL 越高检测覆盖越广、误报越多;官方注释明确"A paranoia level of 1 is default"。国产 WAF 多用自研规则体系并以"规则等级"划分(如阿里云 WAF 3.0 提供"超严格、严格、中等和宽松"四种规则等级,中等与宽松默认开启),按设备实际分级取证即可,不必套用 CRS 编号。
  • 预期证据:防护模块启用清单截图、规则组/规则等级配置截图、CRS 配置回显(软件 WAF)。
示例输出(节选)
ls /etc/nginx/modsecurity/crs/rules/(节选)
REQUEST-920-PROTOCOL-ENFORCEMENT.conf
REQUEST-930-APPLICATION-ATTACK-LFI.conf
REQUEST-932-APPLICATION-ATTACK-RCE.conf
REQUEST-941-APPLICATION-ATTACK-XSS.conf
REQUEST-942-APPLICATION-ATTACK-SQLI.conf
RESPONSE-955-WEB-SHELLS.conf

grep -rE "setvar:tx\.(inbound|outbound)_anomaly_score_threshold" .../crs-setup.conf
setvar:tx.inbound_anomaly_score_threshold=5
setvar:tx.outbound_anomaly_score_threshold=4

B. 特征库/规则库更新

核查方法:核查特征库/规则库当前版本、最近更新日期与自动更新任务;对照厂商安全公告确认无长期停更;长期未更新(超过 3 个月)判部分符合并写明"检测能力可能滞后于新出现攻击手法"。

  • 预期证据:特征库版本页截图、自动更新任务配置截图、厂商公告核对记录。
示例输出(节选)
控制台「系统维护 > 特征库更新」(节选,演示值)
Web攻击特征库:2026-08-28 03:00(自动更新:每日)
CC防护策略库:2026-08-28 03:00
上次更新结果:成功(版本 V2026.08.28.01)

C. 防护模式(阻断 vs 告警/观察)

核查方法:核查全局与各模块防护动作配置:阻断/拦截 模式应为主用模式;“观察"模式仅用于新规则试运行。核查近期防护日志中"拦截"动作占比,验证阻断实际生效。

核查命令(软件 WAF:ModSecurity 引擎模式核查,演示值):

# SecRuleEngine:On=阻断,DetectionOnly=只检测不阻断,Off=关闭
grep -E "^\s*SecRuleEngine" /etc/modsecurity/modsecurity.conf 2>/dev/null
  • 备注:厂商口径示例——阿里云 WAF 3.0 文档中"拦截"定义为"拦截命中规则的请求,并向发起请求的客户端返回拦截响应页面”,“观察"为"不拦截命中规则的请求,仅通过日志记录请求命中的情况”,并建议规则试运行阶段"可以先通过观察模式分析 WAF 日志,以确认未产生误拦截"。官方 CRS 文档同时提示"在阻断模式设置高偏执等级而未做充分误报调优是非常危险的",现场可据此评估误报处置与调优工作的匹配性。
  • 判定标准:主用模式为阻断且有拦截日志佐证 → 符合;观察/告警为主且无阻断补偿 → 部分符合(写明防护局限);引擎关闭 → 不符合。
  • 预期证据:防护模式配置截图、近期防护日志动作分布截图、SecRuleEngine 回显。

D. 规则调优与误报白名单审批

核查方法:核查误报白名单/例外规则清单,逐条核对添加日期与业务理由;索取白名单添加的审批记录(变更单/工单);抽查是否存在"为了省事把全站 URL 加入全局豁免"的过度放行配置。

  • 判定标准:白名单有清单、有理由、有审批,粒度到具体规则与 URL → 符合;存在无审批记录的白名单或全局豁免 → 部分符合并建议整改。
  • 预期证据:白名单清单截图、审批单复印件、豁免粒度核查记录。

E. 授权实测验证(测试 payload)

核查方法经被测单位书面授权后,从测试机向受保护站点发送典型攻击 payload,验证 WAF 拦截动作与拦截页面;测试选择低风险时段,使用无破坏性的探测向量,测试后确认无策略残留变更。禁止现场发起流量型压测(CC 容量类能力只核查配置与历史拦截记录,不实测打流)。

核查命令(演示值,须授权):

# SQL 注入探测向量:预期返回 403/405 或 WAF 拦截页面
curl -s -o /tmp/waf-test.html -w "HTTP %{http_code}\n" \
  "http://demo.local/product?id=1%20union%20select%201,2,3--"
grep -oE "防火墙|WAF|blocked|forbidden" /tmp/waf-test.html | head -n 2
# XSS 探测向量:预期被拦截
curl -s -o /dev/null -w "HTTP %{http_code}\n" \
  "http://demo.local/search?q=%3Cscript%3Ealert(1)%3C/script%3E"
  • 判定标准:两类探测均被拦截且日志可关联到该次测试(时间、源 IP、规则名)→ 符合;仅告警未拦截 → 按防护模式口径判部分符合;无任何反应 → 检查引流路径后重测,仍无效判不符合。
  • 预期证据:授权文件复印件、实测命令与响应回显截图、WAF 防护日志中对应拦截记录截图。
示例输出(节选)
curl -s -o /tmp/waf-test.html -w "HTTP %{http_code}\n" \
  "http://demo.local/product?id=1%20union%20select%201,2,3--"
HTTP 403
grep -oE "防火墙|WAF|blocked|forbidden" /tmp/waf-test.html
WAF                                                    #(返回 WAF 拦截提示页)

# 同步在控制台「攻击防护日志」查询到该次命中:
2026-09-03 10:41:22  198.51.100.10  SQL注入  demo.local /product  拦截

F. 设备自身漏洞与补丁

核查方法:核查设备软件版本是否在厂商维护期内(索取 EOL/EOS 说明);核对被测单位漏洞扫描报告中涉及 WAF 的漏洞及修复记录;核查管理面组件(Web 服务、SSH、数据库)是否最小化安装、无多余高危端口。

核查命令(软件 WAF 主机辅助核查,演示值):

# 最小安装与高危端口核查:比对监听清单与必需服务
ss -lntup | head -n 20
# 关注 21/23/445 等高危端口是否存在
ss -lntup | grep -E ":21 |:23 |:445 " || echo "未发现高危端口监听"
  • 预期证据:版本维护期说明、漏洞扫描报告与修复记录、监听端口清单截图。

数据完整性

对应控制点:GB/T 22239-2019 8.1.4.7 数据完整性 a)b)(鉴别数据、重要业务数据、重要审计数据、重要配置数据在传输/存储过程中的完整性)

判定要点:管理通道与业务通道均启用 TLS 且禁用弱协议/弱套件,证书生命周期受控,配置文件具备版本化备份 → 符合;部分通道未加密或存在 SSLv3/弱套件 → 部分符合;明文传输且无校验手段 → 不符合。

取证要求:TLS 协议与套件配置截图、openssl 实测回显、证书信息截图、配置备份版本记录。

A. TLS 版本与弱套件核查

核查命令(从测试机对 WAF 的 HTTPS 业务口与管理口实测,演示值):

# 应成功:TLS 1.2 协商(-brief 输出协议版本与加密套件)
echo | openssl s_client -brief -connect demo.local:443 -tls1_2 2>/dev/null
# 应失败:SSLv3 / TLS1.0 等弱版本(期望报错:handshake failure 或 no protocols available)
echo | openssl s_client -brief -connect demo.local:443 -ssl3 2>&1 | tail -n 2
  • 备注:设备开启 SSL 卸载(HTTPS 前置)时,WAF 的 SSL 策略即业务入口安全基线,弱协议直接暴露客户端与后端之间的传输面。现场同步在控制台核查 SSL 策略中禁用的协议清单。
  • 预期证据:openssl 实测回显、SSL 策略配置截图。
示例输出(节选)
echo | openssl s_client -brief -connect demo.local:443 -tls1_2 2>/dev/null
Protocol version: TLSv1.2
Ciphersuite: ECDHE-RSA-AES256-GCM-SHA384
echo | openssl s_client -brief -connect demo.local:443 -ssl3 2>&1 | tail -n 1
ssl handshake failure          #(弱协议已被禁用,实测通过)

B. 证书管理与配置完整性

核查方法:核查 SSL 卸载证书清单(签发对象、有效期、私钥保管方式),到期预警配置;核查配置文件是否有版本化导出与变更记录。

核查命令

# 证书有效期与主体核查
echo | openssl s_client -connect demo.local:443 -servername demo.local 2>/dev/null \
  | openssl x509 -noout -subject -issuer -dates
  • 预期证据:证书清单与有效期截图、openssl 回显、到期预警配置截图。
示例输出(节选)
echo | openssl s_client -connect demo.local:443 -servername demo.local 2>/dev/null \
  | openssl x509 -noout -subject -issuer -dates
subject=CN=demo.local
issuer=C=CN, O=Demo CA, CN=Demo CA G2
notBefore=Apr  1 00:00:00 2026 GMT
notAfter=Mar 31 23:59:59 2027 GMT    #(演示值:有效期 1 年,剩余约 6 个月)

数据保密性

对应控制点:GB/T 22239-2019 8.1.4.8 数据保密性 a)b)(鉴别数据、重要业务数据、重要个人信息在传输/存储过程中的保密性)

判定要点:管理通道强制 HTTPS、鉴别信息不明文传输且口令加密存储;WAF 与后端源站之间的回源通道按数据敏感程度加密(HTTPS 回源或内网隔离补偿)→ 符合;管理通道加密但回源明文且跨越不可信网段 → 部分符合;鉴别信息明文传输/存储 → 不符合(高风险)。

取证要求:管理通道协议配置截图、口令存储形态说明(加密/散列)、回源协议配置截图、跨网段回源链路的网络隔离说明。

A. 管理通道与鉴别信息存储

核查方法:同身份鉴别 D) 的实测结果(仅 HTTPS、无弱套件);访谈并索取厂商材料确认管理口令的存储形态(散列/加密),不得出现明文口令配置导出文件。

  • 预期证据:HTTPS 配置截图、口令存储形态说明或厂商白皮书、访谈纪要。

B. 回源通道加密

核查方法:核查 WAF「回源设置 / 源站协议」配置:回源是否启用 HTTPS、证书校验是否开启;回源为 HTTP 时核查源站所在网络区域是否为受控内网(与 WAF 同机房/同安全域,链路有网络隔离补偿)。

  • 判定标准:HTTPS 回源或明文回源但链路限定在受控内网 → 符合;明文回源且跨越不可信网段 → 部分符合;承载鉴别信息/个人信息的业务明文回源且跨网段 → 不符合。
  • 预期证据:回源协议配置截图、网络区域划分图、补偿说明。

备份恢复

对应控制点:GB/T 22239-2019 8.1.4.9 数据备份恢复 a)c)(重要数据本地备份与恢复功能;重要数据处理系统的热冗余)

判定要点:配置具备定期备份且可恢复、串联部署有 HA/BYPASS 冗余补偿 → 符合;仅有备份无恢复演练或仅单机+硬旁路 → 部分符合;无备份且串联单机无任何冗余 → 不符合(高风险)。

取证要求:配置导出文件与备份任务截图、恢复导入演示记录、HA 切换演练记录、BYPASS 功能说明。

A. 配置备份

核查方法:核查「配置管理 / 系统备份」功能:手动导出当前配置文件、自动备份任务(周期、保留份数、存放位置);现场演示配置导出(只读操作),核对备份文件时间戳与完整性。

  • 预期证据:配置导出文件清单、自动备份任务截图、备份文件存放位置说明。
示例输出(节选)
控制台「系统维护 > 配置备份」(节选,演示值)
自动备份任务:每日 02:00,保留最近 10 份
最近备份:waf-config-20260903-020000.cfg(2.4 MB,校验值 SHA256 已记录)
备份位置:本地 + 外送至 192.168.10.60:/backup/waf/

B. HA 切换与双机同步

核查方法:核查双机热备状态(主/备角色、心跳链路、配置同步最近时间);索取最近一次 HA 切换演练记录或现场在授权与业务低峰下进行主备切换验证(须运维方操作,测评方见证)。

  • 预期证据:HA 状态页截图、配置同步时间截图、切换演练记录(含业务恢复时间)。

C. 云 WAF 策略备份

核查方法:云 WAF 核查防护策略导出/规则模板功能,索取策略导出文件或控制台导出截图;核查云侧容灾由服务商 SLA 保障的说明材料。

  • 预期证据:策略导出截图、SLA 材料复印件。

剩余信息保护

对应控制点:GB/T 22239-2019 8.1.4.10 剩余信息保护 a)b)(鉴别信息、敏感数据所在存储空间释放或重新分配前得到完全清除)

判定要点:日志与历史告警具备自动清理策略(按周期/按容量滚动),账户删除后其鉴别信息与权限同步清除,介质报废有销毁记录 → 符合;仅能手工清理且无策略 → 部分符合;无任何清理机制且历史数据无限堆积 → 部分符合并出具整改建议(日志清理同时服务于 6 个月留存的合规平衡)。

取证要求:日志保留周期与清理策略配置截图、存储空间使用率截图、账户删除记录、介质销毁记录。

A. 日志与历史告警自动清理

核查方法:在「系统维护 / 存储管理」核查日志保留周期(自动滚动覆盖)、磁盘水位告警与清理阈值;核查历史告警的批量清理功能与最近清理记录;核对"清理周期 ≥ 6 个月"与"留存 ≥ 6 个月"的匹配性(本地滚动周期不足 6 个月时,以日志外送/集中存储作为留存证据)。

  • 预期证据:保留周期配置截图、存储水位截图、清理执行记录。
示例输出(节选)
控制台「系统维护 > 存储管理」(节选,演示值)
本地日志保留策略:按空间滚动,上限 80%(当前 62%)
防护日志本地保留:180 天(不足部分依赖日志审计系统集中留存 12 个月)
最近清理任务:2026-09-01 03:30 自动清理 2026-03-01 前过期索引

B. 账户与鉴别信息清理

核查方法:抽查已删除/停用账户在登录页与账户清单中是否残留;核查设备报废/维修流程中硬盘数据的清除要求(制度+记录)。

  • 预期证据:账户清单(无已删账户残留)截图、报废销毁记录、制度文件。

个人信息保护

对应控制点:GB/T 22239-2019 8.1.4.11 个人信息保护 a)b)(仅采集和保存业务必需的个人信息;禁止未授权访问和非法使用用户个人信息)

判定要点:识别 WAF 访问日志/告警日志中的个人信息字段(URL 参数中的手机号、身份证号等),具备脱敏或最小化采集措施,日志查询与导出受权限控制 → 符合;已识别但未脱敏,或导出无管控 → 部分符合;未识别且明文留存、非授权人员可查 → 不符合(高风险)。

取证要求:日志字段清单与样例(脱敏后)、脱敏/数据防泄漏功能配置截图、日志查询导出权限配置、导出审批记录。

A. 访问日志敏感字段与脱敏功能

核查方法:核查 WAF 的敏感信息防护/脱敏功能(如信息泄露防护规则:身份证号、手机号、银行卡号的响应脱敏与请求日志脱敏);抽样查询访问日志,核对 URL 参数中的手机号等字段在日志界面的展示形态;核查日志查询、导出权限是否限定审计/安全岗。

核查命令(软件 WAF / 导出日志文件抽样核查,演示值):

# 抽样检索日志中是否留存完整手机号(命中即需整改脱敏;无输出即未检出)
grep -oE "1[3-9][0-9]{9}" /var/log/waf/access.log 2>/dev/null | head -n 5
# 同口径检索身份证号(18 位)
grep -oE "[0-9]{17}[0-9Xx]" /var/log/waf/access.log 2>/dev/null | head -n 3
  • 备注:以上检索针对软件 WAF 本机日志或从硬件 WAF 导出的日志文件进行;硬件/云 WAF 直接在控制台日志查询页抽样即可。检索结果连同命令截图,作为"已识别/未识别"的证据。
  • 预期证据:脱敏功能配置截图、抽样日志展示(已脱敏形态)、检索命令回显、导出权限配置截图。
示例输出(节选)
grep -oE "1[3-9][0-9]{9}" /var/log/waf/access.log | head -n 5
(无输出:控制台与日志文件均按掩码形态留存,未检出完整手机号)
# 若检出完整号码,则记录条数与样例(脱敏后)作为不符合/部分符合证据

参考依据

关联文章