文件展开,里面是数万行JSON格式的数据。路容快速浏览,确认文档描述的结构准确:timestamp是13位毫秒时间戳,device_id是32位哈希字符串,event_type包括“page_view”、“button_click”、“scroll”等,payload字段是加密内容。
她随机选择几条数据,用密钥解密payload。
解密后的内容显示出来:用户访问了某个电商网站的商品页面,点击了“加入购物车”按钮,页面停留时间47秒,滚动深度65%……
很标准的用户行为数据。
路容连续解密了十几条,内容都正常。
她关掉文件,打开另一个。
同样正常。
第三个,正常。
第四个——
路容的目光停住了。
这条数据的device_id,她见过。
就在刚才解密的第一个文件里,有相同的device_id,但timestamp相差三分钟。她翻回去对比,两个数据包的device_id完全一致,event_type都是“page_view”,但payload解密后的内容……
第一个:用户访问了网站A的首页。
第四个:用户访问了网站B的商品页。
同一个设备,三分钟内,访问了两个不同的网站。
这本身不奇怪,用户可能切换应用。
但路容注意到一个细节:两个数据包的来源IP不同。
第一个来源IP:203。112。89。76(深港市电信)
第四个来源IP:103。215。44。128(境外,新加坡)
同一个设备,三分钟内,IP地址从深港市跳到了新加坡。
不可能。
除非……
路容盯着屏幕,心跳微微加速。
除非这个device_id不是真实的设备标识,而是经过某种映射或伪造的ID。或者,数据来源本身就有问题——可能混合了多个渠道的数据,没有做好去重和归一化。
又或者,这些数据根本不是实时采集的,而是从某个数据仓库里批量导出,重新打包加密后,伪装成实时数据流。
她继续查看。
又发现了几个类似的案例:相同的device_id出现在不同的来源IP,时间间隔很短,访问行为不连贯。
还有一批数据,timestamp的时间顺序是乱的——晚发生的事件,时间戳反而比早发生的事件更早。
以及一些payload解密后,JSON结构虽然正确,但某些字段的值明显异常:页面停留时间999999秒,滚动深度-1,按钮点击坐标……
路容把这些异常案例记录下来。
然后,她开始修改过滤规则代码。
针对device_id异常跳变的情况,她加入了一个检查:如果同一个device_id在十分钟内出现在地理距离不可能达到的IP地址(比如深港市和新加坡),就将这两个数据包都标记为“设备标识可疑”,进入人工审核队列。
针对timestamp乱序的情况,她加入时间戳合理性校验:如果数据包的时间戳比系统当前时间还晚,或者比同来源的前一个数据包早太多,就标记为“时间戳异常”。
针对字段值异常的情况,她加入数值范围检查。
每一条规则,都有合理的技术理由。