@EggGump
2019-03-28T14:57:14.000000Z
字数 3932
阅读 652
security
该文提出了一种基于熵的DDoS攻击的检测与缓解办法。
SDN存在安全问题,如DDoS攻击,解决办法有:
分为三个小步:
剩下的是算法的细则,太多了建议看原文
Nominal Profile Generation
收集一些重要的参数,表示成:,记k个元组组成的集合,如记是的第i个元组,例,它有个可能。有个可能。switch收集包头并发送给controller,收集到指定个数即可停。在指定包数被处理后假设有个包对,则组成矩阵,记为,表示为第j个元组,它的值为。可表示为:
基于创建,记为:
这里的取决于这个阶段收集到不同属性的个数,这是一个的矩阵。这里的建就是Pair Nominal Profile,由controller形成。这里的指的是的产生个数。
Nominal Profile of Order p
即p个历史阶段的Nominal Profile
第p个记为:
分阶段时,生成的profile为不同段的并集。用图表示如图4:
Joint Entropy Calculation for Nominal Profiles
在生成profile阶段计算出该阶段的熵,并存入profile中,当检测时,将当时的流量计算出来的熵与profile中的熵比较,超出即可认定有DDoS发生,选相差最大的那个对作为主导对(determinant pair)。熵计算公式为:
本阶段检测攻击,并决定最适合的pair(这个对即用来识别异常的对),分为三个阶段:
Current Profile Generation
第i个当前的profile表示为:
Joint Entropy Calculation for current profile
对当前profile而言,
Comparison
这个过程有五个步骤
SuspiciousPair Profile Generation
switch已知SuspiciousPair,则在本地生成Profile SC,并将其发送到controller
Score Calculation:
对每个流计算:
决定阈值
利用load shedding alporithm来决定,阈值由当前阈值和之前阈值共同决定
Rule Generation
对每个SC中的entry进行计算,若打分超过阈值,drop it! otherwise,forwarded to the destination!
Differing Rules() determination
更新规则时,将当前规则与之前规则作对比,只发送不一样的那部分。
拓扑结构(图5):
(这个拓扑也太简单了点吧。。。)
攻击种类
Performance Metrics
即评价标准:
Exprimental Results
结果分析
分析:误报率有时候会提高,原因是许多包有和攻击包一样的特征。为了提高效果,引入滑动窗口。
引入滑动窗口
网络拓扑为如图8
使用previous periods,也即意味着要存储这么多periods的所有的头值,如TCP滑动窗口般。(作 者经过计算,发现浪费不多 )结果如图10,结论为:效果确实提高了不少!
在不同攻击强度下效果对比
结果如图11所示:
结论:当攻击包与正常包数量相同时,难以区分。
算法分析
结论:时间复杂度:,处理加载过程不需要额外缓存;所需空间少,对controller负担小,通信代价几乎可勿略不计。
问题:为什么先择两个特征而不是更多个,没有做对比!