本发明专利技术公开了一种用于检测和清除计算机病毒的方法和装置。所述方法包括:利用脚本语言编写用于检测和清除计算机病毒的脚本并且将所述脚本编译为二进制的病毒库文件;用于检测计算机病毒的检测处理,其包括:基于所述病毒库文件中包含的多个病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理;将定位处理的结果作为变量进行运算处理和/或逻辑控制处理;基于所述病毒库文件中包含的多个病毒记录,对运算处理和/或逻辑控制处理的结果进行匹配处理,其中所述匹配处理包括二进制匹配处理和/或opcode匹配处理;以及对与所述多个病毒记录中的一个或多个匹配的待检测的文件进行病毒清除处理。
【技术实现步骤摘要】
本专利技术涉及计算机安全,具体涉及一种用于检测和清除计算机病毒的方法和装置。
技术介绍
使用特征码扫描进行病毒样本识别是计算机反病毒最早使用的病毒查杀技术。计算机反病毒技术发展几十年来,虽然又出现了行为查杀等病毒查杀技术,但特征码扫描以其准确和稳定等特点,依然是目前主流计算机反病毒软件病毒识别所采用的主要技术,是目前反病毒技术中的基础技术。 特征码扫描是指采用事先提取的病毒特征对未知样本进行扫描和判断的方法。特征的提取是由人工分析或自动分析识别确定为病毒后,对病毒样本提取的二进制或其它特征,这种特征是该种病毒独有的、区别于其它病毒或正常文件的。查毒时,反病毒软件依次使用其病毒库中的特征对未知文件进行扫描,如果某一特征匹配成功,则表示该文件为该特征所代表的病毒,如果所有特征均未匹配,则认为该文件不是病毒,是正常文件。特征码扫描从根本上说是一种特征识别判定技术,其不但可以用于扫描判定病毒,也可以用于扫描判定正常文件,目前在反病毒软件中也被广泛的用于正常样本的判定。特征码扫描技术具有准确、误报率低、实现技术简单的优点,其技术成熟,因此目前依然是反病毒技术中病毒识别的主要技术。但同时,特征码扫描技术也有明显的缺点,其对多态变形、加密的病毒的识别能力低,且不能识别未知病毒。除特征码扫描外,目前反病毒中常用的病毒识别技术还有“行为查杀”技术,其基本原理是指对已运行的样本或在反病毒软件中可控环境中(常见为反病毒虚拟机)运行样本,通过记录和判定样本的运行行为来识别病毒。行为查杀技术具有能够查杀未知病毒的能力,但误报率高是其目前依然无法解决的最大缺点。反病毒软件使用的杀毒技术,主要是指其对感染型病毒样本(被感染型病毒感染的正常文件)的清除能力,对于非感染型病毒,则简单的删除即可。感染型病毒的清除,目前主要采用使用的杀毒记录杀毒和硬编码杀毒两种方法。杀毒记录杀毒是指,在分析人员分析测试过后编写杀毒记录,查杀时判定病毒后执行对应的杀毒记录中的杀毒方法进行杀毒。杀毒记录中描述的是其杀毒引擎支持的杀毒方法(如修改程序入口、截取文件尾部等)及参数的组合。硬编码杀毒是指编写专门的程序代码进行杀毒,其应用于杀毒情况较复杂的情况,例如病毒专杀程序。这里选择开源杀毒引擎ClamAV为例对于传统杀毒引擎进行分析。ClamAV杀毒引擎查杀方法主要包括以下几种-MD5 (Message Digest Algorithm 5,消息摘要算法第五版)特征病毒分析员为病毒文件生成相应的MD5作为其特征。ClamAV引擎通过MD5作为其病毒特征;-基于PE(Portable Execute,可移植执行)文件节的MD5特征病毒分析员将病毒PE文件的其中一个节作为其文件特征,将节数据生成相应的MD5作为其病毒特征。-代码特征代码特征是非常传统的一种病毒特征提取方式。病毒分析员将PE文件中具有特殊含义的二进制数据作为病毒特征,通常选择病毒代码的二进制作数据为病毒特征。ClamAV的代码特征不仅是匹配二进制数据,还支持通配符,以及部分正则表达式,还支持基于文件格式的扩展匹配,支持逻辑化特征。-PE文件图标特征=Windows上的病毒经常将自己的图标伪装成非可移植执行文件的图标,于是ClamAV提供将图标作为病毒的特征。以上特征都是基于ClamAV杀毒引擎体系构架。ClamAV杀毒引擎是以算法为基础的杀毒引擎,其核心的算法是B-M单模匹配算法以及A-C多模匹配算法。由于传统杀毒引擎(如上述ClamAV)的结构是以算法为基础的,所以导致以下两个比较明显的问题I.病毒特征选取不灵活这里的不灵活体现在两个方面,一方面是病毒分析员选取病毒特征不灵活,另一方面是病毒分析员扩展新的病毒特征不灵活;ClamAV不同的查杀 方法之间是不提供逻辑关系的。比如使用PE文件节的MD5特征并不能够与代码特征结合起来使用。虽然代码特征提供一定的逻辑匹配的功能,但如果面对多态变形病毒,其逻辑匹配的功能仍然无法满足精确检测的需求。如常见的多态变形病毒vrut早期版本通过随机从两套加密算法中选取一套,并随机产生一个密钥对病毒体代码进行加密;而解密代码则通过一个多态引擎生成进行多态变换,使得vrut每次感染的文件其病毒体代码特征都完全不同。因此仅通过ClamAV代码特征所提供的逻辑匹配是无法对其进行精确查杀的。而如果要对这种以算法为基础的杀毒引擎扩展其病毒特征选取方法,由于其病毒特征选取方法与引擎偶合度过大,导致很难进行扩展。要么在原算法之外新增扫描过程,以效率为代价。如ClamAV新增MD5特征扫描就是在其代码特征扫描之前新增扫描过程;要么就是修改原引擎中的算法,ClamAV引擎中的A-C多模匹配算法就是经过改进的算法,以支持代码特征中简单的逻辑运算、通配符等。2.检测病毒效率低下对于杀毒引擎的检测效率,主要瓶颈在输入输出,如果能够有效的控制输入输出,则查毒的效率就会有极大的提高。但通过以上的过程,可以看到,ClamAV并没有针对输入输出进行优化。MD5特征决定必须对检测文件进行全文遍历。另外由于A-C多模算法在匹配之前需要建立状态机,而病毒库记录越大,则状态机建立的所需要的时间与空间就越多。
技术实现思路
鉴于上述问题,提出了本专利技术,以便提供一种克服上述问题或者至少部分地解决上述问题的用于检测和清除计算机病毒的方法以及相应的装置。依据本专利技术的一个方面,提供了一种用于检测和清除计算机病毒的方法,包括利用脚本语言编写用于检测和清除计算机病毒的脚本并且将所述脚本编译为二进制的病毒库文件;用于检测计算机病毒的检测处理,其包括-基于所述病毒库文件中包含的多个病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理;-将定位处理的结果作为变量进行运算处理和/或逻辑控制处理;-基于所述病毒库文件中包含的多个病毒记录,对运算处理和/或逻辑控制处理的结果进行匹配处理,其中所述匹配处理包括二进制匹配处理和/或opcode匹配处理;以及对与所述多个病毒记录中的一个或多个匹配的待检测的文件进行病毒清除处理。所述脚本语言使用可扩展标记语言XML进行描述。所述可移植执行文件结构包括可移植执行文件入口点的偏移、可移植执行文件头的偏移、可移植执行文件数据目录的偏移、可移植执行文件附加数据的偏移、可移植执行文件节表的偏移、和/或可移植执行文件节的偏移。所述定位处理包括根据模拟中央处理单元解析的call、jmp、jcc、和/或loop指令,进行定位处理。 所述多个病毒记录中的每个病毒记录具有各自的文件特征,在所述基于所述病毒库文件中包含的多个病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理的步骤中,检查所述待检测的文件的文件特征,并且基于文件特征与所述待检测的文件符合的病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理。所述匹配处理支持通配符号和浮动搜索,包括以下的一种或多种处理利用所述运算处理和/或逻辑控制处理的结果处的指令的opcode、操作数、长度,进行匹配处理;利用通过分析可移植执行文件的入口指令序列得到的文件编译器信息,进行匹配处理;利用所述待检测的文件的属性信息、资源信息、和/或版本信息,进行本文档来自技高网...
【技术保护点】
一种用于检测和清除计算机病毒的方法(100),包括:利用脚本语言编写用于检测和清除计算机病毒的脚本并且将所述脚本编译为二进制的病毒库文件;用于检测计算机病毒的检测处理,其包括:?基于所述病毒库文件中包含的多个病毒记录,对待检测的文件进行基于文件偏移、内存映像偏移、和/或可移植执行文件结构的定位处理;?将定位处理的结果作为变量进行运算处理和/或逻辑控制处理;?基于所述病毒库文件中包含的多个病毒记录,对运算处理和/或逻辑控制处理的结果进行匹配处理,其中所述匹配处理包括二进制匹配处理和/或opcode匹配处理;以及对与所述多个病毒记录中的一个或多个匹配的待检测的文件进行病毒清除处理。
【技术特征摘要】
【专利技术属性】
技术研发人员:周辉,徐传宇,李智鹏,唐杰,
申请(专利权)人:北京奇虎科技有限公司,奇智软件北京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。