Web攻击检测机器学习深度实践
(4)结构正常sql注入 ——> 无法识别
(5)结构异常正常请求 ——> 误判
(6)结构异常正常请求 ——> 误判
(7)结构异常正常请求 ——> 误判
2. 基于统计量的结构特征 对URL请求提取特征,如URL长度、路径长度、参数部分长度、参数名长度、参数值长度、参数个数,参数长度占比、特殊字符个数、危险特殊字符组合个数、高危特殊字符组合个数、路径深度、分隔符个数等等这些统计指标作为特征,模型可以选择逻辑回归、SVM、集合数算法、MLP或者无监督学习模型。 若只拿单个域名的url请求做验证该模型有尚可的表现;然而我们面对的是集团公司成千上万的系统域名,不同的域名表现出不同的URL目录层级、不同的命名习惯、不同的请求参数…针对这样极其复杂的业务场景,在上述特征领域,数据本身就会存在大量的歧义。这样,针对全栈的url请求模型区分效果较差,准确率也太低。实时上,即使有较良好的适配环境,相对单纯的场景,模型准确率也很难提升到97%以上。 3. 基于分词的代码片段特征 根据特定的分词规则,将url请求切片,利用TF-IDF进行特征提取,并保留具有区分能力的关键词组合特征,同时结合网上开源攻击样本尽可能完善特征。在这里如何“无损”分词和特征关键词组合的结构息息相关,是特征工程的重点,需要结合后期模型表现结果不断调整完善(下文重点讲述)。 实际上,保留的特征都是些Web攻击当中常见的危险关键词以及字符组合,而这些关键词及字符组合是有限的。理论上,结合目前所拥有的海量访问流量和WAF充分的Web攻击样本,几乎能全部覆盖的这些关键词及字符组合。 三、基于分词的特征提取和MLP模型 根据万能近似定理Universal approximation theorem(Hornik et al., 1989;Cybenko, 1989)描述,神经网络理论上能以任意精度你和任意复杂度的函数。 1. 特征工程
2. 模型效果 为了减少篇幅,这里只提供特征提取的思路和模型的评价结果。 (编辑:衢州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |