【三等奖方案】Web攻击检测与分类识别赛题「Cyan」团队解题思路

news/2024/11/24 1:19:14/

2022 CCF BDCI 数字安全公开赛「Web攻击检测与分类识别」赛题@Cyan战队获奖方案

地址:http://go.datafountain.cn/4Zj

团队简介

团队成员来自中国科学院大学,对数据挖掘与网络安全有浓厚兴趣,曾多次获得大数据安全分析等比赛的Top名次。希望通过此次比赛,巩固数据挖掘知识,提升相关技能,同时认识更多优秀的同学,相互交流,共同进步!

图片

摘要

针对本次Web攻击检测与分类识别问题,本团队通过数据分析、特征工程与模型构建的流程实现基于HTTP报文的Web攻击检测与分类识别。首先,对所提供的样本数据进行详细的分析与梳理,并从Web攻击的角度分析数据字段与攻击类型间的关联;然后通过特征工程,提取出拆分特征、统计特征、TF-IDF特征三类有效特征;最后的模型构建部分,对数据不平衡进行处理的同时,采用LightGBM模型对平衡后的训练数据进行特征学习,并对测试样本进行预测,最终模型的Macro F1值达到了0.96861578,并且测试速度仅需0.695 ms/样本,实现快速准确的Web攻击检测与分类识别。

关键词

数据挖掘、机器学习、Web攻击检测

背景介绍

如今,随着Web攻击数量的日益增加,传统威胁检测手段通过分析已知攻击特征进行规则匹配,无法检测未知漏洞或攻击手法。如何快速准确地识别未知威胁攻击并且将不同攻击正确分类,对提升Web攻击检测能力至关重要。利用AI技术对攻击报文进行识别和分类已经成为解决该问题的创新思路,同时也有利于推动AI技术在威胁检测分析场景的研究与应用。

本次Web攻击检测与分类识别任务主要是依据给出的HTTP报文样本,对Web攻击进行检测与分类。在对训练集进行分析的基础上,通过特征工程、机器学习等方法构建AI模型,实现对每一条样本正确且快速的分类。

方案设计

图片

图1:方案设计框架

如图1所示,本团队对该赛题的主要思路可以主要分为三个部分,数据分析部分将对所提供的Method、User Agent、URL、Refer、Body进行分析,从Web攻击的角度分析数据字段与攻击类型的关联;特征工程部分则针对性地对所提供的数据字段进行特征工程,挖掘与攻击类型相关的特征,并根据分析结果对特征进行对应的处理;最后的模型构建部分则通过构建相应模型进行特征学习,并对测试样本进行预测,从而获得Web攻击类型的最终预测结果。

2.1 数据分析

数据分析部分,首先本次赛题是一个多分类任务,所提供的数据为HTTP报文样本,报文的类别可分为白样本以及SQL注入、XSS跨站脚本、命令执行、目录遍历、远程代码执行五种黑样本

图片

图2:各类别样本数量

如图2可知,各个类别的样本的数量并不平衡,其中SQL注入的报文样本最多(为14038个)、XSS跨站脚本的报文样本最少(为659个),在后续部分也会做相应的数据不平衡处理。

从数据字段与攻击类型关联的角度,不同的攻击类型在字段中所呈现的特征也有所不同,在后续部分也会针对与攻击类型关联的特定的字符特征对各个字段进行统计,以达到Web攻击检测与分类的目的。

2.2 特征工程

特征工程部分,这里我针对所有字段均进行了特征构造,所构造的特征大致可分为拆分特征、统计特征、TF-IDF特征三类。

拆分特征主要是不同字段的文本信息中相应字段的拆分特征,如User Agent中的browser信息、os信息、device信息以及URL和Refer中的netloc信息、params信息、query信息等;

统计特征则是对不同字段中指定文本的统计信息,包含各个字段的长度、特殊字符个数、大小写字符个数、URL参数个数、URL参数长度等以及各个字段中与攻击相关的可疑字符统计,如:select个数、exec个数、script个数、eval个数等;

TF-IDF特征则是将单个样本字段看作一段文本,评估经过分词后的单词在这段文本中的重要程度,如果某个单词在一篇文章中出现的频率高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TF-IDF特征包含了User Agent、URL、URL Path、URL Query、Refer、Body的TF-IDF特征。

2.3 模型构建

模型构建部分,首先对数据分析部分所发现的数据不平衡问题进行相应处理,这里采用的是SMOTE(Synthetic Minority Over-Sampling Technique,合成少数类过采样技术)方法。如图3所示,该算法的思想是针对少数类样本,在它的K近邻中随机选择一个样本,并在特征空间中两个样本之间随机选择的点创建合成样本,使得合成样本保证差异性的同时且与原始样本相近,通过SMOTE算法的不平衡处理,使得所有类别的样本数量能够保持一致,便于后面模型的学习。

图片

图3:SMOTE算法

在模型选择方面,这里选择的采用Macro F1指标优化的是LightGBM模型,LightGBM模型是一种基于梯度提升的决策树模型,同时也被广泛应用于学术界以及工业界。其中,验证策略采用的是如图4所示的十折分层交叉验证,保证了每一折的数据中各类别样本的比例保持一致。

图片

图4:十折分层交叉验证

实验结果

模型训练与测试均在Intel Core i5-10500 CPU、8GB RAM上进行,最终模型的线上Macro F1为0.96861578,整体模型的大小为64.9MB,模型对所有测试样本的测试时间为2.78s,平均每个测试样本的预测速度为0.695 ms/样本。

总结

首先,本方案从Web攻击的角度针对性地对所提供的数据字段进行了分析与梳理,并从中提取出拆分特征、统计特征、TF-IDF特征三类关键特征;

其次,针对训练数据类别不平衡的问题,对训练数据进行了平衡处理,弥补数据不平衡导致的样本量少的分类所包含的信息过少的问题;

最后,使用采用Macro F1指标优化的LightGBM单模型对平衡后的数据进行建模,相较于多个不同模型,使用LightGBM单模型的速度更快,能更好的对Web请求进行快速检测与分类。

致谢

感谢大数据协同安全技术国家工程研究中心、清华大学网络研究院-北京奇虎科技有限公司网络空间测绘联合研究中心、360信息安全中心对本赛题的悉心筹备,感谢中国计算机学会与DataFountain所提供优质的比赛平台,感谢评委专家的悉心评审与指导。

参考

[1] Yun-tao Z, Ling G, Yong-cheng W. An improved TF-IDF approach for text classification[J]. Journal of Zhejiang University-Science A, 2005, 6(1): 49-55.

[2] Xuan C D, Nguyen H D, Nikolaevich T V. Malicious URL Detection based on Machine Learning[J]. International Journal of Advanced Computer Science and Applications, 2020, 11(1): 6.

[3] Chawla N V, Bowyer K W, Hall L O, et al. SMOTE: synthetic minority over-sampling technique[J]. Journal of artificial intelligence research, 2002, 16: 321-357.

[4] Ke G, Meng Q, Finley T, et al. Lightgbm: A highly efficient gradient boosting decision tree[J]. Advances in neural information processing systems, 2017, 30: 3146-3154.


http://www.ppmy.cn/news/998768.html

相关文章

《吐血整理》高级系列教程-吃透Fiddler抓包教程(22)-如何使用Fiddler生成Jmeter脚本-下篇

1.简介 今天这篇文章其实和上一篇差不多也是利用一个fiddler的插件进行Jmeter脚本的导出,开始宏哥想要合在一起写一篇文章,可是结果实践的时候,两个插件还是有区别的,因此为了不绕晕小伙伴或者童鞋们,决定分为两篇进行…

RS232转Profinet网关怎么设置

关于如何使用RS232转Profinet网关将首昌的EDI-800A称重仪表接入到西门子PLC的Profinet网络中。这个故事不仅涉及到一些科技知识,还有实际操作的过程,希望大家能认真听哦。 我们都知道,工业自动化领域中,称重仪表是非常重要的一部…

DreamBooth为何有能力让第一个应用创建者年赚2500万美金?

DreamBooth 是一种个性化的文本到图像生成模型,它可以通过向扩散模型(比如Stable Diffusion)中注入少量主体对象,从而达到对基础模型的微调。使用微调后的模型可以生成在不同的场景、姿势和视角中的该主体上下文图像。 Dreamboot…

攻防世界-web-lottery

题目描述:里面有个附件,是网站的源代码,还有一个链接,是线上的网站 主页告诉了我们规则: 1. 每个人的初始金额为20美元 2. 一支彩票2美元,挑选7个数字,根据匹配上的数字有不同的奖励 我们先体…

软件外包开发的PHP开发框架

PHP有许多流行的开发框架,每个框架都有其独特的特点和优势。下面列举的只是一部分PHP开发框架,还有其他一些框架如Slim、Zend Framework等也值得一提。选择合适的框架取决于项目的需求和开发团队的偏好,您可以根据项目规模、复杂性和功能需求…

JS之new Date(‘yyyy-MM-dd‘)多8小时问题

new Date(‘yyyy-MM-dd’)多8小时问题 原因 //会多8小时的转化 new Date("2023-08-02") //不会多8小时的转化 new Date("2023-8-2")因为月和天为个位数时前面带有0,这时会当你处于格林尼治国际标准时的时区(0时区)而你…

探索现代前端工程化工具与流程:提升开发效率和项目质量

文章目录 引言前端工程化的背景和发展1. 构建工具的出现2. 模块化开发3. 包管理工具的兴起4. 自动化测试和持续集成5. 组件化开发和前端框架的崛起 前端工程化对项目开发和团队协作的重要性 前端工程化基础前端工程化的定义和目标前端工程化的核心概念和原则 前端工程化工具与流…

三种简单易用的制作符合要求的证件照片的方法

在生活和学习中,我们经常需要上传一些证件照片。但是在准备上传之前,我们可能会发现底色不正确,这会导致无法通过审核。重新拍照既费时间又浪费金钱,这让人感到非常困扰。然而,我们可以借助一些方法和工具来轻松更改证…