)
l
o
g
2
P
(
D
k
∣
A
i
)
H(D|A)=−\sum_{i=1}{n}P(A_i)\sum_{k=1}{K}P(D_k|A_i)log_2P(D_k|A_i)
H(D∣A)=−∑i=1nP(Ai)∑k=1KP(Dk∣Ai)log2P(Dk∣Ai)
其中特征 A 的信息增益是指总体的信息熵与特征 A 的条件熵( H(D|A) )之差
2. C4.5 算法:C4.5 算法采用信息增益率最大化作为决策树的划分标准,特征 A的信息增益率是指特征 A 的信息增益与与特征 A 的条件熵之比。
G
a
i
n
R
a
t
i
o
A
(
D
)
=
G
a
i
n
A
(
D
)
H
(
D
∣
A
)
GainRatio_A(D) = \frac{Gain_A(D)}{H(D|A)}
GainRatioA(D)=H(D∣A)GainA(D)
3. CART 算法:CART 算法使用 Gini 系数最小化准则作为划分标准,基尼系数代表了模型的不纯度,基尼系数越小,特征重要性越大。
\qquad
ID3 算法用于处理离散的输入变量,并且在生成树的过程中不考虑数据的概率分布,C4.5 算法是 ID3 的改进版,它能够处理离散和连续的输入变量,并且在生成树的过程中考虑数据的概率分布,而 CART 算法引入基尼系数,CART 算法既可以用于二分类和多分类的问题,也可以用于回归问题。
3.1.2 决策树的构建
\qquad
决策树算法的构建过程实际上就是对一个特征的重要程度进行排序的过程。该算法的可解释性强,但当决策树过于复杂时,往往会出现过拟合的现象。因此要进行剪枝操作。
- 预剪枝:设定最大深度、设定最小样本数、设定最小信息增益
- 后剪枝:对决策树进行自下而上的遍历,对每个非叶子节点进行考虑,将该节点对应的子树替换为叶子节点,并记录该叶子节点的类别。计算使用该叶子节点代替子树后的测试集分类准确率,如果准确率提高,则保留该叶子节点代替子树,否则还原子树。重复以上步骤,直到所有非叶子节点都被考虑过。
3.2 基于决策树算法的DDoS攻击检测实验
- 实验过程:
\qquad
为了实现对 DDoS 攻击的检测功能,需利用训练好的决策树算法模型编写 SDN 控制器。本实验所用控制器基于Ryu自带的SimpleSwitch13样例编写。SimpleSwitch13样例实现了简单的流表下发和流量转发的功能,在这一样例的基础上,将 DDoS检测算法整合到控制器中,从而实现 DDoS 攻击的检测,具体方法为:在控制器运行过程中,会不断向各交换机发送请求流表统计信息。在接收到交换机发回来的流表统计信息时,控制器将会触发 _flow_stats_reply_handler 函数,将用于分类的特征从交换机返回的流表信息中提取出来,输入本文训练好的决策树算法模型中,根据算法运行结果来检测该流表项是否为 DDoS 攻击流量。若检测出为 DDoS 攻击流量,且攻击流量所占比例超过一定阈值时,则判断网络受到了 DDoS 攻击,根据流表统计信息中提取的源 IP 地址、目的 IP 地址、目的端口等可以判断出被攻击的主机,从而采取防御措施。
- 实验结果:
\qquad
该实验最后选择的决策树最大高度为10,准确率达到了99%,决策树结果发现存活时间、目的端口、每秒发送包的数量和协议种类是最重要的几个特征,这些特征对分类准确程度的影响是最大的。
四、DDoS攻击的防御
4.1 防御原理
- 流量监测:SDN控制器可以监测网络流量并检测异常流量
- 流量控制:当SDN控制器检测到异常流量时,它可以告知网络交换机或路由器降低或阻止流量。这些可以通过使用流量限制策略。
- 集中式管理:SDN 的集中式管理和控制架构允许网络管理员快速响应 DDoS 攻击,管理员可以使用 SDN 控制器在整个网络中实施相同的 DDoS 防御策略。
4.2 基于流表下发的DDoS攻击防御实验
4.2.1 防御方法设计
\qquad
在某一主机受到 DDoS 攻击时,SDN 可以通过控制器下发流表的操作临时关闭受攻击的端口来缓解攻击。当 Ryu 控制器检测到 DDoS 攻击后,立即获取被攻击主机和攻击者的信息,而后通过下发流表来完成关闭被攻击主机端口的操作。
\qquad
在下发流表过程中,通过设置 match、action、priority 和 hardtime 等主要字段,能够完成对特定源或目的地的流量的拦截工作。
- match:完成攻击流量的匹配,常用参数为源地址、目的地址、端口号、协议类型等。在下发流表时设置这些参数的值能够使得流表仅作用于特定类型的数据包。
- action:指示交换机对匹配的数据包执行特定的动作,主要有转发(目的端口或下一个交换机)、修改(修改MAC地址、IP地址等)、处理(丢弃、发送到控制器等)、其他(设置QoS等)等。对于DDOS攻击流量,只需要将action字段置空,表示丢弃处理。
- priority:用于指示交换机对匹配到的多个流表项进行匹配时的优先级顺序。数值越高,优先级越高。
- hardtime:用于指示交换机在匹配到该流表项的数据包之后,多长时间后将该流表项从交换机中删除。
4.2.2 DDoS攻击缓解方案
4.2.3 实验过程及结果
具体实验过程:
- 启动本文第三章中使用的网络拓扑,如图 3-2 所示。
- 启动编写好的 Ryu 控制器,使用 pingall 命令测试网络的连通性。
- 启动 sFlow-rt 插件,监测网络中的流量。
- 使用 hping3 工具模拟 DDoS 攻击,观察 Ryu 控制器的报警信息以及网络中流量的变化情况。
实验结果
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
一、网安学习成长路线图
网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、网安视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
三、精品网安学习书籍
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、网络安全源码合集+工具包
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、网络安全面试题
最后就是大家最关心的网络安全面试题板块
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
9928b488dc1e5080fc5.png)
五、网络安全面试题
最后就是大家最关心的网络安全面试题板块
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-bxo4lwmc-1712651029009)]