在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验

简介: 在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解--实验

关于该实验的详细介绍请查阅我的这篇博客:在软件定义网络中使用机器学习的方法进行 DDOS 攻击检测与缓解

〇、拉取代码

https://github.com/Jerry-jy/SDN-DDOS-Detection

2bc4ad109d314aa59748c27c8b30eafe.png


一、 配置环境

先升级

sudo apt-get update
sudo apt-get upgrade

再安装如下环境

sudo apt-get install openvswitch-switch
apt-get install mininet
sudo pip3 install ryu
sudo apt install python3-pip
sudo apt-get install iperf
sudo apt-get install hping3
sudo pip3 install numpy
sudo pip3 install sklearn
ovs-vsctl --version

e6cd5ef11a224659bee0f60ca65cbad0.png

ryu-manager --version

b1e62bbf673347a28fed6544652d5ed3.png

mn --version

998d901406d04056a3cb8a17010c5d30.png

iperf --version

2b15be5957124fd5a804ce00d532ed1a.png

hping3 --version

8d1b5350df6d40058fb5954694b8ebba.png

二、 正常流量收集

在topo.py中修改流量的测试类型TEST_TYPE = “normal” TEST_TIME = 600


ef69f6770ea04efcb45d87c39f8777d9.png

启动控制器ryu-manager controller.py

8bfdbc0561644f73a9ff22742c2fd38a.png

启动网络拓扑sudo python topo.py

5f064c344ab548d3bae477bfe163cf8a.png

控制器接受到正常流量:

6568b73f91ab4811b219ece93c892ace.png

三、攻击流量数据

在controller.py文件中修改APP TYPE=0TEST TYPE=1

03129432015e4124b14b0fa5eeed91e7.png

在topo.py文件中修改TEST TYPE=attackTEST TIME=600

a3cfc4450c784995baeea0b7936c873f.png



清理网络拓扑sudo mn -c


5f415e9cc5714ff3b327fb6d3450dbf0.png

启动控制器ryu-manager controller.py

8cdb16c78b5c457c93443a8199d977f5.png

启动拓扑sudo python topo.py

b259c2db3c104deab0444df25c47f65a.png

控制器接收到的异常流量

b259c2db3c104deab0444df25c47f65a.png



四、DDoS攻击检测与缓解

4.1 正常流量的检测

在controller.py文件中修改APP TYPE=1

c6ef21b4d9044a06b189bf6ceab76dc6.png

在topo.py文件中修改TEST TYPE= normalTEST TIME=300

6aa81b58a4814f4ab4830d0bed7752d3.png

清理拓扑sudo mn -c


87432a71b92f4ce399ee7b3ca4e8b744.png

启动控制器ryu-manager controller.py

05a1071ae11a48b4b9303978f1e7ab9c.png

启动拓扑sudo python topo.py

7be66d58a7c24aaa961ec6b835ea6bb9.png

控制器和SVM进行预测:为正常流

8751204d2a5b4926b25a56a3944e37c9.png

4.2 攻击流量的检测与缓解

在topo.py文件中修改TEST TYPE= attackTEST TIME=300

a928d5b611734533abb07ab1b7c5fb1d.png

清理拓扑sudo mn -c


f20dd957a194433bbdd321deb259e243.png

启动控制器ryu-manager controller.py

8457d87516eb432897112eaeda23078b.png

启动拓扑sudo python topo.py


4baefcd65cb14737b30aab316a8ff9a2.png

控制器和SVM进行预测:为异常流,就会阻塞该端口防止异常流的攻击,其余流量就会被预测为正常流,端口的阻塞时间为2分钟,2分钟后不再阻塞,如果该端口继续检测到异常流的攻击,就再次阻塞


a6b6bed8d4c6497b9a529cc7d74c3437.png

五,精准度和检测率

0e90adc423c94a4eb6fec75bc754eb07.png

图形化显示

pip3 install mlxtend


3ca064fc10af4afea68802cf6309d6f6.png


e50d591b2369469788ad79760feb71ac.png


c32d8e34bb274b0894d8b7a258ed24a4.png

相关文章
|
3月前
|
人工智能 安全 网络安全
网络安全领导者有效缓解团队倦怠的四步策略
网络安全领导者有效缓解团队倦怠的四步策略
|
3月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
本研究基于MATLAB 2022a,使用GRU网络对QAM调制信号进行检测。QAM是一种高效调制技术,广泛应用于现代通信系统。传统方法在复杂环境下性能下降,而GRU通过门控机制有效提取时间序列特征,实现16QAM、32QAM、64QAM、128QAM的准确检测。仿真结果显示,GRU在低SNR下表现优异,且训练速度快,参数少。核心程序包括模型预测、误检率和漏检率计算,并绘制准确率图。
127 65
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
|
24天前
|
SQL 数据采集 人工智能
“服务器老被黑?那是你没上AI哨兵!”——聊聊基于AI的网络攻击检测那些事儿
“服务器老被黑?那是你没上AI哨兵!”——聊聊基于AI的网络攻击检测那些事儿
90 12
|
1月前
|
机器学习/深度学习 人工智能 运维
AI“捕风捉影”:深度学习如何让网络事件检测更智能?
AI“捕风捉影”:深度学习如何让网络事件检测更智能?
58 8
|
1月前
|
边缘计算 网络协议 安全
DDoS攻击:网络世界的“洪峰考验”与应对逻辑
本文介绍了DDoS攻击的运行机制及其影响,并提供了多层次的防御策略。DDoS攻击通过海量流量使目标服务器过载,造成服务中断,对电商和在线平台带来巨大经济损失与用户信任危机。防御措施包括基础设施优化、流量调度及云端协同防护等技术手段。针对中小企业,推荐使用如非凡云提供的弹性防护方案,含200G免费DDoS防御与自动带宽扩容功能,有效降低攻击风险和技术门槛。
138 0
DDoS攻击:网络世界的“洪峰考验”与应对逻辑
|
2月前
|
机器学习/深度学习 存储 算法
基于MobileNet深度学习网络的活体人脸识别检测算法matlab仿真
本内容主要介绍一种基于MobileNet深度学习网络的活体人脸识别检测技术及MQAM调制类型识别方法。完整程序运行效果无水印,需使用Matlab2022a版本。核心代码包含详细中文注释与操作视频。理论概述中提到,传统人脸识别易受非活体攻击影响,而MobileNet通过轻量化的深度可分离卷积结构,在保证准确性的同时提升检测效率。活体人脸与非活体在纹理和光照上存在显著差异,MobileNet可有效提取人脸高级特征,为无线通信领域提供先进的调制类型识别方案。
|
3月前
|
机器学习/深度学习 数据采集 运维
机器学习在网络流量预测中的应用:运维人员的智慧水晶球?
机器学习在网络流量预测中的应用:运维人员的智慧水晶球?
180 19
|
3月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于机器学习的人脸识别算法matlab仿真,对比GRNN,PNN,DNN以及BP四种网络
本项目展示了人脸识别算法的运行效果(无水印),基于MATLAB2022A开发。核心程序包含详细中文注释及操作视频。理论部分介绍了广义回归神经网络(GRNN)、概率神经网络(PNN)、深度神经网络(DNN)和反向传播(BP)神经网络在人脸识别中的应用,涵盖各算法的结构特点与性能比较。
|
2月前
|
机器学习/深度学习 数据采集 算法
基于yolov2和googlenet网络的疲劳驾驶检测算法matlab仿真
本内容展示了基于深度学习的疲劳驾驶检测算法,包括算法运行效果预览(无水印)、Matlab 2022a 软件版本说明、部分核心程序(完整版含中文注释与操作视频)。理论部分详细阐述了疲劳检测原理,通过对比疲劳与正常状态下的特征差异,结合深度学习模型提取驾驶员面部特征变化。具体流程包括数据收集、预处理、模型训练与评估,使用数学公式描述损失函数和推理过程。课题基于 YOLOv2 和 GoogleNet,先用 YOLOv2 定位驾驶员面部区域,再由 GoogleNet 分析特征判断疲劳状态,提供高准确率与鲁棒性的检测方法。
|
4月前
|
机器学习/深度学习 边缘计算 运维
机器学习在网络安全中的防护:智能化的安全屏障
机器学习在网络安全中的防护:智能化的安全屏障
356 15

热门文章

最新文章