博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
反病毒专家谈虚拟机技术 面临两大技术难题
阅读量:4200 次
发布时间:2019-05-26

本文共 2086 字,大约阅读时间需要 6 分钟。

 转载地址:

在目前新病毒及变种层出不穷的今天,如何防御新病毒成为目前反病毒业界一个新的研究课题。12月5日,继江民杀毒软件推出未知病毒主动防御技术后,瑞星也宣布在新品当中应用了虚拟机脱壳技术,从而再次提出了对未知病毒的主动防御问题。在种种防范未知病毒技术面前,虚拟机技术一直在全球业界存在很大的争议。那么,虚拟机技术目前应用状况到底如何?能否承担起主动防御未知病毒的大任?在被种种概念包装的商业面具下,这个问题被掩盖了许久。日前,记者就这一问题采访了业内资深的反病毒专家,企图揭开罩在虚拟机技术上的层层面纱。

   
什么是虚拟机杀毒技术?

江民反病毒专家介绍,虚拟机并不是新技术,目前微软、JAVA等虚拟机都已经十分成熟,在一台电脑上安装一个虚拟机和多个操作系统,已经成为许多评测人员和计算机病毒分析人员必需工作条件。而将虚拟机技术应用到杀毒方面,却是一个杀毒业界一直在追求和探索的课题。 他认为,“虚拟机杀毒技术”即是在电脑中创造一个虚拟CPU环境,将病毒在虚拟环境中激活,根据其行为特征,从而判断是否是病毒。也有专家认为,所谓虚拟机技术,就是用软件先虚拟一套运行环境,让病毒先在该虚拟环境下运行,从而观察病毒的执行过程。这个技术主要用来应对加壳和加密的病毒,因为这两类病毒在执行时最终还是要自身脱壳和解密的,这样,杀毒软件就可以在其“现出原形”之后通过特征码查毒法对其进行查杀。

资源占用和病毒定义标准,虚拟机杀毒面临两大技术难关

仅从定义上理解,解决虚拟机技术至少应解决两大难题,一是虚拟运行环境占用资源的问题,二是如果判断病毒标准的问题。

事实上,虚拟机技术面临的一个最大的难题就是如何解决资源占用问题,试想,虚拟一个CPU环境需要占用多大的资源?在这个环境下激活一个病毒,让病毒完成其从发作到传播的整个过程,再分析其行为特征,又需要多长的时间?如果全部应用虚拟机技术话,分析一个加壳病毒需要3到5分钟的时间,而目前电脑中许多压缩加壳的文件,光分析这些文件耗用的时间和占用的资源,就足够成为一个很有耐心的人放弃这款杀毒软件理由了,尽管这款杀毒软件应用的是最先进的杀毒技术。

据国内最早采用虚拟机脱壳技术的江民科技反病毒专家介绍,目前国际上主流的杀毒厂商对应用虚拟机技术都比较保守,毕竟不能因为杀毒拖垮用户的电脑。以江民为例,早在KV3000时就能够查杀很多加壳病毒,而这个技术直到今年一些杀毒软件才开始加入并作为产品的一项新功能进行宣传。

据介绍,江民杀毒软件应用的是程序脱壳为主加上虚拟机为辅助的杀壳病毒技术,目前,江民杀毒软件能够查杀并监控ZIP、ARJ、CAB、LZH、RARPKZIP、ARJ、Microsoft Compress、Diet、LZEXE和 LZH等所有的主流压缩病毒, 包括PKLITE、LZEXE、WWPACK、ASPACK、UPX等可执行程序压缩格式病毒都可彻底查杀。全新的分级高速杀毒引擎还可以对层层加压、不同格式加压的病毒进行扫描和监控,使得隐藏再深的病毒也难以逃脱。

最重要的是,江民杀毒软件在扫描分析此类加壳病毒时,在时间上用户几乎感觉不到与普通文件的差别,而如果全部采用虚拟机杀毒技术,分析一个深层压缩病毒就需要几分钟的时间。

除占用资源问题外,国内安全专家对虚拟机杀毒如果确定病毒判断标准的问题提出质疑。网名为“蓝海”的安全专家认为, 在处理加密编码病毒过程中,虚拟机是比较理想的处理方法,但他也一针见血地指出,目前所有杀毒软件“临床”应用的虚拟机并不是“高大全”的完整仿真环境,而是相对比较简单的、易于实现的版本。他认为,尽管根据病毒定义而确立的 “传染”标准是明确的,但是,这个标准假如能够实施却是模糊的。一是要仿真传染条件,哪些条件感染病毒,怎样制造传播条件?如系统日期、感染对象的文件名等等,二是这个分析是通过动态执行分支屡试呢,还是通过返回头进行静态的指令过程分析?如果杀毒软件以病毒传染性标准定义作为判断标准的话,那么人们会发现这个杀毒工具已不再是一个程序,而是一台IBM的深蓝超级计算机。

虚拟机技术仍然与传统技术相结合

江民反病毒专家认为,目前追求虚拟机的完全应用几乎是全球顶尖的反病毒专家们最美丽的梦想,尽管他们都明知这是不可能实现的。而目前应用的虚拟机技术也是各有各的标准,对于病毒行为的定义都是建立在自己对病毒共性分析的基础上的。

    安全专家也认为,在反病毒软件中引入虚拟机是由于综合分析了大多数已知病毒的共性, 并基本可以认为在今后一段时间内的病毒大多会沿袭这些共性。由此可见,虚拟机技术是离不开传统病毒特征码技术的。

     而且,他认为,目前虚拟机的处理对象主要是文件型病毒,对于引导区病毒、宏病毒、木马,目前利用虚拟机应用的效果还不明显。即便随着技术的进一步发展,虚拟机技术可以应对多数病毒,也不能保证病毒不会通过发出错误的指令来误导杀毒软件,让杀毒软件的虚拟机失去效力。因此,虽然许多人对特征码技术持有不同的看法,但是在很长一段时间内,特征码仍然是主要的杀毒技术,虚拟机技术只能起到补充和辅助的作用。

你可能感兴趣的文章
win10配置tensorflow1.14,1.15,2.0缺少cudart64_100.dll
查看>>
在Linux下搭建带MOD 我的世界(Minecraft)服务器
查看>>
react 复制antd表格行
查看>>
服务节点之间项目中实际用法: 多个Exchange 和 RoutingKey(ServerId)
查看>>
c++A和B文件相互引用报错: error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
查看>>
Integer.MAX_VALUE: 2147483647 Long.MAX_VALUE: 9223372036854775807
查看>>
javascript中数组[]常用方法总结shift、slice、indexOf、push和pop、splice、unshift
查看>>
1.nvm安装 2. nvm切换node版本(mac: nvm alias default v9.3.0 win: nvm use 6.11.1)
查看>>
用ts去开发原先的js如:node、express 1.为第三方js声明~.d.ts 2.第三方有过type声明的安装@types文件支持
查看>>
Node.js Buffer模块深入理解Buffer.allocUnsafe与 Buffer.from及其字符串与Buffer之间的转换
查看>>
(dfs)求[1,2,2,3]的全排列(1.backRemove才行 2.Arraylist可以contain判断包含另外一个Arraylist 3.js版本3个坑,4个人,求全排列)
查看>>
cocos creator长驻节点及其接口addPersistRootNode含义(挂到scene节点,并且添加不销毁标记)
查看>>
数据库备份与还原: 1.mysqldump备份 source还原 2.heidisql64.r5138 备份mysql数据
查看>>
mysql为已经定义好的表添加主键: ALTER TABLE t_user ADD PRIMARY KEY (`uid`);
查看>>
node.js异步问题终极解决: 1.async+await解决回调地狱 2.async+await+Promise.all+try catch用于并发执行,并处理异常
查看>>
面向对象之cc.class子类调用父类的方法(IFTTTSoundAnim.prototype.do_right_action(data, then))
查看>>
c++编译器调用C函数,必须加 extern "C" {}(不要变名字) 不然报错(原因: c++有函数重载机制导致的命名改变导致函数找不到)
查看>>
用SpringCloud Alibaba搭建属于自己的微服务(一)~产品需求
查看>>
用SpringCloud Alibaba搭建属于自己的微服务(二)~技术选型
查看>>
用SpringCloud Alibaba搭建属于自己的微服务(三)~准备工作~mysql,elasticsearch,kafka,redis的安装
查看>>