Appearance
竞赛风控与防作弊机制(Anti-Cheat)
在 AI 领域的能力竞技与学术认证中,维护考纪公正至关重要。Neuro OJ 秉承人机协同与数据最小化的安全理念:风控系统定位为辅助裁判裁决的人工复核线索生成器,绝不进行未经人工核验的自动化裁决封禁。
风控核心立场:线索机制,杜绝自动化误杀
平台伦理立场
所有的风控算法检测结果仅作为仲裁委员介入调查的参考线索。系统不会自动对选手执行取消成绩、封禁账号或扣减排名的动作。 在校园网络、实验室集群、企业 NAT 代理等场景下,大量无关选手共享同质环境属于物理常态,高相似度或特征重合均不等于作弊定论。
历史架构演变:客户端 IP 采集机制全面下线
机制下线声明(2026-09-28 安全审计 VULN-06)
自 2026-09-28 安全重构起,平台全面停止采集并物理删除了全部提交来源 IP 数据。原有的「同 IP 异常分析」与「IP 关联时间线」风控模块被整体移除,数据库 submissions.client_ip 列及相关索引已随迁移彻底清空。
彻底下线的三大技术裁定
- 极高的误报率(False Positive): 高校机房、省队集训与线下正规赛场普遍由成百上千名考生通过校园网单一出口 NAT 共享同一个公网 IPv4 地址。"多账号同 IP 提交"在正规赛事中属于必然常态,依赖 IP 溯源会产生海量无效误报并严重干扰考务工作;
- 极易被专业作弊者规避: 在线远程考试中,作弊人员使用手机热点、商业代理(VPN)或虚拟网卡即可在数秒内切换出数百个干净 IP,导致该机制对真正的黑产作弊形同虚设;
- 数据合规与最小化采集准则: 恪守《个人信息保护法》与 GDPR 数据最小化原则,在技术手段证明无效后,系统坚决拒绝存储与评测无关的学员网络指纹。
核心算法:代码 Token 指纹查重引擎
平台管理后台的风控面板目前集成基于现代编译原理的代码相似度分析引擎。
1. 算法处理流水线
- 按题目与语言分桶:查重在
problem_id作用域内独立进行,避免不同赛题产生无意义的交叉对比; - 词法规范化(Normalization):剥离所有无意义的空格、缩进与中文/英文代码注释,将变量标识符映射为通用占位符,瓦解简单的"洗稿重命名"篡改;
- Winnowing 特征指纹提炼:通过滑动窗口算法从 Token 序列中提取具有代表性的局部哈希特征指纹;
- Jaccard 相似度匹配:计算两位选手代码指纹集合的重合比例: $$\text{Similarity}(A, B) = \frac{|A \cap B|}{|A \cup B|}$$
2. 仲裁面板参数与隐私保护
- 敏感信息隐藏:风控 API 在下发对比对工单时,不直接泄露双方的完整源代码,仅返回提交记录 ID、所属选手、所用语言、相似度百分比与指纹统计指标;
- 可调阈值与容量控制:默认报警阈值设定为
0.8(80% 相似度),单次分析最大候选池默认为 200 份提交,保障审查效率与仲裁严谨性。