反病毒专家谈杀毒引擎 多模块保用户安全

来源:岁月联盟 编辑:zhuzhu 时间:2010-02-13

  【eNet硅谷动力专稿】杀毒本应该是为用户清除病毒的利器,但由于种种性能和外在的因素杀毒软件一直成为大众议论的焦点。记者带着用户对杀毒软件的疑惑于8月10日走访了瑞星反病毒工程师。

  杀毒软件的核心是杀毒引擎,那么您可以谈一下什么是杀毒引擎,它的主要作用是什么吗?

  杀毒软件引擎是杀毒软件的核心部分,主要用来对文件等进行扫描,并对发现的病毒进行清除操作。杀毒引擎不等同于简单的特征码扫描,还包括脱壳、解压缩以及启发式扫描引擎等等。

  同时,杀毒引擎还肩负着清除病毒和后处理(恢复系统环境,比如文件关联等)的重要操作,一些杀毒软件只注重检测率而忽视了对感染型病毒的处理(比如本应该是清除掉文件上的病毒代码,却直接将染毒文件删除了),这样的杀毒软件引擎同样不能算是优秀的引擎。

  杀毒引擎的性能是如何判别的?我知道对病毒的脱壳的能力是判断一款杀毒软件性能的一个很重要的标准,瑞星的性能在技术上是什么样子又或者有没有什么BUG?

  评价一个杀毒软件引擎的好坏要看多方面的指标,比如扫描速度、资源占用等等,而这些和引擎的复杂程度又有关系。比如,瑞星杀毒软件引擎支持虚拟机脱壳,压缩包及一些软件安装包的解压缩等。这些操作就比那些不脱壳(或只支持少量壳)、不解压缩或只依靠文件扩展名判断文件格式的杀毒软件引擎要复杂,同时它的扫描速度也比简单的引擎要稍多一些。简单地说,评价引擎性能只能是一个相对指标,而不能以绝对值来进行限制。

  脱壳能力是目前判断杀毒软件性能的重要指标之一。目前瑞星采用的虚拟机脱壳引擎应该说是一个比较行之有效的办法,也是瑞星在技术上的优势。在测试初期发现过一些BUG,但目前已经解决掉了。现阶段还没有发现明显的BUG。

  如今安全技术已经引起越来越多的人注意,很多软件都存在漏洞或BUG,不知道瑞星的产品是否也存在BUG?如果有这样的BUG存在,瑞星如何处理的?

  只要是程序就会存在BUG,寻找BUG主要是由测试部门来完成。瑞星有非常严格的审核制度和BUG管理制度。在瑞星的研发中,测试部门有非常高的控制权,凡是测试没有通过的程序是绝不会发布的。并且,对于每一个已知BUG都会分配一个case,并按照BUG的重要程度排序,在最短时间解决问题。

  尽管如此,瑞星并不能保证出品的产品100%没有BUG,事实上任何一个软件厂商都不能避免这样的问题。瑞星公司对BUG是非常重视的,遇到用户发现的BUG会立即尝试重现,如果在公司重现不了,会第一时间和用户取得联系,在用户的许可的情况下,到用户处去查找并解决问题。

  因此,瑞星的产品目前是业内公认的具有极高稳定性的产品。

  我知道瑞星在行业内最郑重的提出了杀毒软件引入的虚拟机技术,虚拟机的引入必将占用一定的系统资源,瑞星是怎么处理这种矛盾的,还是虚拟机只是在某一个或几个方面应用?

  瑞星杀毒软件2007版提出是虚拟机脱壳技术,而不是指完整的虚拟机,因此在资源占用上很小。

  目前的脱壳技术有两种:

  第一种是算法脱壳。这种方法直接找加壳的解密算法进行脱壳,这种方法的好处是速度快,占用资源少,缺点是对付加密变形壳几乎无法处理。比如国内比较常见的一个加壳工具“免疫007”,很多杀毒软件均不能正常脱壳。很多杀毒软件在查杀变形壳时,并不能将壳脱掉,而是直接报的壳的名字,比如Antivir报的Trojan/NSAnti,卡巴报的Packed开头的均属此类。

  第二种是动态脱壳。大家都知道加壳程序在运行中,其进程是展开的,即不管加了什么样的壳,在运行时都要还原成其本来面目。但如果在一台真实的机器上让病毒动态脱壳,则壳解开了,病毒也感染了系统。所以,这里引入了虚拟机的概念,虚拟一个环境,诱骗程序在里面运行,并自我释放。瑞星的虚拟机脱壳引擎并不会将文件完全运行开来,只运行到杀毒软件引擎能够正常处理的阶段。因此,虚拟机脱壳并不像其它厂商描述的那样会占用大量的系统资源。实际经过测试,瑞星07版在查杀加壳病毒时的速度要比06版快很多。

   此外,虚拟机的原理就是设置一个虚假的环境和用户真实系统无关,因此不必担心病毒会从虚拟机中“跑”出来。此外,瑞星虚拟机脱壳引擎只是提取了虚拟机中的部分,目的是让病毒自行展开。瑞星也有与VMWare、VirtualPC功能相同的单独产品,目前主要用于病毒分析。

  瑞星的监控程序如何避免影响系统的正常运行,如何避免影响正常的文件操作和其他程序的正常运行,以及如何避免与操作存在冲突?

  对于操作系统,采用白名单机制,判断为正常系统文件后自动放过,提高系统运行效率。同时,对产品进行严格测试,避免监控程序和其它正常程序出现冲突。

  我知道杀毒软件在设计的时候总会在误杀和杀毒准确性上有差别,您是如何看待这个差别的,又是如何做取舍的?

  杀毒的准确性上就包括了对误杀的控制。从技术角度讲,任何一个杀毒软件都不能避免误报误杀。但是,杀毒软件厂商能够通过分析、测试将误报率降到最低,尤其像诺顿这样的系统级误杀绝对不允许出现。而频繁的对流行应用软件出现误杀误报,也是无法容忍的。这些重大误杀,通过技术手段是完全可以杜绝的。

  比如,瑞星公司在每一个升级数据库被公布前,都会经过多项严格的测试,在测试的任何一个环节出现问题,都会将原升级程序打回重新进行修改。

  目前,瑞星杀毒软件以中(简繁)、英、德、日、俄五种语言版本在全球同步发行,瑞星在每次升级时都要对相应语言版本的操作系统、以及所有的流行软件进行稳定性测试。同时,瑞星在各个国家的代理商也会定期整理当地的流行软件程序到公司总部进行严格测试,确保不会对它们出现误报误杀的情况。

  如今木马、蠕虫以及恶意软件远远比病毒的危害更大,而且更有针对性,瑞星的引擎技术是如何保证准确的查杀这些恶意程序的呢?

  杀毒软件到底查杀什么,实际上范围很广,包括甚至一些技术上来说并不是病毒的程序(比如恶作剧程序、流氓软件等等)。目前,病毒的概念已经被扩大化了,实际上可以称之为网络威胁(也有厂商称之为混合威胁)。

  但一些其它的专杀工具厂商为了自身的利益故意混淆这个概念,宣称他们可以查杀XXXX万个木马,它们会给公众一个错误的,即杀毒软件只能杀病毒。事实上,目前商业的反病毒软件能够查杀的领域早已比这些木马专杀等程序要广的多。比如,木马、蠕虫、后门及恶意软件数年前就已经被瑞星杀毒软件列为查杀目标了,并且从技术角度说,处理它们比处理感染文件的变形病毒要简单。

  如果有一天病毒的加壳算法或者伪装技术先于了杀毒软件的脱壳能力,该如何应对?有预防措施吗?对变形病毒又有什么好的解决办法吗?

  从现实效果看,绝大多数的加壳都能够被瑞星杀毒软件2007版的虚拟机脱壳引擎成功的解壳,这方面已有一些技术爱好者进行过相关评测,结果也是令人满意的。

  当然,不可能指望用一个技术来解决所有的问题,对于一些比较罕见的壳(即极少有病毒采用的壳)可能会不脱壳直接提取特征,此外还有一些加壳软件的作者会针对瑞星的虚拟机进行频繁修改,试图绕过虚拟机,有的时候,甚至一天会更新数个版本。遇到这种情况,通常是直接把壳的特征当作病毒添加到特征库,事实上这种做法在国外的杀毒软件中也较为常见。瑞星在这两种方法中进行折中,会优先进行脱壳扫描,避免一些用户正常的但也加了壳的文件被误报为病毒。

  此外,启发式扫描和恶意行为判断也是解决这种问题的行之有效的方法。

  对于变形病毒,瑞星的虚拟机引擎也能够起到很好的作用。比如,去年四月曾出现过一个通过P2P传播的病毒—波利普斯(Win32.Polipos)。该蠕虫病毒没有实体文件,它会感染Windows可执行文件。同时该病毒采用“入口点模糊”(Entry-Point Obscuring)技术对抗杀毒软件。该病毒不修改原文件入口点,并且自带多态/变形引擎,确保每一次感染文件后病毒体均不相同,给杀毒软件查杀该病毒造成很大困难。

  到目前未知,大部分杀毒软件仍无法查出该病毒或查出病毒无法清除,只简单地删除该染毒文件。而瑞星的虚拟机引擎技术可以让病毒自行运行一部分代码进行解密,因此对该病毒的清除效果很好。

  那我们的病毒样本是如何采集的呢?这个数据是否真的可靠?假如我们的产品走出国门,您觉得有信心取得竞争优势吗?

  瑞星的样本收集通过用户上报、蜜罐系统、第三方的多引擎扫描系统等多种途径。从目前效果看已经具备了一定水准的样本收集和处理能力。

  瑞星公司正在加快国际化的步伐,其在病毒的处理能力上已经具备了和国外知名厂商抗衡的能力。目前,国际上比较认可的反病毒产品评测主要有West Coast Labs、AV-Test、Virus Bulletin等等,我们已经参加了或准备参加其中的许多评测。

  其中,瑞星已经获得West Coast Labs的Checkmark AntiVirus Level I、II、Trojan以及Vista认证。在AV-Test的评测中瑞星排名第10位,领先于McAfee、趋势、等国际厂商。瑞星自从2006年正式参加该项评测以来,成绩逐步上升,到目前为止,瑞星是国内唯一一款参加AV-test年度测试,并取得优异成绩的国产杀毒软件。

  从一些国外反病毒机构的统计看,中国是全世界病毒危害最为严重的国家。如果这些评测机构选择的是国产病毒样本而不仅仅是欧美流行病毒,毫无疑问瑞星会取得更优异的成绩。

  我知道在国外,赛门铁克等厂商正在计划新的杀毒引擎标准设计,我们国内反病毒行业有自己的杀毒引擎标准吗?

  国内反病毒行业没有同一的杀毒软件引擎标准,实际上在国外也没有而且也不太可能由一个厂商来制定整个行业的杀毒引擎标准。杀毒软件引擎各家都有自己独特的技术,并且技术是互不公开的,但最终要解决的问题都是更好的检测并清除掉病毒。

  如今的杀毒引擎主要还是采用特征检测技术,而国外已经在提行为检测,并想把行为检测作为一个标准引入到杀毒引擎中,瑞星对这个是如何看待的?是否行为检测真的要到只能算法有所突破的时候才能得到广泛应用呢?

  其实瑞星在行为检测技术上早有研究,并且已经开发出相应的产品。比如瑞星杀毒软件中的注册表监控、瑞星卡卡上网安全助手中的IE防漏墙等等都是行为检测的雏形。而真正的恶意行为监测,是指对一系列的行为组合进行规则判断,监测其是否是恶意。

  业内曾有一些言论称主动防御是未来反病毒的发展趋势,也有一些厂商做出了带有主动防御功能的产品。但从技术上而言,目前出现的所谓主动防御技术基本上只是恶意行为检测这一部分,是一个狭义的主动防御概念。

  而瑞星的定义,主动防御应该是一种阻止恶意程序执行的技术,除了必须有的恶意行为检测外还应该提供开放的高级用户自定义规则。可以对系统、应用程序的行为进行保护、限制等。

  那在行为检测中,如何避免误杀?我们知道行为检测中的误杀,要比特征检测更难防范。

  行为检测的误报问题确实是各个厂商都需要面对的问题,目前市面上的一些带有主动防御功能的杀毒软件往往都是基于一个行为对恶意程序进行判断。比如,瑞星2008版中的主动防御经过病毒分析人员的经验,定义出一系列的动作组合规则,用动作组合来进行判断,可以极大减少误报情况的发生。同时,通过白名单机制,将一些流行软件加入到白名单之内,同样可以减少误报的情况。其次,通过对规则设置高中低的敏感度,同样可以解决一部分问题。再者,进行大量测试,避免主动防御对正常系统及应用程序产生不良影响。

  行为检测本身是一种模糊判断,必定存在一定的误报。由于其误报控制一部分是依赖于白名单机制,因此在国内的软件应用环境下,国产软件的误报率肯定要远远低于国外软件。

  特征码技术则是一种精确判断病毒的方法,目前看也是最成熟的方法。因此,杀毒软件仍然还是以特征码查杀为主,而以行为检测为辅。

  对近日黑客大会提出的三大现有技术无法解决的Blue pill攻击、 anti-DNS pinning攻击以及javascript恶意软件威胁,瑞星有什么看法呢?

  新的严重威胁不是第一次出现,也不会是最后一次。对于黑客大会中提到的相关技术,瑞星并没有忽视随着应用的发展出现的安全问题并一直在致力于研究解决的方案,当威胁离开实验室来到真实的世界中时,瑞星有能力保护广大的用户。比如说,类似Blue pill这样的虚拟机rootkit攻击并非真的无法检测,该技术也不是在这次黑客大会才为人所知。

  以后的瑞星发展方向在哪里?马上要公测的瑞星2008又有什么功能改进,技术创新呢?

  瑞星杀毒软件2008版相对于2007版增加了很多功能,同时也对程序进行优化,资源占用情况和对系统性能的影响比07版降低很多。由于目前瑞星的08版还属于小规模内测阶段,具体功能改进和技术创新尚不便透露,见谅。