会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 蠕虫病 / 一种面向多态蠕虫病毒的自动检测方法

一种面向多态蠕虫病毒的自动检测方法

申请号 CN201911272282.X 申请日 2019-12-12 公开(公告)号 CN111177724A 公开(公告)日 2020-05-19
申请人 河北师范大学; 发明人 王方伟; 杨少杰; 王长广; 李青茹; 黄文艳; 李军;
摘要 本发明公开了一种面向多态蠕虫病毒的自动检测方法,属于机器学习和网络安全技术领域。本发明首先选定训练用多态蠕虫数据序列,进行平滑后提取得到特征序列,再利用Gaussian-Bernoulli RBM算法进行优化提取,得到新的特征序列,形成多态蠕虫特征库。本发明可以快速准确的提取出不同种类多态蠕虫病毒的特征序列,并可以分析出多态蠕虫病毒可能存在的潜在变异风险以及可疑的多态蠕虫段序列最终更加准确快速的实现防御。本发明能够人工调整训练参数,调控系统训练方式,提高系统提取多态蠕虫准确度。
权利要求

1.一种面向多态蠕虫病毒的自动检测方法,其特征在于包括如下步骤:步骤1、选定训练用多态蠕虫数据序列,利用N-gram平滑算法对训练序列进行平滑,然后提取得到特征序列,具体操作分为以下分步骤:

1.1)首先根据流量规范,将训练序列进行切分;

1.2)利用N-gram平滑算法对切分得序列进行数据平滑;

1.3)对平滑后的数据进行特征提取,得到特征序列;

步骤2、利用Gaussian-Bernoulli RBM算法对步骤1中得到的特征序列进行降噪处理并提取特征形成低噪声条件下的多态蠕虫特征序列,具体操作分为以下分步骤:

2.1)首先利用Gaussian-Bernoulli RBM算法对步骤1中得到的特征序列进行降噪处理得到降噪特征序列;

2.2)利用Gaussian-Bemoulli RBM算法对所述降噪特征序列进行特征提取,得到低噪声条件下多态蠕虫特征序列。

步骤3、重复步骤2,得到一系列多态蠕虫特征序列形成特征库。

2.根据权利要求1所述的一种面向多态蠕虫病毒的自动检测方法,其特征在于分步骤

1.2中所述N-gram平滑算法为Laplace N-gram算法或Good-TuringN-gram算法。

3.根据权利要求2所述的一种面向多态蠕虫病毒的自动检测方法,其特征在于所述Laplace N-gram算法的平滑公式为:其中,P(xi)为算某个词xi出现的概率,C(xi)为词xi在训练用多态蠕虫数据序列中出现的次数,V表示拉普拉斯平滑参数。

4.根据权利要求3所述的一种面向多态蠕虫病毒的自动检测方法,其特征在于V的取值范围为:1~0.0001。

5.根据权利要求2所述的一种面向多态蠕虫病毒的自动检测方法,其特征在于分步骤

1.2中所述Good-Turing N-gram算法的平滑公式为:其中,P(xi)为算某个词xi出现的概率,λ为随机线性差值,λ1、λ2、λ3满足随机分配且和一定为1。

6.根据权利要求1所述的一种面向多态蠕虫病毒的自动检测方法,其特征在于步骤2中Gaussian-Bernoulli RBM算法的构造具体分为以下分步骤:分步1:构造RBM算法:RBM联合概率分布函数如式(3)所示:其中,变量v,h是玻尔兹曼机n维二值随机向量x∈{0,1}n分解的两个子集:可视层层v和隐藏层层h,E和Z分别表示能量函数和配分函数的归一化常数,其公式如式(4)和(5)所示:E(v,h)=-vTWh-bTv-cTh                         (4)Z=∑v∑h exp{-E(v,h)}                                 (5)W是该模型参数的权重矩阵,b、c为偏置向量;

综合式(3)、(4)、(5)可得式(6):

分步2:构造Bernoulli RBM算法:Bernoulli RBM概率分布函数如(7)所示:此时,σ表示为 x为v或h;

分步3:构造Gaussian-Bemoulli RBM算法:采用精度矩阵参数化高斯分布,则算法的概率分布函数公式如式所示:其中,

说明书全文

一种面向多态蠕虫病毒的自动检测方法

技术领域

[0001] 本发明属于机器学习和网络安全技术领域,具体为涉及一种面向多态蠕虫病毒的自动检测方法。

背景技术

[0002] 多态蠕虫是一种可变形病毒,每次感染都可改变形态,在自行加密且保持蠕虫原语意不变前提下可进行代码修改操作,进而在网络中快速传播,为互联网带来巨大危害。
[0003] “零天”等多态蠕虫病毒已经给互联网带来了巨大危害。多态蠕虫病毒中的勒索蠕虫软件更是将目标从消费者转移到企业,今年,企业的感染率与2018年相比上升了12%,给企业造成了不可计数的损失。此外,勒索病毒的多种变种蠕虫更加难以被发现,而其造成的损失更加无法估计。
[0004] 尤其随着互联网大数据时代的到来,多态蠕虫特征的高效提取变得越来越困难,互联网安全所面临的问题尤为严峻。因此,计算机蠕虫病毒的检验与防御成了网络安全领域一个非常重要的问题。

发明内容

[0005] 本发明要解决的技术问题是提供一种面向多态蠕虫病毒的自动检测方法,该方法可高效提取多态蠕虫病毒的特征数据,为多态蠕虫病毒的检验与防御提供有力工具,更好得保证网络安全。
[0006] 为解决上述技术问题,本发明采用的技术方案是:一种面向多态蠕虫病毒的自动检测方法,包括如下步骤:
[0007] 步骤1、选定训练用多态蠕虫数据序列,利用N-gram平滑算法对训练序列进行平滑,然后提取得到特征序列,具体操作分为以下分步骤:
[0008] 1.1)首先根据流量规范,将训练序列进行切分;
[0009] 1.2)利用N-gram平滑算法对切分得序列进行数据平滑;
[0010] 1.3)对平滑后的数据进行特征提取,得到特征序列;
[0011] 步骤2、利用Gaussian-Bernoulli RBM算法对步骤1中得到的特征序列进行降噪处理并提取特征形成低噪声条件下的多态蠕虫特征序列,具体操作分为以下分步骤:
[0012] 2.1)首先利用Gaussian-Bemoulli RBM算法对步骤1中得到的特征序列进行降噪处理得到降噪特征序列;
[0013] 2.2)利用Gaussian-Bernoulli RBM算法对所述降噪特征序列进行特征提取,得到低噪声条件下多态蠕虫特征序列。
[0014] 步骤3、重复步骤2,得到一系列多态蠕虫特征序列形成特征库。
[0015] 优选的,分步骤1.2中所述N-gram平滑算法为Laplace N-gram算法或Good-Turing N-gram算法。
[0016] 所述Laplace N-gram算法的平滑公式为:
[0017]
[0018] 其中,P(xi)为算某个词xi出现的概率,C(xi)为词xi在训练用多态蠕虫数据序列中出现的次数,V表示拉普拉斯平滑参数。
[0019] 优选的,V的取值范围为:1~0.0001。
[0020] 优选的,分步骤1.2中所述Good-Turing N-gram算法的平滑公式为:
[0021]
[0022] 其中,P(xi)为算某个词xi出现的概率,λ为随机线性差值,λ1、λ2、λ3满足随机分配且和一定为1。
[0023] 优选的,步骤2中Gaussian-Bernoulli RBM算法的构造具体分为以下分步骤:
[0024] 分步1:构造RBM算法:RBM联合概率分布函数如式(3)所示:
[0025]
[0026] 其中,变量v,h是玻尔兹曼机n维二值随机向量x∈{0,1}n分解的两个子集:可视层层v和隐藏层层h,E和Z分别表示能量函数和配分函数的归一化常数,其公式如式(4)和(5)所示:
[0027] E(v,h)=-vTWh-bTv-cTh      (4)
[0028] Z=∑v∑h exp{-E(v,h)}      (5)
[0029] W是该模型参数的权重矩阵,b、c为偏置向量;
[0030] 综合式(3)、(4)、(5)可得式(6):
[0031]
[0032] 分步2:构造Bernoulli RBM算法:Bernoulli RBM概率分布函数如(7)所示:
[0033]
[0034] 此时,σ表示为 x为v或h;
[0035] 分步3:构造Gaussian-Bemoulli RBM算法:采用精度矩阵参数化高斯分布,则算法的概率分布函数公式如式所示:
[0036]
[0037] 其中,
[0038] 采用上述技术方案所取得的技术效果在于:
[0039] 本发明可以快速准确的提取出不同种类多态蠕虫病毒的特征序列,并可以利用N-gram平滑算法生成的特征序列分析出多态蠕虫病毒可能存在的潜在变异风险以及可疑的多态蠕虫段序列最终更加准确快速的实现防御。本发明能够人工调整训练参数,调控系统训练方式,提高系统提取多态蠕虫准确度。

附图说明

[0040] 图1是本发明的流程图。

具体实施方式

[0041] 下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0042] 如图1所示,一种面向多态蠕虫病毒的自动检测方法,包括如下步骤:
[0043] 步骤1、选定训练用多态蠕虫数据序列,利用N-gram平滑算法对训练序列进行平滑,得到特征序列。
[0044] 根据马尔科夫假设构建可改进原始公式,并选用最大似然估计作为条件概率,通过训练多种类多态蠕虫序列数据,以推断出可疑段序列。
[0045] 具体操作分为以下分步骤:
[0046] 1.1)首先根据流量规范,将训练序列进行切分,训练方法如下所示;
[0047] 所述训练用多态蠕虫数据序列一般包括一条以上词组序列,每条词组序列由n(n≥1)个词组xi(1≤i≤n)组成,每一条序列一定由多个词xi组成,否则不符合数据传输规范。
[0048] 切分后的数据如下所示:
[0049] S1:GET...HTTP/1.1\r\n...\r\nHost...
[0050] S2:GET...HTTP/1.1\r\n...\r\nHost...
[0051] S3:POST...HTTP/1.1\r\n...\r\nHost...
[0052] 以S1语句为例,S1作为训练用多态蠕虫数据序列,被仿写成长度为n的语句的概率为P(S1)=p(x1,x2,...,xn),其中xi(1≤i≤n)是组成S1的词句。因此存在这样一种情况:计算机认为语句S3中词x1=“POST”存在拼写错误,因为句子出现的概率为P(S1)≈P(S2)>P(S3),最终“GET”将作为x1特征出现。
[0053] 根据上文描述,首先整理出公式:
[0054] P(S1)=p(x1,x2,...,xn)
[0055] 再根据马尔科夫链理论构造公式,每个词xi(1≤i≤n)出现与前m-1(m∈N+)个有限词相关,得出下公式(1):
[0056]
[0057] 假设C(xi)为词xi在训练模型用多态蠕虫数据序列中出现的次数,C(xi-n-1,...,xi)为词xi-n-1,...,xi-1出现的总次数,于是最大似然估计可表示为:
[0058]
[0059] 以Apache-Knacker蠕虫序列为例,式(10)可表示为:
[0060]
[0061] 其中,P3为以三个词为联系出现的概率,P2为以两个词为联系出现的概率。
[0062] 1.2)利用平滑算法对切分得序列进行数据平滑;
[0063] 所述N-gram平滑算法为Laplace N-gram算法或Good-Turing N-gram算法。
[0064] 对于Laplace N-gram算法,也可以称为修正平滑法。首先解决较为容易改进的零概率问题,根据上述最大似然概率分布下的N元语法模型公式,拉普拉斯平滑为每一次公式运算都增加了一个V,V表示拉普拉斯平滑参数,用以调整概率分布计算过程中的平滑问题。为公式(10)中每一次运算都增加一个平滑参数V,改进平滑后式(10)变为式(1):
[0065]
[0066] 将式(3)作为平滑数据的依据,V被称为拉普拉斯平滑参数,V的取值范围为:1~0.0001。
[0067] Good-Turing是一种统计技术,用于统计数据集中的词数并按照出现词数进行聚类,最终使用聚类后的结果估计可能产生的新词概率。对于Good-TuringN-gram算法,也可以称为线性平滑法,具体平滑方式为公式(2):
[0068]