发明名称 一种针对网络数据流中周期性子序列的检测方法
摘要 本发明涉及一种针对网络数据流中周期性子序列的检测方法,属于信息安全技术领域。本发明方法的步骤为:①获取网络数据流,并定义簇间最小时间间隔值和构成最小簇所需网络包的个数;②对网络数据流进行分簇,得到簇集合;③构造周期性簇集合,并判断其是否构成周期性子序列。本发明方法能够实现用程序自动判断网络数据流中是否存在周期性子序列,分析效率高;可做到网络数据流实时获取,实时分析,并且准确性高。
申请公布号 CN101827092A 申请公布日期 2010.09.08
申请号 CN201010134835.8 申请日期 2010.03.30
申请人 北京理工大学 发明人 胡昌振;王崑声;蒋臻甄
分类号 H04L29/06(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 代理人
主权项 一种针对网络数据流中周期性子序列的检测方法,其特征在于:首先给出相关术语的定义:定义1.序列:以时间为序的数据包的集合;定义2.子序列:若序列X,Y满足:序列X中所有的数据包均存在于序列Y中,且X中所有的数据包的顺序与Y中数据包顺序一致,则X是Y的一个子序列;定义3.序列的特征值:由既定的特征向量组成的序列的属性;定义4.簇:簇是在时序上关系紧密的数据包的集合,而簇与簇之间的数据包在时序关系上相对疏远,具体判断标准为:当相邻两个数据包的时间间隔不大于一个人为设定时间值T,则判断这两个数据包在同一个簇内;否则判断这两个数据包分属于两个簇;基于上述定义,本发明的一种针对网络数据流中周期性子序列的检测方法的具体操作步骤如下:步骤一、获取网络数据流,并定义簇间最小时间间隔值为T,构成最小簇所需网络包的个数为Smin,Smin为正整数;步骤二、对网络数据流进行分簇,得到簇集合;其具体操作步骤如下:第1步:构造一个簇列表Qc和一个临时数据包列表Lp;簇列表Qc用于存储簇对象C,;临时数据包列表Lp用于存储从网络数据流中获取的数据包;簇列表Qc包含但不限于以下三个属性:数据包序列、数据包数量、簇对象特征值;临时数据包列表Lp包含但不限于以下四个属性:数据包序列、数据包数量、簇对象特征值、最后一个数据包的时间Tlast;第2步:从步骤一获取的网络数据流中读取一个数据包;记该数据包的时间为Tp,并设定数据包数量的初值为0;第3步:将第2步或者第4步获取的数据包添加至临时数据包列表Lp,其数据包数量属性值增加1,并记录临时数据包列表Lp中最后一个数据包的时间Tlast=Tp;第4步:判断网络数据流是否结束;若结束,则以临时数据包列表Lp中数据包构造一个簇对象C,获得簇对象C的特征值,并添加至簇列表Qc中,结束分簇,转到步骤三;否则读取网络数据流的下一个数据包,记录其时间Tp;第5步:判断Tp-Tlast>T是否成立;如果不成立,将第4步获取的数据包加入到临时数据包列表Lp,其数据包数量的属性值增加1,并更新Tlast=Tp,回到第4步;如果Tp-Tlast>T成立,且临时数据包列表Lp中数据包个数大于等于Smin,则以临时数据包列表Lp中数据包构造一个簇对象C,添加至簇列表Qc中,然后回到第4步;如果Tp-Tlast>T成立,且Lp中数据包个数小于Smin,则丢弃临时数据包列表Lp,然后回到第4步;簇集合即为簇列表Qc中存储的簇对象,用n表示包含的簇对象的数量,n为正整数;步骤三、构造周期性簇集合,并判断其是否构成周期性子序列;从步骤二得到的簇集合中挑选出具有相同特征值并且出现的时间间隔差小于周期性最大容忍方差Ma的簇对象,记录其数量为Mum,其中,Ma为一个人为设定值;如果Mum≥Mum1,Mum1为一人为设定正整数,则用挑选出的簇对象构成周期性簇集合,再判断其是否构成周期性子序列;具体操作步骤为:第1步:对步骤二中获取的簇集合,按照特征值进行分类,将特征值相同的簇对象放在一个集合中,记录每个集合中的簇对象数量Mum;第2步:依次判断每个集合中的簇对象数量是否满足Mum≥Mum1,如果不满足,则将该集合删除;第3步:依次对簇对象数量Mum不小于Mum1的集合进行操作,判断其是否存在周期性特征;具体操作为:①对该集合中每两个相邻的簇对象的起始时间做差值运算,得到相邻簇对象之间的时间间隔;②得到相邻簇对象之间的时间间隔的平均方差;③如果该平均方差小于人为设定的周期性最大容忍方差Ma,则认为该集合中的簇对象构成周期性子序列;否则,执行第④步;④依次使用第①步中得到的每一个时间间隔做如下操作:到原始网络数据流中,以得该时间间隔的两个相邻簇对象中,在前的簇对象的起始时间为起点,该时间间隔为步长,分别向前和向后查询与该集合的特征值相同的数据包序列;若存在这样的数据包序列,则将其作为簇对象按时间顺序存储到一个新的集合中,然后返回到第①步对该集合进行操作;否则,结束对该时间间隔的操作。
地址 100081 北京市海淀区中关村南大街5号