蠕虫特征提取方法和装置的制作方法

文档序号:7701276阅读:338来源:国知局
专利名称:蠕虫特征提取方法和装置的制作方法
技术领域
本发明实施例涉及蠕虫特征提取技术,尤其涉及一种蠕虫特征提取方法 和装置。
背景技术
网络上流行着大量相同或者相似的应用软件,蠕虫利用这些应用软件的 漏洞进行自动传播,其传播速度和危害惊人。目前,蠕虫检测和防御领域存 在着两大研究方向, 一个是误用检测,另一个是异常检测。
误用检测的思想是利用已获知的蠕虫特征与网络数据包进行比对,如果 网络数据包中包含了蠕虫特征则视为检测到蠕虫。所谓蠕虫特征即蠕虫样本 中的一段或者几段字节序列组成的一个特征,通常一个准确的蠕虫特征应该 在所有的蠕虫副本中都出现,而在其他蠕虫和正常网络数据包中不会出现。 变形蠕虫通常会产生功能相同但是从字节角度看不同的样本,每一个这样的 蠕虫样本都是这个蠕虫的 一个副本。异常检测的思想是对正常情况下的网络 状况进行建模,检测时如果发现网络状况和正常情况不符合则视为检测到蠕 虫。
但发明人在进行本发明的研究过程中发现上述方案存在准确性差的缺 陷,尤其是在高度变形的蠕虫中提取蠕虫特征的准确性不高。

发明内容
本发明实施例提供一种蠕虫特征提取方法和装置,以提高实时提取的蠕 虫特征的准确性。本发明实施例提供了一种蠕虫特征提取方法,包括 获取网络数据包;
从获取的网络数据包中提取字节序列;
在预先获取到的正常网络数据包中,计算各所述字节序列的误报率,并 将误报率小于或等于预先设定值的字节序列组装成蠕虫特征,其中,所述误 报率为包含所述字节序列的正常网络数据包在全部正常网络数据包中出现的 概率。
本发明实施例还提供了一种蠕虫特征提取装置,包括 网络数据包获取漠块,用于获取网络数据包; 字节序列提取模块,用于从获取的网络数据包中提取字节序列; 蠕虫特征组装模块,用于在预先获取到的正常网络数据包中,计算各所 述字节序列的误报率,并将误报率小于或等于预先设定值的字节序列组装成 蠕虫特征,其中,所述误报率为包含所述字节序列的正常网络数据包在全部 正常网络数据包中出现的概率。
由以上技术方案可知,本发明实施例在字节序列组装蠕虫特征的过程中 引入了误报率的计算,根据误报率来组装蠕虫特征,使蠕虫特征能够满足误 报率要求,从而能够提高实时组装蠕虫特征的准确性。由于可以自动完成字 节序列提取、误报率计算和蠕虫特征组装的操作,所以可以减少人力资源投 入,降低成本,还可以在出现新蠕虫时立即提取蠕虫特征,实时性得到有力 保证。


图l为本发明第一实施例所提供的蠕虫特征提取方法的流程图; 图2为本发明第二实施例所提供的蠕虫特征提取方法中提取字节序列的 流程图3为本发明第三实施例所提供的蠕虫特征提取方法中捕捉网络数据包 的流程图4为本发明第五实施例所提供的蠕虫特征提取方法中一种去除无用字节序列优选实施方式的流程图5为本发明第六实施例所提供的蠕虫特征提取方法中组装蠕虫特征的 流程图6为本发明第七实施例所提供的蠕虫特征提取方法中组装蠕虫特征一 种优选实施方式的流程图7为本发明第八实施例所提供的蠕虫特征提取方法的流程图8为本发明第九实施例所提供的蠕虫特征提取装置的结构示意图9为本发明第十实施例所提供的蠕虫特征提取装置中字节序列提iM莫 块的结构示意图10为本发明第十一实施例所提供的蠕虫特征提取装置中网络数据包 获取^莫块的结构示意图11为本发明第十二实施例所提供的蠕虫特征提取装置中字节序列提 取子单元的结构示意图12为本发明第十三实施例所提供的蠕虫特征提取装置中无用字节序 列去除模块的结构示意图13为本发明第十四实施例所提供的蠕虫特征提取装置中蠕虫特征组 装模块的结构示意图14为本发明第十五实施例所提供的蠕虫特征提取装置中蠕虫特征组 装子单元的结构示意图15为本发明第十六实施例所提供的蠕虫特征提取装置的结构示意图。
具体实施例方式
下面通过具体实施例并结合附图对本发明做进一步的详细描述。 第一实施例
图1为本发明第一实施例所提供的蠕虫特征提取方法的流程图。该方法 可以由蠕虫特征提取装置来实现,蠕虫特征提取装置可以采用硬件或软件,
8或软硬件结合的方式构成。本实施例的方法具体包括如下步骤 步骤IOO、获取网络数据包;
步骤200、从获取的网络数据包中提取字节序列(token); 步骤300、在预先获取到的正常网络数据包中,计算各字节序列的误报 率,并将误报率小于或等于预先设定值的字节序列组装成蠕虫特征,其中,率。
本实施例中,首先要获取网络数据包,具体可以在网络数据包的进出端 口处捕捉网络数据包,例如采用嗅探方式对网络数据包进行捕捉,或者可以 借助现有工具来获取网络数据包,例如采用入侵检测系统"Snort"完成网络 数据包的捕捉。获取的网络数据包应达到一定数量,实际应用中,可以设定 应获取的网络数据包数量值或者设定捕捉的时间,例如可以设定将5分钟内 的网络数据包进行捕捉来提取蠕虫特征。
在本实施例中,当提取字节序列之后,引入了误报率的计算和比较。本 实施例所提出的 一种优选地误报率计算方法是在正常网络数据包中计算字节 序列的误报率,即计算字节序列在正常网络数据包中的出现概率,再将计算 出的误报率与预先设定值进行比较,设定值可以为根据经验制定的标准误报 率值。经误报率筛选后,将误报率小于或等于预先设定值的字节序列放入接
受字节序列池中用于组装蠕虫特征。
所谓正常网络数据包,即不包含已知蠕虫特征以及没有受到其他网络攻 击的网络数据包。可以通过已有的入侵检测系统或误用检测系统来预先获取 一定数量的正常网络数据包。获取正常网络数据包的途径很多,可以采用步 骤100中捕捉到的网络数据包中的正常网络数据包,也可以另行采用入侵检 测系统来捕捉获取。由于入侵检测系统中的数据集是通用的,里面的攻击网 络数据包也是已知的,因此可以去掉其中的攻击网络数据包,只保留正常网 络数据包。
每个正常网络数据包或是网络数据包组装而成的网络数据流均可以看作一个比较单元,则本实施例所提出的一种优选地误^=艮率Fp计算方法是按照下 式进行计算
Fp = m/nxl00%
其中,n为所有比较单元的总数,m为包含字节序列的比较单元的个数, 如果计算一个字节序列的误报率,则m为包含该字节序列的比较单元的个数, 如果计算多个字节序列的误报率,则m为包含所有这些字节序列的比较单元 的个数。
可以根据误报率的计算结果选择满足误报率要求的字节序列来组装蠕虫 特征,例如选择误报率较低的字节序列集合组装蠕虫特征,从而提高蠕虫特 征的准确性。并且,上述技术方案可以实现实时地从网络数据包中自动提取 蠕虫特征,人力资源成本低、实时性高、能及时获取未知蠕虫的蠕虫特征。
第二实施例
图2为本发明第二实施例所提供的蠕虫特征提取方法中提取字节序列的 流程图。本实施例可以上述第一实施例为基础,在本实施例中,步骤200具 体包括下述步骤
步骤201、将获取到的网络数据包组装成网络数据流;
步骤202、从各网络数据流中提取字节序列。
组装网络数据流,即对网络数据包按照设定整形规则进行整形。蠕虫在 传播时往往不是发出单个网络数据包,而是多个网络数据包,准确的蠕虫特 征或字节序列可能分散在多个网络数据包中,因此需要将多个网络数据包连 接起来作为 一个网络数据流进行分析才能提高提取蠕虫特征的准确性。
组装网络数据流的设定整形规则可以有多种形式,根据蠕虫传播特点, 优选的设定整形规则之一是步骤201具体为从各网络数据包中分别解析获 取源IP地址、目的IP地址和目的端口号,将源IP地址、目的IP地址和目 的端口号相同的网络凝:据包组装成一个网络数据流。
按照上述设定整形规则组装之后,在一个网络数据流中包含一个蠕虫副 本所有网络数据包的可能性显著增加,同时不同网络数据流的网络数据包属
10于一个蠕虫不同副本或者属于不同蠕虫的可能性也剧增。因此,将网络数据 包组装成网络数据流再提取字节序列,有助于提高蠕虫特征的准确性。 第三实施例
图3为本发明第三实施例所提供的蠕虫特征提取方法中捕捉网络数据包 的流程图,本实施例可以上述各实施例为基础,步骤100获取网络数据包的 操作可以具体为
步骤IOI、捕捉网络数据包;
步骤102、对捕捉到的网络数据包进行筛选操作,保留异常网络数据包。
可以是在设定周期内捕捉网络数据包,捕捉到的网络数据包通常包括了 正常网络数据包和异常网络数据包。正常网络数据包的概念如前所述,其余 的网络数据包可以看作为异常网络数据包。
对网络数据包进行上述筛选工作不是必须步骤,但是其优点显著,可以 减少网络数据包的数量,减少提取字节序列的工作量,提取的字节序列中能 够用于组装蠕虫特征的概率也较高,因此执行筛选操作可以显著提高蠕虫特 征的提取速度,提高实时性。正常网络数据包中包含蠕虫特征的概率一般较 低,将正常网络数据包筛选下去对蠕虫特征的准确性不会有较大影响。
对捕捉到的网络数据包进行筛选操作,保留异常网络数据包的操作可以 归结为异常检测操作,具体实现方式有多种,下面为一种优选的实现方式
从捕捉到的各网络数据包中分别解析获取失败连接次数,当识别到失败 连接次数大于或等于设定失败门限值时,将对应的网络数据包作为异常网络 数据包。
由于正常网络通信的目标通常是明确的,因此产生的失败连接很少,但 蠕虫在传播前通常会进行扫描,扫描过程就会产生大量的失败连接,通iW 失败连接的监控与分析就可以得到异常网络数据包。上述方法可以筒单有效 的筛选出异常网络数据包,提高蠕虫特征提取速度。
第四实施例
本发明第础。从网络数据包中提取的字节序列是组装蠕虫特征的基础,字节序列的提 取影响着组装的蠕虫特征的准确性。字节序列的提取是按照设定提取规则来 进行的,可以是设定长度的字节序列,本实施例中较佳的是提取非固定长度 的字节序列,从而提高字节序列包含蠕虫特征的概率。
具体的,提取字节序列设定提取规则可以有多种,较佳的是提取长度大
于或等于预先设定的最小长度值MIN-LEN,且被包含次数大于或等于预先设 定的最小次数值MIN-STREAM的字节序列。
所谓被包含次数即包含有该字节序列的网络数据包或网络数据流的个 数。最小长度值MIN丄EN和最小次数值MIN-STREAM—般是大于1的整数,可 以由专家进行设定。
下面举例说明,可以设定MIN—LEN和MIN-STREAM均为2,采用后缀数组 改进算法提取符合上述条件的字节序列。首先字节序列的长度必须大于或等 于2,且字节序列须至少在2个网络数据流中出现。以下述网络数据流为例 来说明
第一网络数据流的数据abcdefghp 第二网络数据流的数据abcdefghk 第三网络数据流的数据abcdefghi 第四网络数据流的数据abcdefu
符合MIN-LEN和MIN-STREAM均为2的条件的字节序列为abcdefgh、 abcdefg、 abcdef、 abcde、 abcd、 abc、 ab、 bcdefgh、 bcdefg、 bcdef、 bcde、 bcd、 bc、 cdefgh、 cdefg、 cdef、 cde、 cd、 defgh、 defg、 def、 de、 efgh、 efg、 ef、 fgh、 fg和gh。
提取非定长字节序列可以使字节序列包含蠕虫特征的概率提高,尤其适 用于高变形蠕虫。由于高变形蠕虫从字节序列来看相似度很低,同一个蠕虫 的两个副本中相同序列片段的长度很d、,因此固定长度提取方法无法提取高 度变形的蠕虫特征。另外,由于不同蠕虫的蠕虫特征差别很大,固定长度可 能适合某些蠕虫而不适合其他的蠕虫。因此,非定长字节序列的提取更能适应提取大规模多种蠕虫的蠕虫特征,从而提高蠕虫特征提取的准确性。 第五实施例
本发明第五实施例所提供的蠕虫特征提取方法可以上述第四实施例为基 础,进一步在提取字节序列之后,从提取的各字节序列中去除无用字节序列。 所谓无用字节序列是成为蠕虫特征的概率几乎为零或概率小于一定程度的字 节序列。
由第四实施例中所举实例中可以看出,仅四个网络数据流所包含的字节
序列就达28个,实际中网络数据流的数量将是巨大的,如果都进行计算则计 算量过大,并且大部分字节序列在后续组装蠕虫特征的操作中是贡献极小的。 因此可以在计算误报率之前首先去除无用字节序列来提高蠕虫特征组装效率。
优选是选择长度较长的字节序列来组装蠕虫特征,但是参考上述实例来 看,如果仅保留最长的字节序列abcdefgh会使包含蠕虫特征的概率下降,则 组装的蠕虫特征准确性也会下降。如果再保留字节序列abcdef,则abcdef 可以会覆盖更多的网络数据流,包含蠕虫特征的概率优于abcdef gh。从字节 序列中去除无用字节序列的方法应兼顾包含蠕虫特征的概率以及计算效率。 具体可以在各字节序刮中进行筛选,识别具有子串和母串关系的成对字节序 列,且当包含子串字节序列的网络数据流也包含该子串的母串字节序列时, 将作为子串的字节序列确定为无用字节序列去除。所谓母串和子串,即母串 的字节序列包含子串的字节序列。由于包含子串的网络数据流也包^#串, 即不存在只包含子串不包含母串的网络数据流,所以已经可以用母串来过滤 网络数据流,子串对网络数据流的过滤将是重复的,所以该子串为无用字节 序列,应该去除。
图4为本发明第五实施例所提供的蠕虫特征提取方法中一种去除无用字 节序列优选实施方式的流程图,即在提取字节序列之后,组装蠕虫特征之前, 从提取的各字节序列中去除无用字节序列具体包括如下步骤
步骤A1、将提取的各字节序列按照长度从小到大的顺序排列成筛选队列;说明书第9/21页
步骤A2、取出位于筛选队列头的字节序列作为待选字节序列,取出后则 该待选字节序列不包含在筛选队列中,若筛选队列中已无字节序列,则去除 无用字节序列的操作结束;
步骤A3、判断筛选队列中是否还存在字节序列,若是则执行步骤A4,若 否,则去除无用字节序列的操:作结束;
步骤A4、自第一个字节序列开始,逐个选取篩选队列中的一个字节序列 作为标准字节序列;
步骤A5、判断待选字节序列是否为标准字节序列的子串,若是,则执行 步骤A6,否则执行步骤A7;
步骤A6、判断包含待选字节序列的网络数据流是否包含标准字节序列, 若是,则说明待选字节序列和标准字节序列是同时包含在某些网络数据流中 的,且同时在其他网络数据流中不存在,该待选字节序列是无用字节序列, 继续执行步骤A8,否则说明待选字节序列不是无用字节序列,继续执行步骤 A7;
步骤A7、判断筛选队列中在标准字节序列之后是否还有字节序列,若有, 则返回执行步骤A4,以标准字节序列之后的下一个字节序列代替作为标准字 节序列,若没有,则返回执行步骤A2;
步骤A8、将待选字节序列作为无用字节序列去除,并返回执行步骤A2。 上述过程将筛选队列中的每一个字节序列逐一与筛选队列中的其他字节 序列进行判断筛选,直至判断出该待选字节序列为无用字节序列而去除,或 判断出该待选字节序列应保留。判断过后的待选字节序列不再参与筛选队列 的下一轮筛选。
采用上述筛选流程,可以优选筛选出无用字节序列,提高后续计算速度。 仍以上述实例来i兑明,经筛选后,abcdef和abcdefgh保留,超过90%的字 节序列被去除,能够显著提高后续计算速度,蠕虫特征组装时间是不经过筛 选的2/28。这个差异在实际应用中会更大,可能会达到成百上千倍,因为实 际应用中的字节序列个数和长度可能比上述实例大4艮多。
14第六实施例
图5为本发明第六实施例所提供的蠕虫特征提取方法中组装蠕虫特征的 流程图,本实施例可以上述各实施例为基础,步骤300在正常网络数据包中, 计算各字节序列的误报率,并根据误报率将字节序列组装成蠕虫特征具体包 括下述步骤
步骤301、将预先获取到的各正常网络数据包组装成正常网络数据流, 具体的组装过程可以参考前述实施例,可以从预先获取到的各正常网络ft据 包中分别解析获取源IP地址、目的IP地址和目的端口号,将源IP地址、目 的IP地址和目的端口号相同的正常网络数据包组装成一个正常网络数据流;
步骤302、在正常网络数据流中,计算各字节序列的误报率,将误报率 小于或等于预先设定值的字节序列组装成蠕虫特征。其中,计算误报率仍可 采用前述公式,此时以正常网络数据流作为比较单元,在正常网络数据流中 计算各字节序列的误报率,即计算同时包含各字节序列的正常网络数据流 的数量占全部正常网络数据流的百分比。
为了计算蠕虫特征的误报率,正常网络数据流的数量需综合考虑计算速
度和误报率准确性。正常网络数据流的数量越大,计算出的蠕虫特征的误报 率越准确。实际上正常网络数据流的数量优选是达到百兆级别。
在本实施例的技术方案中,将误报率小于或等于预先设定值的字节序列 组装成蠕虫特征,即根据误报率对字节序列进行筛选,可以有效控制蠕虫特 征的误报率,提高蠕虫特征的准确性。
本实施例是根据误报率判断字节序列是否适合于组装蠕虫队列的一种具 体方式,字节序列适于组装蠕虫队列的目标即是该字节序列放入接受字节序 列池中之后,接受字节序列池中所有字节序列的整体误报率尽量低,且整个 接受字节序列池中的所有字节序列覆盖尽量多的网络数据流,即覆盖率高。 所谓覆盖率是指在异常网络数据流或可^^网络数据流中,同时含有各字节序 列或者蠕虫特征的网络数据流占总数的百分比。例如,当接受字节序列池中 有两个字节序列ab和cd,可疑的网络数据流有三个,分别为abeeee、 cdeeee和abeecd,则ab和cd ^f又在一个网络数据流中同时出现,所以覆盖率为1/3 x画。
在本实施例技术方案的基础上,还可以进一步基于下述原则来判断字节 序列是否适于组装蠕虫特征,即当数个字节序列的误报率和覆盖率都满足 要求时,优先选择长度值较大的字节序列。在将误报率小于或等于预先设定 值的字节序列组装成蠕虫特征之前,还包括根据在正常网络数据流中分别 计算出的各字节序列的误报率,各个字节序列独立计算所得的误报率可能相 等也可能不等,分别将误报率相等的字节序列进行长度比较,保留其中长度 最大的字节序列用于组装蠕虫特征。如果在误报率相等的字节序列中,长度 最大的字节序列有多个,则可以任意选择一个。
第七实施例
图6为本发明第七实施例所提供的蠕虫特征提取方法中组装蠕虫特征一 种优选实施方式的流程图,本实施例可以上述第六实施例为基础,在正常网 络数据流中,计算各字节序列的误报率Fp,将误报率Fp小于或等于预先设 定值的字节序列組装成蠕虫特征。组装蠕虫特征可以基于下述思路进行
形成初始时不包括字节序列的接受字节序列池;
按照设定顺序逐个取出字节序列,在正常网络数据流中计算取出的字节
序列和接受字节序列池中字节序列的误报率,随着取出过程的进行,接受字
节序列池中的字节序列数量在逐渐增加;
判断误报率是否小于或等于预先设定值,若是,则将取出的字节序列放
入接受字节序列池中,将接受字节序列池中的字节序列组装成蠕虫特征,若
否,且不存在能取出的字节序列时,蠕虫特征组装失败。 上述组装过程的 一种具体实现形式可以为下述流程 步骤Bl、将各字节序列按照长度从大到小的顺序排列成组装队列; 步骤B2、取出位于组装队列头的字节序列作为待审字节序列,取出后则
组装队列中不再包括待审字节序列;
步骤B3、在正常网络数据流中,计算接受字节序列池中的字节序列和待审字节序列的误报率Fp,在初始状态时,接受字节序列池中没有字节序列;
步骤B4、识别接受字节序列池中字节序列的个数,当个数等于0时,执 行步骤B5,当个数等于l时,执行步骤B6,当个数大于l时,执行步骤B7;
步骤B5、识别误报率Fp的数值大小,当误报率Fp小于或等于第一设定 值p i且大于第三设定值p ^时,将该待审字节序列》文入接受字节序列池中, 并执行步骤B8,当误报率Fp大于第一设定值p,时,执行步骤B8,当误报率 Fp小于或等于第三设定值p ^时,将该待审字节序列放入接受字节序列池中, 并执行步骤B9;
步骤B6、识别误报率Fp的数值大小,当误报率Fp小于或等于第二设定 值p 2且大于第三设定值p ^时,将该待审字节序列;^A接受字节序列池中, 并执行步骤B8,其中第二设定值P2小于第一设定值p"当误报率Fp大于第 二设定值p 2时,执行步骤B8,当误报率Fp小于或等于第三设定值p ^时, 将该待审字节序列放入接受字节序列池中,并执行步骤B9;
步骤B7、识别误报率Fp的数值大小,当误报率Fp小于或等于第三设定 值P^时,将该待审字节序列》丈入接受字节序列池中,并执行步骤B9,当误 报率Fp大于第三设定值Prev时,执行步骤B8;
步骤B8、判断组装队列中是否还存在有字节序列,若是,则返回执行步 骤B2,以便开始审核下一个待审字节序列,否则,由于接受字节序列池中的 字节序列的误报率仍然未达到小于或等于第三设定值p kv的条件,且组装队 列中也没有其他字节序列可以使误报率进一步降低,所以组装蠕虫特征失败, 操作结束,可以将接受字节序列池清空;
步骤B9、将接受字节序列池中的字节序列组装成蠕虫特征,组装队列中 剩余的字节序列可以不再参与蠕虫特征的组装,直接丟弃即可。
为加快计算速度,本实施例采用了一种AC算法,所谓AC算法是由Aho 和Corasick提出的多模式匹配算法,即一次搜索查找可以判定多个字符串匹 配问题。上述组装过程区分了接受字节序列池中包括0个、1个和1个以上 字节序列的情况。当接受字节序列池中包括0个或1个字节序列时,即使未
17达到误报率小于或等于第三设定值的条件,只要小于等于第一设定值或第二 设定值,即可以先将字节序列放入接受字节序列池中,待后续再添加字节序 列,可以随着字节序列的增加,使计算出的误报率进一步减小。当误报率随 着接受字节序列池中字节序列数量的增加减小至小于或等于第三设定值时, 则蠕虫特征组装成功。若组装队列中已不存在字节序列,但*接受字节序列池 中的字节序列集合仍不满足误报率小于或等于第三设定值时,则蠕虫特征组 装失败。上述第一设定值、第二设定值和第三设定值可以由专家来设定,通 常为正的小数。在前述实施例中去掉无用字节序列将对本实施例中提高蠕虫 特征的组装效率有很大帮助。 第八实施例
图7为本发明第八实施例所提供的蠕虫特征提取方法的流程图,本实施 例可以上述实施例为基础,在组装成蠕虫特征之后,还包括在各网络数据包 中,去除包含该蠕虫特征的网络数据包,并返回执行提取字节序列,组装蠕 虫特征的操作,直至提取的字节序列数量为0或网络数据包被完全去除。本 实施例重复执行蠕虫特征组装、去除包含新组装的蠕虫特征的异常网络数据 包、而后再进行蠕虫特征组装的流程,适用于提取多个蠕虫特征。具体流程 包括如下步骤
步骤IOO、捕捉获取网络数据包;
步骤200、从获取的网络数据包中提取字节序列,并判断是否能提取到 字节序列,若无法提取字节序列则执行步骤500,如能提取到则继续执行步 骤300;
步骤300、在预先获取到的正常网络数据包中,计算各字节序列的误报 率,并根据误报率,将误报率小于或等于预先设定值的字节序列组装成蠕虫 特征;
步骤400、保存新组装的蠕虫特征,在各网络数据包中,去除包含新组 装的蠕虫特征的网络数据包,并执行步骤200;
步骤500、蠕虫特征提取完毕,可以清除网络数据包和接受字节序列池等不再使用的资源。
采用本实施例的技术方案,可以通过循环提取字节序列、组装蠕虫特征 的操作,全自动的对多个蠕虫特征进行实时提取,因此适用于大规模蠕虫特 征提取场合。
第九实施例
图8为本发明第九实施例所提供的蠕虫特征提取装置的结构示意图。该 蠕虫特征提取装置具体包括:网络数据包获取才莫块801、字节序列提取模块 802和蠕虫特征组装模块803。其中,网络数据包获取模块801用于获取网络 数据包;字节序列提^Mi块802用于从获取的网络数据包中提取字节序列; 蠕虫特征组装模块803用于在预先获取到的正常网络数据包中,计算各字节 序列的误报率,并将误报率小于或等于预先设定值的字节序列组装成蠕虫特 征,其中,误报率为包含字节序列的正常网络数据包在全部正常网络数据包 中出现的概率。
本实施例的蠕虫特征提取装置可以执行本发明第 一实施例的技术方案, 引入误报率的计算和比较,使蠕虫特征满足误报率要求,从而提高蠕虫特征 的准确性。并且,上述技术方案可以实现实时地从网络数据包中自动提取蠕 虫特征,人力资源成本低、实时性高、能及时获取未知蠕虫的蠕虫特征。
第十实施例
图9为本发明第十实施例所提供的蠕虫特征提取装置中字节序列提fMt 块的结构示意图。在第九实施例的&出上,字节序列提^Mt块802可以具体 包括第一参数解析单元901、第一数据流组装单元902和字节序列提取子单 元903。其中,第一参数解析单元901用于从各网络数据包中分别解析获取 源IP地址、目的IP地址和目的端口号;第一数据流组装单元902用于将源 IP地址、目的IP地址和目的端口号相同的网络凝:据包组装成一个网络ii:据 流;字节序列提取子单元903用于从各网络数据流中提取字节序列。
本实施例可以执行本发明第二实施例的技术方案,对网络数据包进行整 形组装为网络数据流。实现整形组装的方式多样,并不限于以源IP地址、目
19的IP地址和目的端口号为标准来组装。
按照上述设定整形规则组装之后,在一个网络数据流中包含一个蠕虫副 本所有网络数据包的可能性显著增加,同时不同网络数据流的网络数据包属
于一个蠕虫不同副本或者属于不同蠕虫的可能性也剧增。因此,将网络凝:据 包组装成网络数据流再提取字节序列,有助于提高蠕虫特征的准确性。 第十一实施例
图10为本发明第十一实施例所提供的蠕虫特征提取装置中网络数据包 获取模块的结构示意图。本实施例可以上述第九、第十实施例为基础,网络 数据包获取模块801具体包括网络数据包捕捉单元1001和网络数据包筛选 单元1002。网络数据包捕捉单元1001用于捕捉网络数据包;网络数据包筛 选单元1002用于对捕捉到的网络数据包进行筛选操作,保留异常网络数据 包。
筛选异常数据包的形式多样,例如,网络数据包筛选单元1002的具体结 构可以为包括失败次数解析子单元10021和数据包筛选子单元10022。其中, 失败次数解析子单元10021用于从捕捉到的各网络数据包中分别解析获取失 败连接次数;数据包筛选子单元10022用于当识别到失败连接次数大于或等 于设定失败门限值时,将对应的网络数据包作为异常网络数据包。
本实施例可以执行本发明第三实施例的技术方案,对网络数据包进行上
述筛选工作可以减少网络数据包的数量,减少提取字节序列的工作量,可以
显著提高蠕虫特征的提取速度,提高实时性。 第十二实施例
图11为本发明第十二实施例所提供的蠕虫特征提取装置中字节序列提 取子单元的结构示意图。本实施例可以上述第十实施例为基础,字节序列提 取子单元903具体包括长度值设定子单元1101、次数值设定子单元1102 和提取子单元1103。其中,长度值设定子单元1101用于存储预先设定的待 提取字节序列的最小长度值;次数值设定子单元1102用于存储预先设定的待 提取字节序列的最小次数值;提取子单元1103用于提取长度大于或等于预先设定的最小长度值,且在网络数据流中的被包含次数大于或等于预先设定的 最小次数值的字节序列。
本实施例可以执行本发明第四实施例的技术方案,提取非定长字节序列 可以使字节序列包含蠕虫特征的概率提高,尤其适用于高变形蠕虫。非定长 字节序列的提取更能适应提取大规模多种蠕虫的蠕虫特征,从而提高蠕虫特 征提取的准确性。
第十三实施例
图12为本发明第十三实施例所提供的蠕虫特征提取装置中无用字节序 列去除才莫块的结构示意图。本实施例可以上述第十二实施例为基础,在蠕虫 特征提取装置中还包括无用字节序列去除模块。无用字节序列去除模块用于 从提取的各字节序列中去除无用字节序列。
具体的,无用字节序列去除模块的一种具体结构可以包括识别单元、 判断单元和去除单元。识别单元用于在各字节序列中识别具有子串和母串关 系的成对字节序列;判断单元用于当判断出包含子串字节序列的网络数据流 也包含子串的母串字节序列时,将作为子串的字节序列确定为无用字节序列; 去除单元用于将无用字节序列去除。
具体的,去除模块的一种实现结构为包括筛选队列排列单元1201、待选 字节序列获取单元1202、第一判断单元1203、标准字节序列选取单元1204、 第二判断单元1205、第三判断单元1206、第四判断单元1207和去除单元1208。 其中,篩选队列排列单元1201用于将提取的各字节序列按照长度从小到大的 顺序排列成筛选队列;待选字节序列获取单元1202用于取出位于篩选队列头 的字节序列作为待选字节序列;第一判断单元1203用于判断筛选队列中是否 存在字节序列,若是,则触发标准字节序列选取单元1204动作,若否,则去 除无用字节序列的l喿作结束;标准字节序列选取单元1204用于自第一个字节 序列开始,逐个选取篩选队列中的一个字节序列作为标准字节序列;第二判 断单元1205用于判断待选字节序列是否为标准字节序列的子串,若是,则触 发第三判断单元1206动作,若否,则触发第四判断单元1207动作;第三判断单元1206用于判断包含待选字节序列的网络数据流是否包含标准字节序 列,若是,则触发去除单元1208动作,若否,则触发第四判断单元1207动 作;第四判断单元1207用于判断筛选队列中在标准字节序列之后是否还有字 节序列,若有,则触发标准字节序列选取单元1204动作以选取标准字节序列 之后的下一个字节序列代替作为标准字节序列,若没有,则触发待选字节序 列获取单元1202动作;去除单元1208用于将待选字节序列作为无用字节序 列去除,并可以触发待选字节序列获取单元1202开始执行下一轮去除操作。
本实施例可以执行本发明第五实施例的技术方案,从字节序列中去除无 用字节序列可以提高后续计算速度。
第十四实施例
图13为本发明第十四实施例所提供的蠕虫特征提取装置中蠕虫特征组 装模块的结构示意图。本实施例可以上述各装置实施例为基础,蠕虫特征组 装模块803可以具体包括正常网络数据包获取单元1301、第二参数解析单 元1302、第二数据流组装单元1304和蠕虫特征组装子单元1303。其中,正 常网络数据包获取单元1301用于获取正常网络数据包;第二参数解析单元 1302用于从各正常网络数据包中分别解析获取源IP地址、目的IP地址和目 的端口号;第二数据流组装单元1304用于将源IP地址、目的IP地址和目的 端口号相同的正常网络数据包组装成一个正常网络数据流;蠕虫特征组装子 单元1303用于在正常网络数据流中,计算各节序列的误报率,将误报率小于 或等于预先设定值的字节序列组装成蠕虫特征。
本实施例可以执行本发明第六实施例的技术方案,将误报率小于或等于 预先设定值的字节序列组装成蠕虫特征,即根据误报率对字节序列进行筛选, 可以有效控制蠕虫特征的误报率,提高蠕虫特征的准确性。
在蠕虫特征组装子单元1303中还可以包括长度比较去除子单元13031。 长度比较去除子单元13031用于根据在正常网络数据流中分别计算出的各字 节序列的误报率,分别将误报率相等的字节序列进行长度比较,保留其中长 度最大的字节序列用于组装蠕虫特征。上述技术方案可以满足误^1率的基础上进一步选择较长的字节序列,从 而优化蠕虫特征,减少蠕虫特征中字节序列的个数,使蠕虫特征的规模减小, 能够提高使用蠕虫特征去除异常网络数据包的计算速度。
第十五实施例
图14为本发明第十五实施例所提供的蠕虫特征提取装置中蠕虫特征组 装子单元的结构示意图。本实施例可以上述装置实施例为基础,蠕虫特征组 装子单元1303具体包括组装队列排列子单元1401、待审字节序列获取子 单元1402、第二误报率计算子单元1403、个数识别子单元1404、第一处理 子单元1405、第二处理子单元1406、第三处理子单元1407、剩余字节序列 判断子单元1408和第二蠕虫特征组装子单元1409。其中,组装队列排列子 单元1401用于将各字节序列按照长度从大到小的顺序排列成组装队列;待审 字节序列获取子单元1402用于取出位于组装队列头的字节序列作为待审字 节序列;第二误报率计算子单元1403用于在正常网络数据流中,计算接受字 节序列池中的各字节序列和待审字节序列的误报率;个数识别子单元1404用 于识别接受字节序列池中字节序列的个数,当个数等于0时,触发第一处理 子单元1405动作,当个数等于l时,触发第二处理子单元1406动作,当个 数大于l时,触发第三处理子单元1407动作;第一处理子单元1405用于识 别误报率的数值大小,当误报率小于或等于第一设定值且大于第三设定值时, 将待审字节序列放入接受字节序列池中,并触发剩余字节序列判断子单元 1408动作,当误报率大于第一设定值时,触发剩余字节序列判断子单元1408 动作,当误报率小于或等于第三设定值时,将待审字节序列放入接受字节序 列池中,并触发第二蠕虫特征组装子单元1409动作;第二处理子单元1406 用于识别误报率的数值大小,当误报率小于或等于第二设定值且大于第三设 定值时,将待审字节序列放入接受字节序列池中,并触发剩余字节序列判断 子单元1408动作,其中第二设定值小于第一设定值,当误报率大于第二设定 值时,并触发剩余字节序列判断子单元1408动作,当误报率小于或等于第三 设定值时,将待审字节序列放入接受字节序列池中,并触发第二蠕虫特征组装子单元1409动作;第三处理子单元1407用于识别误^t艮率的数值大小,当 误报率小于或等于第三设定值时,将待审字节序列放入接受字节序列池中, 并触发第二蠕虫特征组装子单元1409动作,当误报率大于第三设定值时,触 发剩余字节序列判断子单元1408动作;剩余字节序列判断子单元1408用于 判断组装队列中是否存在字节序列,若是,则触发待审字节序列获取子单元 1402动作,否则组装蠕虫特征操作结束;第二蠕虫特征组装子单元1409用 于将接受字节序列池中的字节序列组装成蠕虫特征。
本实施例可以执行本发明第七实施例的技术方案,采用AC算法加快筛选 字节序列,组装蠕虫特征的计算速度。
第十六实施例
图15为本发明第十六实施例所提供的蠕虫特征提取装置的结构示意图。 本实施例可以上述各装置实施例为基础,蠕虫特征提取装置进一步还包括去 除模块1501。去除模块1501用于在各网络数据包中,去除包含蠕虫特征的 网络数据包,并触发字节序列提f^莫块802动作,直至字节序列提^Mt块802 提取的字节序列数量为O或网络数据包被完全去除。
本实施例可以执行本发明第八实施例的技术方案,循环执行蠕虫特征的 提取操作,可提取多个蠕虫特征,适用于大M^莫蠕虫爆发的情况。
本发明上述各实施例的技术方案可以组合实施,具有如下优势
1) 引入误报率计算、比较方法,可以提高提取的蠕虫特征的准确性和可 靠性,降低误报率;
2) 采用多个长度不固定的字节序列组成一个蠕虫特征,这种灵活的结构 适用于各种不同蠕虫,尤其是高度变形蠕虫,进一步提高了蠕虫特征提取的 准确性;
3) 对网络数据包进行整形,组装成网络数据流,也可以提高蠕虫特征提 取的准确性和可靠性;
4) 对网络数据包进行筛选,采用后缀数组算法篩选去除无用字节序列, 在误报率计算过程中采用AC算法,可以提高计算速度,提高提取效率;5) 能够进行大规模多蠕虫特征提取;
6) 可以实时的自动提取,减少人力资源耗费,提取速度高,速度快,时 间耗费成本低。
本发明各实施例的技术方案解决了人工提取蠕虫特征的成本问题。本发 明各实施例的技术方案提取蠕虫特征不依赖于各个专家的经验,避免出现提 取出的蠕虫特征不完全相同,准确性也各不相同的问题;蠕虫特征提取M^莫 不会受到专家数量和专家个人提取速度的限制,当发生大规模数量比较多的 蠕虫爆发时,实时提取蠕虫特征可以及时作出响应;人工提取的蠕虫特征都 是从已经出现一段时间的蠕虫中提取的,从蠕虫爆发到提取出蠕虫特征的滞 后时间长,无法对新出现的蠕虫立即进行蠕虫特征提取,而本发明的技术方 案可以对新出现的蠕虫特征立即进行提取操作,反应迅速。由于蠕虫特征手 动提取依赖于少数专家,因此时间、资金、人力的耗费高,蠕虫特征提取成 本高,本发明的技术方案克服了这个缺陷,大副P争低了提取蠕虫特征的成本。 本发明各实施例的技术方案还解决了现有技术中蠕虫特征实时自动提取存在 着的难题,即提取出的蠕虫特征的准确性和实用性;能否提取出高度变形 的蠕虫特征;如何对大规模蠕虫进行特征提取。本发明实施例的技术方案可 以直接应用于蠕虫检测或蠕虫防御领域。
本发明实施例技术方案中各步骤的具体实现方式并不限于上述实施例所 述,其中,还可以采用其他任何方式进行网络数据包的捕获;可以采用其他 任何方式进行网络数据包的篩选;可以采用其他网络数据流的整形规则;可 以采用其他算法的字节序列提取算法进行字节序列提取;可以采用其他算法 进行误"f艮率的计算;可以采用其他方法去掉无用字节序列;可以采用其他算 法基于误报率来从接受字节序列池中组装蠕虫特征。
本发明实施例还提供了 一种采用本发明蠕虫特征提取装置任一实施例的 蠕虫防御系统,该蠕虫防御系统还包括去除装置,用于去除包括本发明蠕 虫特征提取装置组装的蠕虫特征的网络数据包。
本发明实施例还提供了 一种采用本发明蠕虫特征提取装置任一 实施例的蠕虫检测系统,该蠕虫检测系统还包括提取装置,用于提取包括本发明蠕 虫特征提取装置组装的蠕虫特征的网络数据包。
本发明的蠕虫特征提取方法和装置可以广泛应用于蠕虫特征防御和检测 领域,其蠕虫特征提取的准确性高、实时性好、适用于大规模蠕虫爆发的情 况,且成本投入小,易于实现。
本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤 可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读 取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述 的存储介质包括R0M、 RAM、 i兹碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其 限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术 人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或 者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技
术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1、一种蠕虫特征提取方法,其特征在于,包括获取网络数据包;从获取的网络数据包中提取字节序列;在预先获取到的正常网络数据包中,计算各所述字节序列的误报率,并将误报率小于或等于预先设定值的字节序列组装成蠕虫特征,其中,所述误报率为包含所述字节序列的正常网络数据包在全部正常网络数据包中出现的概率。
2、 根据权利要求1所述的蠕虫特征提取方法,其特征在于,从获取的网 络数据包中提取字节序列包括从各网络数据包中分别解析获取源IP地址、目的IP地址和目的端口号, 将源IP地址、目的IP地址和目的端口号相同的网络数据包组装成一个网络 数据流;从各网络数据流中提取字节序列。
3、 根据权利要求1或2所述的蠕虫特征提取方法,其特征在于,获取网 络数据包包括捕捉网络数据包;对捕捉到的网络数据包进行筛选操作,保留异常网络数据包。
4 、根据权利要求3所述的蠕虫特征提取方法,其特征在于,对捕捉到的网络数据包进行筛选操作,保留异常网络数据包包括从捕捉到的各网络数据包中分别解析获取失败连接次数,当识别到所述失败连接次数大于或等于设定失败门限值时,将对应的网络数据包作为异常网络数据包。
5、根据权利要求1或2所述的蠕虫特征提取方法,其特征在于,所述提 取字节序列包括提取长度大于或等于预先设定的最小长度值,且被包含次 数大于或等于预先设定的最小次数值的字节序列。
6、 根据权利要求5所述的蠕虫特征提取方法,其特征在于,在提取字节 序列之后,还包括从提取的各字节序列中去除无用字节序列。
7、 根据权利要求6所述的蠕虫特征提取方法,其特征在于,从提取的各字节序列中去除无用字节序列包括在各字节序列中识别具有子串和母串关系的成对字节序列,当包含所述子串字节序列的网络数据流也包含所述子串的母串字节序列时,将作为所述子串的字节序列确定为无用字节序列去除。
8、 根据权利要求1或2所述的蠕虫特征提取方法,其特征在于,在预先 获取到的正常网络数据包中,计算各所述字节序列的误报率,并将误报率小 于或等于预先设定值的字节序列组装成蠕虫特征包括从预先获取到的各正常网络数据包中分别解析获取源IP地址、目的IP 地址和目的端口号,将源IP地址、目的IP地址和目的端口号相同的正常网 络数据包组装成一个正常网络数据流;在所述正常网络数据流中,计算各所述字节序列的误报率,将误报率小 于或等于预先i殳定值的字节序列组装成蠕虫特征。
9、 根据权利要求8所述的蠕虫特征提取方法,其特征在于,在将误报率 小于或等于预先设定值的字节序列组装成蠕虫特征之前,还包括根据在正常网络数据流中分别计算出的各字节序列的误报率,分别将误 报率相等的字节序列进行长度比较,保留其中长度最大的字节序列用于组装 蠕虫特征。
10、 一种蠕虫特征提取装置,其特征在于,包括 网络数据包获^a莫块,用于获取网络数据包;字节序列提^i块,用于从获取的网络数据包中提取字节序列; 蠕虫特征组装模块,用于在预先获取到的正常网络数据包中,计算各所 述字节序列的误报率,并将误报率小于或等于预先设定值的字节序列组装成 蠕虫特征,其中,所述误报率为包含所述字节序列的正常网络数据包在全部正常网络数据包中出现的概率。
11、 根据权利要求10所述的蠕虫特征提取装置,其特征在于,所述字 节序列提取模块包括第一参数解析单元,用于从各网络数据包中分别解析获取源IP地址、目 的IP:l也址和目的端口号;第一数据流组装单元,用于将源IP地址、目的IP地址和目的端口号相 同的网络数据包组装成一个网络数据流;字节序列提取子单元,用于从各网络数据流中提取字节序列。
12、 根据权利要求10或11所述的蠕虫特征提取装置,其特征在于,所 述网络数据包获取模块包括网络数据包捕捉单元,用于捕捉网络数据包;网络数据包筛选单元,用于对捕捉到的网络数据包进行筛选操作,保留 异常网络数据包。
13、 根据权利要求12所述的蠕虫特征提取装置,其特征在于,所述网 络数据包筛选单元包括失败次数解析子单元,用于从捕捉到的各网络数据包中分别解析获取失 败连接次数;数据包篩选子单元,用于当识别到所述失败连接次数大于或等于设定失 败门限值时,将对应的网络数据包作为异常网络数据包。
14、 根据权利要求11所述的蠕虫特征提取装置,其特征在于,所述字 节序列提取子单元包括长度值设定子单元,用于存储预先设定的待提取字节序列的最小长度值; 次数值设定子单元,用于存储预先设定的待提取字节序列的最小次数值; 提取子单元,用于提取长度大于或等于预先设定的所述最小长度值,且在网络数据流中的被包含次数大于或等于预先设定的所述最小次数值的字节序列。
15、 才艮据权利要求14所述的蠕虫特征提取装置,其特征在于,还包括 无用字节序列去除模块,用于从提取的各字节序列中去除无用字节序列。
16、 根据权利要求15所述的蠕虫特征提取装置,其特征在于,所述无 用字节序列去除模块包括识别单元,用于在各字节序列中识别具有子串和母串关系的成对字节序列;判断单元,用于当判断出包含子串字节序列的网络数据流也包含子串的 母串字节序列时,将作为所述子串的字节序列确定为无用字节序列; 去除单元,用于将所述无用字节序列去除。
17、 根据权利要求10或11所述的蠕虫特征提取装置,其特征在于,所 述蠕虫特征组装模块包括正常网络数据包获取单元,用于获取正常网络数据包;第二参数解析单元,用于从各正常网络数据包中分别解析获取源IP地址、 目的IP地址和目的端口号;第二数据流组装单元,用于将源IP地址、目的IP地址和目的端口号相 同的正常网络数据包组装成一个正常网络数据流;蠕虫特征组装子单元,用于在所述正常网络数据流中,计算各所述字节 序列的误报率,将误报率小于或等于预先设定值的字节序列组装成蠕虫特征。
18、 根据权利要求17所述的蠕虫特征提取装置,其特征在于,所述蠕 虫特征组装子单元还包括长度比较去除子单元,用于根据在正常网络数据流中分别计算出的各字 节序列的误报率,分别将误报率相等的字节序列进行长度比较,保留其中长 度最大的字节序列用于组装蠕虫特征。
全文摘要
本发明实施例涉及一种蠕虫特征提取方法和装置。该提取方法包括获取网络数据包;从网络数据包中提取字节序列;在正常网络数据包中,计算各字节序列的误报率,并将误报率小于或等于预先设定值的字节序列组装成蠕虫特征。该提取装置包括执行本发明方法的功能模块。本发明实施例在字节序列组装蠕虫特征的过程中引入了误报率的计算,根据误报率来组装蠕虫特征,使蠕虫特征能够满足误报率要求,从而能够提高实时组装蠕虫特征的准确性。
文档编号H04L29/06GK101599969SQ200910088358
公开日2009年12月9日 申请日期2009年6月26日 优先权日2009年6月26日
发明者孙志敏, 张小松, 厅 陈 申请人:成都市华为赛门铁克科技有限公司;电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1