# 基于监督学习的恶意攻击特征识别
# **1.** **背景介绍**
## 1.1 恶意攻击
恶意攻击是指在[信息安全技术](https://baike.baidu.com/item/%E4%BF%A1%E6%81%AF%E5%AE%89%E5%85%A8%E6%8A%80%E6%9C%AF/2253817)中,内部人员有计划地窃听、偷窃、或损坏信息,或拒绝其他授权用户的访问。恶意攻击自从产生到现在,已经危害了无数的电脑网络,给人们的造成了严重的经济损失。对恶意攻击的识别作为一项可以极大降低恶意攻击危害的手段,一直受到高度关注。在本项目中,将会使用较为新颖的机器学习方法,对恶意攻击进行识别,为对恶意攻击的研究、预防提供基础。
在本项目中,我们使用的数据中攻击主要有4大类共39种攻击,四种攻击类型为:
* DOS, denial-of-service.拒绝服务攻击,例如ping-of-death, syn flood, smurf等;
* R2L, unauthorized access from a remote machine to a local machine. 来自远程主机的未授权访问,例如guessing password;
* U2R, unauthorized access to local superuser privileges by a local unpivileged user. 未授权的本地超级用户特权访问,例如buffer overflow attacks;
* PROBING, surveillance and probing, 端口监视或扫描,例如port-scan, ping-sweep等。
具体种类见2.4节数据集介绍。
## 1.2 Tensorflow
TensorFlow™ 是一个开放源代码软件库,用于进行高性能数值计算。借助其灵活的架构,用户可以轻松地将计算工作部署到多种平台(CPU、GPU、TPU)和设备(桌面设备、服务器集群、移动设备、边缘设备等)。TensorFlow™ 最初是由 Google Brain 团队(隶属于 Google 的 AI 部门)中的研究人员和工程师开发的,可为机器学习和深度学习提供强力支持,并且其灵活的数值计算核心广泛应用于许多其他科学领域。
# **2.** **相关技术简介**
## 2.1 深度神经网络简介
神经网络是一组大致模仿人类大脑构造设计的算法,用于识别模式。神经网络通过机器感知系统解释传感器数据,对原始输入进行标记或聚类。神经网络所能识别的模式是包含在向量中的数值形式,因此图像、声音、文本、时间序列等一切现实世界的数据必须转换为数值。
深度神经网络(Deep Neural Network,DNN)可以理解为除一个输入层与一个输出层以外具有很多隐藏层的神经网络,DNN的大致结构如下图所示:
![img](./images/wps25.jpg)
## 2.2 Keras简介
Keras 是一个用 Python 编写的高级神经网络 API,它可以以Tensorflow作为后端运行,Keras库能够很快的运算出实验结果,对本次实验有较大帮助。
特点:
* 用户友好。 Keras 是为人类而不是为机器设计的 API。它把用户体验放在首要和中心位置。Keras 遵循减少认知困难的最佳实践:它提供一致且简单的 API,将常见用例所需的用户操作数量降至最低,并且在用户错误时提供清晰和可操作的反馈。
* 模块化。 模型被理解为由独立的、完全可配置的模块构成的序列或图。这些模块可以以尽可能少的限制组装在一起。特别是神经网络层、损失函数、优化器、初始化方法、激活函数、正则化方法,它们都是可以结合起来构建新模型的模块。
* 易扩展性。 新的模块是很容易添加的(作为新的类和函数),现有的模块已经提供了充足的示例。由于能够轻松地创建可以提高表现力的新模块,Keras 更加适合高级研究。
* 基于 Python 实现。 Keras 没有特定格式的单独配置文件。模型定义在 Python 代码中,这些代码紧凑,易于调试,并且易于扩展。
## 2.3 Eager Execution简介
TensorFlow 的 Eager Execution 是一种命令式编程环境,可立即评估操作,无需构建图:操作会返回具体的值,而不是构建以后再运行的计算图(动态图模型)。
## 2.4 数据集KDD cup 1999介绍
此数据集首先是美国国防部高级规划署(DARPA)在MIT林肯实验室进行的研究收集数据随后来自哥伦比亚大学的Sal Stolfo 教授和来自北卡罗莱纳州立大学的 Wenke Lee 教授采用数据挖掘等技术对以上的数据集进行特征分析和数据预处理,形成了一个新的数据集。该数据集用于1999年举行的KDD CUP竞赛中,成为著名的KDD99数据集。虽然年代有些久远,但KDD99数据集仍然是网络入侵检测领域的事实Benckmark,为基于计算智能的网络入侵检测研究奠定基础。
训练集大概包含5,000,000多个网络连接记录,测试数据大概包含2,000,000个网络连接记录。每个网络连接被标记为正常(normal)或异常(attack),异常类型被细分为4大类共39种攻击类型,其中22种攻击类型出现在训练集中,另有17种未知攻击类型出现在测试集中。
KDD99数据集中每个连接(*)用41个特征来描述,加上最后的标记(label),一共有42项:如下所示
```
2, tcp, smtp, SF, 1684, 363, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0.00, 0.00, 0.00, 0.00, 1.00, 0.00, 0.00, 104, 66, 0.63, 0.03, 0.01, 0.00, 0.00, 0.00, 0.00, 0.00, normal.
0, tcp, private, REJ, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 1, 0.00, 0.00, 1.00, 1.00, 0.03, 0.55, 0.00, 208, 1, 0.00, 0.11, 0.18, 0.00, 0.01, 0.00, 0.42, 1.00, portsweep.
```
41项特征分为4大类,具体介绍见附录7.1。
# **3.** **实现目标**
由于网络恶意行为多种多样且在不断出现新的攻击方式,且有些攻击类型数量十分稀少,如果对每一个攻击类型都进行训练,构建模型需要消耗大量的资源,且准确度不高,且无法保证完全覆盖一些新出现的或者数量较少的攻击类型。我们可以使用如下策略:首先将所有类型的攻击标记恶意行为标签,其他行为标记正常标签,通过相关算法识别恶意行为与正常行为,并可以识别在训练集中没有的,新出现的恶意行为。但是此方法损失了数据集攻击类型的信息,造成了信息的浪费。
由此,本项目使用如下策略:将出现频率最高的几种恶意行为进行训练形成一个模型,此模型可以准确识别出攻击类型,但是仅能识别出特定的几种,我们将其称为细粒度识别,即,可以识别出具体攻击类型的模型。将这几种攻击之外恶意行为统一标记为恶意行为标签,进行训练得出可以分辨恶意行为与正常行为的二分类模型,将此模型称为粗粒度识别即,只能识别出是恶意攻击还是正常行为的模型。需要注意的是此模型不包含细粒度识别中的攻击类型,目的是缩短训练时间,提高准确度。
在识别时首先使用细粒度识别,如果无法识别为细粒度识别中包含的任意一种攻击类型,再使用粗粒度识别。得到的结果有两种情况:1. 具体的攻击类型;2. 恶意行为或正常行为标签。由此即可形成一种基于Tensorflow的有监督恶意行为特征识别方案。
根据我们数据集的实际情况,我们的细粒度识别可以识别的四种攻击类型为:
* Ipsweep攻击:IPsweep:严格的说,IPsweep并不能算是正式的攻击,IPsweep的过程只是向各个地址发送ping包等待回应,用以探测网络中存活的主机,从而为下一步的攻击做准备。
* Neptune(SYN flood)攻击:利用了TCP三次握手中的弱点。具体的方法是:攻击主机向目标主机发出SYN报文发起TCP连接,但是攻击主机并不回复最后一个ack报文,使得TCP握手无法完成,而目标主机在TCP握手中需要分配资源维持这些未完成的连接,当这样的连接到达一定数目后,目�
没有合适的资源?快使用搜索试试~ 我知道了~
TensorFlow项目实战学习练手项目
共95个文件
jpg:54个
md:12个
png:10个
0 下载量 47 浏览量
2024-03-02
15:59:44
上传
评论
收藏 13.18MB ZIP 举报
温馨提示
TensorFlow项目实战学习练手项目
资源推荐
资源详情
资源评论
收起资源包目录
TensorFlowPro-master.zip (95个子文件)
TensorFlowPro-master
内容中心网络CCN缓存污染攻击防御
topo-tree-25-node.txt 2KB
代码运行方式.txt 725B
ndn-tree-cs-tracers.cpp 9KB
cs-trace.txt 11.18MB
images
wps7.jpg 29KB
wps14.jpg 29KB
wps12.jpg 21KB
wps6.jpg 8KB
wps1.jpg 82KB
wps8.jpg 61KB
wps2.jpg 59KB
wps5.jpg 14KB
wps13.jpg 27KB
wps9.jpg 17KB
wps10.jpg 9KB
wps3.jpg 15KB
wps16.jpg 52KB
wps4.jpg 15KB
wps11.jpg 60KB
wps15.jpg 227KB
README.md 26KB
基于监督学习的恶意攻击特征识别
数据集
细粒度test_data.zip 956KB
粗粒度Training_Data.zip 1.62MB
README.txt 150B
细粒度train_data.zip 1.62MB
粗粒度Test_data.zip 1.05MB
代码
细粒度识别.py 5KB
粗粒度识别.py 2KB
images
wps27.png 506KB
wps25.jpg 177KB
wps29.jpg 62KB
wps26.jpg 43KB
wps28.jpg 49KB
README.md 33KB
README.md 57B
基础案例教程
2. 基于Visual Studio Tools for AI的TensorFlow编程实现CNN卷积神经网络.py 6KB
3.基于Visual Studio Tools for AI的TensorFlow编程实现DNN深度神经网络.md 8KB
5.基于Visual Studio Tools for AI的TensorFlow编程实现ResNet深度残差网络.py 9KB
4.基于Visual Studio Tools for AI的TensorFlow编程实现LSTM循环神经网络.md 24KB
7. 基于Visual Studio Tools for AI的TensorFlow编程实现RCNN区域卷积神经网络.py 6KB
4.基于Visual Studio Tools for AI的TensorFlow编程实现LSTM循环神经网络.py 9KB
2.基于Visual Studio Tools for AI的TensorFlow编程实现CNN卷积神经网络.md 19KB
5.基于Visual Studio Tools for AI的TensorFlow编程实现ResNet深度残差网络.md 22KB
6.基于Visual Studio Tools for AI的TensorFlow编程实现Bi-RNN双向循环神经网络.py 2KB
7.基于Visual Studio Tools for AI的TensorFlow编程实现RCNN区域卷积神经网络.md 11KB
3.基于Visual Studio Tools for AI的TensorFlow编程实现DNN深度神经网络.py 2KB
images
wps23.jpg 161KB
wps19.jpg 181KB
wps1.png 671KB
wps35.jpg 136KB
wps22.jpg 19KB
wps14.jpg 156KB
wps7.png 628KB
wps12.jpg 160KB
wps31.jpg 16KB
wps21.png 635KB
wps6.jpg 185KB
wps36.jpg 164KB
wps8.jpg 57KB
wps2.jpg 74KB
wps29.jpg 139KB
wps5.jpg 71KB
wps13.jpg 71KB
wps30.png 1.16MB
wps28.jpg 161KB
wps34.jpg 73KB
wps17.jpg 68KB
wps18.jpg 181KB
wps32.jpg 27KB
wps20.png 1.14MB
wps26.png 635KB
wps9.jpg 260KB
wps25.png 1.14MB
wps3.jpg 263KB
wps27.jpg 19KB
wps10.png 616KB
wps16.jpg 181KB
wps33.jpg 62KB
wps4.jpg 36KB
wps11.jpg 288KB
wps24.jpg 139KB
wps15.jpg 68KB
1.Visual Studio Tools for AI安装教程.md 4KB
6.基于Visual Studio Tools for AI的TensorFlow编程实现Bi-RNN双向循环神经网络.md 8KB
README.md 1KB
无监督学习的网络用户行为分析
K_MEANS 6KB
data_10000.csv 1.21MB
images
wps23.jpg 71KB
wps19.jpg 203KB
wps22.jpg 198KB
wps20.jpg 159KB
wps18.png 1.32MB
wps21.jpg 208KB
wps17.jpg 8KB
README.md 27KB
共 95 条
- 1
资源评论
学习资源网
- 粉丝: 938
- 资源: 1547
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- flowable-designer-5.22.0.zip
- threadmanager.cpp
- 腾讯云小程序 - 一站式开发与部署平台
- 基于JSP+Java+Servlet采用MVC模式开发的购物网站+源码(毕业设计&课程设计&项目开发)
- fastgestures安装包,模拟mac的触控板收拾,两指代表右击, 三指拖拽
- 基于组态王的升降式横移立体车库控制系统+源码(毕业设计&课程设计&项目开发)
- 基于python+Django和协同过滤算法的电影推荐系统+源码(毕业设计&课程设计&项目开发)
- 环境配置 vscode+jupyter
- 项目全部代码,还包含使用到的图片
- 项目全部代码,还包含使用到的图片
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功