网鼎杯风云:真·大侠不搞偷袭,真·黑客不靠作弊
朋友,你考试作过弊么?
你也许知道,考场是个“小江湖”——那乱飞的纸条、写满答案的橡皮擦、总是掉在地上的笔、斜视的眼神、监考老师的缓慢转身……分秒间都是一部动作戏。
而动作戏的背后往往是恩怨情仇,利益纠葛。倘若俯瞰考场,信息量很大:谁和谁是铁哥们,谁和谁是塑料情,谁是学霸谁是渣,谁报团谁落单,一目了然。
今天主角叫“网鼎杯”,一场“特殊的大考”——它考察的对象是网络安全技术人员,也就是俗称的“黑客”(咳咳……重申一下,我提到的所有“黑客”都是中性词,甚至在某些语境有些褒义,指技术高超的网络安全技术研究者)。
但这场“大考”特殊之处远不止于此,它不是一场单纯的技艺切磋,也并非纯商业性质的比赛,而是一场正儿八经的“官赛”。
网鼎杯半决赛现场
在网鼎杯的支持单位名单里,国家网络与信息安全信息通报中心、深圳市人民政府、广东省公安厅赫然在目,公安部还专门为这场比赛发了红头文件。
至此,事情变得有意思起来。
有人的地方就有江湖,凡有考试和比赛,必有人企图作弊,“官赛”也不例外。虽然“网鼎杯”被誉为“网络安全奥运会”,但是连真正的奥运会都难免有兴奋剂风波,所以你懂的。
于是,这场规模空前的网络安全赛场上的反作弊故事,成了中国网络安全竞赛史上的一抹侧影,从中我们可以感受到新秩序与旧江湖的碰撞。
一、异常
时间回到2020年5月21日,“网鼎杯”官方资格赛最后一场——“玄武组”的比赛日。
由于规模实在庞大,超过2万支战队、4万名选手遍布全国各地,覆盖几十个行业,上千家单位,所以初赛只能在线上进行。
又因为各行各业的竞技水平不同,主办方花了不少功夫才把所有参赛队伍捋成“青龙”、“白虎”、“朱雀”、“玄武”四条赛道。
青龙——高等院校、职业院校、社会参赛队伍
白虎——通信、交通、国防、政务等单位
朱雀——能源、金融、政法、其他行业单位
玄武——科研机构、科技企业、互联网企业、网安企业单位
上午9点,比赛正式开始,分布在全国各地的上万名选手齐刷刷打开电脑,各自登上竞赛平台,至当天下午5点之前,平台会不断放出赛题。
这里多说一句,网络安全的赛题并不像试卷,一道题也许是一个文件,或是一个网络环境,就好比是一个魔方或是一个充满机关的密室,选手需要利用自己的黑客知识解开魔方,找到藏于其中的关键线索——“旗”(Flag),提交到平台方得分,这类比赛也此被称为“夺旗赛”(CTF——Capture the flag)。
墙上的时针一圈又一圈,窗外阳光渐暗,得分排行榜实时刷新,但始终变化不大,至下午三点,一切都正常。但这宁静只是暂时的,正如一场考试,上半场大家闷声做题,下半场才是八仙过海。
至比赛结束前一小时,排名变化速度明显加快,几只队伍像开了挂一样,从最初的300名开外往上窜。前50名的榜单也猛然发生变化,一支来自上海的战队开赛后一度占据榜单第一,迅速跌至20多名,且仍在下跌。
临结束前15分钟,排名榜已经变成一曲《赛马》,此时“网鼎杯”官方的反作弊系统“烽火台”也频繁发出预警。
下午五点的钟声响起,比赛结束,排行榜戛然而止,尘埃落定。
赛后,一位选手在社交网站上吐槽,“临比赛前的一小时里,做过的题目分值跳崖式下跌,眼睁睁看着自己队伍排名跌到300多。”
二、PY江湖
之所以排名变化这么快,是因为这场网络安全竞赛有一个“动态积分”的机制——一道题的积分并不固定,解出来的人少,分就高,解出来的人一多,该题分数就迅速贬值。
这个机制最初是为了防止选手之间相互分享答案,却因为大家都把Flag攒到比赛最后关头一口气提交而让整场比赛充满变数。
而之所以大家都把Flag攒到后半场,一方面是出于比赛策略,另一方面则是因为到了比赛下半场,越来越多的人开始串Flag(对答案),圈内俗称“PY交易”。
不要问我为什么叫“PY交易”,问就是“朋友交易”。
比如比赛到一半,你做出了123题,我做出456题,咱们互换一下Flag,就各自拥有了6个Flag,这就是PY交易。
再比如某位选手做不出题,跑到QQ群里问:“哪位大佬会第5道Pwn题?私聊我。”这也是PY。
还比如某位选手跑到某知名技术论坛里发帖悬赏,这也算是PY。
尽管并没有成功
疑点重重。
“我不信 jocker 那道题有200多个队伍做出来。”一位选手表示。这感觉就像数学考试,连从来不上课的学渣都做出最后一道大题。
“某集团旗下的几个子公司战队,得分完全一样,呵呵。”另一位参赛选手透露。这就好比一场考试成绩出来,隔壁宿舍几个学渣哥们儿都拿了高分,分数还完全一样。
但真正的PY者不打没有准备的仗,他们背地里交易,不留痕迹。尽管选手们叫嚷着可疑,但很少有人能拿出实锤,因为这是一场线上比赛,主办方很难阻止某个选手一边答题比赛,一边开着四五个群聊窗口做买卖。
有人“串Flag”(交流答案),有人“串WriteUp”(交流解题思路),但和这些相比,“代打”才是更简单粗暴的PY方式。一天一场比赛,几千到万把块钱,花钱雇佣几个技术选手直接帮打进半决赛,物美价廉,干净卫生。
对赛场里的学霸们来说,代打并不需要额外付出多少成本,反正题目都会做。
“我相信大多数参加比赛的人心里都有数,没事的队伍都会愿意接几个代打……”一位选手在一个知乎帖子里说。
我和网鼎杯的工作人员“AK”聊了聊,他告诉我:“大家见怪不怪了,网络安全竞赛代打甚至已经形成产业链,一些有比赛经验的年轻人毕了业不找工作,四五个人成立一个公司,就搞一搞在线培训,接一接代打业务。”
如他所说,“PY风气”像澡堂子里的酸臭味一般笼罩着网络安全竞赛圈子,只是大家在澡堂子里呆得久,便闻不到味儿了。
三、恶性循环
作弊当然不对,道理谁都懂,可知易行难。
同一个赛场里,别人作弊,你不做,结果被挤出排行榜,气不气?
同样是穷学生里的学霸,你坚持不作弊,每个月过着朴实无华的生活,别人卖答案代打赚零钱,过着有钱人朴实无华的枯燥生活,你气不气?心动不心动?
这股风气最初是怎么形成的?AK告诉我,主要原因有两点。
一是网络安全竞赛带来的名和利。
网络安全竞赛在国内兴起的时间并不长,起初玩的人不多,以高校学生为主,大家聚在一起切磋技艺,点到为止,不涉及什么名利,所以那时选手都讲武德,很单纯。
后来,网络安全被社会慢慢重视起来,相关竞赛的含金量也跟着提高。
学生们发现:拿着CTF比赛的获奖证书去找工作更容易受青睐;员工们发现:拿个奖能给公司争面子,方便升职加薪;企业老板们则发现:在网络安全竞赛里拿个奖能彰显公司实力,有利于谈生意……
于是,参赛的人越来越多,比赛也越办越多,为了吸引更多优秀选手参赛,赛事奖金水涨船高。
“这本身是一件好事,说明网络安全行业正蓬勃发展。”AK告诉我,在2020年海南自贸港人才引进政策里,网鼎杯等三个网络安全比赛在列,这意味着网络安全竞赛的含金量已经得到官方层面的认可。
可是,当一件事和名誉、利益挂上钩,事情就很难不变复杂。
第二个原因则是因为作弊和反作弊的成本收益不对等。
“串题、串思路、代打现象一直存在,以前从来没有比赛Ban(禁)过代打。”AK说,主要原因在于反作弊工作实施困难。
他告诉我,线上比赛很难限制选手,也很难抓到作弊的证据,线下比赛一般也很少有完全限制选手对外联络的,以往的许多比赛甚至默认选手场外求助,即便作弊被主办方发现,处罚无非也就是取消成绩。
作弊是“高收益,易操作”,反作弊是“低收益,难实施”,久而久之,许多比赛也就没了反作弊的动力,开始睁一只眼闭一只眼。
“但网鼎杯主办方反作弊的态度很坚决。”AK说,因为:
四、网鼎杯不仅仅是一场比赛
“因政治任务,公司要求强制参加本届网鼎杯ctf比赛,也是第一次参与,成绩不是很理想……”2018年,一位选手参加第一届网鼎杯后,在自己的博客文章开头写道。
他说的没错,网鼎杯不仅仅是一场比赛,还是个政治任务,很多选手是应单位要求参赛。
但这并不是什么不能说的事,相反,这本身就是网鼎杯的意义所在。作为一个国家级的网络安全竞赛,它从一开始就扛着一个使命——“没有网络安全就没有国家安全。”
也许你早已察觉,互联网和现实世界融合的速度太快,快到网络信息安全保护跟不上,信息高速公路上,安全带都还没系上,车就飙了出去。
于是,公民个人基础信息泄露之类的安全问题频频出现,你我深有体会。
怎么能让各行各业真正重视网络安全?光喊口号不行,办比赛是个不错的办法。
2018年,第一届“网鼎杯”启动,一个个红头文件快马扬鞭,从上级单位一路送到基层单位,电子政务、通信、能源、医疗、交通、教育……从部到厅,到局,再到处,从省到市,再到县,开枝散叶,激起层层涟漪。
很多人是被“逼着”参加的比赛,对啊,学生不喜欢考试,可是不安排考试,学生们不好好学习啊,所以还得考,强制考。就像强制消防演习一样。
普通人也许很难想象,一家医院、一所学校、一个电厂、一家快递公司居然都被要求参加一个跟“黑客攻防技术”有关的比赛。
可当你看看新闻里公民基础信息泄露的状况,看看乌克兰国家电网每年被黑客打得那一个惨,看看美国大断网事件,再看看他们连选个总统都要怀疑半天是不是被黑客干涉,你就不会怀疑网络安全能力对各行各业的必要性。
还是那句话:“没有网络安全就没有国家安全。”
顺道提一嘴,今年卫健委也在搞自己行业的网络安全比赛
这就是现实,我们身边的这些基础设施关乎到人们的衣食住行(比如现在到处都要用健康码),它们需要网络安全能力。
“网鼎杯”不仅是一场比赛,也是一场全国范围的“安全大练兵”。国家用网络安全竞赛的形式倒逼着各行各业的各层机构组织重视网络安全,储备网络安全人才,增强关键信息基础设施运营单位的安全防护能力。
可是“上有政策,下有对策。”一些人就想走捷径,于是花钱请代打,买Flag,大搞形式主义,而有需求就有市场。
往小了说,是一场比赛的公平性,是安全行业的风气和土壤,往大了说,是国家网络安全战略的贯彻执行,是互联网世界人民的安全感,在几千块钱代打一场、十几块钱一道题的诱惑下,被一些PY选手无情地抛弃。
形式主义害死人。
理解了这个大背景,你自然会明白为什么网鼎杯反作弊势在必行,没有半步退路可言。
五、反作弊的烽火台
5月12日,网鼎杯“青龙组”初赛后的第三天,网鼎杯官方发出裁决公告,宣布77支队伍涉嫌作弊,予以处理。
在随后的三场初赛后,官方也都有发出裁决公告,取消一批作弊战队的晋级资格和成绩。
时间来到5月17日,“朱雀组”初赛期间,烽火台反作弊平台监测到一支战队的数据异常,疑似代打。工作人员小路拨通了该战队队长的手机号:
“您好,我是网鼎杯裁判组的工作人员,您刚才提交了一道misc题,能口头陈述一下大致的解题思路吗?”
电话那头沉默了两秒:“啊?哦!那道题不是我做的,是我队里别的队员做的。”
小路:“请问是谁做的?方便把电话给他吗?”
对话那头又沉默了几秒,随后开始表演:“喂?…… 诶?听得到吗?咦?你信号不好吗?”
“请把电话给您做出那道题的队友,或者说一下他的名字,我直接打给他。”小路说。
“喂?诶!能听见吗?喂?”嘟嘟嘟……电话挂断。
类似的对话在网鼎杯比赛期间发生过很多次。AK告诉我,尽管网鼎杯初赛是在线上进行,但“烽火台反作弊平台”依然可以通过数据来捕捉异常线索,辅助裁判反作弊。
他举了几个小例子。
1)动态Flag
比赛时,每位选手分到的每一道题都有一个随机生成的很长的网络访问地址,在选手点开赛题的一瞬间,平台算法会用这个随机的网络访问地址生成一个唯一的Flag。
当选手答完并关闭赛题,这个网络访问地址和Flag也随即被销毁——这意味着即便是同一道题,不同选手的访问地址和Flag也完全不一样,但凡烽火台监测到一支队伍提交了另一支队伍的Flag,或者访问了别的队伍的赛题网址,就说明这两支队伍一定存在违规行为。
大概就好比抄作业把对方的名字也给照抄了过来。
2)带“坑”的题目
还有一些题目就像是“密室逃脱”,选手在赛题环境里的一举一动都会被记录下来,按照赛题“剧情”,需要先在A房间拿到钥匙才能打开B房间的门,假如有选手打开了B房间的门拿到Flag,却没在A房间留下痕迹,那么就存在作弊的可能性。
3)答案不可能雷同的题目
还有些题目,从概率上就不太可能雷同答案。比如有一道题的其中一个步骤是让选手们补上一个残缺的二维码。
二维码的画法有成千上万种,你可以画个葫芦娃,也可以画个小猪佩奇,甚至写个汉字,从概率上来说,几乎不可能雷同。
但是这些方法只能查出直接“串flag”的作弊,如果两支队伍只是“交流解题思路”,这些办法就很难发现。
4)赛后提交解题思路
“每一场初赛后,我们会给到前240名的选手一个模板,要求选手在8小时之内提交详细的WriteUp(解题思路)。”AK说,这在一定程度上提高选手作弊的成本。
5)大数据反作弊
烽火台反作弊平台会记录每个选手的登录IP地址和每一道题的提交时间。
“假如来自不同战队的A选手和B选手在差不多时间提交了同一道题,虽然看起来Flag是自己做的,可是调取他们的登录信息,发现他们的IP地址频繁变化并且出现IP地址相同的情况,那么就有代打的可能性。”
除此之外,烽火台反作弊系统还积累了选手们在CTF竞赛社区里的社会关系:参加过什么比赛、服役过什么队、队员都有谁、擅长什么技术方向、这些数据会关联到每一场比赛中。
“CTF社区的技术交流氛围很好,但网络安全竞赛的目的是选拔和评价人才,所以我们不希望这种社会关系渗透到比赛中,否则对刚进圈子但技术实力强的人不公平。”AK说。
6)群众举报和外部信息
群众举报也是一个重要的反作弊情报来源。文章前面提到的那个跑到技术论坛悬赏的,就在知乎上被人举报的。
六、线下决赛
11月27日至28日,网鼎杯的线下赛在深圳举办,浅黑科技去了一趟现场。
和初赛相比,线下半决赛和决赛的反作弊更严格,为了防止一些单位找第三方技术公司的人现场代打,选手入场有严格的身份核验。
“学生核验在读证明和学生证,政府机构、高校老师、企业员工等则核实社保和在职证明,在职满6个月才能代表所属单位参赛。”
AK告诉我,某事业单位曾经想让一位劳务派遣的技术人员代表他们单位参赛,被网鼎杯主办方当场拒绝,回应大意是:如果您单位的确重视这位网络安全人才,请正式录用他,让他参加下一届网鼎杯。
现场人脸核验
比赛现场没有WiFi,所有电脑通过主办方提供的网线接入比赛平台,比赛期间不允许选手和外界通讯,现场有信号屏蔽设备,选手处于“失联”状态。
选手正在寄存个人通讯设备
AK告诉我,网鼎杯主办方给选手的证件设置了一串复杂的编码,把座位号也变成了“一道题”,解开这道题的选手才能知道自己坐在哪儿,这样能防止选手提前拿到证件之后知道其他认识的战队坐在哪儿,现场搞PY。
我问AK:“万一选手没解出来这道题,岂不是都不知道自己坐哪儿了?”AK说:“如果这道题都解不出来,那我们得盘问一下他是怎么摸鱼摸进半决赛的了。
”
上午开赛没多久,有个小哥进入挠头模式……
现场每位选手都领到一个“伙食包”,看样子中途吃饭都得在桌子上,有古代科举考试内味儿了,不晓得中途还会不会空投物资。
最夸张的是,为了防止扎堆上厕所,也防止有人躲在坑位里进行真正的PY交易
,主办方特地准备了一个“洗手间预约排队系统”,在系统上提交申请,现场填写登记表才能去。
登记上厕所
网鼎杯半决赛现场
场外的警车
场内所有人提前一天免费核酸检测
但即便是这样严格缜密的规则,也盖不住一些选手们不知道从哪带进去一些上网设备——毕竟他们可是黑客啊。
11月28日,决赛现场,AK在场内来回巡视,发现一位选手时不时抬头看向自己,又迅速转移视线。
“你不对劲,兄弟。”经验老道的监考往往只需要最简单的眼神交流就能察觉异常。他悄悄告诉另一位工作人员:“你绕到另一边,看看他在干什么。”
抓个正着。微信群里正在“交流”。
二话不说,当场收缴作案工具,并告知给裁判。
此时另一边,“烽火台”也时不时发出异常预警:某战队选手登录了另一支战队的账号。
AK说“半决赛有2000名选手在现场,人一多,你会发现什么情况都可能发生,比赛平台的稳定性、人员的安全性、反作弊……你得提前考虑各种各样极端的情况。”
网鼎杯的裁判张凯还告诉我一个小插曲:“半决赛的前一天晚上,我们裁判组测试竞赛平台,发现很多人对我们进行网络扫描和渗透测试,我就给他们发私信:再扫,把你们踢出去!”
偷袭老同志,不好,年轻人要耗子尾汁。
七、反作弊的代价
反作弊有代价,除了本身的实施成本,最直接的体现是降低了选手的参赛体验,让他们不如以往其他比赛那么自在。
且不说线上比赛打到一半忽然有工作人员小姐姐给你打电话,问这问那核实身份,光是线下赛严苛的身份核验就让一些选手感到束缚,拉个粑粑还要报备。
2018年第一届网鼎杯办完,就有选手跑到网上吐槽:“第一次遇到线下赛既不让连外网同时上交手机,而且无线路由器也不能用,哦,还有电磁屏蔽的……”
抓到作弊,处罚力度也是个问题。
AK告诉我,去年的全国大学生网络安全竞赛上,一个学生被现场裁判抓住连外网,判罚强制终止比赛,结果指导老师哭着找过来,说取消比赛资格可以,但请千万别通报学校,不然学生要受处分,影响学业。
后来经核实,发现那位选手是因为第一次参加这么大规模的比赛,过于激动,所以忍不住拍了一些照片给女朋友发过去,并没有交流赛题。
自那以后,AK意识到反作弊处罚得拿捏好度,生怕增加额外伤害。
“按照规则,网鼎杯发现恶劣的作弊行为之后会把选手拉入竞赛黑名单,并且考虑通报给单位,但目前还没有通报过,这是一个保留手段。”他说,哪怕是公示出来的作弊处罚名单,主办方也会把队名打码,就是怕选手受到太大影响。
“搞网络安全的都知道,漏报和误报是矛盾的,如果太严格,很容易误报,太宽松又容易会漏掉一些威胁。比赛反作弊也是一样,有时左右为难。”
AK向我透露,今年网鼎杯初赛,一支队伍泄露Flag给另一支队伍,被烽火台发现,主办方把两支队伍都进行了处罚。结果公告一出没多久,他就收到申诉邮件,对方说:“为啥判我作弊,我没作弊啊,你怎么证明我提交了别人的Flag?”
AK给对方详细陈述了“动态Flag”的机制,告诉他平台有日志记录,对方还是不信:“万一你平台出错了呢?”
对方不依不挠发了十几封邮件,逼着主办方给他看了平台的日志,还是不服。AK告诉对方:“你如果还是有疑虑,请通过你单位写信盖章来做仲裁。”结果对方单位真的盖了章,那就仲裁吧,裁判组举手表决,依然是全票认定为串Flag作弊。
“也许是觉得闹一闹搏一搏,单车就能变摩托。也许是怕承认作弊很难跟上级领导解释,所以无论如何也要争辩到底。”AK说,“我们主办方其实也挺委屈的,你不能用权威去压选手,不然大家会说你欺负人,说你不公平。”
八、网鼎杯不相信江湖
知乎上有个这样的提问:
一个回答是这样的:
"很多CTF选手都是高校的学生,半条腿才迈进网络安全行业,别的还没学到,先学到代打作弊,你说有意思不?”AK摊摊手,“网鼎杯的初衷就是要找到真正有能力的人,然后倒逼他们的单位去发现他们,重视他们,给他们提供舞台和空间。”
据我所知,今年“网鼎杯”除了奖金、奖杯和相关证书,联合主办方深信服还给Top50的高校战队额外提供了校招绿色通道和实习机会。
我想,这是深信服作为一家企业的一点点“私心”——想通过举办赛事来吸引和挖掘人才——更是它作为联合主办方的一次以身作则。
毕竟,技术人才(而非靠PY上位者)才是我们国家网络安全产业做大,做强的希望和根本。
如此,串题、代打就像是凿船,大家都在一条船上,脚下的船翻了,谁也别想好。
告别AK时,我说想以“网鼎杯是一个江湖”作为主题,讲真正的大侠从来不屑于搞偷袭和靠关系上位。AK说他不太喜欢“江湖”这个词,市侩气息太重,不符合网鼎杯的气质。
他说网鼎杯做的一切都是想让网络安全竞赛圈子更加规范起来,哪怕有时看起来有些严肃,拘谨,官方,丧失掉一些娱乐性和自由性。
我说:“那就叫‘网鼎杯不相信江湖’吧,法治社会需要秩序,不需要侠客和江湖。”AK笑了。
注:本文提到的人名均为化名。