本着钻研探索现有考试软件之初衷,切实提升作弊工作的科学化、规范化与信息化水平,本项目(TargetShip,中文名“靶船”)立足实际,统筹兼顾,全面总结梳理了国内外各类考试平台的发展经验、应用现状与技术路线。通过取长补短、兼收并蓄,深入剖析现有技术架构在实际考务应用中的堵点与痛点,推进技术融合与系统性创新。
经过持续攻关与研发优化,ELPIS 团队成功打造出具有自主知识产权的自研在线考试反作弊系统。该系统深度整合了全流程、多维度、立体化的综合反作弊防控体系,实现了对违规作弊行为的精准识别与高效预警。该系统为今后测试各类作弊软件、保障各类考试的安全高效作弊提供了坚实的技术支撑与风险控制参数。
缘起
自 2020 年以来,ELPIS 深度拆解和分析过国内外数十种在线考试软件、测试甚至申请试用过近 8 个在线监考平台、ELPIS 团队成员入职过 2 个主流监考软件提供商。
多年来,我们几乎为每一个打过交道的考试软件和其对应的监考形式设计了专属的 bypass 方案,并最终聚类形成了一个针对考试软件的“武器库”。可渐渐,我们发现考试软件的技术升级对我们来说过于缓慢:我们像等待圣诞礼物的孩童般虔诚期待某次软件更新可以带给我们新的惊喜,可大多数时候圣诞老人似乎并不是很在意我们。有段时间,我们感到自己是不小心选修了哲学的大一新生:手握真理,但是无处使用。拔剑四顾心茫然,说的无非就是这种体味了。
有了锤子,就想要钉子。有了最锋利的剑,就自动缺了一块最坚固的盾。既然曾经的”盾“已然变成了”磨刀石“,不如我们自己开发一块新的”盾“!一块取长补短的、集大成的、专门针对我们自己的“盾”。
于是,ELPIS 成立了“蓝队(防御方)”。于是,TargetShip 诞生了!谁曾想,它诞生的第一天,就狠狠抽了“红队(入侵方)”一个响亮的耳光。
首次交锋
“蓝队”的小伙伴们太熟悉“红队”引以为豪的手段了!当然,坦白说,“红队”的确有得意的资本。因为我们的方案从来不是针对“某一个考试软件”的,本质上我们并没有致盲、篡改、或瘫痪考试软件本身的任何组件,而是通过某些自主挖掘或者构造出的零日漏洞(0day)直接攫取操作系统 Kernel 权限(这也是我们和同行最大的区别)。如此一来,我们对任何非内核级的监控软件都是降维打击,纯纯老叟戏顽童。
可惜“蓝队“也是曾经的”红队“。所以蓝队根本没有在用户态与红队打攻防战的打算,而是直接把战场拉到了内核级。
0.1 版本的 TargetShip 就果断使用了内核驱动,在 TargetShip 运行的一瞬间,内核驱动激活,持续监控重要用户态 API 的字节码、调用频率、传入参数、预期行为,等等。并且使用了高低权限 API 调用结果比对,如果发现内核态的返回值和对应用户态 API 的返回值不一致,即可判断用户态 API 被恶意修改。
同时,内核态 API 持续监控网络使用情况以及新进程/线程创建情况,并上传详细的遥测数据。也就是说,任何试图在 TargetShip 内存空间中执行未知代码并产生新进程/线程的行为都逃不过蓝队的法眼。
接着,内存扫描器登场。扫描器持续扫描 TargetShip 内存的 layout 情况,自主匹配恶意字节码的特征,并且可以启发式的扫描,最大程度检测用多态(polymorphism)手法形成的恶意字节码。
最后,为了防止 XXXXX(攻击手段隐去),TargetShip 在完成加载后主动的从硬盘上再次读取一份干净的 Dll 文件,并与自己内存中的 Dll copy 通过哈希码的方式做比对,确保自己加载的是真实的、干净的、系统自带的 Dll 文件。
红队惊恐的发现,所有用户态的攻击方案全量失效!内核级的方案虽然可以生效,但是产生的异常行为会被遥测上报!也就是说,如果真的有一个考试用了 TargetShip,我们最尖端的方案仅能做到”完成考试作弊“,但是无法做到”通过后续复查“!甚至理论上,监考方实时收到异常遥测数据后,可以选择随时关停考试!
这一局,蓝队大胜。可下一次红队会证明,任何半路开香槟的行为都是危险且愚蠢的。