周鹏把那条异常IP标红以后,会议室里安静了很久。
不是没人想说话。
是每个人都意识到,事情已经从「梁舒是否误操作」,变成了另一个更危险的问题。
有人借梁舒的账号进来过。
或者,更准确一点——有人让系统以为那是梁舒。
陈砚秋挂了电话,走回屏幕前。
「能确认不是她吗?」
这句话问得很克制。
但谁都听得出里面压着的急。
周鹏没有立刻给结论。
「现在只能说,异常访问设备和梁舒已登记设备不一致,IP也不一致。还需要安全顾问看会话日志和网关记录。」
林听晚点头。
「叫人进来。」
十分钟后,外部安全顾问韩铮到了。
他是野月去年做等保整改时合作过的人,背着电脑包,进门先看封存记录,再看授权邮件。
没有寒暄。
「谁是事件负责人?」
陈砚秋看向林听晚。
林听晚开口:「业务事实我负责汇总。技术判断你和IT出。结论写证据,不写猜测。」
韩铮点了下头。
「可以。」
他坐下,把周鹏导出的登录表、网盘审计日志、企业微信设备记录、VPN网关记录一并打开。
屏幕上很快铺满窗口。
凌晨一点四十七,梁舒账号触发核心资料目录访问。
一点五十,进入核心配方母版所在文件夹。
两点零四,下载成功。
两点零九,会话退出。
看起来干净利落。
太干净了。
韩铮拖动日志,停在登录方式那一列。
「不是密码登录。」
周鹏立刻凑近。
「token刷新?」
「对。旧会话续用,浏览器端。」
韩铮指着一串长到看不清的UA。
「Windows 10,Chrome内核,但版本号很怪,像自动化环境或者套壳浏览器。设备指纹第一次出现,系统没有强制二次验证。」
梁舒坐在会议桌另一端,脸色发白。
她想问这是不是就能证明自己没做。
但她忍住了。
林听晚说过,事实要一步一步落下去。
韩铮继续往下看。
「IP归属地不在本市。出口在临省一个云主机机房,具体要向服务商调。不是家庭宽带,也不是野月办公网。」
秦嘉皱眉。
「云主机?那是不是查不到人?」
「能查到链路,但需要时间,也需要公司正式函件。对方如果套了多层代理,不会那么快。」
韩铮没有把话说满。
他又打开企业网盘的分享审计。
「这里有个问题。」
林听晚抬眼。
「说。」
「梁舒账号在三周前加入过一个供应商协作群。群里有一个资料包共享链接,原定七天过期,但实际没有失效。」
许萌脸色一变。
「哪个供应商?」
「包材打样那边,群名叫『野月新品包材联调-临时』。」
周鹏低声骂了一句。
「这个群不是结束了吗?」
「群结束了,链接没关。」
韩铮把记录调出来。
「链接本身不指向核心配方母版,但它在同一个项目空间下。权限模型做得粗,访问过这个共享链接的会话,可以看到部分上级目录索引。正常情况下还需要二次验证才能继续进入敏感目录。」
林听晚捕捉到关键。
「正常情况下。」
韩铮看向周鹏。
周鹏的表情已经很难看。
「二次验证策略这块……之前只对正式员工后台和研发库强制。临时协作空间没有全量覆盖。」
「梁舒的账号呢?」
「她是品牌组新人,权限是临时加的,用于清查测试反馈和用户材料。二次验证开了企业微信确认,但高敏目录的二次验证没有绑定硬件或动态口令。」
「也就是说,如果有人拿到了她的旧会话,或者通过未失效链接把会话引到项目空间,再绕过策略缺口,就可能继续往里走。」
林听晚把话说得很慢。
周鹏没有反驳。
「理论上是。」
韩铮补充:「从日志看,不像普通员工误点。路径走得很准,进入目录后没有大量翻找,直接定位母版。下载后没有再访问别的文件。」
会议室里的温度又低了一层。
直接定位。
这四个字比「账号被盗」更刺耳。
如果只是撞库、钓鱼、旧链接泄露,攻击者应该会试探。
可对方知道自己要什么。
也知道从哪里拿。
陈砚秋的手指压在桌沿。
「梁舒账号,是怎么被拿到会话的?」
韩铮切到企业微信记录。
「三种可能。第一,钓鱼页面。第二,终端被恶意插件截取cookie。第三,供应商协作群里有人访问过带跟踪脚本的外部链接,诱导同端登录。」
梁舒抬头。
「供应商群里,上周有个设计稿预览链接。」
大家看向她。
小主,这个章节后面还有哦,请点击下一页继续阅读,后面更精彩!她立刻翻自己的记录,但手指停在屏幕上,又看向秦嘉。
「我可以给你看吗?是工作群。」
秦嘉点头,拿了授权表过来。
「你本人操作,我在旁边记录,只看这个群和相关链接。」
梁舒吸了口气,打开企业微信。
群里消息不少。
包材供应商、设计外包、品牌、产品,十几个人临时拉在一起。
三周前为了一版瓶贴颜色吵过半天。
一周前,有人发过一个「高清预览链接」。
发送人是供应商那边的项目助理。
链接域名看起来像常见网盘,点开却跳过一次短链。
梁舒说:「我当时用手机点过,看不清,就在电脑上又开了一次。后来发现只是瓶贴渲染图。」
韩铮把链接复制到隔离环境。
几分钟后,他的眉头皱起来。
「短链现在已经失效,但跳转记录能看到,曾经指向一个仿网盘页面。页面不一定直接偷密码,但可能诱导浏览器授权或读取环境信息。」
周鹏脸色发沉。
「我们没有对供应商群做链接安全扫描。」
许萌低声说:「因为以前这类临时群太多,大家都嫌流程慢。」
没人接这句话。
流程慢,所以先方便。
方便久了,就会变成入口。
林听晚看着屏幕上的群名。
她没有责备梁舒,也没有把供应商立刻定成凶手。
「继续查。」
陈砚秋看向她。
「现在至少能说明梁舒账号存在被盗用或会话劫持风险。」
「不是风险。」
韩铮敲下几行初步判断。
「从目前证据看,凌晨访问与梁舒常用设备、常用网络、本人时间线均不匹配;访问采用旧会话刷新,未触发有效二次验证;异常设备首次出现,IP为异地云主机。可以初步确认:梁舒账号存在被盗用或会话被劫持的高度可能。」
梁舒闭了闭眼。
她的肩膀终于松下来,却不是轻松。
像一个快被水淹没的人,终于摸到了一块浮木。
秦嘉立刻问:「那我是不是可以把责任口径改掉?」
「改成事实口径。」
林听晚说。
「写:已发现梁舒账号异常会话,正在排查账号盗用或会话劫持可能。不得写『梁舒误操作』,不得写『梁舒泄露』,也不要写『已排除全部内部风险』。」
秦嘉点头。
「明白。」
陆总的电话这时打进陈砚秋手机。
陈砚秋看了一眼,没有立刻接。
林听晚看见了。
「可以同步给管理层,但只同步证据状态,不同步未核实猜测。」
陈砚秋按下接听,走到一边。
电话那头声音不小。
「现在怎么样?能不能对投资人说是账号被盗?这样比内部管理问题好解释。」
陈砚秋没有回答。
他看向林听晚。
林听晚抬手,示意他开免提。
陈砚秋照做。
林听晚开口:「不能。」
电话那头顿了一下。
「为什么?不是查到异常IP了吗?」
「查到异常IP,不等于查到全部路径。账号被盗只是中间事实,不是终点。」
林听晚语气平稳。
「如果我们现在对外说到此为止,真正的入口还在,下一次被拿走的可能就不是一份母版。」
陆总沉默两秒。
「那你还要查什么?」
「查旧链接为什么没过期,查供应商群链接是谁发、谁点、谁二次传播,查二次验证为什么没有覆盖高敏目录,查异常会话为什么能直接定位母版。」
她看着屏幕上那条精准访问路径。
「还要查,谁知道这个路径。」
电话那边没声了。
韩铮这时抬手。
「等一下。」
他把项目空间的权限树往上拉。
「这个母版目录的访问,不完全是从现有项目空间进去的。」
周鹏一愣。
「什么意思?」
「日志里有一个历史映射ID。」
韩铮放大那串字符。
「正常用户看到的是现在的目录名,但系统底层还保留了早期迁移前的入口。异常会话调用的是旧入口,不是新路径。」
陈砚秋慢慢放下手机。
「旧入口?」
周鹏脸色比刚才更难看。
「这套网盘迁移,是公司早期做的。后来改过几次架构,旧映射按理说只有管理员文档里有。」
林听晚看着那串历史映射ID。
林听晚看出了对方为什么没有翻找。
因为对方不是误闯。
对方从一开始,就知道门在哪。
韩铮把权限树继续展开,最后停在一个灰色节点上。
节点名称很旧。
旧到连野月现在的员工都未必听过。
——「YUE_RAW_创始版资料库」。
周鹏声音发紧。
「这个入口,只有早期合伙人知道。」