杭州经侦封存徐梦瑶办公电脑之后,叶诤通过系统远程挂载了整盘镜像。1TB固态,四个区——系统、数据、恢复,还有一个他没见过的东西:隐藏APFS卷,没有卷标,只有一串UUID。挂上去发现里面就两个玩意儿,一个叫“脱敏工具”的Python脚本,一个temp文件夹,四十七个CSV,按日期从今年一月排到六月。
那个脱敏工具,表面功能是对外导出的用户数据做合规处理——姓名换随机ID,手机中间四位打星,地址截到区县。但脚本末尾藏了一段混淆过的代码。逻辑很简单,也很毒:在脱敏之前,先用正则把原始手机号和完整地址抓出来,Base64编码,塞进GPU渲染缓存区的一个临时文件里。
GPU渲染缓存区。叶诤看到这几个字的时候眉心皱了一下。这脚本调用macOS的Metal图形框架,借口说正则匹配用GPU加速更快。加速完了本该清显存,但她插了个断点,把原始敏感数据以纹理缓存的形式留在显存里,系统日志里标记成“渲染错误”。然后这些被标注为GPU缓存异常的数据块,通过公司内部CDN节点,伪装成广告请求,分批传出去。每周三深夜。
叶诤靠着应急通信室的控制台,把那段Python放大。代码写得干净——函数命名规范,注释清楚,核心逻辑多线程加异步IO。但最后那截混淆块暴露了一切。不是脱敏工具,是披着脱敏皮的数据窃取器。四十七次“脱敏”,就是四十七次窃取。每一次导出的记录在被合规处理的同时,原始敏感字段完整复制,塞进GPU显存,伪装成广告流量从企业CDN溜出去。接收端IP全部指向柬埔寨某赌博集团的镜像服务器——跟王德海控制端同一个网段。
“追踪数据流向。”
系统把日志铺开。四十七次传输,四十一次经柬埔寨中转后汇入ZOA关联冷钱包的IPFS存储节点。剩下六次目的地不同——路由到一台BJ的服务器。这台服务器的IP在天罡名单里出现过两次,一次在天魁星的备注字段,一次在天暗星的激活确认回执里。
“这服务器谁的。”
系统溯源结果:名义上是一家早注销的创业公司的比价网站,停更三年。但Nginx日志显示,过去两年这网站唯一的访问流量来自两个固定IP——一个杭州,一个柬埔寨。没有用户访问,没有被搜索引擎收录,只有定时心跳。它不是网站,是信箱。杭州往上丢数据包,柬埔寨定时取走。一台停更三年的比价网站,租在BJ某云服务商机房里,每月自动从一张境外信用卡扣款。没人访问它,没搜索引擎收录它。它活着的唯一意义就是当个无人知晓的邮局。
四十七次传输全部发生在周三深夜,误差不超过十五分钟。周五晚上从公司导出数据,周三深夜通过CDN传走,中间隔五天。这五天里她把原始数据存在隐藏APFS卷里,安静地躺着。周三深夜自动触发传输。一旦传完,隐藏卷里的原始数据自动删除。
但她犯了个错误。APFS删除文件不立即擦数据块,只把inode标记为可重用。系统扫描隐藏卷的未分配空间,在那些理论上已删除的扇区里,恢复了第四十七批CSV的一小段残留。只有几千行,不是完整的三点二亿。但够了。
叶诤把残留数据加载到AR界面上,一行一行往下翻。姓名、手机号、收货地址、支付偏好、最近三十天购物车。密密麻麻的表格,每一行都是一个真实的人留下的消费痕迹。买了整箱婴儿奶粉的妈妈,每周固定下单宠物零食的独居老人,把购物车里羽绒服加了又删删了又加的犹豫不决的学生。然后他翻到一个名字。
手指停了。
陈嘉乐。男。31岁。收货地址海市浦东。支付偏好花呗。最近三十天购物车:机械键盘一把、防蓝光眼镜一副、速溶咖啡四十八包装一箱。
他前同事。两年前在同一家小互联网公司做后端,工位面对面,加班一起吃黄焖鸡米饭,团建喝多了叶诤把他扶上出租车。后来公司倒了,各奔东西。最后一次联系是一年前春节,陈嘉乐在微信上发了个表情包,他回了句“新年好”。然后就没了。
现在陈嘉乐的购物记录躺在一份被卖到境外的数据碎片里。
叶诤盯着那行字。不是愤怒。是被什么东西从里面撞了一下。他每天追伪基站跑,追幽灵光缆跑,追硅基生命体的协议文档跑,追零布在人类社会里一百零八个眼线跑。他知道这些数据代表的是人——被诈骗的受害者、被冒用身份的失踪工程师、被当成目标的购物用户。但“人”始终是一串数字,一个统计口径,一个算万倍补偿的基数。直到他在被窃取的数据碎片里看到了自己认识的人。一起吃黄焖鸡米饭的人,购物车里有机械键盘和速溶咖啡。机械键盘说明还在写代码。速溶咖啡说明还在熬夜。跟两年前一样。
这章没有结束,请点击下一页继续阅读!