动态资源分类不准?算法优化准确率↑37%
|
上周三凌晨三点,群里突然@全员,说某核心业务区被扫出十八个可疑动态资源。我原以为又是WAF误报,结果登录服务器一看——好家伙,三个.jsp文件藏在/tmp/下,日志里全是POST到/api/v3/upload的请求,IP还全是那几个眼熟的肉鸡池。最离谱的是,溯源到一半,发现这些资源的HTTP头里居然混着PHP的Session ID,明显是分类模型把混合型资源当成了纯PHP,直接漏了检测逻辑。 第二天调模型的时候,发现原版的分类器用的是静态特征+基础NLP,对动态生成的资源完全抓瞎。比如有个资源,前半段是合法的JSP模板,后半段嵌了段混淆过的Webshell代码,模型直接把它归成“正常业务文件”,连WAF的规则库都没触发。我原以为得大改架构,结果同事老张说:“试试把执行路径的熵值加进去,再加个动态行为基线对比。” 当时我还嘀咕:“这能准吗?” 结果跑了一周实测数据,准确率直接从六十二跳到八十九——三十七个百分点,比老板年初定的KPI还高两倍。 但最让我后怕的不是漏报,是补救的时候发现的细节。有个被误分类的资源,日志里显示它被访问了三百多次,但WAF只拦了十二次——剩下的全绕过了规则。后来查监控才发现,攻击者用了分段请求+随机参数的技巧,每次只传一小段恶意代码,模型因为没拿到完整上下文,直接给放行了。更绝的是,这资源在服务器上生成了个.lock文件,权限还是777,明显是留着后续写马用的,可分类器愣是没把它和“可疑文件”挂上钩。 说到这儿,想起上个月和运维吵架的事。他们非说动态资源分类不准是“小问题”,让我先把WAF的规则库更新到最新版。我当场就怼了:“规则库再全,模型分错类,该漏的还是漏!” 当时他们还不信,结果这次实测数据一出来,运维总监直接把会议纪要里的“优先优化规则”改成了“全力配合算法组调参”。所以说,安全这玩意儿,真不是靠堆规则就能解决的——模型分不准类,后面所有的防御手段都是白搭。
文章配图,仅供参考 不过话说回来,这次优化也不是没踩坑。最开始我试过用LSTM直接跑原始流量,结果训练了两天,准确率才涨了三个点,还把推理速度拖慢了四倍。后来老张说:“别跟风用深度学习,动态资源的关键是上下文关联,不是序列建模。” 于是我们改用随机森林+行为图谱,反而效果更好。现在想想,要是当时没听他的,估计现在还在跟过拟合较劲呢。对了,还有个无关的细节——实测那周,我电脑突然蓝屏了三次,每次都是跑到“计算资源熵值”那步的时候。后来查日志发现,是显卡驱动和CUDA版本不兼容,搞得我差点以为模型里藏了后门。最后是重装了系统才解决,白白浪费了半天时间。 现在模型虽然准了,但新问题又来了——如何平衡误报和漏报。比如有个资源,模型判定为“可疑”,但人工复核发现是开发测试用的临时文件。运维说:“这种误报太多,业务部门会投诉。” 可安全团队又怕漏掉真正的攻击。我原以为这是个无解的矛盾,结果老张说:“把模型输出分成三级——高风险直接阻断,中风险告警,低风险记录日志。让业务自己选容忍度。” 这招现在看还挺管用,至少群里没人再因为误报@全体了。 最后说句实在的——安全从来不是收入,是成本。老板愿意投钱调模型,不是因为能多赚多少钱,是因为漏报一次,损失的可能比十年研发预算还多。这次准确率涨三十七,表面看是算法的功劳,背后其实是业务部门被攻击怕了,才肯配合我们拿实测数据。要我说,以后别光吹“AI赋能安全”,得说清楚:“模型分不准类,安全就是纸糊的。” 下一步打算把行为图谱的节点再细化,比如把文件修改时间、进程调用链这些特征加进去。不过老张说:“先别急着加特征,把现有数据的标签再校准一遍——上次发现有个资源被标错了类,害我们白调了两天参数。” 想想也是,数据质量不行,模型再牛也是白搭。明天先去和标注团队对一遍标签,顺便问问他们,为什么总把混合型资源标成“纯PHP”…… (编辑:站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


运营中心数据权限三级分类实践:从混乱到精准
动态资源调度优化:12年架构师全链路复盘