主权项 |
1.一种基于卡尔曼滤波算法的LDoS(Low-rate Denial of Service)的检测方法,其特征在于:是通过以下步骤实现的:(1)在受害端对流量进行采样;(2)用小波分析的方法对采样信号进行平滑处理;(3)利用流量矩阵模型,将处理过的数据看作一个离散控制过程;(4)基于卡尔曼滤波算法利用一步预测和最优估计的误差值作为检测依据;(5)如果误差值大于门限C,则判定为有突变;(6)利用t假设检验法判定突变的原因是攻击的开始还是结束,如果是攻击开始则报警;其中,步骤(1)是在受害端的上一跳路由监测流量,每隔t秒的间隔对流量进行取样,一个取样周期为T秒,抽样数据就成为一个离散的序列;步骤(2)对采样的信号做小波分解,取平滑信号部分,这样信号变得平滑了,只有在攻击开始与结束的时候波形有突变;步骤(3)在上面小波分析的基础上建立一个流量矩阵模型并用卡尔曼滤波算法进行预测和估算,把平滑信号作为观测值Y<sub>t</sub>,它与实际的系统状态值X<sub>t</sub>的关系可以用线性方程表示为:Y<sub>t</sub>=A<sub>t</sub>X<sub>t</sub>+V<sub>t</sub>其中A<sub>t</sub>表示路由器矩阵,V<sub>t</sub>表示一个非相关,零均值的高斯白噪声,对下一时刻状态的一步预测表示为:X<sub>t+1</sub>=C<sub>t</sub>X<sub>t</sub>+W<sub>t</sub>其中C<sub>t</sub>反映了流量的时空相关性,W<sub>t</sub>是非相关,零均值的高斯白噪声,由流的随机波动造成;步骤(4)根据卡尔曼滤波的原理,基于上一状态可预测出现在的状态,同时更新X<sub>t</sub>的自协方差P<sub>t</sub>,用公式表示为<maths num="0001"><![CDATA[<math><mfenced open='{' close=''><mtable><mtr><mtd><msub><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>t</mi><mo>+</mo><mn>1</mn><mo>|</mo><mi>t</mi></mrow></msub><mo>=</mo><msub><mi>C</mi><mi>t</mi></msub><msub><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>t</mi><mo>|</mo><mi>t</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>P</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn><mo>|</mo><mi>t</mi></mrow></msub><mo>=</mo><msub><mi>C</mi><mi>t</mi></msub><msub><mi>P</mi><mrow><mi>t</mi><mo>|</mo><mi>t</mi></mrow></msub><msubsup><mi>C</mi><mi>t</mi><mi>T</mi></msubsup><mo>+</mo><msub><mi>Q</mi><mi>t</mi></msub></mtd></mtr></mtable></mfenced></math>]]></maths>其中<img file="FSB00000962250200012.GIF" wi="93" he="68" />表示一步预测,P<sub>t+1|t</sub>表示预测方差,Q<sub>t</sub>表示W<sub>t</sub>的协方差,<maths num="0002"><![CDATA[<math><mrow><mi>E</mi><mo>[</mo><msub><mi>W</mi><mi>k</mi></msub><msubsup><mi>W</mi><mi>l</mi><mi>T</mi></msubsup><mo>]</mo><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>Q</mi><mi>k</mi></msub><mo>,</mo><mi>ifk</mi><mo>=</mo><mi>l</mi></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo><mi>otherwise</mi></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>有了现在状态的预测结果,然后再收集现在状态的测量值,结合预测值和测量值,可以得到状态t+1的最优化估计值<img file="FSB00000962250200014.GIF" wi="147" he="67" />同时更新t+1状态下X<sub>t+1|t+1</sub>的自协方差P<sub>t+1|t+1</sub>:<maths num="0003"><![CDATA[<math><mfenced open='{' close=''><mtable><mtr><mtd><msub><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>t</mi><mo>+</mo><mn>1</mn><mo>|</mo><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><msub><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>t</mi><mo>+</mo><mn>1</mn><mo>|</mo><mi>t</mi></mrow></msub><mo>+</mo><msub><mi>K</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>[</mo><msub><mi>Y</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>A</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><msub><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>t</mi><mo>+</mo><mn>1</mn><mo>|</mo><mi>t</mi></mrow></msub><mo>]</mo></mtd></mtr><mtr><mtd><msub><mi>P</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn><mo>|</mo><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><mrow><mo>(</mo><mi>I</mi><mo>-</mo><msub><mi>K</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><msub><mi>A</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><msub><mi>P</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn><mo>|</mo><mi>t</mi></mrow></msub><msup><mrow><mo>(</mo><mi>I</mi><mo>-</mo><msub><mi>K</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><msub><mi>A</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>)</mo></mrow><mi>T</mi></msup><mo>+</mo><msub><mi>K</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><msub><mi>R</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><msubsup><mi>K</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow><mi>T</mi></msubsup></mtd></mtr></mtable></mfenced></math>]]></maths>其中<maths num="0004"><![CDATA[<math><mrow><msub><mi>K</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><msub><mi>P</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn><mo>|</mo><mi>t</mi></mrow></msub><msubsup><mi>A</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow><mi>T</mi></msubsup><msup><mrow><mo>[</mo><msub><mi>A</mi><mi>t</mi></msub><msub><mi>P</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn><mo>|</mo><mi>t</mi></mrow></msub><msubsup><mi>A</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow><mi>T</mi></msubsup><mo>+</mo><msub><mi>R</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>]</mo></mrow><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>,</mo></mrow></math>]]></maths>R<sub>t</sub>表示V<sub>t</sub>的协方差,<maths num="0005"><![CDATA[<math><mrow><mi>E</mi><mo>[</mo><msub><mi>V</mi><mi>k</mi></msub><msubsup><mi>V</mi><mi>l</mi><mi>T</mi></msubsup><mo>]</mo><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>R</mi><mi>k</mi></msub><mo>,</mo><mi>ifk</mi><mo>=</mo><mi>l</mi></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo><mi>otherwise</mi></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>随着卡尔曼的工作,X会逐渐的收敛;对t+1时刻的一步预测值与最优估算值进行比较,误差表达式为:<maths num="0006"><![CDATA[<math><mrow><msub><mi>ϵ</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>=</mo><mo>|</mo><msub><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>t</mi><mo>+</mo><mo>+</mo><mn>1</mn><mo>|</mo><mi>t</mi></mrow></msub><mo>-</mo><msub><mover><mi>X</mi><mo>^</mo></mover><mrow><mi>t</mi><mo>+</mo><mn>1</mn><mo>|</mo><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub></mrow></math>]]></maths>步骤(5)门限值C是通过学习得到的;步骤(6)在(5)判定突变之后,对下一个周期T内的流量进行t假设检验,需要检验:H<sub>0</sub>:μ≥μ<sub>0</sub>=M<sub>k</sub>/nH<sub>1</sub>:μ<M<sub>k</sub> /nM<sub>k</sub>是在正常情况下通过学习得到的一个流量的数学期望,拒绝域为:<maths num="0007"><![CDATA[<math><mrow><mi>t</mi><mo>=</mo><mfrac><mrow><msub><mi>F</mi><mi>avg</mi></msub><mo>-</mo><msub><mi>μ</mi><mn>0</mn></msub></mrow><mrow><mi>s</mi><mo>/</mo><msqrt><mi>n</mi></msqrt></mrow></mfrac><mo><</mo><msub><mi>t</mi><mrow><mn>1</mn><mo>-</mo><mi>α</mi></mrow></msub><mrow><mo>(</mo><mi>n</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></math>]]></maths>F<sub>avg</sub>为这一段时间流量的平均值。 |