林悦把手机屏幕朝下一扣,翻身从床上坐起来,顺手抓过桌上的笔记本电脑。凌晨一点刚过,窗外安静得只剩风掠过树梢的声音。她没开灯,借着屏幕的光敲开群聊,把那条“你们赢不了的”私信截图发了进去。
消息刚发完,对话框立刻弹出回复。
“别理他。”沈墨渊的消息紧跟着出现,“这种人就希望我们慌。”
林悦哼了声,手指在键盘上敲得飞快:“我要是慌,早就不干了。我是觉得——有人盯着我们,比我们想象的还紧。”
姜悦兮的消息隔了几秒才跳出来:“后台刚更新了访问日志,那个Ip又来了,换了代理,但特征码没变。”
“还来?”林悦眼睛一亮,“这次别让他跑了,留点‘纪念品’。”
“已经在做了。”沈墨渊回得干脆,“系统自动回传了个假数据包,他现在应该正看着一份‘内部合作名单’,上面全是虚构的队伍。”
“哈哈哈,好家伙。”林悦笑出声,“等他拿去当证据,发现全是假的,脸都绿了。”
“重点不是他信不信。”姜悦兮打字很慢,但每个字都清晰,“是他在替谁做事。一个匿名账号,能拿到我们未公开的接口信息,说明内部有泄露。”
空气忽然沉了半拍。
林悦没再开玩笑,手指停在触控板上:“你是说……参赛队里有人和外头串通?”
“不一定是有意。”沈墨渊回,“可能是谁不小心把测试账号共享了,或者被钓鱼拿了权限。但结果一样——有人想让我们自乱阵脚。”
林悦沉默几秒,忽然问:“那我们现在怎么办?继续上线?”
“当然。”沈墨渊的回复没半点迟疑,“明天八点,直播公测。他们越想拦,我们越要亮出来。”
姜悦兮发了个“好”字,又补了一句:“我刚加了双因子验证,所有接入队伍必须扫码+短信确认。谁再想冒充我们发‘内部通道’,门槛高了十倍。”
林悦看着聊天框,突然觉得有点累。不是身体上的,是那种持续绷着神经的感觉。她靠在椅背上,盯着天花板,轻声说:“你说,咱们图啥?”
没人立刻回答。
过了几秒,沈墨渊的消息才来:“图个明白。”
“啥?”
“图以后有人输了,能知道为什么输。”他打字依旧利落,“不是因为后台改分,不是因为评委偏心,而是真的差了那么一点。这样,下次还能拼。”
林悦眨了眨眼,忽然笑了:“你这话,要是放短视频里,能火。”
“我不在乎火不火。”他回,“我在乎的是,别再有人像我们当年那样,站在领奖台底下,手里拿着奖杯,心里却像被抽空了。”
姜悦兮发了个语音,声音很轻:“我刚翻了下Aegis那次的申诉记录。我们提交了三次材料,两次被退回,理由是‘流程不符’。第三次好不容易进了复核,结果评委说‘评分自由,不予解释’。”
“自由到不用讲道理?”林悦冷笑,“那叫霸权。”
“所以现在我们要做的,就是把‘自由’框进规则里。”沈墨渊说,“不是反对评委,是让评委也对得起自己的位置。”
林悦没再说话,只是打开邮箱,把明天直播的预告链接发了出去。她顺手加了句文案:“透明赛场,不玩暗箱。八点见。”
消息刚发,手机就震了一下。是平台系统自动推送的提醒:【已确认接入队伍:74支】。
比昨晚多了1支。
她截图发进群:“看,有人信我们。”
姜悦兮回了个笑脸。
沈墨渊只回了一个字:“上。”
第二天早上七点五十,教学楼b区报告厅外已经围了不少人。有扛着相机的学生记者,有拿着笔记本的社团成员,还有几个穿着便装的年轻人,拿着手机不停拍照。
林悦站在门口,手里抱着一台直播用的云台支架。她抬头看了眼电子屏上的时间,还有十分钟。
“人都到齐了?”她问姜悦兮。
“七十三支确认到场,一支远程接入。”姜悦兮翻着平板,“还有五个在走最后验证,应该赶得上。”
“沈墨渊呢?”
“在后台调最后的数据流。”姜悦兮抬头,“他说等你一进去,就开始倒计时。”
林悦深吸一口气,拎着设备往里走。
报告厅里已经坐了大半人。她穿过过道,把云台架在前排,连上手机。屏幕亮起,直播间人数瞬间跳到三千。
她对着镜头挥了下手:“各位,欢迎来到‘透明赛场’公测启动现场。我是林悦,今天不讲虚的,直接上线。”
话音刚落,沈墨渊从后台走出来,手里拿着一台加密U盘。他走到主控台前,插进接口,屏幕一闪,系统界面弹出。
【v0.3 公测版|已通过安全审计】
他点开权限管理模块,对着镜头说:“现在,我将开放第一轮测试权限。所有接入队伍,准备接收验证码。”
姜悦兮在旁边轻声报数:“七十四支队伍,全部在线。”
沈墨渊按下确认键。
屏幕中央跳出倒计时:【10、9、8……】
林悦盯着直播画面,心跳不自觉加快。
“七、六、五……”
突然,她的手机震动了一下。是一条新消息,来自一个陌生号码。
她没点开,余光却扫到了内容前几个字:“你们的系统……”
倒计时还在继续。
“四、三、二……”
她皱了皱眉,想掏出手机再看一眼。
“一。”
系统启动。
屏幕刷新,首页跳出实时数据流:【当前接入项目:74】【评审日志记录中】【评分透明度:100%】
掌声响起。
林悦松了口气,低头点开那条消息。
内容是:“你们的系统有个漏洞,三分钟后崩溃。”
她猛地抬头,看向沈墨渊。
他也在看她,眼神一沉。
两人几乎同时开口:“后台日志呢?”
姜悦兮已经冲到另一台设备前,手指飞快滑动:“有异常请求,Ip来自校内中转站,伪装成测试账号……正在尝试注入错误指令。”
“切断?”林悦问。
“不行。”姜悦兮摇头,“他已经嵌入权限链,现在断开会连累所有接入队伍。”
沈墨渊盯着屏幕,声音冷静:“让他进。”
“什么?”林悦愣住。
“让他进来。”他重复一遍,“我们留了个‘房间’,专等这种人。”
姜悦兮嘴角微扬:“蜜罐系统,启动了。”
林悦忽然明白了。
他们不是没防备,而是把防线设在了更深的地方。
屏幕上,数据流突然出现波动。一个伪装成“评审账号”的操作请求试图修改评分权重,系统短暂卡顿了一下,随即弹出提示:【检测到异常行为,已隔离并记录】
紧接着,后台自动反追踪,Ip地址被层层剥离,最终定位到一栋宿舍楼。
“抓到了。”姜悦兮低声说。
沈墨渊没说话,只是点了下鼠标,把整个过程录了下来。
直播画面一切正常,观众甚至没察觉刚才的波动。
林悦对着镜头笑了笑:“刚才系统做了个压力测试,大家看到了吗?一切稳定。”
弹幕刷过一排“稳”“靠谱”“这系统有点东西”。
她低头看了眼手机,那个号码再没发来新消息。
发布会结束后,四人回到实验室。林悦瘫在椅子上,脚翘在桌上:“总算搞定了。”
姜悦兮正在导出日志,忽然“咦”了一声。
“怎么?”沈墨渊问。
“那个被隔离的账号……绑定的学号,是去年被淘汰的‘星轨’队成员。”
林悦坐直了:“就是那个说我们‘抢风头’的队?”
“对。”姜悦兮点头,“他们项目没过初审,当时在论坛发帖骂了好久。”
“现在又来搞事?”林悦冷笑,“输不起就算了,还阴魂不散。”
沈墨渊盯着屏幕,忽然说:“他不是一个人。”
“啥意思?”
“那个Ip中转站,需要权限才能接入。”他调出权限树,“能拿到的,不超过二十人。”
空气一下子冷了下来。
“你是说……有内部人帮他?”林悦声音低了。
“不一定是有意。”沈墨渊重复了昨晚的话,“但漏洞在那儿,就得补。”
姜悦兮合上平板:“要不,我们发个公告?提醒大家注意账号安全。”
“不。”沈墨渊摇头,“我们发一段视频。”
“视频?”
“把刚才的攻击过程,做成科普短片。”他打开剪辑软件,“标题就叫《三分钟,他们想搞垮我们》。”
林悦笑了:“这标题,够炸。”
“让所有人看看。”他点下新建项目,“不是我们神,是他们太急。”
姜悦兮靠在桌边,轻声说:“其实吧,他们越急,说明我们越对。”
林悦伸了个懒腰:“那咱们就继续让他们急。”
沈墨渊没说话,只是把那段被截获的操作记录拖进了时间轴。
视频开始渲染。
进度条走到87%时,他的手机又震了一下。
是一条新消息,来自校内论坛。
标题是:【刚看了你们的直播,我申请加入“透明赛场”志愿者。】
他看完,把手机倒扣在桌上,继续盯着屏幕。
渲染完成。
他点开播放。
画面里,红色的攻击信号冲向系统,却被一道透明屏障挡住,随即反向追踪,最后定格在一个闪烁的Ip上。
字幕缓缓浮现:“我们不怕攻击,我们只怕沉默。”