一种多维无特征码恶意程序检测方法

文档序号:8457505阅读:866来源:国知局
一种多维无特征码恶意程序检测方法
【技术领域】
[0001] 本发明属于计算机反病毒领域,具体涉及一种多维无特征码恶意程序检测方法。
【背景技术】
[0002] 随着信息化在各行各业应用的不断深入,计算机安全问题越来越受到重视。在计 算机安全问题中,计算机病毒等恶意代码是一个最主要的安全威胁。目前,针对计算机病毒 的定义不同学者有不同的理解,在1994年2月18日,我国正式颁布实施了《中华人民共和 国计算机信息系统安全保护条例》,在第二十八条中明确指出:"计算机病毒,是指编制或者 在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的 一组计算机指令或者程序代码。"这是我国对于计算机病毒的正式定义,但随着计算机黑客 技术的不断发展变化,新的攻击手段层出不穷,通常将这些对计算机安全构成威胁的有别 于正常程序的计算机程序统称为恶意程序,如破坏系统的安全、损害系统或未得到用户许 可的情况下获得用户的敏感信息等。恶意代码主要包括传统计算机病毒、宏病毒、恶意脚 本、木马、蠕虫以及最近几年出现的僵尸网络等。
[0003] 目前,针对恶意程序的检测主要包括基于特征码检测、行为检测和文件完整性校 验检测三种方法。基于特征码检测需要事先构建一个恶意程序特征码库,该特征码库的构 建需要事先捕获恶意程序样本,然后进行分析提取出最具有代表性的一个或多个字符串, 添加到恶意程序特征码库。对待检测程序基于构建好的恶意程序特征码库进行扫描匹配, 如果成功匹配则说明检测到一个恶意程序,否则没有。因此,基于特征码检测方法的一个前 提是有一个完备的恶意程序特征码库,如果特征码库不完备,则必然导致漏报。但在实际应 用过程中,不可能生成一个绝对完备的恶意程序特征码库,同时新的未知恶意程序的特征 码不可能提前生成,因此对新的未知恶意程序和已知恶意程序的变种无能为力。
[0004] 基于行为的检测方法利用恶意程序的特有行为特征来进行检测,常见的恶意程序 行为包括复制自身到指定目录、创建启动项、关闭安全软件、删除文件等。通过对正在运行 的程序的行为进行监测,如果发现程序具有这些典型恶意程序行为的检测,则进行报警。基 于行为的检测方法依据是程序的行为特征,但恶意程序和合法程序存在一些相同或相似的 行为,如删除文件、复制文件,因此基于行为的检测方法,存在很大的误报。
[0005] 文件完整性校验检测方法首先计算正常文件内容的校验和,然后将文件校验和保 存起业,然后在文件使用时或定期不定期计算其现在的校验和与原来保存的文件校验和是 否一致,如一致则说明文件没有被感染,否则说明文件被感染。文件完整性校验方法可以检 测已知和未知恶意程序,但与基于行为的检测方法缺点一样,存在很大的误报,因为文件内 容发生改变并非文件是由于恶意程序感染的唯一原因,文件内容的改变有可能是正常程序 引起的,而且这种方法也会影响文件的运行速度。
[0006] 随着Internet的迅速发展,恶意程序的产生与传播更加快捷,新型高危恶意程序 造成的危害日益增大。加之新型恶意程序构建技术,如会自动进行变形、加密、解密等的采 用,对传统恶意程序检测技术提出严峻的挑战,因此,研制新型恶意程序检测技术是当前应 对恶意程序的一个亟待解决的问题。

【发明内容】

[0007] 本发明的目的是针对计算机系统中恶意程序检测问题,提供一种多维无特征码恶 意程序检测方法。本发明不用建立传统恶意程序检测所需要的庞大特征码库,通过建立计 算机正常程序模型,从而产生覆盖恶意程序空间的检测器,实现对恶意程序的检测,本发明 不依赖特征码匹配检测恶意程序,对待检测程序不区分已知恶意程序或未知恶意程序,因 此具有良好的未知恶意程序检测能力。
[0008] 本发明的多维无特征码恶意程序检测方法包括如下步骤:
[0009] 步骤Sl :收集计算机中的正常程序训练集BPa、BPb和恶意程序训练集EP,并基于 训练集BPa和EP构建不同长度正常程序字符串集合库;
[0010] 步骤S2:基于构建的不同长度正常程序字符串集合库,对正常程序训练集BPb中 的每一个正常程序提取其多维特征,计算各正常程序的特征向量和泛化值,构建正常程序 丰旲型;
[0011] 步骤S3 :基于所述正常程序模型,生成覆盖恶意程序空间的检测器;
[0012] 步骤S4 :对特检测程序p进行特征提取,生成特检测程序p的特征向量,计算特检 测程序P的特征向量与检测器之间的欧几里德距离,若所述欧几里德距离小于或等于检测 器的检测值,则特检测程序P为恶意程序,否则为正常程序。
[0013] 由于本发明采用了以上的技术方案,因此本发明可以达到以下的有益效果:
[0014] 1、本发明可有效加快检测速度。由于本发明不基于传统特征码匹配的方法,随着 恶意程序数量的不断增加,其特征码库也将越来越大,扫描匹配耗时越来越长;本发明勿需 特征码,仅需提取程序特征即实现对程序的检测,故检测速度更快。
[0015] 2、本发明具有检测未知恶意程序的能力。由于本发明不基于传统特征码匹配的方 法,采用通过构建计算机正常程序模型,生成覆盖恶意程序空间的检测器,实现对恶意程序 的检测,因此本发明具有检测未知恶意程序的良好能力。
【附图说明】
[0016] 图1为本发明的系统框架图;
[0017] 图2为本发明【具体实施方式】中,生成正常程序字符串库的流程图;
[0018] 图3为本发明【具体实施方式】中,构建正常程序模型的流程图;
[0019] 图4为本发明【具体实施方式】中,生成检测器的流程图;
[0020] 图5为本发明【具体实施方式】中,对待检测程序判定过程的流程图。
【具体实施方式】
[0021] 为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发 明作进一步地详细描述。
[0022] 如图1所示,本发明的一种多维无特征码恶意程序检测方法包括如下步骤:
[0023] 步骤Sl :收集计算机中的正常程序训练集5Λ,、和恶意程序 训练集EP (通常选择典型的正常程序和恶意程序),基于训练集BPa和EP构建不同长度正 常程序字符串集合库;
[0024] 步骤S2 :基于构建的不同长度正常程序字符串集合库,对正常程序训练集BPb中 的每一个正常程序提取其多维特征,计算该正常程序的特征向量和泛化值,从而构建起计 算机中正常程序模型;
[0025] 步骤S3,基于所构建的正常程序模型,生成覆盖恶意程序空间的检测器;
[0026] 步骤S4 :对特检测程序p首先提取其特征,生成特检测程序p的特征向量,并计 算该特征向量与检测器之间的欧几里德距离,若该欧几里德距离小于或等于检测器的检测 值,则判定特检测程序P为恶意程序,否则判定特检测程序P为正常程序。
[0027] 具体的,在上述的步骤Sl中,如图2所示,进行构建不同长度正常程序字串集合库 的步骤包括:
[0028] 步骤Sll :从正常程序训练集BPa中的一个正常程序bp依次提取长度为L的字符 串bpy每次滑动一个字节,即对每个正常程序bp,存在多个长度为L的字符串bp^
[0029] 步骤S12 :计算字符串bp^在恶意程序训练集EP中字符串出现的次数Cbp和文件出 现的次数Fbp;
[0030] 步骤S13 :判断Cbp/Fbp< λ,λ为预设阈值,如果满足则转步骤S15,否则转步骤 S14;由于正常程序和恶意程序可能会拥有相同的功能,如删除文件操作,因此,通过引入阈 值λ选出最能代表正常特征的字符串,其具体取值基于系统环境根据经验值进行设置,λ 的参考取值范围为1. 〇~10. 0。
[0031] 步骤S14 :对不满足步骤S13条件的字符串,则丢弃当前字符串bp^
[0032] 步骤S15 :对满足步骤S13条件的字符串,计算当前字符串bp^在正常程序训练集 BPa中字符串出现的次数C bp和文件出现的次数P bp,计算C bp/P _作为当前字符串 bpj勺权值ω,即定义提取的字符串为一个二元组〈bp u ω > ;
[0033] 步骤S16 :将字符串bpjl加到长度为L的字符串集合BPS冲,即BPS f {bpsL|bpsL=< bp L, ω > };
[0034] 步骤S17 :继续从正常程序训练集BPa选择其他正常程序,重复步骤S21至步骤 S26,将字符串添加到长度为L的字符串集合BPS^中;
[0035] 步骤S18 :将字符串长度L取不同的值,重复步骤Sll至步骤S17,生成不同长度正 常程序字符串集合库BPS,即BPS = BPS1U BPS2U BPS3 U…,其中下标用于标识字L取不 同值时所对应的正常程序字符串集合库。
[0036] 具体的,在上述的步骤S2中,如图3所示,提取程序特征向量,构建正常程序模型 的步骤包括:
[0037] 步骤S21 :从正常程序训练集BPb中的一个正常程序bp依次提取字符串长度为L 的字符串bpy每次滑动一个字节;
[0038] 步骤S22 :计算字符串bp^在BPS中字符串长度为L的字符串集合BPS ^中出现的 次数与从正常程序bp中提取长度为L的字符串总数之比,作为bp的一维的特征值即L 的每个取值对应bp的一维特征值;
[0039] 步骤S23 :在字符串长度L的当前取值下,累加正常程序bp在BPS集合中出现的 字符串对应的字符串权值,其计算结果用I表示;
[0040] 步骤S24:字符串长度L取不同值,重复上述步骤,得到正常程序bp的多维特 征(维数取决于L的取值个数),从而得到一个表示正常程序bp的特征向量,即bp = < c2, (V> ;将正常程序bp在BPS出现的字符串权值的累加值除以系数δ (〇 < δ < 1) 作为正常程序bp的泛化值(假设L的取值个数为Ν,则每个正常程序的泛化值为:Ν个I 累加和除以S ),采用泛化值的方法可有效减少训练用正常程序的数量;进一步地,如果前 述字符串权值越大,表明出现次数越多,正常程序也越多,则可以赋予一个较大的泛化值, 可代表更多未知的正常程序;
[0041] 步骤S25 :对正常程序训练集BPb中的所有正常程序重复上述步骤,从而构建起正 常程序模型。
[0042] 具体的,在上述的步骤S3中,如图4所示,生成检测器的步骤包括:
[0043] 步骤S31 :随机生成一个检测器,生成检测器的维数与步骤S2中所提取的正常程 序特征向量的维数一致;
[0044] 步骤S32 :计算随机生成的检测器与正常程序模型中向量的最短欧几里德距离 dm
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1