For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt, and this page is available as Markdown at /admin/cheat.md.

作弊检测

CBCTF 内置多维度自动作弊检测,管理员可查看、确认或驳回检测结果。

检测机制

1. same_web_ip — 多队伍共用 Web IP

多支队伍的 Web 请求(登录、提交等)来自同一公网 IP,可能存在同场地协作或账号共享。

2. same_victim_ip — 多队伍共用靶机访问 IP

多支队伍访问靶机的 IP 相同(capture 捕获),需要结合公共出口、代理及比赛场地判断。关闭抓包后不会获得这类实例访问流量证据。

检测比较比赛期间的公网客户端来源 IP,排除特殊用途地址与白名单。查看证据和回放方法见容器流量分析。

3. wrong_flag — 跨队 flag 提交

队伍提交了属于另一支队伍的动态 flag,表明存在 flag 共享行为。

记录详情

打开记录后,可查看命中的规则、原因、涉及的 IP、检测时间和相关队伍。审核状态与管理员备注用于记录复核进度,方便多人协作。

作弊状态

状态说明
suspicious系统自动检测,待人工确认
cheater确认为作弊
pass确认为误报

管理员处理流程

  1. 打开比赛的作弊记录列表,需要 admin:cheat:list 权限。
  2. 查看检测原因和相关队伍信息。
  3. 结合 IP 地理查询、队伍提交和流量回放综合判断。
  4. 在编辑窗口选择「作弊」或「误报」,填写处置说明并标记已审核,需要 admin:cheat:update 权限。

处理作弊记录不自动封禁队伍。需要限制参赛时,在比赛队伍管理中另行设置封禁。

重新运行检测

在比赛作弊记录页选择「检测」,需要 admin:cheat:create 权限。赛后可再次检测,复核整场比赛的记录。

检测部分失败时,展开结果查看未完成的规则及原因。已生成的记录仍会显示在列表中,可先行审核,排除故障后再检测。

批量删除

「全部删除」会删除该比赛的所有作弊记录,需要 admin:cheat:delete 权限。确认前请检查是否仍需保留审核记录。

IP 白名单

首次部署可在 config.yaml 中配置 IP 白名单;已有平台在「系统管理」中更新数据库设置。白名单内的 IP 不触发 IP 类作弊检测:

cheat:
  ip:
    whitelist:
      - 127.0.0.1
      - ::1
      - 10.0.0.0/8
      - 192.168.0.0/16
      - 172.16.0.0/12
      - 100.64.0.0/10

误报场景说明

以下场景可能导致误报,管理员应结合实际情况判断:

场景可能误报的类型
大学/公司内网(NAT)same_web_ip、same_victim_ip
商业 VPN 服务same_web_ip
比赛现场同一 WiFisame_web_ip
Tip

建议将竞赛现场的出口 IP 加入白名单;Helm 初始配置对应 cbctf.cheat.ip.whitelist,已有数据库不会因升级 values 自动覆盖。