前置条件检查清单:身份认证状态、会话有效性、角色分配、资源归属确认
适用场景
本清单适用于所有授权访问控制测试用例执行之前的准备阶段。任何涉及用户身份、会话、角色或资源归属的测试,均须先通过此检查清单确认环境是否就绪,避免因基础条件不达标导致测试结果失真或测试行为破坏生产数据。
前置条件(本章内容自身即为后续测试的前置条件)
- 被测系统已部署并处于可交互状态(非维护窗口、网络可达)。
- 测试人员拥有对应系统管理控制台或 API 的临时访问凭证。
- 系统日志记录功能已开启,确保审计溯源可执行。
- 测试环境与生产环境隔离,且数据风险已通过变更流程告知。
操作步骤:四类检查项详细验证方法
以下按检查类别分步执行,每项检查均需记录结果至前置条件检查报告。
步骤 1:身份认证状态检查
- 验证点:确认系统当前启用的身份认证机制(如密码、MFA、LDAP、OAuth)。
- 检查方法:通过系统管理页面或 API 获取认证配置;测试人员使用有效凭证登录,确认登录成功且返回令牌。
- 异常处理:若认证机制与测试计划不符(如应启用 MFA 实际未启用),需记录缺陷并暂停测试,要求开发修复。
步骤 2:会话有效性检查
- 验证点:确认会话令牌(、Cookie、Session ID)的生成方式、有效期、刷新机制是否生效。
- 检查方法:使用测试账户登录,获取会话标识;等待预期过期时间后重放请求,确认服务器返回 401/403;检查是否支持会话刷新接口。
- 异常处理:若会话永不过期或未实施刷新轮换,标记为高风险项,需修复后再继续后续测试。
步骤 3:角色分配检查
- 验证点:确认系统中已定义的权限角色列表,以及测试用户的角色映射是否正确。
- 检查方法:查询角色与权限的绑定关系(如 RBAC 表、权限策略文件);使用最小权限用户尝试越权操作,验证模型是否生效。
- 异常处理:若存在角色重叠或越权漏洞,需立即记录并通知管理员调整。
步骤 4:资源归属确认
- 验证点:确认每个受保护资源(API 端点、文件、数据库行、配置项)的所有者标识是否明确,且所有权与权限策略一致。
- 检查方法:遍历测试范围内的资源列表,核对资源元数据(如 ownerID、租户字段);尝试使用非所有者身份访问,验证拒绝策略。
- 异常处理:若资源归属字段缺失或存在孤儿资源(无所有者),需标记为测试阻断项,待资源归属修复后方可继续。
工具辅助:可使用自动化脚本批量检查常见漏洞,例如以下 curl 命令验证会话过期后的访问拒绝:
# 获取初始令牌
=$(curl -s -X POST -d '{"user":"test","pass":"pass"}' https://api.example.com/login | jq -r '.')
# 等待令牌过期(假设 300 秒)
sleep 310
# 使用过期令牌访问受保护资源
curl -s -o /dev/null -w "%{http_code}" -H "Authorization: Bearer $" https://api.example.com/resource
# 预期输出:401 或 403
输入输出物
| 类别 | 输入物 | 输出物 |
|---|---|---|
| 前提 | 系统部署拓扑、用户权限清单、测试范围说明 | — |
| 执行中 | 测试凭证、API 文档、配置文件快照 | 检查过程日志 |
| 完成后 | — | 前置条件检查报告(含四项检查结果及签名) |
责任边界
- 安全测试工程师:负责执行所有检查项、记录结果、发起异常处理流程。
- 系统管理员:提供必要的配置访问权限、配合修复检查中发现的阻断性问题。
- 测试负责人:审核检查报告,确认是否允许进入下一阶段测试。
记录材料
每次检查均需填写《前置条件检查记录表》,包含以下字段:
- 检查日期、测试用例编号、检查人、复核人。
- 每项检查的结果(通过/失败/异常)、异常描述、处理措施。
- 最终结论(允许继续 / 需修复后重新检查 / 测试终止)。
异常处理
| 异常场景 | 处理措施 | 恢复条件 |
|---|---|---|
| 身份认证机制未按预期启用 | 挂起测试,通知开发与安全团队修复 | 修复后重新执行步骤 1 |
| 会话令牌未实施过期控制 | 记录高风险缺陷,暂停测试 | 开发修复后重新执行步骤 2 |
| 角色分配存在权限过宽 | 记录缺陷,调整角色策略后重测 | 重测步骤 3 并验证修正 |
| 资源归属信息缺失或错误 | 阻断测试,要求数据治理团队补充元数据 | 元数据补齐后重新执行步骤 4 |
验收标准
- 四项检查全部通过,且无未解决的阻断性异常。
- 《前置条件检查记录表》经测试负责人和系统管理员双方签字确认。
- 检查过程日志存档,可作为后续测试报告的追溯依据。