一种能够加速对不期望的或恶意的代码扫描的方法和装置转让专利

申请号 : CN200580024701.8

文献号 : CN101002156B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 戴维·卡罗列·查尔斯约翰·皮特·卡瑞得斯

申请人 : 联想(新加坡)私人有限公司

摘要 :

一种能够加速对不期望的或恶意的代码扫描的方法和装置,计算机系统包括安全子系统,该安全子系统能够可信地跟踪自上次病毒扫描后存储设备中哪些文件或存储区域被改变。可信信息能够用于加速对非期望代码或例如病毒和非法或损坏注册条目的数据的扫描。在病毒的情况下,相对病毒定义的超集扫描已经改变的文件或存储区域。相对病毒定义的子集扫描未改变的文件或存储区域。

权利要求 :

1.一种能够加速对不期望的或恶意的代码扫描的方法,包括:对于恶意代码扫描存储设备的扫描区域中的文件,其中所述存储设备被划分为第一区域和扫描区域,所述第一区域在正常只读状态和可写状态之间是安全可配置的,其中所述配置是在安全系统的控制下进行的,所述安全系统具有操作系统执行的代码所不可访问的安全存储器;

在成功扫描至少一个没有发现恶意代码的文件的基础上,激活并认证安全系统的第一安全措施从而将所述第一区域配置为所述可写状态,其中所述认证在所述安全存储器之外执行;所述第一安全措施包括:以认证过程响应安全地记录新的成功的病毒扫描完成时间的请求,认证成功后将时间戳写入所述安全存储器,然后执行认证程序以响应成功扫描的文件的缓存刷新的请求,认证成功后将所述第一区域配置为所述可写状态;

将所述扫描区域中成功扫描的文件写入所述第一区域;以及

在写入所述成功扫描的文件后将所述第一区域配置为所述正常只读状态;将所述成功扫描的文件从所述扫描区域删除。

2.根据权利要求1所述的方法,其中对所述第一安全措施的所述认证是从包括密码、数字签名和生物测定的组中选出来的认证。

3.根据权利要求1所述的方法,其中所述第一区域和所述扫描区域是逻辑上划分的。

4.根据权利要求1所述的方法,其中所述第一区域和所述扫描区域是物理上划分的。

5.根据权利要求4所述的方法,其中物理划分的所述第一区域和所述扫描区域是在所述存储设备上各自连续的区域。

6.根据权利要求1所述的方法,其中在虚拟机监控器的控制下执行对所述第一安全措施的所述认证。

7.根据权利要求1所述的方法,其中所述安全系统被实现为硬件,从而所述安全存储器对执行所述操作系统的主处理器也是不可访问的。

8.一种能够加速对不期望的或恶意的代码扫描的装置,包括:处理器和用于存储代码的主存储器,其中所述代码由所述处理器在操作系统下执行;

具有由所述处理器在所述操作系统下执行的所述代码不可访问的安全存储器的安全系统;和操作上耦合至所述处理器和所述安全系统的存储设备,所述存储设备被划分为第一区域和读/写区域,所述第一区域在所述安全系统的控制下能够安全地在正常只读状态和可写状态之间进行配置;

其中所述安全系统在所述安全存储器中维护至少一个信任变量,所述信任变量识别在所述存储设备上对恶意代码的上次扫描的发生,并且所述安全系统通过查询所述信任变量和报告相关结果,来响应关于所述上次扫描的状态的请求,其中所述安全系统响应于提供的请求调用认证过程以将所述第一区域配置为所述可写状态,其中所述认证在所述安全存储器之外执行;

将所述读/写区域中成功扫描的文件写入所述第一区域;把所述第一区域配置为只读状态,并从所述读/写区域中删除成功扫描的文件。

9.根据权利要求8所述的装置,其中所述认证是从包括密码、数字签名和生物测定的组中选出来的认证。

10.根据权利要求8所述的装置,其中所述第一区域和所述读/写区域是在逻辑上划分的。

11.根据权利要求8所述的装置,其中所述第一区域和所述读/写区域是在物理上划分的。

12.根据权利要求11所述的装置,其中物理划分的所述第一区域和所述读/写区域是在所述存储设备上各自连续的区域。

13.根据权利要求8所述的装置,其中所述安全系统被实现为虚拟机监控器。

14.根据权利要求8所述的装置,其中所述安全系统被实现为硬件,从而所述安全存储器对所述处理器也是不可访问的。

15.一种能够加速对不期望的或恶意的代码扫描的方法,包括:将存储设备划分为第一区域和读/写区域,所述第一区域能够安全地在正常只读访问状态和可写访问状态之间进行配置,其中存储设备响应于将访问状态配置至所述第一区域的尝试采取第一安全措施;

通过下述方法将访问缓存至所述存储设备:

如果正访问的数据不存在于所述读/写区域就将读访问引导至所述第一区域;

如果正访问的数据存在于所述读/写区域就将读访问引导至所述读/写区域;

将写访问引导至所述读/写区域;

对于恶意代码扫描所述读/写区域;

在成功扫描至少一个没有发现恶意代码的文件的基础上,在所述存储设备上激活第一安全措施从而将所述第一区域配置为所述可写访问状态;所述第一安全措施包括:以认证过程响应安全地记录新的成功的病毒扫描完成时间的请求,认证成功后将时间戳写入所述安全存储器,然后执行认证程序以响应成功扫描的文件的缓存刷新的请求,认证成功后将所述第一区域配置为所述可写访问状态;

将所述读/写区域中成功扫描的文件写入所述第一区域;

将所述第一区域配置为所述正常只读访问状态;和

从所述读/写区域中删除成功扫描的文件。

16.根据权利要求15所述的方法,其中可写访问状态是读/写状态。

说明书 :

技术领域

本发明涉及一种能够加速对不期望的或恶意的代码扫描的方法、计算机系统和其它信息处理系统,尤其涉及一种计算机系统,其能够可靠地跟踪自上次病毒扫描后哪些文件或存储位置发生了变化,并且通过只扫描发生变化的文件或扫描没有变化但还未进行过新的病毒扫描的文件从而加速病毒扫描。

背景技术

早期计算机是彼此孤立的并且不能和其它计算机通信,但是现在大多数计算机都能够出于多种目的和其它计算机通信,包括共享数据、电子邮件、下载程序、协同操作等。这类通信是通过登录局域网(LAN)或万维网(WWW)实现的。尽管该扩展的范围具有明显的优势,但是是以面临越来越多的损害尤其是来自病毒的损害为代价的。
病毒是程序化代码,与其生物学上的对应物类似,它通常感染健康的代码或数据。病毒导致不期望的事件,例如使得被感染的计算机无效率地工作或彻底瘫痪。许多病毒的另一潜伏性特征是能够传播到网络上的其它计算机。
至少有四种主要类型的病毒,包括文件传染者(infector)、系统(或引导记录)传染者、蠕虫和宏病毒。文件传染者将其自身附在程序文件上。当载入程序时,也载入了病毒,使得病毒能够执行损害。系统传染者感染例如硬盘驱动器中的主引导记录的特定硬件或操作系统的注册表。主引导记录感染通常使得硬盘驱动器在随后的重启时不能操作,使得其不能启动计算机。蠕虫病毒消耗内存或网络带宽,从而使得计算机变得不响应。宏病毒是最常见的病毒,且感染字处理器程序。
另一常见类型的病毒目的是感染浏览器和电子邮件。一种此类的病毒导致拒绝服务(DoS)攻击。DoS病毒导致网站不能接受访问。由于百万计的被感染的计算机被强制(无意地)撞击网站,通常这种攻击使得网站的缓冲溢出。
为了对抗病毒,编写了反病毒程序,并且经常更新从而能有效地对抗新病毒。这种反病毒程序由物理介质(例如CD-ROM)交付或通过例如Internet的网络下载。反病毒程序将计算机系统的每一存储设备中的数据和病毒定义文件相比较,所述病毒定义文件中包括所有已知病毒类型的所有已知病毒的签名。该过程的术语是“扫描”。通常也下载更新,从而提供对这些更新的快速部署。然而,完成病毒扫描需要的时间变得越来越不能接受并且成为问题。导致扫描时间不可接受的两个因素是扫描的数据量和包括标识符的病毒定义文件的大小。这两个因素似乎都无限地增长。很快具有达到千兆位的磁盘容量的桌上型电脑系统就会变得普及。产生病毒的黑客好像具有更多的动力并且以更快的速度产生病毒。同时,扫描硬盘的时间并不会随着增加的处理器速度而显著地增加,因为扫描过程所需的时间和磁盘访问速度更加相关。增加的扫描次数导致的问题会变得更尖锐并更清晰。可以预见在最近的将来不可能每天都进行病毒扫描,原因很简单:由于上述因素完成病毒扫描最终会花费长于24个小时的时间。进一步地,在扫描过程中工作站不能工作。从而就影响了生产力,最终的成本分析会揭示对额外的系统成本进行调整从而纠正该问题。
背景的另一领域引出虚拟机和虚拟机监控器,其是应在共同硬件平台上同时运行为不同操作系统而写的应用程序的需求而产生的,或者是应对现有硬件资源的完全使用而产生的。自从20世纪60年代后期以来,虚拟机监控器就成为研究的课题并且作为“虚拟机监控器”(VMM)为大家熟知。本领域技术人员可以参考,例如,R.P.Goldberg于1974年发表于IEEE ComputerVol.7No.6的“Survey of Virtual Machine Research”。作为另一个例子,在20世纪70年代,国际商业机器公司在其VM/370系统中采用了虚拟机监控器。
有的时候形象地称为“管理程序”的虚拟机监控器是直接运行于硬件上面并虚拟化机器所有的硬件资源的小软件。由于虚拟机监控器的接口和机器的硬件接口相同,操作系统不能确定VMM是否存在。结果是,当硬件接口和下层硬件一一兼容时,同样的系统既能在虚拟机监控器上运行也能在原始的硬件上运行。从而可能当只需要系统资源的小的子集时,运行操作系统的多个事例或只是操作系统核心的事例。每个事例都称为虚拟机。能够在虚拟机复制的操作系统或不同的操作系统能够用于每个虚拟机。在任何情况下,虚拟机都是完全自治的并且依赖于虚拟机监控器访问例如硬件中断的硬件资源。背景的另一相关文件为世界知识产权组织的公开专利WO0028420A1。

发明内容

需要一种允许加速扫描时间而又不会损坏安全性的装置和方法。进一步地,需要一种提供平台的装置,由此能够减少扫描时间。此外,需要使用该装置提供的安全平台从而以更有效和安全的方式执行扫描的方法。
从下文将会看到所揭示的实施例目的在于满足上述需求并达到其它目的。本发明提供了能够跟踪自上次病毒扫描后哪些文件或存储位置发生了变化的方法和系统。进一步地,提供了安全区域用于存储属于先前扫描的变量。能够通过减少扫描的文件的数量和/或减少用于扫描的非期望代码标识符的数量,使用信息加速对不期望代码或数据的扫描。
根据本发明的一个实施例的系统解决了上述问题,该系统包括处理器和用于存储代码的主存储器,其中所述代码由所述处理器在操作系统下执行;具有由所述处理器在所述操作系统下执行的所述代码不可访问的安全存储器的安全系统;和操作上耦合至所述处理器和所述安全系统的存储设备,所述存储设备被划分为第一区域和读/写区域,所述第一区域在所述安全系统的控制下能够安全地在正常只读状态和可写状态之间进行配置;其中所述安全系统在所述安全存储器中维护至少一个信任变量,所述信任变量识别在所述存储设备上对恶意代码的上次扫描的发生,并且所述安全系统通过查询所述信任变量和报告相关结果,来响应关于所述上次扫描的状态的请求。此外,安全系统响应于提供的请求从安全存储器中调用认证过程以将第一区域配置为可写状态。
根据解决上述问题的本发明的一个实施例,提供了一种方法,该方法包括询问安全子系统以可信地确定自上次扫描后存储设备的区域是否已经被写入。所述安全子系统包括操作系统外执行的代码所不可访问的存储器。通过由安全子系统对不可访问的存储器的查询,所述确定有利于信任。该方法进一步响应于来自所述询问的自所述上次扫描后所述区域已经被写入的信任确定,对于非期望代码的标识符扫描所述区域。
根据本发明的一个实施例,提供了一种方法,询问安全子系统从而可信地确定自上次扫描后存储设备的区域是否已经被写入.所述安全子系统包括操作系统外执行的代码所不可访问的存储器.通过由安全子系统对不可访问的存储器的查询,所述确定有利于信任.该方法进一步响应于(1)来自所述询问的自所述上次扫描后区域没有被写入的确定,且响应于(2)先前的标识符包括在所述上次扫描中的确定,确定先前的恶意代码的标识符是否包括在上次扫描中,且省略对于非期望代码的先前标识符的在所述区域的扫描.
根据本发明的一个实施例,提供了一种方法,该方法包括询问安全子系统以可信地确定自上次扫描后存储设备的第一区域是否已经被写入。所述安全子系统包括操作系统外执行的代码不可访问的存储器,且其中通过由安全子系统查询所述不可访问的存储器,所述确定有利于信任。该方法响应于来自所述询问的自上次扫描后所述第一区域已经被写入的可信确定,对于已知的非期望代码的标识符扫描所述第一区域;确定先前的非期望代码的标识符是否包括在所述上次扫描中;以及响应于(1)来自所述询问的自所述上次扫描后所述第一区域没有被写入的确定,且响应于(2)所述先前的标识符包括在所述上次扫描中的确定,省略对于所述先前的非期望代码的标识符在所述第一区域的扫描,所述扫描省略产生了被省略区域。
根据本发明的一个实施例,提供了一种能够加速对不期望的或恶意的代码扫描的方法,该方法对于恶意代码扫描存储设备的扫描区域中的文件。所述存储设备被划分为第一区域和扫描区域。所述第一区域在正常只读状态和可写状态之间是安全可配置的。所述配置是在安全系统的控制下进行的,所述安全系统具有操作系统执行的代码所不可访问的安全存储器。所述方法进一步包括:在成功扫描至少一个没有发现恶意代码的文件的基础上,激活并认证安全系统的第一安全措施从而将所述第一区域配置为所述可写状态,其中所述认证在所述安全存储器之外执行;所述第一安全措施包括:以认证过程响应安全地记录新的成功的病毒扫描完成时间的请求,认证成功后将时间戳写入所述安全存储器,然后执行认证程序以响应成功扫描的文件的缓存刷新的请求,认证成功后将所述第一区域配置为所述可写状态;将所述扫描区域中成功扫描的文件写入所述第一区域;以及在写入所述成功扫描的文件后将所述第一区域配置为所述只读状态;将所述成功扫描的文件从所述扫描区域删除。

附图说明

下面结合附图仅以示例的方式描述本发明。
图1是描述根据本发明的优选实施例的计算机系统的框图,该计算机系统包括能够加速对恶意代码扫描的资源;
图2是描述根据本发明的优选实施例的磁盘驱动器的简化示意侧视图,该硬盘驱动器具有受保护区域、读/写区域和适用于提供数据查询的安全跟踪和安全数据保护的集成驱动器电子仪器;
图3是描述本发明优选实施例中使用的磁盘驱动器中的集成驱动器电子仪器的扩展视图的框图,该框图包括集成驱动器电子仪器的外围的其它硬件;
图4是描述根据本发明的一个实施例的单个磁盘驱动器底板的平面视图,该底板具有受保护区域和读/写区域的替代布局;
图5是描述根据本发明的一个实施例的单个磁盘驱动器底板的平面视图,该底板具有受保护区域和读/写区域的替代布局;
图6是将数据缓存在读/写区域并同时在没有对受保护区域进行修改的地方以正常模式操作的逻辑的流程图;
图7是根据本发明的一个实施例说明扫描自上次病毒扫描以后写入的所有文件的逻辑的流程图;
图8是根据本发明的一个实施例说明扫描受保护区域中未改变文件的逻辑的流程图;
图9是根据本发明的一个实施例说明扫描受保护区域中未改变文件的子集的逻辑的流程图;
图10是根据本发明的优选实施例的时间戳条目表,每个读/写和受保护区域都对应一个条目,其中在每个区域成功运行病毒扫描后将时间戳存储在安全存储器中;
图11是根据本发明的一个实施例的框图,其中控制器和安全存储器位于磁盘控制器中;
图12是根据本发明的一个实施例的框图,其中控制器和安全存储器位于IDE线缆中;
图13是描述根据本发明的一个实施例的系统虚拟化层次图,其显示运行虚拟化软件的计算机系统中的抽象层,其中采用了虚拟机监控器用于代替以硬件实现的控制器从而实现安全存储器和其它保护功能;和
图14是说明根据本发明的一个实施例对自上次病毒扫描以后写入的所有文件进行扫描的逻辑的流程图,其中在逻辑上而不是在物理上执行从读/写区域向受保护区域的文件移动。

具体实施方式

尽管在下文中参考附图对本发明进行了详细描述,其中显示了本发明的优选实施例,但是在一开始就需要理解本领域的技术人员在仍可取得本发明的有利效果的同时能够对本发明进行修改。相应地,需要理解下述的描述是面向本领域技术人员的宽范围的教导揭示,而不是限制本发明。
现在特别参考附图描述本发明的优选实施例,其中各个图中相似的附图标记表示相似的元件或步骤。说明书中出现的“一个实施例”、“实施例”或类似语言表示结合实施例描述的特定特征、结构或特点包括在本发明至少一个实施例中。从而说明书中出现的“一个实施例”、“实施例”或类似语言可以但不是必须地参考同样的实施例。
图1是描述根据本发明的优选实施例的计算机系统的框图,该计算机系统包括能够加速对恶意代码(例如病毒)扫描的资源。图1中描述的实施例可以是例如个人计算机的ThinkCenter或ThinkPad系列的桌上型计算机系统,或者是例如Intellistation的工作站计算机,由纽约的International BusinessMachines(IBM)Corporation of Armonk出售;然而,从下文中可以明显看出本发明适用于增加任何数据处理系统(ThinkCenter、ThinkPad和Intellistation是International Business Machines(IBM)公司的商标)中的病毒扫描的有效性和安全性。
如图1所示,计算机系统100包括至少一个系统处理器42,其通过处理器总线44耦合至只读存储器(ROM)40和系统存储器46。可以包括一个IBM公司生产的PowerPC TM线处理器的系统处理器42是通用的处理器,其在通电时执行存储在ROM40中的引导代码41并从而在存储在系统存储器46中的应用程序和操作系统的控制下处理数据.系统处理器42由处理器总线44和主桥48耦合至外设部件互连(PCI)本地总线50.PCI本地总线50支持多个设备的连接,包括适配器和桥.在这些设备中有将计算机系统100接合至LAN10的网络适配器66,和将计算机系统100接合至显示器69的图形适配器68.PCI本地总线50上的通信是由本地PCI控制器52控制的,本地PCI控制器52通过存储器总线54连接至非易失性随机访问存储器(NVRAM)56.本地PCI控制器52可以通过第二主桥60连接至另外的总线和设备.磁盘控制器72控制任何其它系统组件,包括系统处理器42,到磁盘驱动器200或来自磁盘驱动器200的访问或查询.
计算机系统100进一步包括工业标准架构(ISA)总线62,其由ISA桥64耦合至PCI本地总线50。耦合至ISA总线62的是输入/输出(I/O)控制器70,其控制计算机系统100和例如键盘和鼠标的相连外围设备之间的通信。此外,I/O控制器70支持计算机系统100通过串行和并行端口进行的外部通信。
本领域普通计技术人员通常具有操作系统和文件系统的工作知识。至于FAT文件系统,此处查询并参考了Advanced MS-DOS的第八章:The Microsoftguide for Assembly Language and C programmers,作者Ray Duncan,ISBN0-914845-77-2,1986,其描述了FAT文件系统的结构。尽管FAT文件系统用于本优选实施例,在不偏离本发明精神和范围的前提下能够使用其它的文件系统。
如在此处使用的,簇(cluster)是操作系统的文件系统驱动器使用的逻辑单元,用于访问(access)磁盘驱动器200上的数据。每个逻辑簇包括通常是临近的数个物理区。假定每个FAT分割都包含文件目录、文件分配表的两份复制和数据区域。文件目录包括每个文件的名称和其例如开始簇、相关日期等的属性。文件分配表包含包括每个文件的簇的链接列表。
用完系统存储器46的操作系统将计算机文件直接存储在预分配簇中,或者当文件太大不适于放进单个簇中时,通过将文件分为多个片段并将这些片段存储到磁盘驱动器200的各个簇中从而存储计算机文件。FAT文件系统允许操作系统跟踪每个文件片段的位置和顺序,也允许操作系统确认哪些簇还没有被指派且可用于新文件。当计算机系统100查询(reference)文件时,FAT文件系统作为参考,以将每个文件片段重组为一个单元,该单元是由文件系统驱动器组合。
大多数用户已经发现存储在计算机系统中的大部分数据都会长时间保持不变。对非期望或恶意代码的扫描,例如病毒扫描,通常都是基于一周一次执行的。参考经常更新的病毒定义文件执行扫描。然而,随着时间的增长,病毒定义文件本身包含大多数未改变的病毒标识符,例如病毒签名、代码片段、数据片段、无用信息等。因此,如已经发现的,大多数扫描活动都是对于未改变的数据扫描未改变的标识符。本发明的不同方面和实施例的目的在于通过提供用于扫描应用能够安全地确定自上次扫描以来哪些数据未改变的平台,这些数据通常是大多数数据,也通过省略对未改变的标识符的扫描,这些标识符是大多数标识符,来减少对于例如病毒的非期望代码扫描计算机系统的时间量。
图2是描述根据本发明的优选实施例的磁盘驱动器200的简化示意侧视图,该磁盘驱动器200具有受保护区域202、读/写区域204和适用于提供数据查询安全跟踪和安全数据保护的集成驱动器电子仪器201.在其它实施例中将显示磁盘驱动器200是现有的磁盘驱动器,安全跟踪和安全数据保护特征在系统的其它部分提供.然而,在图2所示的优选实施例中,由于计算机系统中累积的大部分数据相对于上次病毒扫描后是没有改变的,大多数单个磁盘或受保护区域202被保留用于已经进行过对恶意代码的成功扫描的未改变数据.磁盘驱动器的单个磁盘,即读/写区域204,被保留用于自从上次成功扫描后写入的数据.对于磁盘驱动器200内部来说,集成驱动器电子仪器201维护用于读/写区域204上新写入的文件的缓存并且使得受保护区域202在常规操作中处于只读访问模式.对于磁盘驱动器200外部来说,集成驱动器电子仪器201向文件系统驱动器提供现有接口,其中整个磁盘驱动器看上去是可写的.该配置提供了一个平台,其中(1)操作系统外执行的恶意代码不能改变受保护区域202和(2)文件的日期和属性数据是可信任的.进一步的实施细节将在下面描述.
此处没有描述的磁盘驱动器200的实施细节被认为是现有的。在大多数部分,省略了关于硬盘驱动器的构造的细节,因为这些细节对于全面地理解本发明不是必须的。
图3是描述本发明优选实施例中使用的磁盘驱动器200中的集成驱动器电子仪器的扩展视图的框图,其还包括集成驱动器电子仪器的外围的其它硬件。磁盘驱动器200的集成驱动器电子仪器201通过连接器307和306经由线缆电子仪器308耦合至计算机系统100。连接器306是磁盘驱动器200的一部分而连接器307是线缆电子仪器308的一部分。ATA接口304处理底层附加接口,实现为符合ATA标准的标准芯片,是硬盘驱动器上常见的用于和例如磁盘控制器72的EIDE(增强型集成设备电子部件)控制器接合的接口。尽管IDE(集成设备电子部件)驱动器用于优选实施例,在不偏离本发明范围的前提下也可使用SCSI驱动器和其它存储设备。控制器301处理本实施例的安全和保护特征,如此处描述的和将参考流程图所描述的进行工作。控制器301能够被实现为例如H8的微控制器,并耦合至安全存储器302。安全存储器302只能由控制器301寻址,因此,系统处理器42在系统存储器46外执行的操作系统中的病毒扫描不能访问安全存储器302。通过I/O指令,控制器301将病毒扫描特定变量存储在安全存储器302的非易失部分。此外,控制器301在安全存储器302外执行认证代码从而向请求使用该优选实施例的安全和保护特征的反病毒扫描软件应用提供认证业务。除了非易失性部分,安全存储器302包括随机访问存储器部分,其以比易失性部分更高的速率执行认证代码并且用于存储暂时变量和类似等。例如,如将参考的流程图的描述中,控制器301要求认证,从而将受保护区域202从只读访问变为读/写访问模式。
在一个实施例中,出于认证例如流程图中所示的预定安全操作和业务的目的,控制器301和安全存储器302实施数字签名方案。例如病毒扫描器的应用请求安全操作或业务。假定该应用具有私钥和公钥,假定控制器301知晓(privy to)该应用的公钥信息.根据该方案,该应用从控制器301处请求安全服务请求认证.控制器301响应于请求,生成一次性(只使用一次)随机数N1并且将N1发送给该应用.作为响应,该应用通过使用哈希消息认证代码(HMAC)功能将N1和该应用的私钥结合起来从而产生相应的一次性密码P1,从而对N1数字签名.SHA-1作为安全哈希方法使用,目前认为该方法是对字典攻击是免疫的.然后该应用将P1发送给控制器301.作为响应,控制器301根据预定和协商的SHA-1HMAC技术和该应用的公钥将P1解密,从而证实密码P1的真实性.如果证实了,该应用能够访问请求的安全资源.
也能使用其它认证技术。在一个实施例中使用了支持硬件的数字签名技术。磁盘驱动器200上的控制器301(如其它实施例中描述的也可以在其它位置)已知公钥,在某些地方保持私钥安全,例如在TCG TPM或Smart Card中。对TPM细节感兴趣的读者可以通过Internet在www.trustedcomputinggroup.org上找到TCG TPM Specification Version 1.2。可以通过安全通道或例如眼睛视网膜扫描或指纹识别子系统的生物测定对TPM或Smart Card进行认证,从而产生要求的授权。
类似地,对于图13中显示的虚拟机监控实施例,其中控制器301的功能嵌入至虚拟机监控器,可以通过使虚拟机监控器控制键盘和屏幕(图13未示)并且直接运行允许密码认证的应用或提供其中能够运行该应用的安全虚拟机,来实现认证。再次,该密码可能不是直接传送给硬件控制器,而是和随机数一起使用从而提供对字典攻击的额外保护。在一个实施例中,提供认证确认的从认证介质至硬件的直接通道能够提供输入直接密码的安全的“信任通道”,其对病毒免疫。在该实施例中,例如按钮一样简单的东西可以替代密码,因为病毒无法物理“按下”按钮。
在一个实施例中,需要简单性,能够使用简单的密码并且生效。然而,监听这样的认证的特别设计的病毒或木马能够攻破和直接密码一样简单的方案。然而,直接密码确实提供了最小级别的安全并且能够在病毒扫描后立即被执行从而最小化危险。
通过以执行认证代码的形式查询安全存储器或者通过参考存储在安全存储器302中的例如时间戳、文件或簇属性等的变量,该平台有利于对安全存储器302的查询的信任,其中恶意代码无法访问安全存储器302。
在可选实施例中,其中没有安全存储器,例如时间戳等的信任变量以加密形式存储在非安全存储器中(图未示)。尽管这个方法不一定有使用无法访问的存储器那么安全,但是它提供了最小程度的功能性。依赖信任变量的扫描程序能够访问该实施例的非安全存储器并且获取信任变量,并使用标准解密技术确定它们的真实性。只要密码使用能够提供安全性,恶意代码就无法得到变量的内容。在恶意代码篡改存储在该实施例的非安全存储器中的信任变量的情况下,标准解密技术允许对该篡改的检测。如果扫描程序在解密信任变量时检测到违规行为时,就省略此处描述的加速技术并且对存储在磁盘驱动器中的所有文件进行对恶意代码的扫描。
现在回到图3所示的实施例中的描述。控制器301和低电平驱动电路305接合,当没有控制器301时ATA接口以同样的方式和低电平驱动电路305接合。低电平驱动电路305控制低电平磁盘驱动功能,包括主轴电动机的启动和旋转速度、传动装置运动、误差校正、以及对受保护区域202和读/写区域204的读和写电流,包括磁头电流(head current)和比特编码协议。
在一个实施例中,安全存储器302的非易失性部分或子部分能够实现为受保护扇区或硬盘驱动器本身上的磁道。
图4是描述根据本发明的一个实施例的单个磁盘驱动器底板的平面视图,该底板具有受保护区域和读/写区域的替代布局.在图4所示的实施例中,任何一个单个磁盘或所有磁盘的表面都能够被分为受保护区域402和读/写区域404,而不是将受保护和读/写区域划分为分离的底板.将自从上次成功扫描以后写入的文件缓存到外部读/写区域404.将上次扫描中成功扫描的文件维护在内部受保护区域402中.
图5是描述根据本发明的一个实施例的单个磁盘驱动器底板的平面视图,该底板具有受保护区域和读/写区域的替代布局。在图5所示的实施例中,控制器301通过在安全存储器302中维护表格从而能够逻辑跟踪(说明)受保护区域502和读/写区域504,而不是将受保护和读/写区域划分为分离的底板或磁道。因而,受保护和读/写区域的划分并不需要如在其它实施例中那样是物理的或连续的。控制器301跟踪的区域能够是簇(逻辑)或扇区(物理)或一群簇或一群扇区或甚至是各个磁道。然而,跟踪簇是最方便的,因为磁盘上的目录是以簇维护的,并且用于跟踪区域的表格的非易失性部分能够被包括在硬盘本身的目录中,该区域通常实现在安全存储器302中。以和其它实施例相同的方式,确定哪些文件已经变化有利于对查询维持在安全存储器302中的表格的信任,在系统处理器42的控制下,操作系统外执行的病毒无法访问安全存储器302。
控制器301和安全存储器302实际上形成了安全子系统平台,由此反病毒扫描应用能够信任地确定反病毒参数从而提高反病毒扫描的效率。由于反病毒程序工作在文件级别上而不是簇级别上,并且由于操作系统的文件系统驱动器本质上是写簇而不是写文件,所以控制器301将自上次成功扫描后写入的簇关联至文件名。这通过为每个文件系统驱动器写入的簇查询硬盘划分上的目录和文件分配表格实现,从而获得缓存在读/写区域204中的文件的相应文件名。如下文中将会详细描述的,一旦对这些文件进行了成功的恶意代码扫描,存储在读/写区域204中的这些文件最终将会被移动至或转换成受保护区域的一部分。
在一个实施例中,作为缓存的可替代方式,整个磁盘能够保持在读/写模式。在这个实施例中,控制器301和安全存储器302通过在安全存储器302中维护写入簇的列表,安全地跟踪自上次扫描后硬盘的哪些区域发生了改变。反病毒软件可以从上述目录中获得自上次病毒扫描后改变了的文件的列表。该实施例提供了与具有受保护区域的缓存的实施例相关的减少的安全性等级。
图6是描述将数据缓存在读/写区域并同时在没有发生对受保护区域进行修改的正常模式操作下的逻辑的流程图。图6所示的逻辑在图3所示的控制器301中实现。当从操作系统的文件系统驱动器接收到对硬盘驱动器的查询时,缓存过程开始(602)。进行第一询问从而确定该查询是写查询还是读查询(604)。如果604中确定该查询是写查询,将数据写至读/写区域204(606)。如果604中该查询是读查询,进行第二确定(608),确定数据是否存在于读/写区域204中。如果608中确定数据存在于读/写区域204中,从读/写区域204读取数据(610)。否则,608中确定数据不存在于读/写区域204中,从受保护区域202读取数据。
图7是描述根据本发明的一个实施例说明扫描自上次病毒扫描以后写入的所有文件的逻辑的流程图.图7中虚线右边的过程由反病毒软件在扫描读/写区域204中的文件的过程中执行.虚线左边的过程由磁盘驱动器200的集成驱动器电子仪器201的控制器301响应于反病毒软件应用采取的动作而执行.同样的理念也用于图8和图9,即右边是应用动作,左边是控制器301响应.反病毒软件首先请求(701)自上次病毒扫描后写入的文件的目录.作为响应,控制器301交付(702)读/写区域204中文件的目录.反病毒软件然后对于所有已知病毒标识符的病毒扫描(704)每个文件.恶意代码的标识符或签名通常采用的形式是散列(hash),但是也能够采用其它形式,包括代码片段、数据片段、扫描操作系统注册表的注册条目等.如果在读/写区域204发现病毒,就采取校正动作(706).在病毒扫描成功完成后,反病毒软件就对读/写区域204的文件记录新的成功的病毒扫描完成时间(707).由于安全地记录新的成功的病毒扫描完成时间的请求包括写入安全存储器302,所以控制器301初始以认证过程(708)响应于这样的请求.认证过程708可以是上述认证过程中的任一个.如果认证708成功,对于读/写区域204,控制器301将时间戳写入安全存储器302(709).该时间戳代表上次成功的病毒扫描的完成时间并且在此后用于对后续扫描的进一步最小化.接下来,反病毒软件请求成功扫描的文件的缓存刷新(710).响应于请求710,控制器301执行认证例行程序(712).如果认证712成功,受保护区域202的访问模式变为读/写模式(713),读/写区域204中的文件被移到受保护区域(714).作为移动过程的一部分,在将扫描文件成功写入受保护区域202后,从读/写区域204删除成功地扫描的文件.然后将受保护区域202变为只读访问模式(715)并向反病毒软件返回确认.因而,只相对少数文件,只是那些自从上次扫描后改变的文件,扫描许多标识符、所有的标识符.
图8是描述根据本发明的一个实施例说明扫描受保护区域中未改变的文件的逻辑的流程图。反病毒软件初始请求自上次病毒扫描后未被写入的文件的目录(802)。作为响应,控制器301返回受保护区域202中文件的目录(804)。不需要相对在之前扫描中包括的标识符扫描这些文件。因而,反病毒软件只对于在上次扫描中未包括的新引入的标识符扫描受保护区域202中所有的文件(806)。这些新的标识符通常每个星期从Internet上下载,代表病毒定义文件中标识符集的一小部分。如果需要校正动作(808),例如如果发现了病毒,校正动作808需要和在通常的操作模式都设为只读模式受保护区域202上的数据相关。因而,为了采取校正动作808,需要将受保护区域202改变为可写模式。因而,如果需要校正动作808,反病毒软件认证访问模式改变操作(812),如果认证812成功,受保护区域202被改变至读/写模式(813)。控制器301然后允许在受保护区域202采取校正动作808(814)。在校正动作之后,控制器301将受保护区域202的访问模式改变回只读访问模式(815)。一旦成功完成病毒扫描,反病毒软件通过从安全子系统请求记录,安全地记录受保护区域202的新的成功完成日期(818)。一收到这样的请求,控制器301调用认证例行程序(819),如果成功则将受保护区域202成功扫描完成时间戳写入安全存储器302(820)。该时间戳是在确定自上次扫描日期新引入的标识符的扫描806中查询的。该确定能够得到信任,因为时间戳存储在安全存储器302中,只有控制器301才能访问该安全存储器302,并且系统处理器42在操作系统下执行的恶意代码无法访问安全存储器302。在成功地将时间戳写入安全存储器302后,向发病毒软件发出确认。从而,只相对大部分文件(受保护区域202中未改变的文件)扫描一小部分标识符(只有那些自上次扫描后新下载的标识符(如时间戳证实的))。
图9是描述根据本发明的一个实施例说明扫描受保护区域中未改变文件的子集的逻辑的流程图.该实施例和图8所示的实施例类似,允许当下载了新的标识符时,扫描较少的而不是所有受保护区域中的文件.这通过识别(906)受保护区域202中哪些文件比已知病毒形成的日期要晚而完成.因而,当从Internet上下载时,如果可行的话,标识符会包含这样的“第一已知日期”信息.受保护区域202中的文件的文件日期是可信任的,因为在常规操作时受保护区域都是维护在只读访问模式,只能通过认证的过程改变.反病毒软件然后比较病毒的第一已知日期和文件的修改日期,并且只扫描在病毒的第一已知日期后产生或修改的文件.
对于图7,8和9所示的实施例,尽管操作系统外的代码执行确实能够读访问受保护区域202,但是将受保护区域202认为时安全子系统的一部分和本发明的概念并不一致,因为受保护区域202通常不能写访问。只有在反病毒扫描完成后并且反病毒软件确定没有已知病毒活动在系统中时,才能写入这些区域。因而,在图9所示的示例中,能够通过反病毒软件直接读取受保护区域202执行文件日期的识别906,从而确定日期。这些日期是可信任的,因为在操作系统外执行的代码通常不能进行对受保护区域202的写访问。
图10描述了根据本发明的优选实施例的时间戳条目表1002,每个读/写和受保护区域都对应一个条目,其中在每个区域进行了成功的病毒扫描后时间戳都会存储在安全存储器302中。区域0对应于受保护区域202。区域1对应于读/写区域204。维护这些时间戳从而反病毒软件能够安全地确定在各个区域扫描时使用哪些标识符。注意存储在读/写区域204中的文件的文件日期是不可信任的。因而,对应于读/写区域204的时间戳代表缓存的暂存区(staging area)被刷新至受保护区域202的最后时间。如图7所示,相对所有已知的标识符扫描存储在读/写区域204中的所有文件。
图11是描述根据本发明的一个实施例的框图,其中控制器和安全存储器位于磁盘控制器72中而不是位于磁盘驱动器200本身。在该实施例中,因此,磁盘驱动器200整个是现有的结构。在该实施例中,控制器1101逻辑上维护受保护区域202和读/写区域204。该实施例的控制器1101的功能和上述实施例中维护区域202和204及响应反病毒软件的请求和查询的每个控制器301相似。否则,用于控制器1101的I/O接口和协议由于其位置而与上述的控制器301不同。操作系统下执行的代码是无法访问安全存储器1102,从而和上述实施例中对安全存储器302的信任类似,图11的实施例中的安全存储器1102也是可信任的。
图12是描述根据本发明的一个实施例的框图,其中控制器1201和安全存储器1202内置于线缆电子仪器308中。因而,在不偏离本发明的前提下,能够在整个系统定位安全子系统。确实,安全子系统的控制器和安全存储器部件不需要在同样的组件中定位。
图13是描述根据本发明的一个实施例的系统虚拟化层次图,显示运行虚拟化软件的计算机系统的抽象层,其中采用了虚拟机监控器用于代替以硬件实现的控制器从而实现安全存储器和其它保护功能.根据该实施例,不需要专门的硬件.在抽象的最底层是硬件层1300;这是计算机系统的物理硬件层.虚拟机监控器1302是位于硬件层1300之上的中间层,通过运行在计算机系统中的软件拦截所有试图对系统存储器46和磁盘控制器72的访问.根据上述任一实施例,正是在虚拟机监控器1302作为虚拟机监控器本身的一部分执行控制器301的功能.同样地,计算机系统有利于虚拟机监控器提供的所有的安全性和隔离特征.在抽象的最高层是虚拟机1304和1306,最终运行操作系统和软件应用.将虚拟机配置为不能获知其它虚拟机存在.同样地,虚拟机监控器1302将系统存储器46虚拟化,从而分配任意操作系统执行的代码无法直接访问的安全存储器;在系统通电状态下,该虚拟安全存储器和安全存储器302的功能类似.因此,虚拟机-11304中的OS-1外执行的病毒,例如,不能篡改认证过程或访问信任的变量.当机器断电时,必须使用任何已知的将加密数据保存和重存至非安全非易失性存储器的方法将安全变量、认证代码等安全地存储到任何非易失性存储器中.因此,此处描述的实施例不限于硬件实施.
图14是描述根据本发明的一个实施例说明扫描自上次病毒扫描以后写入的所有文件的逻辑的流程图,其中从读/写区域向受保护区域的文件移动是在逻辑上而不是在物理上执行的。该实施例优选地实现为图5所示的逻辑配置的受保护和读/写区域。在需要的情况下,该实施例安全地将受保护区域转换为读/写区域并将读/写区域转换为受保护区域,而不是将数据缓存在读/写区域并将缓存刷新至受保护区域。除了下面特别指出的,图14所示的过程和图7所示的过程类似。反病毒软件首先请求自上次扫描后的文件的目录。作为响应,控制器301交付已改变的文件目录(1402)。这是如图5所示的读/写区域504中的文件的目录。在该实施例中,反病毒软件不需要特定知道文件是否从读/写区域逻辑或物理上移动到受保护区域。该请求1410能够是缓存刷新或对成功扫描的文件的转换。响应于请求1410,控制器301执行认证例行程序。如果认证成功,读/写区域504内的成功扫描的文件被转换,或者附加至逻辑上的受保护区域502(1414)。然后向反病毒软件返回确认。两个区域之间的磁盘空间的分配是动态的,因此任一区域空间耗尽的可能性较小。当向受保护区域502加入新文件时,将它们的存储位置加入定义“逻辑”上的受保护区域502的表格中。为了防止受保护区域502不受限制的增长,新增加至受保护区域的文件的先前拷贝(即当前存在于受保护区域的拷贝)能够从逻辑受保护区域删除并且增加至逻辑“读/写”区域,可选地标记为空或已擦除。使用这一过程,如图7所示的过程,相对少数文件,只是那些自从上次扫描后改变的文件,扫描许多标识符、所有的标识符。
图14所示的实施例能够被实现为关于图13所描述的虚拟机管理器。
其它实施例也是可能的,其中在要扫描的区域首先被置于只读状态后才进行写入或转换至受保护区域。可选地,要扫描的区域能够首先被移动至只读暂存区,从而一旦被扫描,在扫描文件和写入或转换文件的时间之间,文件不会受到病毒执行的攻击。然而,该可选实施例比其它实施例占用更多的磁盘空间。也可以提供作为计算机程序产品的本发明的实施例,该产品包括存储了指令的机器可读介质,该指令可将计算机(或其它电子设备)编程从而执行根据本发明任一实施例的过程。机器可读介质可以包括,但不限于,软盘、光盘、CD-ROM、磁光盘、ROM、RAM、EPROM、磁或光卡、或用于存储电子指令的其它类型的介质/机器可读介质。此外,本发明的实施例也能够作为计算机程序产品下载,其中通过将数据信号以载波或其它传播介质的形式通过通信链路(例如调制解调器或网络连接),该程序可以从远程计算机上传送到请求计算机上。
相对其它实施例中能够使用不同顺序的步骤实现此处描述的本发明的概念,此处给出的步骤的顺序只是出于示例的目的,不应看为限制本发明。权利要求中步骤的顺序安排只是为了提高清晰性而不是意味着必须采用任何特定的步骤顺序。
在附图和说明书中描述了本发明的优选实施例,尽管使用了特定术语,在描述中使用的只是通用的和描述性的术语,不应视为限制。