天才一秒记住【狂风中文网】地址:https://www.kfzw.net
同一个设备,三分钟内,访问了两个不同的网站。
这本身不奇怪,用户可能切换应用。
但路容注意到一个细节:两个数据包的来源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乱序的情况,她加入时间戳合理性校验:如果数据包的时间戳比系统当前时间还晚,或者比同来源的前一个数据包早太多,就标记为“时间戳异常”
。
针对字段值异常的情况,她加入数值范围检查。
每一条规则,都有合理的技术理由。
每一条规则,也都可能误伤正常数据。
但路容把误判的概率,控制在了一个“可接受”
的范围——根据她写的测试用例,误判率大约在0.3%到0.5%之间。
对于TB级别的数据流,这意味着每天会有数万个数据包被错误地标记为异常。
而系统告警的阈值,她设置为:同一数据源,异常率超过1%,持续五分钟,触发告警。
如果她的规则误判率是0.5%,正常数据流的异常率可能只有0.1%或更低,那么整体异常率不会超过0.6%,达不到告警阈值。
除非——
数据源本身的异常率就很高。
或者,有人故意往数据流里注入异常数据包。
路容写完最后一段代码,保存。
时间已经是下午六点。
窗外天色渐暗,城市的灯光再次亮起。
她站起来,活动了一下僵硬的肩膀。
颈椎发出轻微的咔哒声。
本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!