以及一些payload解密后,JSON结构虽然正确,但某些字段的值明显异常:页面停留时间999999秒,滚动深度-1,按钮点击坐标(9999,9999)……
路容把这些异常案例记录下来。
然后,她开始修改过滤规则代码。
针对device_id异常跳变的情况,她加入了一个检查:如果同一个device_id在十分钟内出现在地理距离不可能达到的IP地址(比如深港市和新加坡),就将这两个数据包都标记为“设备标识可疑”,进入人工审核队列。
针对timestamp乱序的情况,她加入时间戳合理性校验:如果数据包的时间戳比系统当前时间还晚,或者比同来源的前一个数据包早太多,就标记为“时间戳异常”。
针对字段值异常的情况,她加入数值范围检查。
每一条规则,都有合理的技术理由。
每一条规则,也都可能误伤正常数据。
但路容把误判的概率,控制在了一个“可接受”的范围——根据她写的测试用例,误判率大约在0.3%到0.5%之间。对于TB级别的数据流,这意味着每天会有数万个数据包被错误地标记为异常。
而系统告警的阈值,她设置为:同一数据源,异常率超过1%,持续五分钟,触发告警。
如果她的规则误判率是0.5%,正常数据流的异常率可能只有0.1%或更低,那么整体异常率不会超过0.6%,达不到告警阈值。
除非——
数据源本身的异常率就很高。
或者,有人故意往数据流里注入异常数据包。
路容写完最后一段代码,保存。
时间已经是下午六点。
窗外天色渐暗,城市的灯光再次亮起。她站起来,活动了一下僵硬的肩膀。颈椎发出轻微的咔哒声。她走到窗边,拉开窗帘。
深港市的夜晚,繁华而冷漠。
远处星耀集团的写字楼,依然灯火通明。不知道周哲还在不在办公室,不知道李剑此刻在做什么,不知道那些加密数据包,此刻正从世界的哪个角落,流向星耀的服务器。
路容回到书桌前,将代码提交到测试环境。
系统提示:代码审核中,预计两小时内完成。
她关掉电脑。
煮了碗泡面,加了鸡蛋和几片青菜。面条在沸水里翻滚,热气蒸腾,带着浓郁的调味料气味。她端着碗坐在床边,慢慢吃。
手机安静地躺在桌上。
晚上八点,代码审核通过。
测试环境开始部署新的过滤规则。路容重新打开电脑,登录监控面板。数据流曲线平稳,清洗流程各环节正常。她的规则模块显示“运行中”,处理计数开始累积。
晚上十点,处理数据量超过500GB。
异常标记数量:1274个。
异常率:0.25%。
低于告警阈值。
路容泡了第二杯茶,坐在电脑前等待。茶香在房间里弥漫,混合着泡面残留的气味。她戴上耳机,播放轻音乐,音量调得很低。
时间一分一秒过去。
晚上十一点。
异常率:0.31%。
晚上十一点半。
异常率:0.29%。
午夜十二点。
数据流进入低谷期,流入速度减缓。异常率波动,最高到0.35%,最低到0.22%。
路容的眼睛开始发涩。
<-->>
本章未完,点击下一页继续阅读