JESS: Joint Entropy-Based DDoS Defense Scheme in SDN
Kalkan K , Altay L , Gur G , et al. JESS: Joint Entropy Based DDoS Defense Scheme in SDN[J]. IEEE Journal on Selected Areas in Communications, 2018:1-1.
该文提出了一种基于熵的DDoS攻击的检测与缓解办法。
introduction
SDN存在安全问题,如DDoS攻击,解决办法有:
- 内在:structural attributes of SDN enviroment on the properties of traffic flows
- 外在:statistical and ml Entropy shows randomness,DDoS decraese randomness.
related work
- 网络虚拟化及其安全
- SDN安全相关研究
Join Entropy Based DDoS Defense Scheme In SDN(JESS)
分为三个小步:
- nominal stage:switch sends headers of all packets to controller,controller calculates joint entropies of each pair
- preparatory stage:controller generate current pair profiles and calculates joint entropies,difference exceeds $\theta_j$,DDoS attack is detected,maximum difference is SuspiciousPair and send to switch
- active mitigation stage:switch creates SC of SuspiciousPair and send to controller,controller calculates correspoinding score and generates scoretable ST,rule table $RT_C$ with a designated $\theta_s$,if score of entry under $\theta_s$ forward, otherwise drop.
剩下的是算法的细则,太多了建议看原文
Nominal Stage
-
Nominal Profile Generation 收集一些重要的参数,表示成:$\mathbb{P}={IP_{src},IP_{dst},P_{src},P_{dst},PROT,PKT_{size},TTC,TCP_{flag}}$,记$\left(\begin{aligned}\mathbb{P}\k\end{aligned}\right)$k个元组组成的集合,如$\left(\begin{aligned}\mathbb{P}\2\end{aligned}\right)={{IP_{src},IP_{dst}},\dots,{TTL,TCP_{flag}}}$记$\mathbb{A}i$是$\left(\begin{aligned}\mathbb{P}\2\end{aligned}\right)$的第i个元组,例$\mathbb{A}1={IP{src},IP{dst}}$,它有$2^{32}*2^{32}$个可能。$\mathbb{A}2={IP{src},P_{src}}$有$2^{32}*2^{16}$个可能。switch收集包头并发送给controller,收集到指定个数即可停。在指定包数被处理后假设有$\alpha$个包对,则组成$\alpha * k$矩阵,记为$E^{\mathbb{A}_i}$,$E^{\mathbb{A}_i}_j$表示为第j个元组,它的值为$E^{\mathbb{A}_i}_j=(a_j,b_j)$。$E^{\mathbb{A}_i}$可表示为: 基于$E^{\mathbb{A}_i}$创建$N^{\mathbb{A}_i}$,记为: 这里的$m_i$取决于这个阶段收集到不同属性的个数,这是一个$m \times (k+1)$的矩阵。这里的建$N^{\mathbb{A}_i}$就是Pair Nominal Profile,由controller形成。这里的$PAC^{\mathbb{A}_i}$指的是${\mathbb{A}_i}$的产生个数。
-
Nominal Profile of Order p 即p个历史阶段的Nominal Profile 第p个记为: 分阶段时,生成的profile为不同段的并集。用图表示如图4:
-
Joint Entropy Calculation for Nominal Profiles 在生成profile阶段计算出该阶段的熵,并存入profile中,当检测时,将当时的流量计算出来的熵与profile中的熵比较,超出$\theta_j$即可认定有DDoS发生,选相差最大的那个对作为主导对(determinant pair)。熵计算公式为: $$JN_{N^{A_i}}=-\sum_{n=1}^{m_i}(\frac{PAC^{A_i^n}}{\alpha})\log{(\frac{PAC^{A_i^n}}{\alpha})} \tag{4}$$ 简记: $$PN_{A_i^n}=PAC^{A_i^n}/\alpha \tag{5}$$ 而式(4)变为: $$JN_{N^{A_i}}=-\sum_{n=1}^{m_i}PN_{A_i^n}\log{(PN_{A_i^n})} \tag{6}$$ 归一化后最终得到的公式为: $$\bar{JN}{N^{A_i}}=JN{N^{A_i}}/\log[\alpha] \tag{7}$$ 使用时均用归一化的熵
Preparatory Stage
本阶段检测攻击,并决定最适合的pair(这个对即用来识别异常的对),分为三个阶段:
-
Current Profile Generation 第i个当前的profile表示为:
-
Joint Entropy Calculation for current profile 对当前profile而言, $$PC_{A_i^n}=PAC^{A_i^n}/\alpha \tag{9}$$ 则当前的熵JC表示为: $$JC_{N^{A_i}}=-\sum_{n=1}^{m_i}PC_{A^n_i}\log{(PC_{A_i^n})} \tag{10}$$
-
Comparison $$\Delta J_{N^{A_i}}=JC_{N^{A_i}}-JN_{N^{A_i}} \tag{11}$$ 当这个值超过一个$\theta_j$,则认为检测到了DDoS攻击, 对所有的差值,JESS找到差值最大的对,将其标为SuspiciousPair。 如:对$\arrowvert\mathbb{P}\arrowvert = 8,k=2$时,$\Delta J_{MAX}=\max{\Delta J_{N^{A_1}},\Delta J_{N^{A_2}},\cdots,\Delta J_{N^{A_28}}}$,假设$\Delta J_{N^{A_2}}$是最大的,就将其标为suspiciousPair,Controller便将这个SuspiciousPair发送给switch。
Active Mitigation Stage
这个过程有五个步骤
-
SuspiciousPair Profile Generation switch已知SuspiciousPair,则在本地生成Profile SC,并将其发送到controller
-
Score Calculation: 对每个流计算$\beta$: $$\beta = \frac{PC_{A_i^n}}{PN_{A_i^n}} \tag{12}$$ 将计算所得的$\beta$存于表ST中。
-
决定阈值 利用load shedding alporithm来决定,阈值$\theta_S$由当前阈值$\theta_C$和之前阈值$\theta_P$共同决定 $$\theta_S=\frac{\theta_C+\theta_P}{2} \tag{13}$$
-
Rule Generation 对每个SC中的entry进行计算,若打分超过阈值,drop it! otherwise,forwarded to the destination!
-
Differing Rules($\Delta - Rules$) determination 更新规则时,将当前规则与之前规则作对比,只发送不一样的那部分。
模拟与性能评估
-
数据集:MAWI
-
环境:RYU,8G RAM,Core i7-3610QM 2.3GHz CPU,Ubuntu 14.04 OS。
-
拓扑结构(图5): (这个拓扑也太简单了点吧。。。)
-
攻击种类
-
Performance Metrics 即评价标准:$FPR=\frac{FP}{FP+TN}$ $ACC=\frac{TP+TN}{TP+TN+FP+FN}$
-
Exprimental Results 结果分析 分析:误报率有时候会提高,原因是许多包有和攻击包一样的特征。为了提高效果,引入滑动窗口。 引入滑动窗口 网络拓扑为如图8 使用previous periods,也即意味着要存储这么多periods的所有的头值,如TCP滑动窗口般。(作 者经过计算,发现浪费不多 )结果如图10,结论为:效果确实提高了不少! 在不同攻击强度下效果对比 结果如图11所示: 结论:当攻击包与正常包数量相同时,难以区分。
-
算法分析 结论:时间复杂度:$O(n^2)$,处理加载过程不需要额外缓存;所需空间少,对controller负担小,通信代价几乎可勿略不计。
问题:为什么先择两个特征而不是更多个,没有做对比!
如果这篇文章帮到了你, 那就赞助我一瓶水吧, 这可以让我有动力去写更多的文章
Sponsor