首页 / 专利库 / 天文学 / 大爆炸 / 恶意代码检测方法和系统

恶意代码检测方法和系统

阅读:909发布:2020-05-20

专利汇可以提供恶意代码检测方法和系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种恶意代码检测方法,包括:从未知是否包含恶意代码的 软件 中提取特征;根据预先得到的每个特征的贡献度计算所述软件中提取的所有特征的特征贡献和以及特征贡献均值;根据得到的特征贡献和与预先得到的特征贡献和 阈值 的大小关系,以及得到的特征贡献均值与预先计算的特征贡献均值阈值的大小关系,确定所述未知软件中是否包含恶意代码;本发明还公开了一种恶意代码检测系统,包括:特征提取模 块 ,特征贡献库,特征分析模块,判别模块。本发明通过自动化判别恶意代码解决了目前恶意代码数量 大爆炸 导致的无法及时判别的问题,从而可以及时地响应处理恶意代码。,下面是恶意代码检测方法和系统专利的具体信息内容。

1.一种恶意代码检测方法,其特征在于,包括:
从未知是否包含恶意代码的软件中提取特征;
根据预先得到的每个特征的贡献度,计算所述软件中提取的所有特征的特征贡献和以及特征贡献均值,一个特征的贡献度是指所述特征对于判断未知软件是包含恶意代码的文件或不包含恶意代码的文件的贡献程度,所述特征的贡献度为范围在-1与1之间的数值;
所述特征贡献和的计算方式为: 其中,V为特征贡献和,σi为特征的贡献度,特征si∈S,S为所有软件所具有的静态特征、动态行为特征以及相关环境特征的集合,所述软件中提取的所有特征的集合为A,所述A为S的子集,
所述特征贡献均值的计算方式为: 其中,M为特征贡献均值,
σi为特征的贡献度,特征si∈S,S为所有软件所具有的静态特征、动态行为特征以及相关环境特征的集合,所述软件中提取的所有特征的集合为A,所述A为S的子集,n为所述软件中提取的所有特征的集合A中的特征个数;
根据计算得到的特征贡献和与预先得到的特征贡献和阈值的大小关系,以及计算得到的特征贡献均值与预先得到的特征贡献均值阈值的大小关系,确定所述软件中包含恶意代码或不包含恶意代码:如果计算得到的特征贡献和大于特征贡献和阈值,并且计算得到的特征贡献均值大于特征贡献均值阈值,则确定所述软件中包含恶意代码,否则确定所述软件中不包含恶意代码。
2.如权利要求1所述的方法,其特征在于,根据预先得到的每个特征的贡献度计算所述软件中提取的所有特征的特征贡献和以及特征贡献均值之前,还包括:
收集白名单样本和黑名单样本,所述白名单样本是指样本的静态特征与样本所在的系统环境及样本的活动对系统不会产生威胁的软件,所述黑名单样本是指样本本身及其所在环境能够给系统带来威胁的软件;
提取每个样本的特征;
计算每个特征在所有的黑名单样本中出现的概率与在所有的白名单中出现的概率;
根据每个特征在所有的黑名单样本中出现的概率与在所有的白名单样本中出现的概率,计算每个特征的贡献度。
3.如权利要求2所述的方法,其特征在于,计算每个特征的贡献度后,还包括:对所有特征的贡献度进行排序,保存指定范围内的贡献度以及对应的特征。
4.如权利要求2或3所述的方法,其特征在于,按照下述方式计算每个特征的贡献度:
σi=(PM(si)-PT(si))/(PM(si)+PT(si)),其中,σi为特征的贡献度,特征si∈S,S为所有样本所具有的静态特征、动态行为特征以及相关环境特征的集合,PM(si)为特征si在黑名单样本集合M中出现的概率,PT(si)为特征si在白名单样本集合T中出现的概率。
5.如权利要求1所述的方法,其特征在于,根据计算得到的特征贡献和与预先得到的特征贡献和阈值的大小关系,以及计算得到的特征贡献均值与预先得到的特征贡献均值阈值的大小关系,确定所述未知软件中包含恶意代码或不包含恶意代码之前,还包括:
收集白名单样本和黑名单样本,所述白名单样本是指一个样本的静态特征与样本所在的系统环境及样本的活动对系统不会产生威胁的软件,所述黑名单样本是指样本本身及其所在环境能够给系统带来威胁的软件;
提取每个样本的特征;
计算每个样本中提取的所有特征的特征贡献和以及特征贡献均值;所述特征贡献和的计算方式为: 其中,V为特征贡献和,σi为特征的贡献度,特征si∈S,S为所有样本所具有的静态特征、动态行为特征以及相关环境特征的集合,所述样本中提取的所有特征的集合为A,所述A为S的子集, ;所述特征贡献均值
的计算方式为: 其中,M为特征贡献均值,σi为特征的贡献度,特征
si∈S,S为所有样本所具有的静态特征、动态行为特征以及相关环境特征的集合,所述样本中提取的所有特征的集合为A,所述A为S的子集, n为所述
样本中提取的所有特征的集合A中的特征个数;
根据计算得到的每个样本中提取的所有特征的特征贡献和与预先确定的初始特征贡献和阈值的大小关系,以及计算得到的每个样本中提取的所有特征的特征贡献均值与预先确定的初始特征贡献均值阈值的大小关系,将收集的所有样本划分为恶意文件和非恶意文件两类;
计算将收集的白名单样本划分成恶意文件的百分比,或者计算将收集的黑名单样本划分成非恶意文件的百分比,调整初始特征贡献和阈值以及初始特征贡献均值阈值,得到特征贡献和阈值以及特征贡献均值阈值。
6.如权利要求5所述的方法,其特征在于,根据计算得到的每个样本中提取的所有特征的特征贡献和与预先确定的初始特征贡献和阈值的大小关系,以及计算得到的每个样本中提取的所有特征的特征贡献均值与预先确定的初始特征贡献均值阈值的大小关系,将收集的所有样本划分为恶意文件和非恶意文件两类之前,还包括:确定初始特征贡献和阈值以及初始特征贡献均值阈值;
其中,按照下述方式确定初始特征贡献和阈值: 其中,VM为初始特征
贡献和阈值,Vj为每个样本的特征贡献和,n为所有样本的个数;
按照下述方式确定初始特征贡献均值阈值: 其中,MM为初始特征贡
献均值阈值,Mi为每个样本的特征贡献均值,n为所有样本的个数。
7.如权利要求5所述的方法,其特征在于,将收集的所有样本划分为恶意文件和非恶意文件两类包括:如果一个样本的所有特征的特征贡献和大于初始特征贡献和阈值,并且,该样本的所有特征的特征贡献均值大于初始特征贡献均值阈值,则将该样本划分为恶意文件,否则,将该样本划分为非恶意文件。
8.如权利要求5所述的方法,其特征在于,调整初始特征贡献和阈值以及初始特征贡献均值阈值、得到特征贡献和阈值以及特征贡献均值阈值具体为:如果将白名单样本划分成恶意文件的百分比大于0.1%,则增大初始特征贡献和阈值以及初始特征贡献均值阈值,直到将白名单样本划分成恶意文件的百分比不大于0.1%,将调整后的初始特征贡献和阈值作为特征贡献和阈值,将调整后的初始特征贡献均值阈值作为特征贡献均值阈值。
9.一种恶意代码检测系统,其特征在于,包括:
特征提取模,用于从未知是否包含恶意代码的软件中提取特征;
特征贡献库,用于保存每个特征的贡献度、特征贡献和阈值和特征贡献均值阈值,一个特征的贡献度是指所述特征对于判断未知软件是包含恶意代码的文件或不包含恶意代码的文件的贡献程度;
特征分析模块,用于根据特征贡献库中保存的每个特征的贡献度,计算特征提取模块从所述软件中提取的所有特征的特征贡献和以及特征贡献均值,所述特征的贡献度为范围在-1与1之间的数值;所述特征贡献和的计算方式为: 其中,V为特征贡献和,σi为特征的贡献度,特征si∈S,S为所有软件所具有的静态特征、动态行为特征以及相关环境特征的集合,所述软件中提取的所有特征的集合为A,所述A为S的子集,所述特征贡献均值的计算方式为: 其
中,M为特征贡献均值,σi为特征的贡献度,特征si∈S,S为所有软件所具有的静态特征、动态行为特征以及相关环境特征的集合,所述软件中提取的所有特征的集合为A,所述A为S的子集, n为所述软件中提取的所有特征的集合A中的特征
个数;
判别模块,用于根据特征分析模块计算得到的特征贡献和与特征贡献库中保存的特征贡献和阈值的大小关系,以及特征分析模块计算得到的特征贡献均值与特征贡献库中保存的特征贡献均值阈值的大小关系,确定所述未知软件中包含恶意代码或不包含恶意代码:
如果计算得到的特征贡献和大于特征贡献和阈值,并且计算得到的特征贡献均值大于特征贡献均值阈值,则确定所述软件中包含恶意代码,否则确定所述软件中不包含恶意代码。
10.如权利要求9所述的系统,其特征在于,特征贡献库具体用于计算保存特征的贡献度,包括:
收集白名单样本和黑名单样本,所述白名单样本是指样本的静态特征与样本所在的系统环境及样本的活动对系统不会产生威胁的软件,所述黑名单样本是指样本本身及其所在环境能够给系统带来威胁的软件;
提取每个样本的特征;
计算每个特征在所有的黑名单样本中出现的概率与在所有的白名单样本中出现的概率;
根据每个特征在所有的黑名单样本中出现的概率与在所有的白名单样本中出现的概率,计算每个特征的贡献度。
11.如权利要求10所述的系统,其特征在于,计算每个特征的贡献度后,还包括:对所有特征的贡献度进行排序,保存指定范围内的贡献度以及对应的特征。
12.如权利要求10或11所述的系统,其特征在于,按照下述方式计算每个特征的贡献度:σi=(PM(si)-PT(si))/(PM(si)+PT(si)),其中,σi为特征的贡献度,特征si∈S,S为所有样本所具有的静态特征、动态行为特征以及相关环境特征的集合,PM(si)为软件特征si在黑名单样本集合M中出现的概率,PT(si)为软件特征si在白名单样本集合T出现的概率。
13.如权利要求9所述的系统,其特征在于,特征贡献库还用于获取特征贡献和阈值以及特征贡献均值阈值,具体包括:
收集白名单样本和黑名单样本,所述白名单样本是指一个样本的静态特征与样本所在的系统环境及样本的活动对系统不会产生威胁的软件,所述黑名单样本是指样本本身及其所在环境能够给系统带来威胁的软件;
提取每个样本的特征;
计算每个样本中提取的所有特征的特征贡献和以及特征贡献均值;所述特征贡献和的计算方式为: 其中,V为特征贡献和,σi为特征的贡献度,特征si∈S,S为所有样本所具有的静态特征、动态行为特征以及相关环境特征的集合,所述样本中提取的所有特征的集合为A,所述A为S的子集, ;所述特征贡献均值
的计算方式为: 其中,M为特征贡献均值,σi为特征的贡献度,特征
si∈S,S为所有样本所具有的静态特征、动态行为特征以及相关环境特征的集合,所述样本中提取的所有特征的集合为A,所述A为S的子集, n为所述
样本中提取的所有特征的集合A中的特征个数;
根据计算得到的每个样本中提取的所有特征的特征贡献和与预先确定的初始特征贡献和阈值的大小关系,以及计算得到的每个样本中提取的所以特征的特征贡献均值与预先确定的初始特征贡献均值阈值的大小关系,将收集的所有样本划分为恶意文件和非恶意文件两类;
计算将收集的白名单样本划分成恶意文件的百分比,或者计算将收集的黑名单样本划分成非恶意文件的百分比,调整初始特征贡献和阈值以及初始特征贡献均值阈值,得到特征贡献和阈值以及特征贡献均值阈值。
14.如权利要求13所述的系统,其特征在于,根据计算得到的每个样本中提取的所有特征的特征贡献和与预先确定的初始特征贡献和阈值的大小关系,以及计算得到的每个样本中提取的所有特征的特征贡献均值与预先确定的初始特征贡献均值阈值的大小关系,将收集的所有样本划分为恶意文件和非恶意文件两类之前,还包括:确定初始特征贡献和阈值以及初始特征贡献均值阈值;
其中,按照下述方式确定初始特征贡献和阈值: 其中,VM为初始特征
贡献和阈值,Vj为每个样本的特征贡献和,n为所有样本的个数;按照下述方式确定初始特征贡献均值阈值: 其中,MM为初始特征贡献均值阈值,Mi为每个样本的特征贡献均值,n为所有样本的个数。
15.如权利要求13所述的系统,其特征在于,将收集的所有样本划分为恶意文件和非恶意文件两类包括:如果一个样本的所有特征的特征贡献和大于初始特征贡献和阈值,并且,该样本的所有特征的特征贡献均值大于初始特征贡献均值阈值,则将该样本划分为恶意文件,否则,将该样本划分为非恶意文件。
16.如权利要求13所述的系统,其特征在于,调整初始特征贡献和阈值以及初始特征贡献均值阈值、得到特征贡献和阈值以及特征贡献均值阈值具体为:如果将白名单样本划分成恶意文件的百分比大于0.1%,则增大初始特征贡献和阈值以及初始特征贡献均值阈值,直到将白名单样本划分成恶意文件的百分比不大于0.1%,将调整后的初始特征贡献和阈值作为特征贡献和阈值,将调整后的初始特征贡献均值阈值作为特征贡献均值阈值。

说明书全文

恶意代码检测方法和系统

技术领域

[0001] 本发明涉及计算机网络安全技术领域,特别涉及一种恶意代码检测方法和系统。

背景技术

[0002] 随着恶意代码数量急剧膨胀,恶意代码自动化判别已经成为反病毒研究的重要方向。恶意代码自动化判别,是通过一定的方法对未知的程序进行判别分类的方法。
[0003] 对非二进制特征码的恶意代码检测的相关研究主要有静态检测恶意代码方面、动态行为分析检测恶意代码及组合检测。现有技术可以通过对文件静态反汇编得到API序列图,然后与安全策略进行对比,违反安全策略的API序列判定为恶意代码。还可以根据软件行为监控序列的距离判别分类方法。该方法可以在一定程度上进行自动化分类,但所需时间巨大,需要判别样本的行为序列与所有其它的行为序列计算距离,随着样本量的膨胀呈线性增长,恶意代码数量的膨胀速度导致该方法将耗费巨大的时间来判断一个未知的恶意代码的类别,另外采用让恶意代码运行在虚拟机环境中通过获取其API调用来分析软件行为这个获取的层次相对初级。

发明内容

[0004] 针对以上不足,本发明要解决的技术问题是提供一种恶意代码检测方法和系统,用以提高软件判别的准确率,不需要进行人工分析,并且可以快速的进行软件判别。
[0005] 为了解决上述技术问题,本发明提供了一种恶意代码检测方法,包括:
[0006] 从未知是否包含恶意代码的软件中提取特征;
[0007] 根据预先得到的每个特征的贡献度,计算所述软件中提取的所有特征的特征贡献和以及特征贡献均值,一个特征的贡献度是指所述特征对于判断未知软件是包含恶意代码的文件或不包含恶意代码的文件的贡献程度;,所述特征的贡献度为范围在-1与1之间的数值;
[0008] 根据计算得到的特征贡献和与预先得到的特征贡献和阈值的大小关系,以及计算得到的特征贡献均值与预先得到的特征贡献均值阈值的大小关系,确定所述软件中包含恶意代码或不包含恶意代码。
[0009] 进一步的,根据预先得到的每个特征的贡献度计算所述软件中提取的所有特征的特征贡献和以及特征贡献均值之前,还包括:
[0010] 收集白名单样本和黑名单样本,所述白名单样本是指样本的静态特征与样本所在的系统环境及样本的活动对系统不会产生威胁的软件,所述黑名单样本是指样本本身及其所在环境能够给系统带来威胁的软件;
[0011] 提取每个样本的特征;
[0012] 计算每个特征在所有的黑名单样本中出现的概率与在所有的白名单中出现的概率;
[0013] 根据每个特征在所有的黑名单样本中出现的概率与在所有的白名单样本中出现的概率,计算每个特征的贡献度。
[0014] 进一步的,计算每个特征的贡献度后,还包括:对所有特征的贡献度进行排序,保存指定范围内的贡献度以及对应的特征。
[0015] 进一步的,按照下述方式计算每个特征的贡献度:σi=(PM(si)-PT(si))/(PM(si)+PT(si)),其中,σi为特征的贡献度,特征si∈S,S为所有样本所具有的静态特征、动态行为特征以及相关环境特征的集合,PM(si)为特征si在黑名单样本集合M中出现的概率,PT(si)为特征si在白名单样本集合T中出现的概率。
[0016] 进一步的,根据计算得到的特征贡献和与预先得到的特征贡献和阈值的大小关系,以及计算得到的特征贡献均值与预先得到的特征贡献均值阈值的大小关系,确定所述未知软件中包含恶意代码或不包含恶意代码之前,还包括:
[0017] 收集白名单样本和黑名单样本,所述白名单样本是指一个样本的静态特征与样本所在的系统环境及样本的活动对系统不会产生威胁的软件,所述黑名单样本是指样本本身及其所在环境能够给系统带来威胁的软件;
[0018] 提取每个样本的特征;
[0019] 计算每个样本中提取的所有特征的特征贡献和以及特征贡献均值;
[0020] 根据计算得到的每个样本中提取的所有特征的特征贡献和与预先确定的初始特征贡献和阈值的大小关系,以及计算得到的每个样本中提取的所有特征的特征贡献均值与预先确定的初始特征贡献均值阈值的大小关系,将收集的所有样本划分为恶意文件和非恶意文件两类;
[0021] 计算将收集的白名单样本划分成恶意文件的百分比,或者计算将收集的黑名单样本划分成非恶意文件的百分比,调整初始特征贡献和阈值以及初始特征贡献均值阈值,得到特征贡献和阈值以及特征贡献均值阈值。
[0022] 进一步的,其特征在于,按照下述方式计算所述软件或每个样本中提取的所有特征的特征贡献和: 其中,V为特征贡献和,σi为特征的贡献度,特征si∈S,S为所有软件或者样本所具有的静态特征、动态行为特征以及相关环境特征的集合,所述软件或者样本中提取的所有特征的集合为A,所述A为S的子集,[0023] 进一步的,其特征在于,按照下述方式计算所述软件或每个样本中提取的所有特征的特征贡献均值: 其中,M为特征贡献均值,σi为特征的贡
献度,特征si∈S,S为所有软件或者样本所具有的静态特征、动态行为特征以及相关环境特征的集合,所述软件或者样本中提取的所有特征的集合为A,所述A为S的子集,n为所述软件或者样本中提取的所有特征的集合A中的特征
个数。
[0024] 进一步的,根据计算得到的每个样本中提取的所有特征的特征贡献和与预先确定的初始特征贡献和阈值的大小关系,以及计算得到的每个样本中提取的所有特征的特征贡献均值与预先确定的初始特征贡献均值阈值的大小关系,将收集的所有样本划分为恶意文件和非恶意文件两类之前,还包括:确定初始特征贡献和阈值以及初始特征贡献均值阈值;
[0025] 其中,按照下述方式确定初始特征贡献和阈值: 其中,VM为初始特征贡献和阈值,Vj为每个样本的特征贡献和,n为所有样本的个数;
[0026] 按照下述方式确定初始特征贡献均值阈值: 其中,MM为初始特征贡献均值阈值,Mi为每个样本的特征贡献均值,n为所有样本的个数。
[0027] 进一步的,将收集的所有样本划分为恶意文件和非恶意文件两类包括:如果一个样本的所有特征的特征贡献和大于初始特征贡献和阈值,并且,该样本的所有特征的特征贡献均值大于初始特征贡献均值阈值,则将该样本划分为恶意文件,否则,将该样本划分为非恶意文件。
[0028] 进一步的,其特征在于,调整初始特征贡献和阈值以及初始特征贡献均值阈值、得到特征贡献和阈值以及特征贡献均值阈值具体为:如果将白名单样本划分成恶意文件的百分比大于0.1%,则增大初始特征贡献和阈值以及初始特征贡献均值阈值,直到将白名单样本划分成恶意文件的百分比不大于0.1%,将调整后的初始特征贡献和阈值作为特征贡献和阈值,将调整后的初始特征贡献均值阈值作为特征贡献均值阈值。
[0029] 进一步的,根据计算得到的特征贡献和与预先得到的特征贡献和阈值的大小关系,以及计算得到的特征贡献均值与预先得到的特征贡献均值阈值的大小关系,确定所述未知软件中包含恶意代码或不包含恶意代码包括:如果计算得到的特征贡献和大于特征贡献和阈值,并且计算得到的特征贡献均值大于特征贡献均值阈值,则确定所述软件中包含恶意代码,否则确定所述软件中不包含恶意代码。
[0030] 本发明还提供了一种恶意代码检测系统,包括:
[0031] 特征提取模,用于从未知是否包含恶意代码的软件中提取特征;
[0032] 特征贡献库,用于保存每个特征的贡献度、特征贡献和阈值和特征贡献均值阈值,一个特征的贡献度是指所述特征对于判断未知软件是包含恶意代码的文件或不包含恶意代码的文件的贡献程度;
[0033] 特征分析模块,用于根据特征贡献库中保存的每个特征的贡献度,计算特征提取模块从所述软件中提取的所有特征的特征贡献和以及特征贡献均值;
[0034] 判别模块,用于根据特征分析模块计算得到的特征贡献和与特征贡献库中保存的特征贡献和阈值的大小关系,以及特征分析模块计算得到的特征贡献均值与特征贡献库中保存的特征贡献均值阈值的大小关系,确定所述未知软件中包含恶意代码或不包含恶意代码。
[0035] 进一步的,特征贡献库具体用于计算保存特征的贡献度,包括:
[0036] 收集白名单样本和黑名单样本,所述白名单样本是指样本的静态特征与样本所在的系统环境及样本的活动对系统不会产生威胁的软件,所述黑名单样本是指样本本身及其所在环境能够给系统带来威胁的软件;
[0037] 提取每个样本的特征;
[0038] 计算每个特征在所有的黑名单样本中出现的概率与在所有的白名单样本中出现的概率;
[0039] 根据每个特征在所有的黑名单样本中出现的概率与在所有的白名单样本中出现的概率,计算每个特征的贡献度。
[0040] 进一步的,计算每个特征的贡献度后,还包括:对所有特征的贡献度进行排序,保存指定范围内的贡献度以及对应的特征。
[0041] 进一步的,按照下述方式计算每个特征的贡献度:σi=(PM(si)-PT(si))/(PM(si)+PT(si)),其中,σi为特征的贡献度,特征si∈S,S为所有样本所具有的静态特征、动态行为特征以及相关环境特征的集合,PM(si)为软件特征si在黑名单样本集合M中出现的概率,PT(si)为软件特征si在白名单样本集合T出现的概率。
[0042] 进一步的,特征贡献库还用于获取特征贡献和阈值以及特征贡献均值阈值,具体包括:
[0043] 收集白名单样本和黑名单样本,所述白名单样本是指一个样本的静态特征与样本所在的系统环境及样本的活动对系统不会产生威胁的软件,所述黑名单样本是指样本本身及其所在环境能够给系统带来威胁的软件;
[0044] 提取每个样本的特征;
[0045] 计算每个样本中提取的所有特征的特征贡献和以及特征贡献均值;
[0046] 根据计算得到的每个样本中提取的所有特征的特征贡献和与预先确定的初始特征贡献和阈值的大小关系,以及计算得到的每个样本中提取的所以特征的特征贡献均值与预先确定的初始特征贡献均值阈值的大小关系,将收集的所有样本划分为恶意文件和非恶意文件两类;
[0047] 计算将收集的白名单样本划分成恶意文件的百分比,或者计算将收集的黑名单样本划分成非恶意文件的百分比,调整初始特征贡献和阈值以及初始特征贡献均值阈值,得到特征贡献和阈值以及特征贡献均值阈值。
[0048] 进一步的,按照下述方式计算所述软件或每个样本中提取的所有特征的特征贡献和: 其中,V为特征贡献和,σi为特征的贡献度,特征si∈S,S为所有软件或者样本所具有的静态特征、动态行为特征以及相关环境特征的集合,所述软件或者样本中提取的所有特征的集合为A,所述A为S的子集,
[0049] 进一步的,按照下述方式计算所述软件或每个样本中提取的所有特征的特征贡献均值: 其中,M为特征贡献均值,σi为特征的贡献度,特征si∈S,S为所有软件或者样本所具有的静态特征、动态行为特征以及相关环境特征的集合,所述软件或者样本中提取的所有特征的集合为A,所述A为S的子集, n为所述软件或者样本中提取的所有特征的集合A中的特征个数。
[0050] 进一步的,根据计算得到的每个样本中提取的所有特征的特征贡献和与预先确定的初始特征贡献和阈值的大小关系,以及计算得到的每个样本中提取的所有特征的特征贡献均值与预先确定的初始特征贡献均值阈值的大小关系,将收集的所有样本划分为恶意文件和非恶意文件两类之前,还包括:确定初始特征贡献和阈值以及初始特征贡献均值阈值;
[0051] 其中,按照下述方式确定初始特征贡献和阈值: 其中,VM为初始特征贡献和阈值,Vj为每个样本的特征贡献和,n为所有样本的个数;
[0052] 按照下述方式确定初始特征贡献均值阈值: 其中,MM为初始特征贡献均值阈值,Mi为每个样本的特征贡献均值,n为所有样本的个数。
[0053] 进一步的,将收集的所有样本划分为恶意文件和非恶意文件两类包括:如果一个样本的所有特征的特征贡献和大于初始特征贡献和阈值,并且,该样本的所有特征的特征贡献均值大于初始特征贡献均值阈值,则将该样本划分为恶意文件,否则,将该样本划分为非恶意文件。
[0054] 进一步的,调整初始特征贡献和阈值以及初始特征贡献均值阈值、得到特征贡献和阈值以及特征贡献均值阈值具体为:如果将白名单样本划分成恶意文件的百分比大于0.1%,则增大初始特征贡献和阈值以及初始特征贡献均值阈值,直到将白名单样本划分成恶意文件的百分比不大于0.1%,将调整后的初始特征贡献和阈值作为特征贡献和阈值,将调整后的初始特征贡献均值阈值作为特征贡献均值阈值。
[0055] 进一步的,判别模块具体用于根据计算得到的特征贡献和与预先得到的特征贡献和阈值的大小关系,以及计算得到的特征贡献均值与预先得到的特征贡献均值阈值的大小关系,确定所述未知软件中包含恶意代码或不包含恶意代码包括:如果计算得到的特征贡献和大于特征贡献和阈值,并且计算得到的特征贡献均值大于特征贡献均值阈值,则确定所述软件中包含恶意代码,否则确定所述软件中不包含恶意代码。
[0056] 本发明的有益效果是:
[0057] 本发明的自动化恶意代码属性特征提取量化方法解决了原来由人工经验判断一个恶意属性是否足够恶意以及恶意程度的问题,由于通过概率统计方法量化了特征贡献度,提高了自动化判别的准确率,大大减少了人工分析的劳动量,为认识未知恶意代码的行为及属性提供了丰富的知识,通过自动化判别恶意代码解决了目前恶意代码数量大爆炸导致的无法及时判别的问题,从而可以及时地响应处理恶意代码。附图说明
[0058] 为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0059] 图1为本发明恶意代码检测方法的流程图
[0060] 图2为本发明恶意代码检测系统的示意图。

具体实施方式

[0061] 为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明。
[0062] 本发明提供一种恶意代码检测方法和系统,通过自动化判别恶意代码解决了目前恶意代码数量大爆炸导致的无法及时判别的问题,从而可以及时地响应处理恶意代码。
[0063] 首先介绍本发明提供的恶意代码检测方法,如图1所示,包括:
[0064] S101、从未知是否包含恶意代码的软件中提取特征;
[0065] 其中,包括软件的静态特征,动态行为特征及相关环境特征。
[0066] S102、根据预先得到的每个特征的贡献度,计算所述软件中提取的所有特征的特征贡献和以及特征贡献均值,一个特征的贡献度是指所述特征对于判断未知软件是包含恶意代码的文件或不包含恶意代码的文件的贡献程度;
[0067] 其中,根据预先得到的每个特征的贡献度计算所述软件中提取的所有特征的特征贡献和以及特征贡献均值之前,还包括:
[0068] 收集白名单样本和黑名单样本,所述白名单样本是指样本的静态特征与样本所在的系统环境及样本的活动对系统不会产生威胁的软件,所述黑名单样本是指样本本身及其所在环境能够给系统带来威胁的软件;
[0069] 黑名单样本集合即恶意代码样本集合,主要收集近年内流行的各种类型的恶意代码包括木、蠕虫、感染式PE文件;白名单集合,包括系统可执行文件以及流行软件可执行程序,可参考表1,基本样本信息集合构成:
[0070]
[0071] 表1
[0072] 提取每个样本的特征:
[0073] 其中,包括样本的静态特征,动态行为特征及相关环境特征。
[0074] 动态特征的提取可通过Ring3层的Inline HOOK技术监视系统API的调用,对新创建的进程具有全局监视的能,远程注入的线程以及新生模块通过服务加载的服务进程进行全面的监视,可监视进程活动的文件、注册表、模块函数加载、进线程操作以及网络通信数据;同时也可采用内核级的HOOK进行监视;通过Ring3的网络监视得到与进程关联的网络数据包,同时通过对Ring3服务函数的监视达到了服务修改篡改与木马进程关联,解决了原有底层监视替换服务的注册表行为的主体均为services.exe进程;
[0075] 可执行文件的静态特征信息,包括字符串、PE文件结构、以及编译器、壳等信息;
[0076] 计算每个特征在所有的黑名单样本中出现的概率与在所有的白名单中出现的概率;
[0077] 记录分析黑名单样本的总数,并针对某个特征统计在黑名单中的个数,计算占有比率;同样分析白名单样本的数量并统计某个特征在白名单样本中的个数,计算占有比率,计算的一些参考数据参见表2,统计特征概率贡献表:
[0078]
[0079]
[0080]
[0081]
[0082] 表2
[0083] 根据每个特征在所有的黑名单样本中出现的概率与在所有的白名单样本中出现的概率,计算每个特征的贡献度;
[0084] 计算每个特征的贡献度后,还包括:对所有特征的贡献度进行排序,保存指定范围内的贡献度以及对应的特征。
[0085] 按照下述方式计算每个特征的贡献度:σi=(PM(si)-PT(si))/(PM(si)+PT(si)),其中,σi为特征的贡献度,特征si∈S,S为所有样本所具有的静态特征、动态行为特征以及相关环境特征的集合,PM(si)为特征si在黑名单样本集合M中出现的概率,PT(si)为特征si在白名单样本集合T中出现的概率。
[0086] σi体现了该特征在黑名单样本集与白名单样本集中的差异度。σi为正,则表明该特征更多的出现在黑名单样本中。极端情况下若σi=1则表明此特征只在黑名单样本中出现,σi为负则表明该特征主要出现在白名单样本集即受信软件中,若为σi=-1,则该特征只出现在白名单样本集中。σi体现了特征对软件是恶意的还是非恶意的贡献度。
[0087] 在实现中我们对大量的恶意样本集和白名单样本集合进行了统计,丢弃了σi值接近0的特征。这样的特征在恶意样本集和白名单样本集中差异很小,不能作为分类依据,对判别公式的贡献很小,且获取该类特征需要耗费时间,所以通过统计确定出了对判别公式贡献大的特征,取满足σi<-0.2Uσi>0.2的si。通过对特征更加细化的统计得到不同的σi。比如创建新文件这一特征的的σi并不高,但是细化到在某个目录下创建PE文件则变成一条具有高的贡献度的特征。再例如删除文件的特征贡献度一般,但细化到删除自身主体文件,则是木马程序等使用的隐蔽,销毁痕迹的常用手段,而其的概率差异更是很高,体现了其对恶意代码判别的贡献度很高,计算的参考数据见表2。
[0088] S103、根据计算得到的特征贡献和与预先得到的特征贡献和阈值的大小关系,以及计算得到的特征贡献均值与预先得到的特征贡献均值阈值的大小关系,确定所述软件中包含恶意代码或不包含恶意代码。
[0089] 其中,根据计算得到的特征贡献和与预先得到的特征贡献和阈值的大小关系,以及计算得到的特征贡献均值与预先得到的特征贡献均值阈值的大小关系,确定所述未知软件中包含恶意代码或不包含恶意代码之前,还包括:
[0090] 收集白名单样本和黑名单样本,所述白名单样本是指一个样本的静态特征与样本所在的系统环境及样本的活动对系统不会产生威胁的软件,所述黑名单样本是指样本本身及其所在环境能够给系统带来威胁的软件;
[0091] 提取每个样本的特征;
[0092] 计算每个样本中提取的所有特征的特征贡献和以及特征贡献均值;
[0093] 根据计算得到的每个样本中提取的所有特征的特征贡献和与预先确定的初始特征贡献和阈值的大小关系,以及计算得到的每个样本中提取的所有特征的特征贡献均值与预先确定的初始特征贡献均值阈值的大小关系,将收集的所有样本划分为恶意文件和非恶意文件两类;
[0094] 计算将收集的白名单样本划分成恶意文件的百分比,或者计算将收集的黑名单样本划分成非恶意文件的百分比,调整初始特征贡献和阈值以及初始特征贡献均值阈值,得到特征贡献和阈值以及特征贡献均值阈值。
[0095] 按照下述方式计算所述软件或每个样本中提取的所有特征的特征贡献和:其中,V为特征贡献和,σi为特征的贡献度,特征si∈S,S为所有软件或者样本所具有的静态特征、动态行为特征以及相关环境特征的集合,所述软件或者样本中提取的所有特征的集合为A,所述A为S的子集,
[0096] 按照下述方式计算所述软件或每个样本中提取的所有特征的特征贡献均值:其中,M为特征贡献均值,σi为特征的贡献度,特征si∈S,S为所有
软件或者样本所具有的静态特征、动态行为特征以及相关环境特征的集合,所述软件或者样本中提取的所有特征的集合为A,所述A为S的子集, n为
所述软件或者样本中提取的所有特征的集合A中的特征个数。
[0097] 根据计算得到的每个样本中提取的所有特征的特征贡献和与预先确定的初始特征贡献和阈值的大小关系,以及计算得到的每个样本中提取的所有特征的特征贡献均值与预先确定的初始特征贡献均值阈值的大小关系,将收集的所有样本划分为恶意文件和非恶意文件两类之前,还包括:确定初始特征贡献和阈值以及初始特征贡献均值阈值;
[0098] 其中,按照下述方式确定初始特征贡献和阈值: 其中,VM为初始特征贡献和阈值,Vj为每个样本的特征贡献和,n为所有样本的个数;
[0099] 按照下述方式确定初始特征贡献均值阈值: 其中,MM为初始特征贡献均值阈值,Mi为每个样本的特征贡献均值,n为所有样本的个数。
[0100] 将收集的所有样本划分为恶意文件和非恶意文件两类包括:如果一个样本的所有特征的特征贡献和大于初始特征贡献和阈值,并且,该样本的所有特征的特征贡献均值大于初始特征贡献均值阈值,则将该样本划分为恶意文件,否则,将该样本划分为非恶意文件。
[0101] 调整初始特征贡献和阈值以及初始特征贡献均值阈值、得到特征贡献和阈值以及特征贡献均值阈值具体为:如果将白名单样本划分成恶意文件的百分比大于0.1%,则增大初始特征贡献和阈值以及初始特征贡献均值阈值,直到将白名单样本划分成恶意文件的百分比不大于0.1%,将调整后的初始特征贡献和阈值作为特征贡献和阈值,将调整后的初始特征贡献均值阈值作为特征贡献均值阈值。
[0102] 根据计算得到的特征贡献和与预先得到的特征贡献和阈值的大小关系,以及计算得到的特征贡献均值与预先得到的特征贡献均值阈值的大小关系,确定所述未知软件中包含恶意代码或不包含恶意代码包括:如果计算得到的特征贡献和大于特征贡献和阈值,并且计算得到的特征贡献均值大于特征贡献均值阈值,则确定所述软件中包含恶意代码,否则确定所述软件中不包含恶意代码。
[0103] 本发明还提供了一种恶意代码检测系统,如图2所示,包括:
[0104] 特征提取模块201,用于从未知是否包含恶意代码的软件中提取特征;
[0105] 特征贡献库202,用于保存每个特征的贡献度、特征贡献和阈值和特征贡献均值阈值,一个特征的贡献度是指所述特征对于判断未知软件是包含恶意代码的文件或不包含恶意代码的文件的贡献程度;
[0106] 特征分析模块203,用于根据特征贡献库中保存的每个特征的贡献度,计算特征提取模块从所述软件中提取的所有特征的特征贡献和以及特征贡献均值;
[0107] 判别模块204,用于根据特征分析模块计算得到的特征贡献和与特征贡献库中保存的特征贡献和阈值的大小关系,以及特征分析模块计算得到的特征贡献均值与特征贡献库中保存的特征贡献均值阈值的大小关系,确定所述未知软件中包含恶意代码或不包含恶意代码。
[0108] 其中,特征提取模块201具体用于提取所述软件的静态特征,动态行为特征及相关环境特征。
[0109] 特征贡献库202具体用于计算保存特征的贡献度,包括:
[0110] 收集白名单样本和黑名单样本,所述白名单样本是指样本的静态特征与样本所在的系统环境及样本的活动对系统不会产生威胁的软件,所述黑名单样本是指样本本身及其所在环境能够给系统带来威胁的软件;
[0111] 提取每个样本的特征;
[0112] 计算每个特征在所有的黑名单样本中出现的概率与在所有的白名单样本中出现的概率;
[0113] 根据每个特征在所有的黑名单样本中出现的概率与在所有的白名单样本中出现的概率,计算每个特征的贡献度。
[0114] 计算每个特征的贡献度后,还包括:对所有特征的贡献度进行排序,保存指定范围内的贡献度以及对应的特征。
[0115] 按照下述方式计算每个特征的贡献度:σi=(PM(si)-PT(si))/(PM(si)+PT(si)),其中,σi为特征的贡献度,特征si∈S,S为所有样本所具有的静态特征、动态行为特征以及相关环境特征的集合,PM(si)为软件特征si在黑名单样本集合M中出现的概率,PT(si)为软件特征si在白名单样本集合T出现的概率。
[0116] 特征贡献库202还用于获取特征贡献和阈值以及特征贡献均值阈值,具体包括:
[0117] 收集白名单样本和黑名单样本,所述白名单样本是指一个样本的静态特征与样本所在的系统环境及样本的活动对系统不会产生威胁的软件,所述黑名单样本是指样本本身及其所在环境能够给系统带来威胁的软件;
[0118] 提取每个样本的特征;
[0119] 计算每个样本中提取的所有特征的特征贡献和以及特征贡献均值;
[0120] 根据计算得到的每个样本中提取的所有特征的特征贡献和与预先确定的初始特征贡献和阈值的大小关系,以及计算得到的每个样本中提取的所以特征的特征贡献均值与预先确定的初始特征贡献均值阈值的大小关系,将收集的所有样本划分为恶意文件和非恶意文件两类;
[0121] 计算将收集的白名单样本划分成恶意文件的百分比,或者计算将收集的黑名单样本划分成非恶意文件的百分比,调整初始特征贡献和阈值以及初始特征贡献均值阈值,得到特征贡献和阈值以及特征贡献均值阈值。
[0122] 按照下述方式计算所述软件或每个样本中提取的所有特征的特征贡献和:其中,V为特征贡献和,σi为特征的贡献度,特征si∈S,S为所有软件或者样本所具有的静态特征、动态行为特征以及相关环境特征的集合,所述软件或者样本中提取的所有特征的集合为A,所述A为S的子集,
[0123] 按照下述方式计算所述软件或每个样本中提取的所有特征的特征贡献均值:其中,M为特征贡献均值,σi为特征的贡献度,特征si∈S,S为所有
软件或者样本所具有的静态特征、动态行为特征以及相关环境特征的集合,所述软件或者样本中提取的所有特征的集合为A,所述A为S的子集, n为
所述软件或者样本中提取的所有特征的集合A中的特征个数。
[0124] 根据计算得到的每个样本中提取的所有特征的特征贡献和与预先确定的初始特征贡献和阈值的大小关系,以及计算得到的每个样本中提取的所有特征的特征贡献均值与预先确定的初始特征贡献均值阈值的大小关系,将收集的所有样本划分为恶意文件和非恶意文件两类之前,还包括:确定初始特征贡献和阈值以及初始特征贡献均值阈值;
[0125] 其中,按照下述方式确定初始特征贡献和阈值: 其中,VM为初始特征贡献和阈值,Vj为每个样本的特征贡献和,n为所有样本的个数;
[0126] 按照下述方式确定初始特征贡献均值阈值: 其中,MM为初始特征贡献均值阈值,Mi为每个样本的特征贡献均值,n为所有样本的个数。
[0127] 将收集的所有样本划分为恶意文件和非恶意文件两类包括:如果一个样本的所有特征的特征贡献和大于初始特征贡献和阈值,并且,该样本的所有特征的特征贡献均值大于初始特征贡献均值阈值,则将该样本划分为恶意文件,否则,将该样本划分为非恶意文件。
[0128] 调整初始特征贡献和阈值以及初始特征贡献均值阈值、得到特征贡献和阈值以及特征贡献均值阈值具体为:如果将白名单样本划分成恶意文件的百分比大于0.1%,则增大初始特征贡献和阈值以及初始特征贡献均值阈值,直到将白名单样本划分成恶意文件的百分比不大于0.1%,将调整后的初始特征贡献和阈值作为特征贡献和阈值,将调整后的初始特征贡献均值阈值作为特征贡献均值阈值。
[0129] 判别模块204具体用于根据计算得到的特征贡献和与预先得到的特征贡献和阈值的大小关系,以及计算得到的特征贡献均值与预先得到的特征贡献均值阈值的大小关系,确定所述未知软件中包含恶意代码或不包含恶意代码包括:如果计算得到的特征贡献和大于特征贡献和阈值,并且计算得到的特征贡献均值大于特征贡献均值阈值,则确定所述软件中包含恶意代码,否则确定所述软件中不包含恶意代码。
[0130] 本发明能够在一定程度上自动化提取恶意代码的属性特征,并量化该特征对恶意代码的判别贡献,进而进行自动化判别未知的恶意代码样本。为了提高自动化判别恶意代码的准确率与判别率同时降低误报率,提出了对判别过程中软件特征的选取量化与细化,解决了原来特征选取的经验化的问题,并挖掘出对判别具有更大贡献的特征点,在特征选取方面不再是原来的经验决定,而通过数据统计及差异算法来量化每个特征的对恶意代码判别贡献,使判别率得到提高、同时降低误报率。
[0131] 虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈