虚拟机技术

虚拟机技术是国际反病毒领域的前沿技术 。这种技术更接近于人工分析 , 智能化极高 , 查毒的准确性也极高 。

首先我们描述一下一个病毒分析者的工作:当拿到一个样本时 , 我们并不敢直接运行它 , 因为它可能是带毒的 ,
而且极可能是未知的 , 谁也无法查杀的新病毒 。要分析它 , 我们必须做的是跟踪它的执行 , 查看它是否有传染模块 ,
是否有破坏模块 。如果一个样本中有用于传染的模块 , 我们就无可争辩的认定它是病毒 , 如果它还有破坏模块 , 我们
就会将它归人恶性病毒 。有些病毒是戏滤性的、学术性的 , 不会破坏系统 。但 , 这也就如让您穿了一双泡水的鞋一样 ,
脚上不会有大问题 , 却终归是心里不舒服的 。

这里涉及到一个重要问题 , 判定样本是否是病毒的重要问题:传染性 。我们可以想象 , 如果能让程序判定一个
“样本”是否有传染性 , 也就解决了反病毒领域中的一个重要难题“预警” 。

传统的程序员分析病毒会使用DOS的DEBUG程序 , 现在更多的人选择SOFT-ICE一类功能更强大的软件 。但终归一点 ,
这类动态调试软件的核心就是单步跟踪执行被调程序的每一个语句 。

事实上 , 更为具体的做法可以是这样:用程序代码虚拟一个CPU来 , 同样也虚拟CPU的各个寄存器 , 甚至将硬件端
口也虚拟出来 , 用调试程序调人被调的“样本” , 将每一个语句放到虚拟环境中执行 , 这样我们就可以通过内存和寄
存器以及端口的变化来了解程序的执行 。这样的一个虚拟环境就是一个虚拟机 。

未来的虚拟现实技术在系统底层级上是有借鉴于虚拟机技术的 。

既然虚拟中可以反映程序的任何动态 , 那么 , 将病毒放到虚拟机中执行 , 则病毒的传染动作一定会被反映出来 。
如果这样 , 未知病毒的查出概率将是100%!

100%?!惊人的数字!然而事实上 , 我们无法虚拟执行程序的全部代码 , 因为虚拟机太慢 , 大约会比正常的CPU
慢上几十倍甚至更多 。目前个别反病毒软件选择了样本代码段的前几K字节虚拟执行 , 其查出概率已高达95%左右 。

虚拟机用来侦测已知病毒速度更为惊人 , 误报率可降到一个千分点以下!这项技术在1997年被认为是国际反病毒
领域的前沿技术 , 至今仍有许多人在研究和完善它 。因为它的未来可能是一台用于Internet上的庞大的人工智能化的
反病毒机器人 。当然 , 也是一个软件机器人 。

    推荐阅读