作弊检测
CBCTF 内置多维度自动作弊检测,管理员可查看、确认或驳回检测结果。
检测机制
1. same_web_ip — 多队伍共用 Web IP
多支队伍的 Web 请求(登录、提交等)来自同一公网 IP,可能存在同场地协作或账号共享。
2. same_victim_ip — 多队伍共用靶机访问 IP
多支队伍访问靶机的 IP 相同(capture 捕获),需要结合公共出口、代理及比赛场地判断。关闭抓包后不会获得这类实例访问流量证据。
检测比较比赛期间的公网客户端来源 IP,排除特殊用途地址与白名单。查看证据和回放方法见容器流量分析。
3. wrong_flag — 跨队 flag 提交
队伍提交了属于另一支队伍的动态 flag,表明存在 flag 共享行为。
记录详情
打开记录后,可查看命中的规则、原因、涉及的 IP、检测时间和相关队伍。审核状态与管理员备注用于记录复核进度,方便多人协作。
作弊状态
管理员处理流程
- 打开比赛的作弊记录列表,需要
admin:cheat:list权限。 - 查看检测原因和相关队伍信息。
- 结合 IP 地理查询、队伍提交和流量回放综合判断。
- 在编辑窗口选择「作弊」或「误报」,填写处置说明并标记已审核,需要
admin:cheat:update权限。
处理作弊记录不自动封禁队伍。需要限制参赛时,在比赛队伍管理中另行设置封禁。
重新运行检测
在比赛作弊记录页选择「检测」,需要 admin:cheat:create 权限。赛后可再次检测,复核整场比赛的记录。
检测部分失败时,展开结果查看未完成的规则及原因。已生成的记录仍会显示在列表中,可先行审核,排除故障后再检测。
批量删除
「全部删除」会删除该比赛的所有作弊记录,需要 admin:cheat:delete 权限。确认前请检查是否仍需保留审核记录。
IP 白名单
首次部署可在 config.yaml 中配置 IP 白名单;已有平台在「系统管理」中更新数据库设置。白名单内的 IP 不触发 IP 类作弊检测:
误报场景说明
以下场景可能导致误报,管理员应结合实际情况判断:
Tip
建议将竞赛现场的出口 IP 加入白名单;Helm 初始配置对应 cbctf.cheat.ip.whitelist,已有数据库不会因升级 values 自动覆盖。
