计算机病毒检测技术分析与对比
【文章编号】1007.9467(2007)10—0107—04
、
计算机病毒检测技术
分析 与对 比
■ 李果 (新 疆水利水 电勘 测设 计研 究院,乌鲁 木齐 830000)
【摘 要】介绍目前主流的计算机病毒扫描检测技术,并做 了
一 些分析对比,使我们能够对各种病毒检测技术有所认识 ,
对病毒的检测技术和发展趋势发展加以探讨
【关键词】病毒;检测;查毒引擎
【中图分 类号】TP393.08 【文 献标志码】B
提起计算机病毒检测技术 ,我们 就需要针对各
种病毒进行一个分类 ,因为现有主流病毒检测技术
都是基于对病毒分类 的把握 ,从而研制 出来 的针对
性 引擎 。
1 计 算机病毒 的分类
我 国正式颁布实施 的《中华人 民共和 国计算机
信息系统安全保护 条例》 第二十八条 中明确指 出:
“计算机病毒,是指编制者在计算机程序 中插入 的
破坏计算机功能或者 毁坏数据 ,影 响计算机使用 ,
并能 自我复制的一组计算机指令或者程序代码 。”
这是我 国对于计算机病毒 的正式定义 。但是在实际
情况 中,所有会对用户 的计算机 安全产 生威胁 的,
都被划入 了广义的病毒范畴。
病毒大致分为 以下几类 :传统病毒、宏病毒 、恶
意脚本、木马、黑客工具 、蠕虫 、其它破坏性程序。
1)传统病 毒(Virus):通 过 改变 文件 或者其他 东
西进行传播 ,通常分为感染可执行文件的文件 型病
毒和感染引导扇区的引导型病毒。
2 宏 病毒(Macro):利用 Word、Excel等 的宏 脚
本功能进行传播的病毒 。
3 恶意脚本(Script):做破坏的脚本程序 。包括
HTML脚本、批处理脚本 、VB、JS脚本等 。
4)木马程序(Trojan):当病毒程序被激活或启动
后用户无法终止其运行 。广义上说 ,所有 的网络服
务程序 都是木马 ,判 定是否是木马病毒的标 准比较
模糊 ,通常的标准是:在用户不知情 的情况下安装 ,
隐藏在后 台,服务器端 一般没有界面无法配置。
5 黑客程 序(Hack):利用 网络 来攻击 其他计 算
机 的 网络 工具 ,黑客程序 是用来攻击 、破 坏别人 的
计算机 ,对使用 者本身 的机器没有损 害 ,常配合 木
马程序 。
6)蠕虫程序(Worm):蠕 虫病毒是一种可以利用
操作 系统的漏洞 、电子 邮件 、P2P软件等 自动传 播
自身的病毒 。
7)破坏 性程序(Harm):病毒启动后 ,破坏用户计
算 机系统 ,如删 除文件 、格 式化 硬盘等 。常见 的是
bat文件 ,也有一些是可执行文件 ,有一部分和恶意
网页结合使用 。
2 计算机病毒检测技术
常见病毒检测 技术有 :特 征码过滤 技术 、智 能
广谱扫描技术 、启发扫描技术 、虚拟机技术 ,其 中特
征码过滤技术这些年来一直被使用 ,并且是 目前的
主流病毒检测 技术 。还有就是近年迅速 发展 的主动
防御技术。下面分别介绍技术细节:
2.1特征码过滤技术
商业反病毒 公司在获取病毒样本后 ,提取 出其
特 征码 (特征码 最初指病毒体 内可惟 一代表 该病 毒
107
维普资讯 http://www.cqvip.com
的字符 串作 为特征码)。这是一 串表 明病毒 自身特
征的十六进制 的字 串,特征码一般都选得较长 ,有
时可达数十字节 ,一般 也会选取多个 以保证正确判
断。然后通过该特征码对各个文件或 内存等进行扫
描。如果发现这种特征码,这说明感染 了这种病毒 ,
然后针对性地解 除病毒 。
通常选择特征码是按照 以下思路 :
1)获取一个病毒程序 的长度 ,根据长度可 以将
文件分为几份 ,一般 是 3份 ~5份 ,也可 以更多 。这
种选取 的优 点是分成几段 获取特 征码 的方 法可 以
很大程度上避 免采用单 一特 征码 误报病 毒现象 的
发生 ,也可 以避免特征码过于集 中造成的误报 。
2)从每份中选取通常为 16个或 32个字节长 的
特征 串。
在选取时,应该采取如下的原则:
首先,如果选 出来 的信息是通用信息 ,即很 多文
件 该位 置都是一样 的信 息 ,那么舍 弃 ,调整偏 移量
后重新选取 。其 次,如果选取 出来 的信息是全零 的
字节 ,那么也要调整偏移后重新选取 。当然调整 的
偏移量 多少可 以人为事先规定 ,也可 以自动随机调
节 。最后 ,将选取 出来的几段特 征码 及它们 的偏移
量存入病 毒库 ,标示 出病毒的名称 即可 。为 了方便
选取特征码 ,通 常根据 以上 的思路编 写出特征码提
取程序 ,自动提取特征码 并作 为病毒记录存入病毒
库 。
2.2 智 能广谱扫描技术
为了躲避 杀毒软件 的查杀 ,一部分 电脑病 毒开
始进化 。逐渐演变为变形的形式 ,每感染一次,就对
自身变 一次形 ,通过对 自身 的变形来躲避查杀 ,这
样对 于同一种病 毒的变种病 毒大量增加 ,甚至 可 以
到达天文数 字的量级 。大量 的变形病 毒不 同形态 之
间甚至可 以做到没有超 过三个连 续字节是相同的。
这使得上面传统的特 征码技术对抗 乏力 ,病毒库急
剧增加却没有较好的应对措施。
为 了对付这种情况 ,首先特征码 的获取不可能
再是简 单的取 出一段代 码来 ,而是分段 的 ,中间可
以包含任意的内容 (也就 是增加 了一些不参加 比较
的“掩码 字节 ”,在 出现“掩码字 节 ”的地方 ,出现 什
1f】8
么 内容都不参加 比较)。这就是商业公司宣称 的广
谱特征码的概念 。虽然病毒本身可 以组合 自己的代
码 ,但 代码必然要在 同一块堆栈 中运 作 ,只要在 第
一 个特 征码附近搜索第二个第三个 ,通过分散的特
征码小片断来提高命中率 。这样在极大程度上提高
了特征码的通用性并降低 了误判率 。
2.3 启发扫描技术
新病 毒不断出现 ,传统的特征码查毒法完全 不
可能查出新 出现的病毒 。为 了更好 的检测病毒家族
相关 的恶 意代码 ,启发式扫 描技术产 生 了,启发 式
扫描是通过分析指令 出现 的顺序 ,或特 定组合情 况
等常见病 毒 的标准特 征来决 定文件是 否感染未 知
病毒 。
因为病 毒要达到感染和破坏 的 目的,通常 的行
为都会有 一定 的特征 ,例如 非常规读 写文件 ,终 结
自身,非 常规切入系统底层空 间(RingO:零环1等 等。
所 以可 以根 据扫描特定 的行为或 多种行 为的组合
来判断一个程序是否是病毒 。由于一个病毒总存在
其 与普通程序 不一般 的地 方 ,譬如 他会格式 化硬
盘 、重定 位 、改回文件 时间、修 改文件大 小、能够传
染等等 。这样 ,我们就可 以对每一类病毒特征进行
加权 评估 ,譬 如重定位 3分 ,格式 化硬盘 15分 ,传
染 10分 。这样 ,如 果一个程序拥有这 3个功能 ,他
就得到 了 28分 。如果我们 设定判断一个病毒 的标
准是 20分 ,那么这个程序 在遇 到采用 了启发式扫
描技术 的杀毒软件时 ,杀毒软件就会报警发现新病
毒 ,这就是启发式扫描技术的核心 。
2.4 虚拟机技术
随着病 毒技术 的发展 ,加密技术渐 渐成 熟起
来 ,很 多病 毒 的特征 都不再那么容 易提 取 ,而 且许
多新 生代的木马 、后 门、蠕 虫病毒都开 始使用加 密
技术来躲避检测和查杀。虚拟机查毒技术就是为对
抗此类病毒 出现 。
所谓虚拟机技术 ,就是用软件先虚拟一套运行
环 境 ,让病毒先在 该虚拟环 境下运行 ,这 样可 以分
析病毒的执行行为 。并且 由于加 密的病毒在执行 时
最终还是要解 密的,这样在其解密之后我们可 以通
过特征码查毒法对其进行查杀 。虽然病毒通 过各种
维普资讯 http://www.cqvip.com
方式来 躲避杀毒软件 ,但 是当它运行 在虚拟机 中
时,它 并不知道 自己的一切行为都在被虚拟机所监
控 ,所 以当它在虚拟机 中脱去伪装进行传染 时,就
会被虚拟机所发现。如此一来,利用虚拟机技术就可
以发现大部分的变形、加密病毒和大量的未知病毒 。
2.5 主动防御技术
主动防御技术是这一两年才 出现 的新技术 ,同
样 ,它的 目的是为 了对抗 日益增加 的未知恶意代码
的威胁 。目前单纯依靠“特征码技术”已经不能适应
反病毒需求 。所谓“主动防御 ”,就是全程监视进程
的行为 ,一旦发现“违规 ”行为,就通知用户 ,或者直
接终止进程。它类似 于警察判断潜在罪犯 的技术 ,
在成为一个罪犯之前 ,大多数的人都有一些异常行
为,比如“性格孤僻 ,有暴力倾 向,自私 自利 ,对现实
不满 ”等 先兆 ,但 是并不 是说有这些先 兆 的人 就都
会发展为罪犯 ,或者罪犯都有这些先兆 。因此“主动
防御 ”并不能 100%发现病毒 ,它 的成功率大概在
60%~80%之间。如果再加上传统的“特征码技术 ”,
几乎可 以发现近 100%的恶意程序 了。
目前 在 国外 ,Norton、Kaspersky、McAfee等 杀
毒 巨头 ,都 已经 向“主动 防御 ’'+“特 征码技术 ”过渡
了,这是杀毒软件 的必然发展趋 势 。目前主动 式防
火墙是一个运用“主动 防御 ”技术的典型例 子,有经
验的用户应 该对于防火 墙经常询 问用户 是否放行
一 个进程访 问网络,或者有不 明连接进入本机而发
出警 告印象深刻 。其实,防火墙就是在全程监视进
程 的网络行为,一 旦发现违反规则 的行为就发 出警
告,或者直接根据用户设定拒绝进程访问网络 。
当然 ,现 在的防火墙一般 都把系统 网络进 程
(比如 services.exe,svchost.exe,lsass.exe等)记在“收
信名单”里,这些进程是默认允许访问网络的,如果
禁止 的话,操 作系统就 不正常 了,这也 是现在很 多
病毒和木 马都喜欢使 用远线程注 入这些 系统进程
以突破 防火墙而访 问网络的原因。
主动防御 技术实现方法 的理论依据如下:
有过程序编写经验人知道 ,在一个程序里 如果
要实现 自己的功能就 必须要通过接 口调 用操作系
统提供的功能函数,在 DOS里几乎所有 的系统功
能或第三方插件 都是通过 中断提供 的,在 Windows
里一般是通过 DLL里的 WindowsAPI提供,也有少
数通过 INT2E或 SYSENTER提供 。一个进程有怎
样 的行为 ,通过看它调用 了什么样的 API就大概清
楚了。例 如,国际知名 的杀毒软件卡 巴斯基 ,大家可
以在它 的安装 目录里和系 统 目录下 发现它 的相关
驱 动文件 ,这些驱动 挂接 了ntoskrn1.exe,ndis.sys等
系 统关键模 块里 的 API,从而对进程 的普通行 为、
网络行为 、注册表行为进行监视 的。
主动防御技术 的一般流程 :通过挂接系统建立
进程 的 API,杀毒软件就在一个进程建立前对进程
的代码进 行扫描 ,如果发现 SGDT,SIDT,自定位指
令(一般正 常软件不会有这些指令),就提示给用户 ,
将选择权力交付给用户 。如 果用户放行 ,就让进程
继续运行 。然 后监视进程调用 API的情况 ,如果发
现 以读写方式打开一个 PE格式 的 EXE文件 ,这说
明该进程 的线 程有 可 能是感 染 PE文件 的操作 行
为 ,就发 出警告。同样 ,如果网络监视器发现收发数
据 违 反 了规 则 ,也发 出提 示 。如果 进 程 调 用 了
CreateRemoteThread0函数在其它进程 中创建线程 ,
也会发出警告 。并且可 以根据这些多方面结合来直
接侦测确认一个木马程序。偌 :CreateRemoteThread0
是一个非常危险的 API,正常进程很少用到 ,但 却
被病毒木马频繁使用)。
3 技 术 比较
以下简单 总结对 比各种病毒检 测技术 的优缺
点 : ·
3.1 特征码技术
在病毒发展的早期,特征码技术在对抗病毒方
面发挥 了巨大的作用 ,它今天依然是整个反病毒体
制的最基本支撑技术 。但现在变形技术 已经被病毒
广泛采 用 ,它只能跟 在病 毒 的后面 ,对 未知病毒 即
病毒库 中没有特征的病毒几乎不能检测。同时也对
象 GhosffOne—Half病 毒 与 Casper病毒 /Natas病 毒
这种可将 自身变化千亿种 ,甚至无穷种变 化的变 形
病毒无 能为力。在这类病毒面前 ,单纯的特 征码 技
术 已完全失去作用 。
维普资讯 http://www.cqvip.com
1设计信息化
.毗i0n si
3.2 智能广谱扫描技术
广谱特征码技术在一段 时间内,对于处理某些
变形 的病毒提供 了一种方法 ,曾是对 抗变形病 毒的
利器 。但其缺点是使误报率大大增加 ,所 以采 用的
这个技术 目前 已不能有效的对新病毒进行查杀 ,并
且还可能把正规程序当作病毒误报给用户 。
3.3启发扫描技术
启发查 毒技术是现在 对付 未知威胁 的主要手
段 ,通 常伴随其 它检测技术一 起工作 ,比如主动 防
御 。启发分析技术可 以分析程序编码 ,来判 定程序
是否具有恶意 。启发杀毒技术 中最先进 的动态启发
分析技 术会将应 用程序 的编码 复制到杀毒 软件 的
模 拟缓冲区 中 ,并使用特别 的“技巧 ”模拟其执行 。
启发式扫描 比起 静态的特征码扫描要先进得多 ,可
以达到一定的未知病 毒处理能力 ,但缺 点是会有不
准确(虚警)的时候 。特别是 因为无法确定是否一定
是病毒,而不可能做未知病 毒杀毒 。
3.4 虚拟机技术
虚拟机技术能够对未知病毒进行判别 ,对标准
病毒准确率高,在对反虚拟机 的变形病毒或加密病
毒上 ,效果不理想且误报率高 。尽管虚拟机技术在
杀毒软件 中应用很 多。不过现在 由于效率 问题 ,只
能解决部分问题 ,并且简化的虚拟机完整程 度还远
远不能和我 们一般理解 的 VMWare的那 种虚拟 机
相比。同时也因为效率 问题 ,行 为判 断不能做得 非
常复杂 。 目前一些设计先进的病毒 ,能够识 别出这
种简化虚拟机环境和真实环境的差别 ,在这种环境
下不发作或破坏虚拟机 。
3.5主动防御技术
主动 防御系统可 以控制 、限制进 程行 为,能够
禁止更改或者添加注册表 ,能否拦截对文件 的有害
操作 。当未知程序试 图偷偷运行和修改系统关键数
据 时,它 的行 为就会被主 动防御系统检 测到 ,然 后
弹出警告 ,询 问用户是否允许相关操作 。
如果用户拥有 足够 的软件和 系统进程 方面 知
识的情况下,利用主动防御系统软件能非常有效的
防止木马或者病毒对系统 的危害 。运用得好甚 至可
以摆脱对传统杀毒软件 的依赖 。目前流行的行为杀
毒其实就是主动 防御系统功能的智能化 ,不过 由于
智能判断算法和行为数据库还需要完善 。目前 的主
动防御技术很难 100%的拦截恶意行为。
表 1对 抗 病 毒 效 能 参 数 对 比
注 :该表格为各类 主流 技术 的对 比,部分 以差 、良、优三
个分值标 识。部分 以低 、中、高三个分 值标识 。
4 展望
以上介绍 了各 种商业公 司使 用 的主流 反病毒
技术 ,这些技 术各有千秋 ,目前商用公 司均 以多种
技术配合在其产 品中实施 ,用 以达到最高的保 护效
果。启发扫描技术和虚拟机技术成熟安全 ,但 是受
制于现在 的软件硬件 能力 ,不能做到细致完善。主
动 防御技术可 以接近完美的控 制系统 ,但是智 能化
程度 尚无法令人满意,其操作烦琐对用户要求也高。目
前看来,单一的技术无法应对各种未知威胁 ,技术 的
融合 和并用将 是未来几 年 内的趋 势 。而从 长远看
来 ,基于人工智 能和神经 网络 的更智 能的多模式检
测技术,将势必会走入我们 的视野 ,期待那一天 。
【参 考文献】
【l】(美 )PeterSzor.计 算机病毒 防范艺 术[M】.段海 新,等译 .北
京 :机械 工业 出版社 ,2007.
[2]killer.反病 毒理念、历史、现状 与未来 [EB/OL].http://blog.
xfocus.net/,2007.
[3]killerSymbian.平 台 反 病 毒 技 术 [EB/OL].http://www.
unnoo.corn/research/article/,2007.
【4】李辉 .黑 客攻 防 与计 算机病 毒分析检 测及安全解 决方案
[M】.北京 :电子信 息技术 出版 社,2006.
【收稿 13期 12007.06.17
李果 (1972~),女 ,江 苏宜兴 人,工程师 ,从事计 算机
管理 与应 用 ,(电子信箱)wlmqlee@126.tom。
维普资讯 http://www.cqvip.com
计算机病毒检测技术分析与对比.pdf