[发明专利]基于静态特征的PE文件加壳检测方法有效
申请号: | 201010594433.6 | 申请日: | 2010-12-17 |
公开(公告)号: | CN102024112A | 公开(公告)日: | 2011-04-20 |
发明(设计)人: | 王俊峰;刘达富;黄敏桓;佘春东 | 申请(专利权)人: | 四川大学 |
主分类号: | G06F21/00 | 分类号: | G06F21/00 |
代理公司: | 成都信博专利代理有限责任公司 51200 | 代理人: | 舒启龙 |
地址: | 610065 四川*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 静态 特征 pe 文件 检测 方法 | ||
技术领域
本发明涉及文件安全技术领域,特别是一种新颖而实用的基于静态特征的PE文件加壳检测方法。
背景技术
作为病毒与反病毒程序之间竞争的结果,代码模糊技术被病毒程序普遍采用。多态技术、变形技术、加壳与加密技术已被证明是反抗传统基于签名的反病毒软件的有效技术。在这些技术中,加壳技术使用得最为广泛。加壳是给定一程序P,产生出一个新的程序P′,新程序P′中包含了被加了密的程序P以及一段解密指令。当P′执行时,它首先执行解密指令来对程序P进行解密,然后再执行解密后的程序P。如果程序P含有恶意代码,基于签名的反病毒软件就有可能检测出来。然而,如果程序P加壳后变成了程序P′,基于签名的反病毒软件就很难检测出来。
通用解壳工具能在不预知程序P′所使用的加密算法的情况下将P解壳。通用解壳工具通过在一个隔离的环境中(虚拟机或仿真器)运行程序P′来使P动态解壳。解壳后,再用传统基于签名的反病毒软件扫描解壳后的程序P,这样就能大大提高对病毒的检测准确率。例如Martignoni等用OmniUnpack工具来监测内存中应用程序的执行,并检测是否有尝试执行被动态解密后的代码的行为。如果发现有尝试执行被动态解密后的代码的行为,OmniUnpack就会使用基于签名的反病毒软件来扫描被监测应用程序的代码,如果发现有恶意代码,OmniUnpack工具就会中止该应用程序的执行。OmniUnpack可被集成到操作系统内核中,用来监测每个应用程序的执行。
上述方法面临的主要问题是:由于事先不知道待检测的可执行文件是否加了壳,所以所有待检测的可执行文件在由反病毒软件检测前,都不得不先经通用解壳工具处理。由于通用解壳工具涉及的计算量大,导致处理每个可执行文件所花的时间从几十秒到几分钟不等。这样当对大量可执行文件进行病毒检测时就可能花上几小时甚至几天才能完成。这会极大妨碍对病毒的检测。
传统基于签名的加壳检测工具相对来讲具有低误报率的优点,但缺点是漏报率较高。主要原因是病毒制作者们常通过改写加壳工具来产生新的加壳工具,以此来避开基于签名的加壳检测工具的检测。
Bintropy工具使用基于字节熵的文件加壳检测方法。Bintropy工具把可执行文件分为多个块,每块包含256个字节,然后计算三个值:每个块的熵,所有块的平均熵,以及所有块中最大的熵。给定一组加了壳的可执行文件,分别计算每个可执行文件的块平均熵以及块最大熵。然后,Bintropy工具使用统计的方法,计算出一个块平均熵和一个块最大熵,然后以此二值为文件加壳检测的阈值。测试的时候,如果一个可执行文件的块平均熵和最大熵都分别高于设定的块平均熵阈值和块最大熵阈值,则认为该可执行文件加了壳。该方法的主要缺点是判断指标单一,并且使用统计方法得出的检测规则可能准确度不高。
发明内容
本发明的目的在于提出一种在32位和64位Microsoft Windows操作系统下基于静态特征的PE(Portable Executable)文件加壳检测方法,以使检测过程耗时少、降低误报率和漏报率。
本发明的目的是这样实现的:一种基于静态特征的PE文件加壳检测方法,按以下步骤进行:
针对每一个待检测的PE文件,首先对其进行静态文件分析,提取出该PE文件的9个特征值,然后使用PE文件分类器来进行加壳检测;检测为加壳的PE文件就用通用解壳工具来进行解壳,然后再使用基于签名的反病毒软件来检测其是否为病毒;检测为未加壳的PE文件则跳过通用解壳工具的处理,直接使用基于签名的反病毒软件来进行病毒检测;
上述PE文件的9个特征值定义如下:
1)标准节的个数;
2)非标准节的个数;
3)具有可执行属性的节的个数;
4)同时具有可读/可写/可执行属性的节的个数;
5)IAT表中所含表项的个数;没有IAT表时取值-1;
6)PE文件头的熵;取值0~8;
7)代码节的熵;取值0~8;没有代码节时取值-1;
8)数据节的熵;取值0~8;没有数据节时取值-1;
9)PE文件的熵;取值0~8;
上述分类器选用以下四种之一:
a、贝叶斯分类器;
b、Weka开发的基于C4.5决策树分类算法的J48决策树分类器;
c、Weka开发的基于K最近邻居分类算法的IBk分类器;
d、Multi Layer Perceptron分类器。
上述分类器优选为Multi Layer Perceptron分类器。
分类器应经过如下训练步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川大学,未经四川大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010594433.6/2.html,转载请声明来源钻瓜专利网。