控制室的灯又闪了一下,江逸没有抬头。他指尖在终端上滑动,将那段异常日志拖入解析界面。屏幕上的代码流像一条被惊扰的河,翻涌着陌生的协议片段。他盯着那串伪装成内网测试请求的数据包,眉头微蹙——时间戳精准卡在发布会开始后第十七分钟,正是全场目光聚焦讲台的瞬间。
林初夏靠在主控台边,卫衣袖口卷到手肘,手指在键盘上快速敲击。她右膝垫着一块软布,偶尔轻轻挪动时会皱一下眉,但眼神始终没离开屏幕。反黄牛系统的防御模块刚完成一轮迭代,绿色进度条稳定运行,可她知道,真正的考验还没来。
“这个加密头……不是标准格式。”她低声说,调出数据包分层结构,“像是拼接过的。”
江逸走过来,站到她身后半步的位置。机械表贴着手腕皮肤,震动频率与系统心跳监测器同步。他扫了一眼解码结果,声音平稳:“对方用了双层代理跳转,最后落点在境外未注册节点。但请求行为模式暴露了——它模拟的是我们内部排练日程的空档期访问规律。”
林初夏停下敲击的手指:“你是说,有人长期监控我们的工作节奏?”
“不止是节奏。”他放大一组时间序列,“每一次异常请求的时间窗口,都恰好避开核心成员在线时段。这不是随机试探,是熟悉我们运作逻辑的人在操作。”
她咬了下嘴唇,重新输入一串指令。系统开始回溯过去七十二小时的所有API调用记录。一行标记为“低风险”的请求突然跳出,来源IP已被归类为官方合作方白名单。
“等等。”她拉住江逸的袖角,“这个接口权限三个月前就移交给了技术协作组,但他们不该有票务密钥的读取权限。”
江逸点头,调出权限树图谱。那个节点的确挂着共享标签,但底层访问日志显示,最近一次调用尝试触发了越权预警,却被自动忽略——因为规则库尚未更新针对“高频低量”刷票行为的识别模型。
“现行风控对分散式小批量请求太宽容。”他说,“他们用几十个账号每秒抢一张票,总量不大,但累积起来能吃掉整场演出的优质席位。”
林初夏迅速打开算法配置面板:“我可以加入用户行为画像验证。比如根据粉丝历史购票习惯生成动态挑战题,机器很难模仿。”
“做。”江逸看着她,“把应援口号问答、节奏点击小游戏嵌进去。让每个真实用户都能过,机器人必须卡住。”
她深吸一口气,手指重新落在键盘上。代码行如雨点般落下,测试环境中的拦截率曲线缓缓爬升。九分钟后,屏幕上跳出统计结果:98.6%的异常流量被成功阻断,误伤率低于0.3%。
“成了?”她回头看他。
“还在验证。”他指着沙箱里的模拟攻击队列,“等实战检验。”
话音未落,警报声骤然响起。
红光在机房顶部旋转,主屏弹出三级威胁提示:**检测到大规模批量购票请求,目标为下周演唱会VIP区,源IP分布全球13个地区,请求频率每秒2174次**。
林初夏猛地坐直身体,双手同时按下快捷键。新部署的动态验证层立刻启动,系统自动对高风险IP发起分级挑战——有的要求回答专属应援口号,有的弹出节奏小游戏,还有一部分被引导至虚拟排队池。
江逸调出区块链存证模块,确认每一次拦截动作都被实时上链。
三十七秒后,攻击流量开始回落。
一百零二秒,峰值从两千多次降至三百以下。
三分十四秒,残留请求不足总流量的百分之五,且全部被标记追踪路径。
“漂亮。”一个声音从门口传来。
秦昭靠在门框上,帽檐压得不高不低,刚好能看清屏幕上的日志瀑布。他手里拎着两瓶水,递了一瓶给江逸,另一只手撑在门框上,目光落在林初夏身上。
“这丫头比黑客还厉害。”他说,语气里没了往日的随意调侃。
林初夏低头,手指无意识地扯了下手套边缘,又立刻松开,挺直背脊继续盯着屏幕。她没说话,但在输入下一条命令时,嘴角微微扬了一下。
江逸拧开水瓶喝了一口,视线仍锁在追踪路径图上。信号最终汇向一个位于东南亚的匿名代理服务,但通过DNS泄露信息反推,初步锁定实际操控端可能藏在国内某第三方票务技术支持团队。
“不是霍绍庭直接动手。”他低声说,“他在借刀。”
秦昭冷笑一声:“谁不知道他最喜欢躲在合同后面玩阴的。”
“但现在重要的是守住系统。”江逸转向主控台,“林初夏,把这次攻击特征加入黑名单模板,同时生成一份公开技术报告摘要,准备提交给行业协会备案。”
她点点头,调出文档框架。指尖停顿片刻,忽然问:“可以用团队名义发吗?”
江逸看了她一眼:“当然。”
她抿了下嘴,开始