CN113411235A - 一种基于pso的未知协议数据帧特征提取方法 - Google Patents

一种基于pso的未知协议数据帧特征提取方法 Download PDF

Info

Publication number
CN113411235A
CN113411235A CN202110687554.3A CN202110687554A CN113411235A CN 113411235 A CN113411235 A CN 113411235A CN 202110687554 A CN202110687554 A CN 202110687554A CN 113411235 A CN113411235 A CN 113411235A
Authority
CN
China
Prior art keywords
frequent
sequences
sequence
data frame
length
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110687554.3A
Other languages
English (en)
Other versions
CN113411235B (zh
Inventor
刘治国
张姣姣
汪林
潘成胜
任长庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dalian University
Original Assignee
Dalian University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dalian University filed Critical Dalian University
Priority to CN202110687554.3A priority Critical patent/CN113411235B/zh
Publication of CN113411235A publication Critical patent/CN113411235A/zh
Application granted granted Critical
Publication of CN113411235B publication Critical patent/CN113411235B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9035Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于PSO的未知协议数据帧特征提取方法,包括:根据齐夫定律确定每簇中数据帧序列切分的长度;采用自适应阈值的方式,结合粒子群算法对所述序列进行频繁项提取;利用所述序列的位置信息对已经提取出来的短频繁序列进行拼接,将拼接之后满足阈值的序列视为长频繁序列,生成新的频繁序列集合;通过所述长频繁序列的位置信息来挖掘频繁序列之间的有效关联规则。本方法在数据处理阶段对数据帧进行了切分处理,操作切分好的数据帧比操作整条数据帧更能达到高效率的数据处理能力,然后利用粒子群算法通过自适应阈值的方法进行频繁序列筛选,大大提高了筛选的准确性且缩短了筛选时间。

Description

一种基于PSO的未知协议数据帧特征提取方法
技术领域
本发明涉及未知协议识别技术领域,具体涉及一种基于PSO的未知协议数据帧特征提取方法。
背景技术
在当今网络信息对抗中,由于安全性的原因,通信双方所使用的协议往往都是没有公开且协议格式未知的协议,截取的多数通信数据是连续比特流形式的,而比特流数据没有任何规律。传统的协议识别技术可能无法准确的识别出所捕获的未知协议,在实际情况中,截取到的未知通信协议数据帧一般包含了多种不同的协议,而在没有先验知识的前提下,如何进行特征提取是一个亟待解决的问题,无线通信在作战环境中占据主要位置,交战双方大量的指挥、控制、情报信息通过无线通信传递。因此,成功截取敌方指挥信息并解析,甚至反向入侵干扰地方的指挥命令,对战场信息对抗有着重要的意义。未知协议识别往往会以协议的分层为基础,对于协议未知的网络数据,当前主要研究内容为对协议的特征进行提取,而处理的对象则为具有相同协议属性的比特流数据帧,基于比特流数据帧的未知数据链路协议识别则是一项重要的研究。如何将多数据链路层协议进行聚类以获得相同协议属性的数据帧是该研究中的首要问题,因此对比特流数据帧的处理分析成为协议识别与分析的首要工作。
针对多种未知协议数据帧识别的问题,国内外许多研究人员都展开了研究,但由于比特流协议数据帧具有字段长度灵活,控制开销小,结构紧凑等特点,使得现有的研究中存在一些不足。如利用遗传算法生成初始信息素,然后设置频繁阈值利用蚁群算法来挖掘频繁项,尽管挖掘效率得到了一定的提高,但是初始信息素具有不确定性,从而在一定程度上降低了挖掘质量;采用一种CFI算法,首先利用AC算法初始化原始数据然后生成频繁序列,再利用优化的Apriori算法生成关联规则,仿真证明该方法减少了时间和空间开销,但Apriori算法的串行处理方式并不适用于数据集较大的情况;基于格式特征提取的未知协议异常检测方法,该方法首先通过聚类模型将多个未知协议分类成多个单未知协议簇,然后在单协议簇中利用相似性矩阵进行序列对比,字符统计等方法获得未知协议的格式特征,但是当数据集包含大量的数据帧时会造成高时间复杂度的问题。
以上方法虽然在一定程度上达到了高挖掘效率目的,但是存在以下两个问题:(1)在进行频繁项提取时,所设定的频繁阈值是固定不变的,由于在未知协议识别中缺少先验知识,不确定性较大,固定的频繁阈值设定可能不适用于不同未知协议数据;(2)若任意两个频繁序列的置信度和支持度满足最小阈值要求,则两者之间的关联规则为强关联规则,但是强关联规则并不都是有效的,这是由于置信度片面的考虑了一个事务出现对另外一个事务出现的可能性,而没有考虑一个事务不出现时对另一个事务出现产生的影响。
发明内容
针对上述问题以及现有方法的局限性,为解决在未知网络环境下未知协议数据帧特征提取频繁阈值自适应度不高且准确率低的问题,提出一种基于PSO的未知协议数据帧特征提取方法。
为实现上述目的,本发明的技术方案为:一种基于PSO的未知协议数据帧特征提取方法,包括:
根据齐夫定律确定每簇中数据帧序列切分的长度;
采用自适应阈值的方式,结合粒子群算法对所述序列进行频繁项提取;
利用所述序列的位置信息对已经提取出来的短频繁序列进行拼接,将拼接之后满足阈值的序列视为长频繁序列,生成新的频繁序列集合;
通过所述长频繁序列的位置信息来挖掘频繁序列之间的有效关联规则。
进一步的,根据齐夫定律确定每簇中数据帧序列切分的长度,具体为:
将切分好的序列存入序列集合Setj,统计所述序列集合Setj中相同序列的数量,记录每个序列出现的起始位置;
统计完成后得到的sj个数组按长度降序排列,建立每个数组的长度与排名关系公式,多次试验取每簇的数据帧序列切分长度δj,如果关系公式曲线接近一条直线,将当前长度δj下得到的序列集合Setj输出,作为频繁项提取步骤的输入。
进一步的,所述每个数组的长度与排名关系公式为:
Lj_i·Rj_i=N
其中,N为自然数;取数组sj_i长度的对数lnLj_i,以及其排名的对数lnRj_i,以lnLj_i为横坐标,lnRj_i为纵坐标作图。
进一步的,采用自适应阈值的方式,结合粒子群算法对所述序列进行频繁项提取,具体为:
初始化频繁阈值F,令F=Lmax
获取准频繁序列种类数量N_F、非频繁率inF及筛选率sec,同时更新粒子的速度和位置;当适应度函数趋于稳定并开始下降时停止迭代更新,从稳定到下降的拐点即为最佳频繁阈值,输出此频繁阈值,并将该频繁阈值下的频繁序列输出;
对于粒子群中的每个粒子来说,通过适应度函数计算出来的当前适应度与个体极值点位置Pbest、全局极值点位置Gbest的适应度作比较,如果当前的适应度低于个体极值点位置Pbest的适应度,则将当前适应度对应的位置更新为个体极值点位置Pbest;如果当前的适应度低于全局极值点位置Gbest的适应度,则将当前适应度对应的位置更新为全局极值点位置Gbest,否则不做更新;
更新频繁阈值为粒子的全局极值点位置Gbest,且频繁阈值需在[Lmin,Lmax]范围中,若全局极值点位置Gbest不在此范围,则将[Lmin,Lmax]范围内随机一个之前未取过的数值赋值给频繁阈值。
进一步的,所述准频繁序列种类数量N_F表示每次迭代中序列出现的频率counti≥F的子序列数组个数;
集合Setj的长度Lsetj表示第j簇的数据帧序列集合中所有序列的个数,公式如下:
Figure BDA0003125144840000041
所述序列出现的频率counti表示集合Setj中第sj_i数组所有序列出现的频率,其计算公式如下:
counti=Lj_i/Lsetj
准频繁序列的数量count_F表示准频繁序列数组中所有序列的个数,公式如下:
Figure BDA0003125144840000051
非频繁率inF表示集合中非频繁序列的个数与集合总频繁序列的比值,公式如下:
Figure BDA0003125144840000052
筛选率sec为粒子群算法的适应度函数,公式如下:
Figure BDA0003125144840000053
进一步的,更新粒子的速度公式为:
Figure BDA0003125144840000054
更新粒子的位置公式为:
Figure BDA0003125144840000055
其中,
Figure BDA0003125144840000056
为收敛因子,
Figure BDA0003125144840000057
c1、c2为学习因子,
Figure BDA0003125144840000058
为粒子α在第k+1次迭代时的速度,
Figure BDA0003125144840000059
为粒子α在第k次迭代时的速度,r1、r2为随机数,且r1,r2∈[0,1];
Figure BDA00031251448400000510
为粒子α在第k+1次迭代时的位置,
Figure BDA00031251448400000511
为粒子α在第k次迭代时的位置,
Figure BDA00031251448400000512
为粒子α在第k次迭代时的个体极值点位置,Gbestk为粒子群在第k次迭代时的全局极值点位置。
更进一步的,设短频繁序列x的起始位置为posx,长度为lenx,短频繁序列y的起始位置为posy,长度为leny,序列之间的条件关系如下:
剔除条件:当posx=posy时,判断两个序列的重叠部分是否相同,如果相同则从该集合中剔除min{lenx,leny}的序列;当posx<posy且0<posy-posx≤lenx时,判断两个序列的重叠部分是否相同,如果相同则将频繁序列y从集合中剔除;
拼接条件:当posx<posy且posy-posx+leny>lenx时,判断两个序列的重叠部分是否相同,如果相同则满足拼接条件。
更进一步的,利用所述序列的位置信息对已经提取出来的短频繁序列进行拼接,具体为:
判断序列x与序列y是否满足剔除或拼接条件:若满足剔除条件,则将多余的序列剔除;若满足拼接条件,则记录拼接好序列的起始位置为序列x的起始位置,拼接完成后,将序列x与y从集合中剔除;若都不满足,则继续遍历集合,直到遍历完成;
调用基于粒子群算法的频繁项提取方法:先初始化频繁阈值F,筛选长度大于F的序列数组,获取准频繁序列种类数量N_F、非频繁率inF及筛选率sec,并更新粒子,直至满足终止条件;
将满足频繁阈值F下的序列加入长频繁项集合T中。
再次执行频繁项提取方法,去除集合里面的冗余序列,筛选满足频繁阈值要求的频繁序列,得到最终的长频繁序列集合;
作为更进一步的,通过所述长频繁序列的位置信息来挖掘频繁序列之间的有效关联规则,具体为:
通过支持度表示频繁序列x和频繁序列y同时出现的概率:
Figure BDA0003125144840000061
其中,support(x→y)表示支持度,num(x+y)表示x,y同时出现在数据帧中的次数,n表示数据帧数;频繁序列都是带有起始位置信息的序列,其位置不同所代表的信息也就不同;
通过置信度表示当频繁序列x出现时,频繁序列y出现的概率:
Figure BDA0003125144840000071
任意两个频繁序列x,y的支持度与置信度均大于阈值时,则两者之间存在强关联性,将此关联规则添加至关联规则集合中。
作为更进一步的,利用卡方检验分析关联规则集合中每一条关联规则涉及到的两个频繁序列之间相关性,并判断两者之间的关联规则是否为有效的强关联规则,具体为:
卡方检验的自由度均为1,原假设频繁序列x与频繁序列y之间是独立无关的,则理论率如下式所示,表示频繁序列y出现概率:
Figure BDA0003125144840000072
其中L3为序列y出现的数据帧数量,n为数据帧的总数量;
当数据帧的总数量n≥40且ideai≥5时,卡方检验公式为:
Figure BDA0003125144840000073
其中,i∈{a,b,c,d},actuali为i的实际值,ideai为i的理论值,且ideaa=L1·Pidea,ideab=L1·(1-Pidea),ideac=L2·Pidea,idead=L2·(1-Pidea);
当n≥40且1≤ideai<5时,卡方检验公式为:
Figure BDA0003125144840000074
当n<40或ideai<1时,卡方检验公式为:
Figure BDA0003125144840000075
其中,p为原假设成立概率,L1!表示为L1的阶乘;
将得到的卡方值与自由度为1的临界值比较,如果卡方值大于临界值,则推翻原假设,即频繁序列x和频繁序列y之间有较大的相关性,两者关联规则是有效的关联规则,并将两者之间的关联规则作为特征存入特征库中;反之,如果卡方值小于临界值,则原假设成立,即频繁序列x和频繁序列y之间互相独立,两者关联规则不是有效的关联规则。
本发明由于采用以上技术方案,能够取得如下的技术效果:本发明根据比特流数据帧的特点利用Zipf定律对比特流数据进行切分,为适应未知协议的不确定性,利用粒子群算法使频繁阈值自适应,得到自适应阈值下的短频繁序列,再采用连续位置信息方法对挖掘出的短频繁序列进行拼接,确定最终的频繁序列集合,最后引入卡方检验对频繁序列之间挖掘出的关联规则进行检验,筛选出有效的关联规则,能有效提高协议识别的准确度。
附图说明
为了更清楚的说明本发明的实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的图做一简单地介绍,显而易见地,下面描述中的图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的图。
图1为本发明的实施过程技术路线图;
图2为本发明的序列切分流程图;
图3为本发明的自适应阈值频繁序列提取流程图;
图4为本发明的基于卡方检验的频繁序列关联规则分析流程图;
图5为本发明不同算法下的频繁序列挖掘时间对比图;
图6为本发明准确率对比图;
图7为本发明不同算法在不同数据集下的平均准确率对比图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合图及具体实施方式,对本发明进行进一步详细说明。下面的实施例可以使本专业的技术人员更全面地理解本发明,但并不因此将本发明限制在所述的实施例范围之中。
如图1所示,通过对已进行聚类操作的数据帧进行特征提取。多种协议的数据帧在进行聚类操作后,得到单一协议数据帧的簇,作为本发明的输入。本实例提供基于PSO的未知协议数据帧特征提取方法,包括如下步骤:
S1:根据齐夫定律确定每簇中数据帧序列切分的长度;
S1.1设每个簇的数据帧序列切分长度为δj比特,其中j为聚类完成后得到的簇的数量,j=1,2...。将切分好的序列存入序列集合Setj,Setj为第j个簇的数据帧序列集合。序列切分流程如图2所示。统计集合Setj中相同序列的数量,而同一序列在一条数据帧中可能不止一次出现,因此在统计相同序列数量的同时,需要记录每个序列出现的起始位置。如序列01000100在数据帧中出现的起始位置为16,则记为01000100_16,在当前频繁项提取过程中暂时不考虑序列的位置信息,因此先将每种相同序列存为一个数组,计算该数组的长度,即为该序列出现的次数。
S1.2统计完成后,得到sj个数组,sj为第j个簇中切分完成后得到的序列种类数,将sj个数组按数组长度降序排列,设数组sj的长度为Lj_i,排名为Rj_i,sj_i为第j个簇中第i个数组,Lj_i为第j个簇中第i个数组的长度,Rj_i为第j个簇中第i个数组的长度排名,其中i∈{1,2,…,sj},则每个数组的长度与排名的关系满足下列公式:
Lj_i·Rj_i=N
其中,N为自然数。取数组sj_i长度的对数lnLj_i,以及其排名的对数lnRj_i,以lnLj_i为横坐标,lnRj_i为纵坐标作图,如果所有的点接近一条直线,就认为它满足齐夫定律。在本方法中,考虑到比特流协议非0即1的特点,如果选取的δj过小,切分得到的序列种类数量较少,如果选取的δj过大,则不利于后续的特征提取工作,因此通过多次试验取δj分别等于4比特、8比特、12比特、16比特时对数据帧进行切分,如果曲线接近一条直线,就将当前δj下得到的序列集合Setj输出,作为下一步频繁项提取方法的输入。
S2:采用自适应阈值的方式,结合粒子群算法对所述序列进行频繁项提取;
数据帧在经过数据预处理后,若其在某个属性的值越相似、数据越平稳,则该属性的信息熵越大,进一步的,说明该属性更有可能代表协议的特征序列,认为其权重越大;相反,若某个属性上的值越杂乱,则该属性的信息熵越小,其权重也就越小。由于协议内的特征序列都是成段出现,并且特征字段一般为字节的整数倍,本方法中把数据帧中每字节作为一个属性,通过计算各属性的熵值,来确定各个属性的权重。
在现有的频繁项提取算法中,频繁项阈值的设置大都是固定的,如果阈值设置过小,可能会筛选到没有意义的序列,降低特征提取的准确度;如果设置过大,可能会筛选掉一些有重要意义的序列。在本方法中采用自适应阈值的方式,结合粒子群算法进行频繁项提取,如图3所示。
所需定义为:
定义1:集合Setj的长度Lsetj:表示第j个簇的数据帧序列集合中所有序列的个数。计算公式如下:
Figure BDA0003125144840000111
定义2:序列出现的频率counti:表示集合Setj中第sj_i数组所有序列出现的频率。其计算公式如下:
counti=Lj_i/Lsetj
定义3:F∈[Lmin,Lmax]:F表示为频繁阈值,Lmax为集合Setj中最长序列数组的长度,Lmin为集合Setj中最短序列数组的长度。
定义4:准频繁序列种类数量N_F:表示每次迭代中序列出现的频率counti≥F的子序列数组个数。
定义5:准频繁序列的数量count_F:表示准频繁序列数组中所有序列的个数。计算公式如下:
Figure BDA0003125144840000112
定义6:非频繁率inF:表示集合中非频繁序列的个数与集合总频繁序列的比值。公式如下:
Figure BDA0003125144840000113
定义7:筛选率sec:本方法定义sec为粒子群算法的适应度函数。计算公式如下:
Figure BDA0003125144840000114
定义8:粒子的速度公式:
Figure BDA0003125144840000121
粒子的位置公式:
Figure BDA0003125144840000122
其中,
Figure BDA0003125144840000123
为收敛因子,
Figure BDA0003125144840000124
c1、c2为学习因子,
Figure BDA0003125144840000125
为粒子α在第k+1次迭代时的速度,
Figure BDA0003125144840000126
为粒子α在第k次迭代时的速度,r1、r2为随机数,且r1,r2∈[0,1]。
Figure BDA0003125144840000127
为粒子α在第k+1次迭代时的位置,
Figure BDA0003125144840000128
为粒子α在第k次迭代时的位置,
Figure BDA0003125144840000129
为粒子α在第k次迭代时的个体极值点位置,Gbestk为粒子群在第k次迭代时的全局极值点位置。
频繁项提取过程的具体步骤可以包括:
S2.1初始化频繁阈值F,令F=Lmax
S2.2获取准频繁序列种类数量N_F、非频繁率inF及筛选率sec,同时更新粒子的速度和位置;
S2.3适应度函数值的总体趋势为下降、平稳再下降,当适应度函数趋于稳定并开始下降时停止迭代,从稳定到下降的拐点即为最佳频繁阈值,输出此阈值,并将该阈值下的频繁序列输出。
S2.4对于粒子群中的每个粒子来说,将通过适应度函数计算出来的当前适应度与个体极值点位置Pbest、全局极值点位置Gbest的适应度作比较,如果当前的适应度低于Pbest的适应度,则将当前适应度对应的位置更新为个体极值点位置Pbest,Gbest同样如此,否则不做更新。
S2.5更新频繁阈值为粒子的全局极值点位置Gbest,且频繁阈值需[Lmin,Lmax]范围中,若全局极值点位置Gbest不在此范围,则将[Lmin,Lmax]范围内随机一个之前未取过的数值赋值给频繁阈值。
S3:利用所述序列的位置信息对已经提取出来的短频繁序列进行拼接,将拼接之后满足阈值的序列视为长频繁序列,生成新的频繁序列集合;
现有技术中已将短频繁序列提取出来,但是所提取的频繁序列为较短序列,在实际的场景中协议的特征序列往往都比较长,因此本发明将利用序列的位置信息对已经提取出来的短频繁序列进行拼接,将拼接之后并满足阈值的序列视为长频繁序列,生成新的频繁序列集合。
S3.1设短频繁项集合D,其中短频繁序列x的起始位置为posx,长度为lenx,短频繁序列y的起始位置为posy,长度为leny,序列之间的条件关系如下:
剔除条件:
当posx=posy时,判断两个序列的重叠部分是否相同,如果相同则从该集合中剔除min{lenx,leny}的序列。
当posx<posy且0<posy-posx≤lenx时,判断两个序列的重叠部分是否相同,如果相同则将频繁序列y从集合中剔除。
拼接条件:
当posx<posy且posy-posx+leny>lenx时,判断两个序列的重叠部分是否相同,如果相同则满足拼接条件。
S3.2频繁序列拼接步骤如下:
Step1:遍历集合:判断序列x与序列y(x≠y)是否满足剔除或拼接条件:若满足剔除条件,则将多余的序列剔除;若满足拼接条件,则记录拼接好序列的起始位置为序列x的起始位置,拼接完成后,将序列x与y从集合中剔除;若都不满足,则继续遍历,直到遍历完成。
Step2:调用基于粒子群算法的频繁项提取方法:先初始化频繁阈值F,筛选长度大于F的序列数组,计算参数,并更新粒子,直至满足终止条件。
Step3:频繁阈值F下的序列加入长频繁项集合T中。
在频繁序列拼接方法中,通过Step1拼接之后得到的长序列并不一定都是频繁的,为了去除集合里面的冗余序列,需要再次执行频繁项提取方法,筛选满足阈值要求的频繁序列,输出最终的长频繁序列集合。
S4:通过所述长频繁序列的位置信息来挖掘频繁序列之间的有效关联规则;
为了使提取的协议特征更加简化,本方法利用序列的位置信息来挖掘频繁序列之间的有效关联规则,从而得到更加精简的协议特征。一般来说,频繁序列之间的关联规则是通过支持度和置信度来衡量的,若其满足最小支持度和最小置信度则的要求,则将该关联规则视为强关联规则,但是仅依靠这个判断条件会存在误导性,置信度只考虑了一个频繁序列A出现时,另一个频繁序列B也出现的可能性,它并没有考虑A不出现时B出现时的可能性,也就是说利用置信度挖掘的关联规则不能全面的反映A与B的之间的关联关系,所以本方法在挖掘关联规则时加入相关性分析,若任意两个序列之间的支持度和置信度不满足相关性要求,则剔除此关联规则。相关定义如下:
支持度:频繁序列x和频繁序列y同时出现的概率。
Figure BDA0003125144840000141
其中,support(x→y)表示支持度,num(x+y)表示x,y同时出现在数据帧中的次数,n表示数据帧数。此外,在本方法所涉及的频繁序列都是带有起始位置信息的序列,如10001000_16与10001000_48是不一样的,位置不同,所代表的信息也就不同。
置信度:当频繁序列x出现时,频繁序列y出现的概率。
Figure BDA0003125144840000151
对任意两个频繁序列x,y进行关联分析后,若两者之间存在强关联性,则将此关联规则添加至关联规则集合中。之后利用卡方检验去分析集合中的每一条关联规则涉及到的两个频繁序列之间的相关性,判断两者之间的关联规则是否为有效的强关联规则。
频繁序列x、y相关性检验如附表1所示。附表1中,x表示出现频繁序列x的数据帧数量,~x表示x的对立面,即不出现频繁序列x的数据帧数量;同理,y和~y表示方法与上面相同。
表1
Figure BDA0003125144840000152
卡方检验实则是对实际频数与理论频数的分布是否具有明显的差异性而进行的检验,本方法利用卡方检验来检验频繁序列实际出现的概率与理论值的差异性,如果差异性过大,则说明x和y的之间的相关性并不满足要求,即此关联规则并不是一条有效的关联规则。本方法中卡方检验的自由度均为1,原假设频繁序列x与频繁序列y之间是独立无关的,则理论率如下式所示,表示频繁序列y出现概率。
Figure BDA0003125144840000153
基于卡方检验的频繁序列规则分析流程图如图4所示,不同的前提条件对应不同的卡方检验公式。当数据帧的总数量n≥40且ideai≥5时,卡方检验公式为:
Figure BDA0003125144840000161
其中,i∈{a,b,c,d},actuali为i的实际值,ideai为i的理论值,且ideaa=L1·Pidea,ideab=L1·(1-Pidea),ideac=L2·Pidea,idead=L2·(1-Pidea)。
当n≥40且1≤ideai<5时,卡方检验公式为:
Figure BDA0003125144840000162
当n<40或ideai<1时,卡方检验公式为:
Figure BDA0003125144840000163
其中,p为原假设成立概率,L1!表示为L1的阶乘。
将得到的卡方值与自由度为1的临界值比较,如果得到的卡方值大于临界值,则可推翻原假设,即频繁序列x和频繁序列y之间有较大的相关性,两者的关联规则是有效的关联规则,则将两者之间的关联规则作为特征存入特征库中;反之,若得到的卡方值小于临界值,则原假设成立,即频繁序列x和频繁序列y之间互相独立,两者的关联规则不是有效的关联规则。
表2为本发明的特征提取的数据集信息图
Figure BDA0003125144840000164
图5为不同算法在表2数据集下的频繁序列挖掘时间对比图。从图中可以看出,在挖掘完频繁序列后,本发明方法所需时间短于传统Apriori算法及传统Fp-Growth算法,原因在于相比于Apriori算法,FP-Growth算法并不需要枚举出所有的候选项集,而且随着数据量的增加,Apriori算法的串行处理方式会使得数据处理能力大大下降,而FP-Growth算法采取的分流汇总的处理方法会减少时间成本,因此FP-Growth算法所需时间比Apriori算法短。而本方法在数据处理阶段对数据帧进行了切分处理,操作切分好的数据帧比操作整条数据帧更能达到高效率的数据处理能力,然后利用粒子群算法通过自适应阈值的方法进行频繁序列筛选,大大提高了筛选的准确性且缩短了筛选时间。
定义识别准确率为第j个簇中,由提取到的特征正确识别出数据帧的数量与簇中数据帧总数量之比。
Figure BDA0003125144840000171
其中,A表示识别的正确率,nj表示在第j个簇中由提取到的特征正确识别出数据帧的数量,Nj为第j个簇中数据帧的总数量。
表3为本发明的协议识别的数据集信息图
Figure BDA0003125144840000172
图6对比了在本发明方法在表3数据集下使用关联规则分析前、关联规则分析后以及使用卡方检验分析时的准确率对比图。从图6中的(a)(b)(c)中可以看出无论在哪种数据集下,使用关联规则分析比不使用关联规则分析的准确率要高,图6的(d)为在使用关联规则分析前、关联规则分析后以及卡方检验分析时的平均准确率对比图,从图(d)可以看出,加入卡方检验分析时的平均准确率比另外两种情况高。
出现上述现象的原因在于对已经提取出的频繁序列进行关联规则分析,可以进一步提取识别效率相对较高、更具有全局代表性的频繁序列作为协议特征去识别协议,利用关联规则进一步提取出的频繁序列的识别率相对而言要高。而基于卡方检验分析的协议识别准确率又比使用关联规则得到的准确率高,原因在于当在频繁项集中提取完关联规则后,可能会存在误导性关联规则,使用卡方检验提取出的关联规则,可以筛选出有效的关联规则,从而提高协议识别的准确率。
图7为不同算法在不同数据集下的准确率对比图,从图中可以看出,无论是在单个数据集还是整体平均准确率,本方法得到的准确率均优于传统Apriori算法和FP-Growth算法,原因在于传统算法在进行频繁序列提取时可能会冗余序列,导致提取出的协议特征并不准确。本方法了结合粒子群算法与自适应阈值进行频繁项提取,在提取协议特征时加入了关联规则分析,同时还考虑了频繁序列之间的相关性,提高识别的准确率。
本发明的实施例有较佳的实施性,并非是对本发明任何形式的限定。本发明实施例中描述的技术特征或技术特征的组合不应当被认为是孤立的,它们可以被互相组合从而达到更好的技术效果。本发明优选实施方式的范围也可以包括另外的实现,且这应被发明实施例所属技术领域的技术人员所理解。

Claims (10)

1.一种基于PSO的未知协议数据帧特征提取方法,其特征在于,包括:
根据齐夫定律确定每簇中数据帧序列切分的长度;
采用自适应阈值的方式,结合粒子群算法对所述序列进行频繁项提取;
利用所述序列的位置信息对已经提取出来的短频繁序列进行拼接,将拼接之后满足阈值的序列视为长频繁序列,生成新的频繁序列集合;
通过所述长频繁序列的位置信息来挖掘频繁序列之间的有效关联规则。
2.根据权利要求1所述一种基于PSO的未知协议数据帧特征提取方法,其特征在于,根据齐夫定律确定每簇中数据帧序列切分的长度,具体为:
将切分好的序列存入序列集合Setj,Setj为第j个簇的数据帧序列集合,统计所述序列集合Setj中相同序列的数量,记录每个序列出现的起始位置;
统计完成后得到的sj个数组,sj为第j个簇中切分完成后得到的序列种类数按长度降序排列,建立每个数组的长度与排名关系公式,多次试验取每簇的数据帧序列切分长度δj,j为聚类完成后得到的簇的数量,j=1,2...,如果关系公式曲线接近一条直线,将当前长度δj下得到的序列集合Setj输出,作为频繁项提取步骤的输入。
3.根据权利要求2所述一种基于PSO的未知协议数据帧特征提取方法,其特征在于,所述每个数组的长度Lj_i与排名Rj_i关系公式为:
Lj_i·Rj_i=N
其中,Lj_i为第j个簇中第i个数组的长度,Rj_i为第j个簇中第i个数组的长度的排名,N为自然数;取数组sj_i长度的对数ln Lj_i,以及其排名的对数ln Rj_i,以ln Lj_i为横坐标,lnRj_i为纵坐标作图;sj_i为第j个簇中第i个数组。
4.根据权利要求1所述一种基于PSO的未知协议数据帧特征提取方法,其特征在于,采用自适应阈值的方式,结合粒子群算法对所述序列进行频繁项提取,具体为:
初始化频繁阈值F,令F=Lmax
获取准频繁序列种类数量N_F、非频繁率inF及筛选率sec,同时更新粒子的速度和位置;当适应度函数趋于稳定并开始下降时停止迭代更新,从稳定到下降的拐点即为最佳频繁阈值,输出此频繁阈值,并将该频繁阈值下的频繁序列输出;
对于粒子群中的每个粒子来说,通过适应度函数计算出来的当前适应度与个体极值点位置Pbest、全局极值点位置Gbest的适应度作比较,如果当前的适应度低于个体极值点位置Pbest的适应度,则将当前适应度对应的位置更新为个体极值点位置Pbest;如果当前的适应度低于全局极值点位置Gbest的适应度,则将当前适应度对应的位置更新为全局极值点位置Gbest,否则不做更新;
更新频繁阈值为粒子的全局极值点位置Gbest,且频繁阈值需在[Lmin,Lmax]范围中,若全局极值点位置Gbest不在此范围,则将[Lmin,Lmax]范围内随机一个之前未取过的数值赋值给频繁阈值。
5.根据权利要求4所述一种基于PSO的未知协议数据帧特征提取方法,其特征在于,所述准频繁序列种类数量N_F表示每次迭代中序列出现的频率counti≥F的子序列数组个数;
集合Setj的长度Lsetj表示第j簇的数据帧序列集合中所有序列的个数,公式如下:
Figure FDA0003125144830000031
所述序列出现的频率counti表示集合Setj中第sj_i数组所有序列出现的频率,其计算公式如下:
counti=Lj_i/Lsetj
准频繁序列的数量count_F表示准频繁序列数组中所有序列的个数,公式如下:
Figure FDA0003125144830000032
非频繁率inF表示集合中非频繁序列的个数与集合总频繁序列的比值,公式如下:
Figure FDA0003125144830000033
筛选率sec为粒子群算法的适应度函数,公式如下:
Figure FDA0003125144830000034
6.根据权利要求4所述一种基于PSO的未知协议数据帧特征提取方法,其特征在于,更新粒子的速度公式为:
Figure FDA0003125144830000035
更新粒子的位置公式为:
Figure FDA0003125144830000036
其中,
Figure FDA0003125144830000037
为收敛因子,
Figure FDA0003125144830000038
c1、c2为学习因子,
Figure FDA0003125144830000039
为粒子α在第k+1次迭代时的速度,
Figure FDA00031251448300000310
为粒子α在第k次迭代时的速度,r1、r2为随机数,且r1,r2∈[0,1];
Figure FDA0003125144830000041
为粒子α在第k+1次迭代时的位置,
Figure FDA0003125144830000042
为粒子α在第k次迭代时的位置,
Figure FDA0003125144830000043
为粒子α在第k次迭代时的个体极值点位置,Gbestk为粒子群在第k次迭代时的全局极值点位置。
7.根据权利要求1所述一种基于PSO的未知协议数据帧特征提取方法,其特征在于,设短频繁序列x的起始位置为posx,长度为lenx,短频繁序列y的起始位置为posy,长度为leny,序列之间的条件关系如下:
剔除条件:当posx=posy时,判断两个序列的重叠部分是否相同,如果相同则从该集合中剔除min{lenx,leny}的序列;当posx<posy且0<posy-posx≤lenx时,判断两个序列的重叠部分是否相同,如果相同则将频繁序列y从集合中剔除;
拼接条件:当posx<posy且posy-posx+leny>lenx时,判断两个序列的重叠部分是否相同,如果相同则满足拼接条件。
8.根据权利要求4或7所述一种基于PSO的未知协议数据帧特征提取方法,其特征在于,利用所述序列的位置信息对已经提取出来的短频繁序列进行拼接,具体为:
判断序列x与序列y是否满足剔除或拼接条件:若满足剔除条件,则将多余的序列剔除;若满足拼接条件,则记录拼接好序列的起始位置为序列x的起始位置,拼接完成后,将序列x与y从集合中剔除;若都不满足,则继续遍历集合,直到遍历完成;
调用基于粒子群算法的频繁项提取方法:先初始化频繁阈值F,筛选长度大于F的序列数组,获取准频繁序列种类数量N_F、非频繁率inF及筛选率sec,并更新粒子,直至满足终止条件;
将满足频繁阈值F下的序列加入长频繁项集合T中;
再次执行频繁项提取方法,去除集合里面的冗余序列,筛选满足频繁阈值要求的频繁序列,得到最终的长频繁序列集合。
9.根据权利要求1所述一种基于PSO的未知协议数据帧特征提取方法,其特征在于,通过所述长频繁序列的位置信息来挖掘频繁序列之间的有效关联规则,具体为:
通过支持度表示频繁序列x和频繁序列y同时出现的概率:
Figure FDA0003125144830000051
其中,support(x→y)表示支持度,num(x+y)表示x,y同时出现在数据帧中的次数,n表示数据帧数;频繁序列都是带有起始位置信息的序列,其位置不同所代表的信息也就不同;
通过置信度表示当频繁序列x出现时,频繁序列y出现的概率:
Figure FDA0003125144830000052
任意两个频繁序列x,y的支持度与置信度均大于阈值时,则两者之间存在强关联性,将此关联规则添加至关联规则集合中。
10.根据权利要求9所述一种基于PSO的未知协议数据帧特征提取方法,其特征在于,利用卡方检验分析关联规则集合中每一条关联规则涉及到的两个频繁序列之间相关性,并判断两者之间的关联规则是否为有效的强关联规则,具体为:
卡方检验的自由度均为1,原假设频繁序列x与频繁序列y之间是独立无关的,则理论率如下式所示,表示频繁序列y出现概率:
Figure FDA0003125144830000053
其中L3为序列y出现的数据帧数量,n为数据帧的总数量;
当数据帧的总数量n≥40且ideai≥5时,卡方检验公式为:
Figure FDA0003125144830000054
其中,i∈{a,b,c,d},actuali为i的实际值,ideai为i的理论值,且ideaa=L1·Pidea,ideab=L1·(1-Pidea),ideac=L2·Pidea,idead=L2·(1-Pidea);
当n≥40且1≤ideai<5时,卡方检验公式为:
Figure FDA0003125144830000061
当n<40或ideai<1时,卡方检验公式为:
Figure FDA0003125144830000062
其中,p为原假设成立概率,L1!表示为L1的阶乘;
将得到的卡方值与自由度为1的临界值比较,如果卡方值大于临界值,则推翻原假设,即频繁序列x和频繁序列y之间有较大的相关性,两者关联规则是有效的关联规则,并将两者之间的关联规则作为特征存入特征库中;反之,如果卡方值小于临界值,则原假设成立,即频繁序列x和频繁序列y之间互相独立,两者关联规则不是有效的关联规则。
CN202110687554.3A 2021-06-21 2021-06-21 一种基于pso的未知协议数据帧特征提取方法 Active CN113411235B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110687554.3A CN113411235B (zh) 2021-06-21 2021-06-21 一种基于pso的未知协议数据帧特征提取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110687554.3A CN113411235B (zh) 2021-06-21 2021-06-21 一种基于pso的未知协议数据帧特征提取方法

Publications (2)

Publication Number Publication Date
CN113411235A true CN113411235A (zh) 2021-09-17
CN113411235B CN113411235B (zh) 2023-11-07

Family

ID=77682184

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110687554.3A Active CN113411235B (zh) 2021-06-21 2021-06-21 一种基于pso的未知协议数据帧特征提取方法

Country Status (1)

Country Link
CN (1) CN113411235B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102137023A (zh) * 2011-04-14 2011-07-27 中国人民解放军空军工程大学 基于可用带宽预测的组播拥塞控制方法
CA2921517A1 (en) * 2015-03-02 2016-09-02 Harris Corporation Cross-layer correlation in secure cognitive network
WO2019041628A1 (zh) * 2017-08-30 2019-03-07 哈尔滨工业大学深圳研究生院 基于Eclat的多元时间序列关联规则挖掘方法
CN112104518A (zh) * 2019-08-26 2020-12-18 中国科学院国家空间科学中心 一种比特数据特征挖掘方法、系统、设备及可读介质
CN112968865A (zh) * 2021-01-26 2021-06-15 西安理工大学 一种基于关联规则挖掘的网络协议语法特征快速提取方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102137023A (zh) * 2011-04-14 2011-07-27 中国人民解放军空军工程大学 基于可用带宽预测的组播拥塞控制方法
CA2921517A1 (en) * 2015-03-02 2016-09-02 Harris Corporation Cross-layer correlation in secure cognitive network
CN105939331A (zh) * 2015-03-02 2016-09-14 贺利实公司 通信网络和用于保卫通信网络的方法
WO2019041628A1 (zh) * 2017-08-30 2019-03-07 哈尔滨工业大学深圳研究生院 基于Eclat的多元时间序列关联规则挖掘方法
CN112104518A (zh) * 2019-08-26 2020-12-18 中国科学院国家空间科学中心 一种比特数据特征挖掘方法、系统、设备及可读介质
CN112968865A (zh) * 2021-01-26 2021-06-15 西安理工大学 一种基于关联规则挖掘的网络协议语法特征快速提取方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
琚玉建;谢绍斌;张薇;: "网络协议帧切分优化过程研究与仿真", 计算机仿真, no. 01 *

Also Published As

Publication number Publication date
CN113411235B (zh) 2023-11-07

Similar Documents

Publication Publication Date Title
CN110311829B (zh) 一种基于机器学习加速的网络流量分类方法
CN109492026B (zh) 一种基于改进的主动学习技术的电信欺诈分类检测方法
CN110929848B (zh) 基于多挑战感知学习模型的训练、跟踪方法
CN110991311A (zh) 一种基于密集连接深度网络的目标检测方法
CN108897834A (zh) 数据处理与挖掘方法
CN111460961B (zh) 一种基于cdvs的相似图聚类的静态视频摘要方法
CN110826618A (zh) 一种基于随机森林的个人信用风险评估方法
CN109145114B (zh) 基于Kleinberg在线状态机的社交网络事件检测方法
CN112348084B (zh) 改进k-means的未知协议数据帧分类方法
CN108280236A (zh) 一种基于LargeVis的随机森林可视化数据分析方法
CN113037567B (zh) 一种用于电网企业的网络攻击行为仿真系统的仿真方法
CN110688940A (zh) 一种快速的基于人脸检测的人脸追踪方法
CN106650446A (zh) 基于系统调用的恶意程序行为识别方法和系统
CN111079427A (zh) 一种垃圾邮件识别方法及系统
CN110189799B (zh) 基于变量重要性评分和奈曼皮尔逊检验的宏基因组特征选择方法
CN109286622B (zh) 一种基于学习规则集的网络入侵检测方法
CN109597901B (zh) 一种基于生物数据的数据分析方法
CN113505120B (zh) 一种大规模人脸数据集的双阶段噪声清洗方法
CN114741544A (zh) 图像检索方法、检索库构建方法、装置、电子设备及介质
CN114023336A (zh) 模型训练方法、装置、设备以及存储介质
CN112257332B (zh) 一种仿真模型的评估方法及装置
CN1612135B (zh) 一种基于训练分类的协议识别方法
CN113411235A (zh) 一种基于pso的未知协议数据帧特征提取方法
CN110336817B (zh) 一种基于TextRank的未知协议帧定位方法
CN116383719A (zh) 一种用于lfm雷达的mgf射频指纹识别方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant