朋友,你考试作过弊么?
你也许知道,考场是个“小江湖”——那乱飞的纸条、写满答案的橡皮擦、总是掉在地上的笔、斜视的眼神、监考老师的缓慢转身……分秒间都是一部动作戏。
而动作戏的背后往往是恩怨情仇,利益纠葛。倘若俯瞰考场,信息量很大:谁和谁是铁哥们,谁和谁是塑料情,谁是学霸谁是渣,谁报团谁落单,一目了然。
今天主角叫“网鼎杯”,一场“特殊的大考”——它考察的对象是网络安全技术人员,也就是俗称的“黑客”(咳咳……重申一下,我提到的所有“黑客”都是中性词,甚至在某些语境有些褒义,指技术高超的网络安全技术研究者)。
但这场“大考”特殊之处远不止于此,它不是一场单纯的技艺切磋,也并非纯商业性质的比赛,而是一场正儿八经的“官赛”。
网鼎杯半决赛现场
在网鼎杯的支持单位名单里,国家网络与信息安全信息通报中心、深圳市人民政府、广东省公安厅赫然在目,公安部还专门为这场比赛发了红头文件。
至此,事情变得有意思起来。
有人的地方就有江湖,凡有考试和比赛,必有人企图作弊,“官赛”也不例外。虽然“网鼎杯”被誉为“网络安全奥运会”,但是连真正的奥运会都难免有兴奋剂风波,所以你懂的。
于是,这场规模空前的网络安全赛场上的反作弊故事,成了中国网络安全竞赛史上的一抹侧影,从中我们可以感受到新秩序与旧江湖的碰撞。
一、异常时间回到00年5月1日,“网鼎杯”官方资格赛最后一场——“玄武组”的比赛日。
由于规模实在庞大,超过万支战队、4万名选手遍布全国各地,覆盖几十个行业,上千家单位,所以初赛只能在线上进行。
又因为各行各业的竞技水平不同,主办方花了不少功夫才把所有参赛队伍捋成“青龙”、“白虎”、“朱雀”、“玄武”四条赛道。
青龙——高等院校、职业院校、社会参赛队伍
白虎——通信、交通、国防、政务等单位
朱雀——能源、金融、政法、其他行业单位
玄武——科研机构、科技企业、互联网企业、网安企业单位
上午9点,比赛正式开始,分布在全国各地的上万名选手齐刷刷打开电脑,各自登上竞赛平台,至当天下午5点之前,平台会不断放出赛题。
这里多说一句,网络安全的赛题并不像试卷,一道题也许是一个文件,或是一个网络环境,就好比是一个魔方或是一个充满机关的密室,选手需要利用自己的黑客知识解开魔方,找到藏于其中的关键线索——“旗”(Flag),提交到平台方得分,这类比赛也此被称为“夺旗赛”(CTF——Capturetheflag)。
墙上的时针一圈又一圈,窗外阳光渐暗,得分排行榜实时刷新,但始终变化不大,至下午三点,一切都正常。但这宁静只是暂时的,正如一场考试,上半场大家闷声做题,下半场才是八仙过海。
至比赛结束前一小时,排名变化速度明显加快,几只队伍像开了挂一样,从最初的名开外往上窜。前50名的榜单也猛然发生变化,一支来自上海的战队开赛后一度占据榜单第一,迅速跌至0多名,且仍在下跌。
临结束前15分钟,排名榜已经变成一曲《赛马》,此时“网鼎杯”官方的反作弊系统“烽火台”也频繁发出预警。
下午五点的钟声响起,比赛结束,排行榜戛然而止,尘埃落定。
赛后,一位选手在社交网站上吐槽,“临比赛前的一小时里,做过的题目分值跳崖式下跌,眼睁睁看着自己队伍排名跌到多。”
二、PY江湖之所以排名变化这么快,是因为这场网络安全竞赛有一个“动态积分”的机制——一道题的积分并不固定,解出来的人少,分就高,解出来的人一多,该题分数就迅速贬值。
这个机制最初是为了防止选手之间相互分享答案,却因为大家都把Flag攒到比赛最后关头一口气提交而让整场比赛充满变数。
而之所以大家都把Flag攒到后半场,一方面是出于比赛策略,另一方面则是因为到了比赛下半场,越来越多的人开始串Flag(对答案),圈内俗称“PY交易”。
不要问我为什么叫“PY交易”,问就是“朋友交易”。
比如比赛到一半,你做出了13题,我做出题,咱们互换一下Flag,就各自拥有了6个Flag,这就是PY交易。
再比如某位选手做不出题,跑到QQ群里问:“哪位大佬会第5道Pwn题?私聊我。”这也是PY。
还比如某位选手跑到某知名技术论坛里发帖悬赏,这也算是PY。
尽管并没有成功
疑点重重。
“我不信jocker那道题有00多个队伍做出来。”一位选手表示。这感觉就像数学考试,连从来不上课的学渣都做出最后一道大题。
“某集团旗下的几个子公司战队,得分完全一样,呵呵。”另一位参赛选手透露。这就好比一场考试成绩出来,隔壁宿舍几个学渣哥们儿都拿了高分,分数还完全一样。
但真正的PY者不打没有准备的仗,他们背地里交易,不留痕迹。尽管选手们叫嚷着可疑,但很少有人能拿出实锤,因为这是一场线上比赛,主办方很难阻止某个选手一边答题比赛,一边开着四五个群聊窗口做买卖。
有人“串Flag”(交流答案),有人“串WriteUp”(交流解题思路),但和这些相比,“代打”才是更简单粗暴的PY方式。一天一场比赛,几千到万把块钱,花钱雇佣几个技术选手直接帮打进半决赛,物美价廉,干净卫生。
对赛场里的学霸们来说,代打并不需要额外付出多少成本,反正题目都会做。
“我相信大多数参加比赛的人心里都有数,没事的队伍都会愿意接几个代打……”一位选手在一个知乎帖子里说。
我和网鼎杯的工作人员“AK”聊了聊,他告诉我:“大家见怪不怪了,网络安全竞赛代打甚至已经形成产业链,一些有比赛经验的年轻人毕了业不找工作,四五个人成立一个公司,就搞一搞在线培训,接一接代打业务。”
如他所说,“PY风气”像澡堂子里的酸臭味一般笼罩着网络安全竞赛圈子,只是大家在澡堂子里呆得久,便闻不到味儿了。
三、恶性循环作弊当然不对,道理谁都懂,可知易行难。
同一个赛场里,别人作弊,你不做,结果被挤出排行榜,气不气?
同样是穷学生里的学霸,你坚持不作弊,每个月过着朴实无华的生活,别人卖答案代打赚零钱,过着有钱人朴实无华的枯燥生活,你气不气?心动不心动?
这股风气最初是怎么形成的?AK告诉我,主要原因有两点。
一是网络安全竞赛带来的名和利。
网络安全竞赛在国内兴起的时间并不长,起初玩的人不多,以高校学生为主,大家聚在一起切磋技艺,点到为止,不涉及什么名利,所以那时选手都讲武德,很单纯。
后来,网络安全被社会慢慢重视起来,相关竞赛的含金量也跟着提高。
学生们发现:拿着CTF比赛的获奖证书去找工作更容易受青睐;员工们发现:拿个奖能给公司争面子,方便升职加薪;企业老板们则发现:在网络安全竞赛里拿个奖能彰显公司实力,有利于谈生意……
于是,参赛的人越来越多,比赛也越办越多,为了吸引更多优秀选手参赛,赛事奖金水涨船高。
“这本身是一件好事,说明网络安全行业正蓬勃发展。”AK告诉我,在00年海南自贸港人才引进政策里,网鼎杯等三个网络安全比赛在列,这意味着网络安全竞赛的含金量已经得到官方层面的认可。
可是,当一件事和名誉、利益挂上钩,事情就很难不变复杂。
第二个原因则是因为作弊和反作弊的成本收益不对等。
“串题、串思路、代打现象一直存在,以前从来没有比赛Ban(禁)过代打。”AK说,主要原因在于反作弊工作实施困难。
他告诉我,线上比赛很难限制选手,也很难抓到作弊的证据,线下比赛一般也很少有完全限制选手对外联络的,以往的许多比赛甚至默认选手场外求助,即便作弊被主办方发现,处罚无非也就是取消成绩。
作弊是“高收益,易操作”,反作弊是“低收益,难实施”,久而久之,许多比赛也就没了反作弊的动力,开始睁一只眼闭一只眼。
“但网鼎杯主办方反作弊的态度很坚决。”AK说,因为:
四、网鼎杯不仅仅是一场比赛“因政治任务,公司要求强制参加本届网鼎杯ctf比赛,也是第一次参与,成绩不是很理想……”年,一位选手参加第一届网鼎杯后,在自己的博客文章开头写道。
他说的没错,网鼎杯不仅仅是一场比赛,还是个政治任务,很多选手是应单位要求参赛。
但这并不是什么不能说的事,相反,这本身就是网鼎杯的意义所在。作为一个国家级的网络安全竞赛,它从一开始就扛着一个使命——“没有网络安全就没有国家安全。”
也许你早已察觉,互联网和现实世界融合的速度太快,快到网络信息安全保护跟不上,信息高速公路上,安全带都还没系上,车就飙了出去。
于是,公民个人基础信息泄露之类的安全问题频频出现,你我深有体会。
怎么能让各行各业真正重视网络安全?光喊口号不行,办比赛是个不错的办法。
年,第一届“网鼎杯”启动,一个个红头文件快马扬鞭,从上级单位一路送到基层单位,电子政务、通信、能源、医疗、交通、教育……从部到厅,到局,再到处,从省到市,再到县,开枝散叶,激起层层涟漪。
很多人是被“逼着”参加的比赛,对啊,学生不喜欢考试,可是不安排考试,学生们不好好学习啊,所以还得考,强制考。就像强制消防演习一样。
普通人也许很难想象,医院、一所学校、一个电厂、一家快递公司居然都被要求参加一个跟“黑客攻防技术”有关的比赛。
可当你看看新闻里公民基础信息泄露的状况,看看乌克兰国家电网每年被黑客打得那一个惨,看看美国大断网事件,再看看他们连选个总统都要怀疑半天是不是被黑客干涉,你就不会怀疑网络安全能力对各行各业的必要性。
还是那句话:“没有网络安全就没有国家安全。”
顺道提一嘴,今年卫健委也在搞自己行业的网络安全比赛
这就是现实,我们身边的这些基础设施关乎到人们的衣食住行(比如现在到处都要用健康码),它们需要网络安全能力。
“网鼎杯”不仅是一场比赛,也是一场全国范围的“安全大练兵”。国家用网络安全竞赛的形式倒逼着各行各业的各层机构组织重视网络安全,储备网络安全人才,增强关键信息基础设施运营单位的安全防护能力。
可是“上有政策,下有对策。”一些人就想走捷径,于是花钱请代打,买Flag,大搞形式主义,而有需求就有市场。
往小了说,是一场比赛的公平性,是安全行业的风气和土壤,往大了说,是国家网络安全战略的贯彻执行,是互联网世界人民的安全感,在几千块钱代打一场、十几块钱一道题的诱惑下,被一些PY选手无情地抛弃。
形式主义害死人。
理解了这个大背景,你自然会明白为什么网鼎杯反作弊势在必行,没有半步退路可言。
五、反作弊的烽火台5月1日,网鼎杯“青龙组”初赛后的第三天,网鼎杯官方发出裁决公告,宣布77支队伍涉嫌作弊,予以处理。
在随后的三场初赛后,官方也都有发出裁决公告,取消一批作弊战队的晋级资格和成绩。时间来到5月17日,“朱雀组”初赛期间,烽火台反作弊平台监测到一支战队的数据异常,疑似代打。工作人员小路拨通了该战队队长的手机号:
“您好,我是网鼎杯裁判组的工作人员,您刚才提交了一道misc题,能口头陈述一下大致的解题思路吗?”
电话那头沉默了两秒:“啊?哦!那道题不是我做的,是我队里别的队员做的。”
小路:“请问是谁做的?方便把电话给他吗?”
对话那头又沉默了几秒,随后开始表演:“喂?……诶?听得到吗?咦?你信号不好吗?”
“请把电话给您做出那道题的队友,或者说一下他的名字,我直接打给他。”小路说。
“喂?诶!能听见吗?喂?”嘟嘟嘟……电话挂断。
类似的对话在网鼎杯比赛期间发生过很多次。AK告诉我,尽管网鼎杯初赛是在线上进行,但“烽火台反作弊平台”依然可以通过数据来捕捉异常线索,辅助裁判反作弊。
他举了几个小例子。
1)动态Flag
比赛时,每位选手分到的每一道题都有一个随机生成的很长的网络访问地址,在选手点开赛题的一瞬间,平台算法会用这个随机的网络访问地址生成一个唯一的Flag。
当选手答完并关闭赛题,这个网络访问地址和Flag也随即被销毁——这意味着即便是同一道题,不同选手的访问地址和Flag也完全不一样,但凡烽火台监测到一支队伍提交了另一支队伍的Flag,或者访问了别的队伍的赛题网址,就说明这两支队伍一定存在违规行为。
大概就好比抄作业把对方的名字也给照抄了过来。
)带“坑”的题目
还有一些题目就像是“密室逃脱”,选手在赛题环境里的一举一动都会被记录下来,按照赛题“剧情”,需要先在A房间拿到钥匙才能打开B房间的门,假如有选手打开了B房间的门拿到Flag,却没在A房间留下痕迹,那么就存在作弊的可能性。
3)答案不可能雷同的题目
还有些题目,从概率上就不太可能雷同答案。比如有一道题的其中一个步骤是让选手们补上一个残缺的