坏模式的修改。目的是让污染看起来像是清洗过程中的技术错误,而不是人为破坏。
路容闭上眼睛,手指按在太阳穴上。
她能想象出那个场景:上周五晚上十点四十九分,王总监坐在自己的办公室里,电脑屏幕亮着。她打开终端,登录管理员账户,解锁路容已经清洗完成并锁定的文件。然后她运行一个脚本——那个/tmp/check_integrity_script.sh——脚本按照预设的规则,对文件进行“污染”。完成后,她重新锁定文件,退出登录。
然后,她删除了操作日志中关于这个脚本运行的具体内容记录,只留下“MODIFY_FILE”这个笼统的操作条目。在提供给路容的剪辑版日志里,她甚至把这个条目也删掉了。
“但你没删干净。”路容睁开眼睛,目光重新聚焦在屏幕上。
备份系统里的完整日志,还保留着脚本进程的PID、运行时长,甚至脚本内容摘要。虽然看不到完整脚本代码,但这些摘要已经足够。
路容开始编写第二个模拟程序。
这一次,她不仅要模拟日期替换,还要模拟用户行为序列的重复、交易金额的随机扰动、地理坐标的截断。她根据污染样本中观察到的模式,推断出可能的算法:
- 用户行为序列重复:每隔100行数据,随机选择一行,将其行为序列复制并追加到末尾。
- 交易金额扰动:对每个金额乘以(0.95 + random() * 0.1),保留两位小数。
- 地理坐标截断:将经纬度坐标的小数部分截断到三位。
她写得很专注,时间在代码的字符间流逝。窗外的天空从深黑渐渐转为墨蓝,远处传来第一班地铁驶过轨道的声音,沉闷而有节奏。房间里越来越冷,她起身披了件外套,手指因为长时间敲击键盘而有些僵硬。
**凌晨三点四十二分**
模拟程序写完了。
路容从自己的备份里调出上周五清洗完成的数据文件——这是她习惯性保留的本地副本。她用自己编写的模拟程序对这个干净文件进行处理。
运行。
进度条在屏幕上缓慢移动。她的心跳有点快,喉咙发干。她拿起桌上那杯凉透的咖啡,喝了一口,苦涩的味道在舌尖蔓延。
程序运行完毕。
她打开处理后的文件,随机抽取几行数据,与王总监展示的污染样本进行对比。
第一行:日期字段,从“2023-10-28”变成了“2023-11-03”。匹配。
第二行:用户行为序列,从“login→browse→purchase”变成了“login→browse→purchase→login→browse”。匹配。
第三行:交易金额,从“149.99”变成了“142.49”(149.99 * 0.95)。匹配。
第四行:地理坐标,从“116.407526, 39.904030”变成了“116.407, 39.904”。匹配。
路容靠在椅背上,长长地吐出一口气。
白色的水汽在冰冷的空气里凝结成雾。她的手指在颤抖,但这次不是因为恐惧或应激障碍,而是因为兴奋。一种冰冷的、锋利的兴奋。
她找到了。完美的证据链。
**凌晨四点十五分**
路容开始整理报告。
她打开一个新的文档,标题是“关于blueplan_data_1103_final.csv文件数据异常的技术分析报告”。她没有署名,没有日期,文档里只有事实。
<-->>
本章未完,点击下一页继续阅读