一种恶意软件行为特征标识方法

文档序号:6385699阅读:237来源:国知局
专利名称:一种恶意软件行为特征标识方法
技术领域
本发明涉及计算机安全技术领域,具体是一种恶意软件行为特征标识方法。
背景技术
随着网络技术的日益发展,黑客攻击变得日益猖獗。恶意软件是黑客们实施入侵、维持入侵的基础工具。传统上研究人员通过对恶意软件进行逆向工程,在反汇编基础上,对恶意软件的基本行为展开静态代码分析。但由于代码混淆技术以及软件加壳技术的发展,对恶意软件的反汇编变得十分困难,并且效率低下。由于静态代码分析的困难,研究者提出了针对恶意软件的动态行为分析方法。这种方法不再对恶意软件进行静态解析,而是让恶意软件运行在一个可控环境,通过监控其产生的行为来对恶意软件进行识别和分类。恶意软件行为序列常用来描述恶意软件的行为,并作为恶意软件自动化分析技术的重要输入参数来完成分析任务。常见的恶意行为序列表示方法有XML格式、文本格式等。在基于机器学习方法的自动化恶意行为分析技术中,恶意行为序列都要被转换为特征向量进而进行聚类或者分类研究。现有恶意行为序列表示方法类如XML格式、文本格式等,常保存了大量与自动化分析无关的冗余内容,导致恶意软件行为特征存储上的浪费以及在转换为数学特征向量时运算上的消耗。

发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种恶意软件行为特征标识方法,降低恶意软件自动化行为分析时的运算代价和存储代价,提高或者保持恶意软件不同变种间行为序列的相似性。为解决上述技术问题,本发明所采用的技术方案是一种恶意软件行为特征标识方法,该方法的步骤为I)通过分析工具获取带有时间戳的恶意软件的一个或者多个行为序列,其中恶意软件的每个进程对应一个行为序列,对所述行为序列按照时间戳进行排序,组合为当前行为序列;2)分析当前行为序列中可能出现的行为特征的上限,此处的行为特征表示所述当前行为序列中描述一个特定系统行为的标识对象,设定所述行为特征上限值为UpFeatures ;3)设定布尔变量为IsVisible,选择是否需要使用可视的单字节字符,所述的可视的单字节字符是指ASCII码表中从33到126之间的可以被屏幕显示的字符,不包含控制字符;4)根据UpFeatures和IsVisible的赋值,构建行为特征编码表;5)根据行为特征编码表,将原有文本格式或者XML格式的行为序列编码为单字节字符序列或者多字节字符序列,从而有效减小当前行为序列的存储代价和作为机器学习方法的输入参数时带来的运算代价;6)计算连续重复度L :在一个单字节字符序列或者多字节字符序列中,定义每一个字符为一个特征,如果一个特征在所述单字节字符序列或者多字节字符序列中连续出现的次数大于1,则认为所述特征存在连续重复度,其中连续出现的次数即为连续重复度L ;7)设定重复度压缩起始值StartNum ;8)如果L>=StartNum,则进入步骤9),否则,所述单字节字符序列或者多字节字符序列长度保持不变;9)对所述单字节字符序列或者多字节字符序列进行对数级重复度压缩,从而提高或者保持恶意软件不同变种间行为序列的相似性。所述步骤I)中规则1-1):对同一恶意软件的多个进程对应产生的多个行为序列进行排序合并时,满足以下规则[I]同一进程的行为序列按时间顺序排列,越早调用的行为特征位置越靠前;[2]在合并后的总序列中,不同进程的行为序列不交叉,把每个序列当做一个整体放入总序列;[3]总序列中,不同进程对应的行为序列顺序按照每一个进程对应的第一个行为特征所发生的时间点进行排序,最早调用的进程排在最前。所述步骤4)中

规则4-1):在构建行为特征编码表的过程中,如果IsVisible为TRUE,则表示编码表全部采用可视单字节字符。在ASCII码表中,由于可视的单字节字符为94个,即单字节对应的十进制值从33到126之间(包括33和126)的所有字符是可视的,所以可根据以下规则制定编码表[I]当 UpFeatures <= 94 时,只需在 ASCII 码表的 33 到 126 (此处的 33 和 126
均为十进制)之间任意选择UpFeatures个不同的ASCII字符来与行为特征--对应构成编
码表;[2]当UpFeatures > 94时,一个行为特征不能只用一个单字节字符表示,需要2个或者多个字符来表示。此字符个数最小值N可以通过如下公式判断94N_1<UpFeatures< = 94N (I)得到N值后,利用N个单字节字符表示一个行为特征,基于此原则构建编码表。由于942已经是一个较大的数值,一般来讲,恶意软件行为特征独立数目的上限不会超过此值,因此利用2个字符来表示一个行为特征足以满足常规需求,2个单字节可视字符组合共可以表示8836个独立的行为特征。规则4-2):在构建行为特征编码表的过程中,如果IsVisible为FALSE,则表示编码表可不全部采用可视单字节字符。此时一个字节可以独立的对应28 = 256个行为特征,构建编码表的规则为[I]当UpFeatures < = 256时,则在0到255之间随机的选取UpFeatures个数值来对应行为特征。此时表示0到255的数值采用十六进制形式来构建编码表,定义每个数值为恒常的2个可视字符,如十进制的0用00表示,十进制的255用FF表示。在需要将编码后的行为特征存储到文件系统时,可采用文本模式或者二进制模式将十六进制字符序列存入文件系统。如果采用二进制模式,则一个行为特征虽对应两个十六进制字符,但写入文件的大小仍为一个字节;如果采用文本模式,则为2个字节。[2]当UpFeatures > 256时,一个行为特征不能只用一个字节的字符表示,需要2个或者多个字节的字符来表示。其最小字节数N可以通过如下公式判断256N_1<UpFeatures< = 256N (2)得到N值后,利用2N个十六进制字符来表示一个行为特征,基于此原则构建编码表。同理在行为序列本地化存储时,可以采用文本模式或者二进制模式。步骤6)中的重复度是指恶意软件的行为序列中,常会因为一次动态运行的偶然情况,出现一个系统行为多次甚至上千次的被连续重复调用。在使用机器学习方法对恶意软件的行为进行聚类或者分类研究中,行为序列中行为特征的出现次序和出现次数是一个重要的考量对象,研究者希望比较不同恶意软件间的行为序列的相似性来对恶意软件进行分类或者归类,但这种意外出现的高重复度现象会显著的增大某个特征的出现次数,也就会破坏本来可能存在的恶意软件间的相似性。已有处理方法常武断的在重复度大于某个阈值时,直接去除后续出现的重复特征,这种方法虽然也会很大程度上消除重复度的影响,但显然不够灵活,不能根据不同语义环境自动调整。此处提出的对数级的重复度压缩方法,将在保持行为序列中常规行为特征不变的情况下,将意外出现的高重复度子序列压缩到一个合理长度范围,并设定了扩展系数和压缩系数,让使用者能够在不同语义环境中根据需要灵活调整长度范围。这种方法在实例分析中被证明能在有效降低行为序列长度的前提下,保持恶意软件行为分析的鲁棒性。而总行为序列长度的降低,则有助于提高运算效率和减低存储代价。连续重复度L :在一个单字节字符序列或者多字节字符序列中,定义每一个字符为一个特征,如果一个特征在序列中连续出现的次数大于1,则认为该特征存在连续重复度,其中连续出现的次数定义为重复度L。重复度压缩起始值StartNum :连续L个特征组成的单字节字符序列或者多字节字符序列是否需要被压缩是根据变量StartNum的大小判断的。如果L>=StartNum,则启动压缩,否则,子序列长度保持不变。这个变量StartNum被定义为重复度压缩起始值。基于以上两个定义,定义对数级重复度压缩方法为newL = StartNum+^ *Round (Ioga (L-StartNum)) (3)其中0为扩展系数,a为压缩系数,newL则表示步骤6)中单字节字符序列或者多字节字符序列被压缩后的新长度。RoundO函数表示对括号中的值进行四舍五入。一般应用中,a取2,P取I就可以满足基本需求。与现有技术相比,本发明所具有的有益效果为本发明的方法能够在不失去行为序列具有的分析价值前提下,有效减小行为序列的大小,从而降低运算代价和存储代价,提高或者保持恶意软件不同变种间行为序列的相似性,从而很好地标识恶意软件行为。


图1为本发明方法流程 图;图2为行为特征编码表构建规则框图。
具体实施例方式以下结合附图详细说明本发明的具体实施方式
。图1所示的方法可以分为恶意软件行为序列的编码方法和重复度压缩方法。以下结合具体恶意软件malware, exe说明恶意软件行为序列的编码方法步骤一获取恶意软件行为序列使用一种沙箱XSandbox对某一恶意软件malware, exe进行动态行为分析,共获取3个进程对应的行为序列P1,P2,P3。此处釆集的行为序列为malware, exe的部分API调用序列,釆用API Hook方法获取。这里给出三个进程P1,P2,P3对应的部分行为序列SI,S2,S3 表I Pl对应的部分行为序列SI
权利要求
1.一种恶意软件行为特征标识方法,其特征在于,该方法的步骤为 1)通过分析工具获取带有时间戳的恶意软件的一个或者多个行为序列,其中恶意软件的每个进程对应一个行为序列,对所述行为序列按照时间戳进行排序,组合为当前行为序列; 2)分析当前行为序列中可能出现的行为特征的上限,此处的行为特征表示所述当前行为序列中描述一个特定系统行为的标识对象,设定所述行为特征上限值为UpFeatures ; 3)设定布尔变量为IsVisible,选择是否需要使用可视的单字节字符,所述的可视的单字节字符是指ASCII码表中从33到126之间的可以被屏幕显示的字符,不包含控制字符; 4)根据UpFeatures和IsVisible的赋值,构建行为特征编码表; 5)根据行为特征编码表,将原有文本格式或者XML格式的行为序列编码为单字节字符序列或者多字节字符序列,从而有效减小当前行为序列的存储代价和作为机器学习方法的输入参数时带来的运算代价; 6)计算连续重复度L:在一个单字节字符序列或者多字节字符序列中,定义每一个字符为一个特征,如果一个特征在所述单字节字符序列或者多字节字符序列中连续出现的次数大于1,则认为所述特征存在连续重复度,其中连续出现的次数即为连续重复度L ; 7 )设定重复度压缩起始值StartNum ; 8)如果L>=StartNum,则进入步骤9),否则,所述单字节字符序列或者多字节字符序列长度保持不变; 9)对所述单字节字符序列或者多字节字符序列进行对数级重复度压缩,从而提高或者保持恶意软件不同变种间行为序列的相似性。
2.根据权利要求1所述的恶意软件行为特征标识方法,其特征在于,所述步骤I)中,对所述序列按照时间戳进行排序时,满足以下规则 1)同一进程的行为序列按时间顺序排列,越早调用的行为特征位置越靠前; 2)在合并后的总序列中,不同进程的行为序列不交叉,把每个行为序列当做一个整体放入总序列; 3)总序列中,不同进程对应的行为序列顺序按照每一个进程对应的第一个行为特征所发生的时间点进行排序,最早调用的进程排在最前面。
3.根据权利要求1所述的恶意软件行为特征标识方法,其特征在于,所述步骤4)中 1)在构建行为特征编码表的过程中,如果IsVisible为TRUE,则表示编码表全部采用可视单字节字符,根据以下规则构建行为特征编码表 当UpFeatures < = 94时,在ASCII码表的33到126之间任意选择UpFeatures个不同的ASCII字符来与行为特征一一对应构成编码表,其中33和126均为十进制; 当UpFeatures > 94时,一个行为特征不能只用一个单字节字符表示,需要2个或者多个字符来表示,字符个数最小值N通过如下公式计算94N_1<UpFeatures< = 94N ; 得到N值后,利用N个单字节字符表示一个行为特征,构建编码表; 2)在构建行为特征编码表的过程中,如果IsVisible为FALSE,则表示编码表可不全部采用可视单字节字符,此时一个字节可以独立的对应28 = 256个行为特征,构建行为特征编码表的规则为当UpFeatures〈 = 256时,则在O到255之间随机的选取UpFeatures个数值来对应行为特征,此时表示O到255的数值采用十六进制形式来构建行为特征编码表; 当UpFeatures > 256时,一个行为特征不能只用一个字节的字符表示,需要2个或者多个字节的字符来表示,最小字节数N通过如下公式计算256N_1<UpFeatures< = 256N (2) 得到N值后,利用2N个十六进制字符来表示一个行为特征,构建行为特征编码表。
4.根据权利要求1所述的恶意软件行为特征标识方法,其特征在于,所述步骤6)中,利用如下公式对所述单字节字符序列或者多字节字符序列进行对数级重复度压缩newL = StartNum+3 *Round (Ioga (L-StartNum), 其中,P为扩展系数,a为压缩系数,newL表示所述单字节字符序列或者多字节字符序列被压缩后的长度,RoundO函数表示对括号中的值进行四舍五入,L为连续重复度,StartNum为重复度压缩起始值,如果L>=StartNum,则启动压缩,否则,所述单字节字符序列或者多字节字符序列长度保持不变。
5.根据权利要求4所述的恶意软件行为特征标识方法,其特征在于,所述压缩系数a为2 ;扩展系数P为I。
6.根据权利要求1所述的恶意软件行为特征标识方法,其特征在于,所述步骤I)中,所述分析工具为沙箱XSandbox。
全文摘要
本发明公开了一种恶意软件行为特征标识方法,通过沙盒或者其他分析工具获取带有时间戳的恶意软件的一个或者多个行为序列,对这些行为序列按照时间戳进行排序,并组合为当前行为序列;分析当前行为序列中可能出现的行为特征的上限;选择是否需要使用可视的单字节字符;根据行为特征的上限值和是否需要可视字符的要求,构建行为特征编码表;根据编码表,将当前行为序列转换为单字节字符序列或者多字节字符序列;对单字节字符序列或者多字节字符序列进行对数级的高重复度压缩。本发明的方法能够在不失去行为序列具有的分析价值前提下,降低运算代价和存储代价,提高或者保持恶意软件不同变种间行为序列的相似性。
文档编号G06F21/56GK103065093SQ20121057964
公开日2013年4月24日 申请日期2012年12月27日 优先权日2012年12月27日
发明者杨岳湘, 乔勇, 曾迎之, 唐川, 叶昭晖, 李强 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1