安全的动力 窥探杀毒软件引擎相关技术
小知识:系统的几个“层”
操作系统作为一个复杂的运作体系,其内部是必须实现一定的功能模块来进行分工合作的,这些功能模块像金字塔一样层层堆积,形成了系统的几个“层”,分别是系统核心层、硬件抽象层、用户层。
系统核心层(Kernel Layer)位于整个操作系统的最底层,负责系统的基本运作,在这一层里的所有行为都由系统内置的指令来实现,所有外界因素都不会对这一处的行为造成影响。能直接进入这个层交互的程序不多,除了操作系统自身,第三方厂商若要能在此层直接工作,必须和系统厂商建立合作关系,使用系统厂商提供的接口函数才能进入。目前能在这个层面直接工作的杀毒软件只有赛门铁克的Norton AntiVirus。
硬件抽象层(Hardware Abstraction Layer)是美国微软公司为了便于操作系统在不同硬件结构上进行移植而提出的将系统底层与硬件相关的部分独立运作的思想,HAL为系统实现了“硬件无关性”,即在不同的硬件平台上,硬件与操作系统的交互也不会有所差异,这样一来,硬件厂商开发驱动的难度便能大大降低,HAL将硬件的接口细节隐藏起来,并为操作系统提供一个标准硬件交互接口,目前所有的硬件驱动都工作在这个层面上,当外界硬件存在指令请求时,驱动程序响应请求并将指令通过HAL转换为系统核心层能理解的指令交给内核执行,如果未找到相应的驱动程序类型,则将其视为“默认硬件”(Default Hardware)处理,什么叫“默认硬件”呢?最简单的例子就是进入安全模式,这时候大部分驱动程序不会被加载,此时的系统便是工作于“默认硬件”上。大部分使用“软件驱动”解决方案的杀毒软件就是在HAL层上虚拟了一个硬件来达到与核心层交互的效果,如McAfee、卡巴斯基等,瑞星2006也是通过这个方案实现了内核交互。
用户层(User Layer)就是平时我们直接看到的部分,例如桌面,大部分杀毒软件也是在这一层运行的,主要用于用户接口交互和将指令传递到杀毒引擎。一般运行于Ring3的程序行为也产生于此,一个应用程序产生的指令要求首先被传递到HAL层,HAL层将其解释处理为核心层可以识别的指令串,然后提交给核心层最后进入CPU的指令处理循环,CPU处理完毕后将结果反向送回到用户层上的应用程序,最终得到运算结果。
2.检测的核心——基于引擎机制的规则判断
这一步环节可以称之为病毒判断的核心阶段,一个好的杀毒引擎能在这个阶段识别出相当规模的病毒,其原理是在引擎中内置一部分病毒的特征代码,称为“基于特征码的静态扫描技术”,即杀毒引擎直接在文件中查找自身携带的特征代码.
3.在翰林辞典中穿梭——引擎与病毒特征库的交互
由于上述原因,如今的杀毒软件已经不得不采用外部数据库连接的方法来达到识别病毒的效果,病毒特征代码数据库中以特定格式储存了各种病毒的行为标识和静态代码,在工作时,杀毒引擎需要将捕获到的程序行为转换为它自身可以识别的行为标识和静态代码,然后进入病毒特征代码数据库中查询并期待其返回查询结果,因此这个步骤是整个杀毒过程中最慢的,但是不可否认,当前的杀毒软件对大量病毒的识别都是在这个阶段完成的。因此一个足够庞大的病毒库往往能够弥补杀毒引擎的不足之处,但是当今病毒越发复杂和繁多,如此长期以往,病毒特征库将会有一天过于臃肿而导致不良后果,要解决这个问题,只能在核心技术上尽量实现将病毒检测工作在第二步完成,只可惜在当前我们仍然没有能够实现这个想法的杀毒引擎技术,因此如今的杀毒软件或多或少都依赖着一个几十MB的病毒特征库来维持工作,杀毒厂商在杀毒引擎核心未进行关键修改时发布的病毒更新其实也就是为了往这个特征数据库中添加最新发现的病毒数据,以达到查杀新病毒的作用。
“基于特征码的静态扫描技术”的最大弱点在于它无法发现和查杀“未公开”或“未收录”的病毒,由于它的大部分判断依据来自病毒特征代码数据库,一旦用户被感染了病毒中的“0day”或“私人后门”,杀毒软件就无能为力,甚至落得个被病毒终结运行的下场,当然,由于杀毒软件自身的校验机制,一般不会有病毒愚蠢到去感染杀毒软件,但是如果一个杀毒软件被病毒终止了,它就无法对用户的计算机实施病毒防护了,但是如何判断阻止由病毒发出的关闭指令,而不影响用户正常点击杀毒软件自身提供的“退出”功能,这也是个难题。
一部分杀毒引擎会通过自身的病毒行为判断规范来“怀疑”某些未收录在数据库中的程序为病毒,并询问用户需要什么解决方案,一般情况下,杀毒软件最折衷的默认解决方案是将被怀疑动机不纯的程序文件改名备份到一个被称为“隔离区”的文件夹中,然后将该原始文件销毁。这样做或许能达到查杀未知病毒的目的,但是我们也不能忽视其可能带来的严重后果,例如某个关键文件或重要文档感染了病毒,如果杀毒软件不由分说就将其消灭,那就很可能引发系统崩溃甚至经济损失,因为一个健全稳妥的查杀过程和环境恢复是很重要的。


















文章评论
共有 位CH网友发表了评论 查看完整内容