扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
四、特征提取环节
另外一些误报,不是对样本的认定过程出现了问题,而是在正确的病毒样本上所提取的特征会在正常程序上被匹配到。
哪些环节引发特征提取导致的误报呢?最典型的是下面几种:
1、感染
对感染病毒特征的提取,取决于对病毒体位置的准确判定,病毒分析工程师必须能有效找到病毒代码和宿主程序之间的边界,否则如果误把特征提取到正常程序上,不但不能有效查杀病毒,反而导致了误报。这种事件并不常见,但确实发生过。
2、壳
如果一种壳,反病毒软件没有脱掉的能力,那么用这个壳处理过的有害程序,特征通常会提取在静态文件上,而如果特征的位置,正好在壳的代码,则有可能导致反病毒软件会误报所有的用这种壳压缩过的可执行程序。
3、自解压文件
广义自解压文件,不仅包括类似WINZIP、WINRAR生成的能够自动运行、自我解压的程序,也包括很多安装包制作工具制作的安装文件。自解压的机理也会被病毒作者利用,在很多木马作者构造社交工程的过程中,他们认为安装包制作工具比类似EXEBIND的机制更为好用,也更有欺骗性。因此他们用自解压包制作工具把正常程序和他们的木马打包放在一起,让用户误认为是在安装正常程序,但实际上木马被执行了。
自解压文件误报是自大量DIY蠕虫开始的,在病毒作者拼凑完成一个DIY蠕虫后,如何让这些散兵游勇成为一个文件呢?他们想到了利用WINZIP之类的工具作个自解压包,并设定其中的某个程序被解压后自动执行。
自解压导致的误报的原因与壳误报的原因很类似,就是特征被提取到了自解压的代码上,这样所有用该种工具制作的包裹可能都会被误报。
但细致来看,自解压误报还分很多种情况,一种情况是病毒分析工程师没有识别出这是一个自解压包,而可能把这种包括当作某种EXE结合器来看待。还有一种情况是,虽然识别出了自解压包裹,但必须能够保证,反病毒软件需要能够识别,并删掉这个自解压包裹,比如DIY蠕虫,前者是判定上的错误,而后者是特征提取经验的不足。
需要说明的是,由于反病毒软件通常对于自解压包的检测,与包裹文件检测是相类似的,即都需要解开察看内部的文件,因此反病毒软件和后段处置体系,是有常见自解压包裹的类型识别和处理能力的,因此对所能识别的自解压程序产生误报的原因,往往是因为病毒作者对DIY蠕虫或者木马的自解压包进行了2次修改,如通过PE_Patch修改了入口,导致分拣机制无法判定这是一个自解压样本,这样分拣机制就会把非包裹的属性送给反病毒工程师,反病毒工程师此时就有可能直接在代码段上提取特征了。
4、编译器
对于不加壳的样本,通常的病毒特征提取,为了保证质量,通常都会提取在代码段上,这就带来了一个隐含的问题,即编译器误报。不同的编译器生成的目标代码,会有不同的特性。有的编译器编译不同的程序,在入口处就会表现出明显不同的特性,但有的编译器则在入口之后,有一个相对长的相似部分。如果提取在这个相似部分上,可能会导致反病毒软件误报。通常对于主流编译器,反病毒厂商都会有一个基本的提取原则或者禁忌。但还有一些覆盖率不高、用户较少的边缘开发工具,反病毒厂商对此搜集的则未必齐全。
在编译器这里需要说明的是,有时误报源于壳与编译器的组合,如果一种壳不能脱掉的话,对于壳的特征提取往往会有一些经验方法,但那些编译结果代码相似段较长的编译器编译出来的不同程序,用壳压缩过之后,可能还会出现大量的相似部分。如果提取在这个位置上依然会产生误报。
5、非典型性特征提取
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。