# 基于开源URL数据字符串特征的恶意性检测,本科毕业设计
URL异常检测本质上是一个分类问题,将输入的URL经过处理后得到特征,输入到分类其中,分类器输出分类结果,恶意的还是良性的。
在训练集和验证集的基础上训练了多个分类模型,训练集用于训练、验证集用来调整参数。
## 实验数据
已上传至data文件夹,下面简单解释一下,数据主要分为以下几方面:
(1) 用于特征提取的:
从malwaredomains.com等恶意域数据集收集了26251条恶意域URL,用来提取出现频率较高的恶意词,作为后续的数据特征。
从Alexa获取了世界排名前500的网站,提取出现过的网站名称,用来统计数据集中的URL出现流行网站名次数。
(2) 训练集、验证集、测试集:
从kdnuggets上收集到了带标签(good/bad)的URL数据集,共416350条,用作分类器进行监督学习的训练数据,其中异常数据(bad)71556条,占比17.19%;正常数据(good)344794条,占比82.81%。
将全体数据划分为训练集(70%),验证集(15%)和测试集(15%),并且在每个集合中均保持异常数据所占比例相同。
(3) 引入外部数据:
从PhishTank上获取了截止到2018年4月9日的36380条钓鱼网站数据集,作为外部新数据引入,用来测试分类器面临新的、未见过的数据集时的分类效果。
## 特征提取
### 数据预处理
首先,鉴于只有小部分URL的前缀有“http”,“https”以及“www”字段,并且这些字符对于恶意性检测并没有帮助,所以在预处理阶段我们将这些前缀删去。
但是要注意将前缀部分与其他部分出现的“http”等字段进行区分,如:“zylights.com/img/?us.battle.net/login/en/?ref=http%3A%2F%2Fkhcdcofus.battle.net%2Fd3%2Fen%2Findex&app=com-d3”中的“http”就出现在参数部分。
此外,由于URL的参数字段可能存在恶意代码,所以我们还需要对URL的编码问题进行考虑,以免影响检测的效果,比如参数字段中的“%20”代表的是空格。
### URL结构划分
考虑到黑名单特征和主机特征的获取非常耗时,并且还会存在一定的噪声和缺失值,而基于内容的特征又非常“重量级”,并且在下载网页内容的过程中会给系统带来安全威胁。
因此,我们选择了基于词汇的URL特征,在能够取得较好检测效果的同时又可以保证“轻量级”和高安全性。为此,我们需要对URL进行深入的了解,URL的结构样例。
```
例如:
http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name
1.协议部分:“http:”,在Internet中有多种网络协议例如:http:, https:, ftp: 等。后面的“//“为分隔符
2.域名部分:“www.aspxfans.com”是url的域名部分,在Url中也可以使用ip地址作为域名使用
3.端口部分:跟在域名后面的成为端口,域名和端口之间使用“:”进行分割,端口不是Url的必须部分可以省略
4.虚拟目录部分:从域名后面的第一个"/"开始到最后一个“/‘截止称之为虚拟目录部分,虚拟目录也不是Url的必须部分,本次实例的虚拟目录是”/news/“
5.文件名部分:从域名后的最后一个"/"开始到"?"为止成为文件名部分,如果没有"?"则从域名后的最后一个"/"开始到"#"为止是文件部分,如果没有"?"和”#“,那么从域名后的最后一个"/"开始到结束,都是文件名部分,本例的文件名部分是”index.asp“。文件名部分也不是URl的必须部分,如果省略该部分则使用默认的文件名
6.锚部分:从”#“开始到最后,都是锚部分,本例中的锚部分是”name“,锚部分也不是一个url的必须部分。
7.参数部分:从"?"开始到"#"为止之间的部分成为参数部分,又称搜索部分,查询部分本例中的”boardID=5&ID=24618&page=1“称为参数部分参数部分允许有多个参数,参数与参数之间用"&"作为分隔符。
[URL结构讲解内容参考链接:https://www.jianshu.com/p/b35a94bafb96]
```
### 提取内容列表
由于协议部分对恶意URL的检测没有明显帮助,所以我们不考虑提取这部分作为特征。
在提取特征时,一条URL可以被分成域名、路径、查询参数、锚点四大部分,每个部分又分别是由数字、字母以及特殊符号构成的,我们可以根据特殊字符(例如“/”,“.”,“?”,“=”等)将URL切分为不同的token。这样,我们就可以将一条URL看作是由一组token组成的向量,从而获取到更加具体的特征。
针对URL整体以及它的每个部分,我们一共提取了85个特征,分为基于URL整体的特征、基于域名的特征、基于路径的特征、基于查询参数的特征以及基于锚点的特征。
其中的“恶意词出现次数”特征所统计的恶意词是根据malwaredomains.com下载的恶意域数据集(和训练集、验证集、测试集没有交集)统计出现次数较多的词。
Python自带的包可以根据恶意词的统计结果生成的词云图片(代码位于bad_urls.py),其中字体较大的数据出现频率更高。可以看出,“beget”“service”, “account”, “eby”, “paypal”, “login”, “confirm”这类词出现的频率很高,因为恶意网站经常模仿良性网站或者用一些有吸引力的词语,试图诱导用户输入账号以及登陆信息。
流行网站名是根据Alexa排名前500名的网站数据集进行统计得到的,有些恶意网站会通过模仿知名网站来迷惑用户。根据流行网站中出现的词,我们生成了词云后发现,流行词与恶意词存在着部分交集,比如“apple”、“google”、“facebook”这些词,因为恶意网站有时会假冒流行网站,选取相近的域名来迷惑用户。
所提取的全部特征见下表:
| 基于整体URL的特征 | 基于hostname的特征 | 基于path的特征 | 基于search的特征 | 基于hash的特征 |
| -------------------------------- | ------------------ | ------------------ | ---------------- | -------------- |
| URL长度 | token个数 | token个数 | token个数 | token个数 |
| 字母比例 | 特殊字符个数 | path长度 | search长度 | |
| 数字比例 | 字母比例 | 目录深度(/) | 参数个数(&) | |
| 特殊符号的种类个数 | 数字比例 | 最长token | 方差 | |
| 特殊字符个数 | 出现点的次数(.) | 特殊符号的种类个数 | | |
| URL深度(/) | 是否是IP地址 | 方差 | | |
| 出现点的次数(.) | 熵 | | | |
| [存在@符号](mailto:存在@符号) | token方差 | | | |
| 顶级域名TLD | hostname长度 | | | |
| 出现恶意词的次数 | 字母出现次数 | | | |
| 出现流行网站名的次数 | | | | |
| 出现.php或者.exe的次数 | | | | |
| 在除了开头位置出现http,www的次数 | | |
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
毕业设计-基于开源URL数据字符串特征的恶意性检测项目源码+数据集+模型+使用教程,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为毕设、课程设计期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 毕业设计-基于开源URL数据字符串特征的恶意性检测项目源码+数据集+模型+使用教程,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为毕设、课程设计期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 毕业设计-基于开源URL数据字符串特征的恶意性检测项目源码+数据集+模型+使用教程,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为毕设、课程设计期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。毕业设计-基于开源URL数据字符串特征的恶意性检测项目源码+数
资源推荐
资源详情
资源评论
收起资源包目录
基于开源URL数据字符串特征的恶意性检测项目源码+数据集+模型+项目说明.zip (24个子文件)
文件夹-master
feature_extraction.py 14KB
bad_urls.py 5KB
data_split.py 1KB
single_test.py 1KB
source.py 3KB
use_sklearn.py 24KB
data
bad_urls.csv 556KB
badwords.txt 2KB
splited_data
Test set.csv 17.03MB
Training set.csv 78.08MB
Cross Validation set.csv 16.75MB
test_data
fishtank.csv 2.85MB
data.csv 21.97MB
popular_web.txt 4KB
World_Top_500.csv 6KB
fishtank+train.csv 18.61MB
pearson_correlation.py 889B
get_fishtank.py 3KB
badword_cloud.png 55KB
whois_info.py 208B
get_popular.py 3KB
virus_total_check.py 752B
README.md 13KB
pearson.png 655KB
共 24 条
- 1
资源评论
yava_free
- 粉丝: 2540
- 资源: 739
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Java语言开发的JiLeMe记了么日记应用设计源码
- 磁链观测器(仿真+闭环代码+参考文档) 1.仿真采用simulink搭建,2018b版本 2.代码采用Keil软件编译,思路参考
- 基于HTML的便利店管理系统源码设计实践
- 飞秒多脉冲激光烧蚀热力耦合(双温方程+变形几何+固体力学)
- 基于SpringBoot和Vue的在线漫画网站系统设计源码
- A02:AT89C51单片机实现的简单串口控制LED程序 功能: 通过串口助手发送数据,单片机串口中断接受数据并控制LED亮
- 基于Java语言开发的新生报到系统设计源码
- 基于Python的AidLearning框架设计与实现源码
- 基于电动汽车充电的微电网谐波抑制策略研究,包括电动汽车充电负 载模型,风电模型,光伏发现系统,储能系统,以及谐波处理模块 风力发
- 基于Python的进销存管理系统HTML整合设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功