在引导环境中标识恶意软件的制作方法

文档序号:6455365阅读:202来源:国知局
专利名称:在引导环境中标识恶意软件的制作方法
在引导环境中标识恶意软件 背景
随着越来越多的计算机和其它计算设备通过诸如因特网等各种网络进 行互联,计算机安全已经变得日益重要,尤其是因通过网络或通过信息流 传递的入侵或攻击而引起的安全问题。如本领域的技术人员和其他人员将 认识到的,这些攻击以许多不同的形式出现,这些形式包括但肯定不限于
计算机病毒、计算机蠕虫、系统组件替换、木马、RootKit、间谍软件、服 务拒绝攻击、甚至合法计算机系统特征的误用/滥用,所有这些均为非法目 的而恶意利用一个或多个计算机系统漏洞。尽管本领域的技术人员将认识 到,各种计算机攻击在技术上是彼此不同的,但为了本发明的目的及为了 描述的简单,在诸如因特网等计算机网络上散播的所有恶意计算机程序将 在下文中被统称为计算机恶意软件,或者简称为恶意软件。
当计算机系统受到攻击计算机恶意软件的或被其"感染"时,不利结
果各有不同,包括禁用系统设备;擦除或破坏固件、应用程序或数据文件;
将潜在敏感的数据发送到网络上的另一个位置;关闭计算机系统;或者使 计算机系统崩溃。即使不是全部,但也是众多计算机恶意软件的又一有害 方面在于使用受感染的计算机系统来感染通过网络连接来通信地连接的其 它计算机系统。
对计算机恶意软件,尤其是对计算机病毒和蠕虫的传统防护是反病毒 软件。大多数反病毒软件通过将数据中的模式与被称为恶意软件的"签名" 的内容进行匹配来标识该恶意软件。通常,在调度特定事件发生时,如在 从计算机上的存储设备中读取或向其写入数据时,反病毒软件扫描恶意软 件签名。如本领域技术人员和其他人员所理解的,计算机用户有从诸如硬 盘等存储设备读取和写入数据的不断发生的需求。例如, 一些软件应用程 序提供的一个共同操作是打开存储在硬盘上的文件并在计算机显示器上显 示该文件的内容。然而,由于打开文件可能使得与该文件相关联的恶意软 件被执行,所以在满足打开操作之前,反病毒软件通常对该文件执行扫描 或其它分析。如果检测到恶意软件,则执行扫描的反病毒软件可以例如通过使打开操作失败来阻止该恶意软件被执行。
恶意软件正日益用被特别设计来将该恶意软件向被设计来保护计算机 的软件(例如,反病毒软件、反间谍软件软件等)"隐藏"的一个或多个 程序来分发。类似于安装在计算机上的其它类型的应用程序,被设计来保 护计算机免于恶意软件的软件依赖于操作系统所提供的服务。然而,如果 恶意软件能够感染计算机操作系统的组件或其它低级组件,则恶意软件可 以控制提供给被设计来保护计算机的软件的信息。特别设计来隐藏作为计 算机上的恶意软件的特征的数据的恶意软件以下一般被称为"RootKit"。
出于说明的目的且仅作为示例,图1描绘RootKit如何能够控制对于 被设计来保护计算机100免于恶意软件的软件可用的信息。如图1所示, 计算机100包括应用程序102、操作系统104、存储设备106和RootKit 108。 同样,操作系统104包括向安装在计算机100上的应用程序提供应用程序 编程接口 ( "API")形式的服务的接口 110。应用程序102执行被设计来 保护计算机100免于恶意软件的动作。例如,在用户尝试访问存储在存储 设备106上的文件时,应用程序102可以扫描文件以寻找"访问时(on access)"恶意软件。然而,如图1所示,应用程序102以用户模式执行操 作并依赖于至少部分地以内核模式操作的操作系统104所提供的服务。此 外,计算机100感染了 "挂钩"在操作系统104中的RootKit 108,其中其 截取被用来在计算机100上执行基本功能的调用。换言之,RootKit 108担 当了 "中间人",从而监视和更改操作系统104和安装在计算机100上的 应用程序之间的通信。如果诸如反病毒软件等应用程序试图列出包含 RootKit 108所使用的一个或多个文件的目录的内容,则RootKit 108将审査 来自列表的文件名。类似地,RootKit 108可以隐藏系统注册表、进程列表 等中的条目,从而控制RootKit 108想要隐藏的所有信息。
概述
提供本概述以便以简化的形式介绍将在以下详细描述中进一步描述的 一些概念。本概述并不旨在标识所要求保护的主题的关键特征,也不旨在 用于帮助确定所要求保护的主题的范围。
一般而言,本发明的各方面针对标识使用在引导环境中激活以避免被检测的程序代码的恶意软件。根据一实施例,提供了在引导过程期间执行 对恶意软件的搜索的方法。更具体地,该方法使得被配置为扫描恶意软件 的软件模块在计算机启动时被初始化。随后,响应于标识扫描事件的发生, 该方法使得该软件模块搜索计算机存储器以寻找作为恶意软件特征的数 据。如果标识了恶意软件的数据特征,则实现防止恶意软件在计算机上执 行的功能。作为在计算机启动时执行扫描的结果,执行向反病毒软件隐藏 的混淆技术的恶意软件被标识。


当结合附图参考以下详细描述时,可以更容易领会并更好地理解本发 明的上述方面和许多附加优点,附图中
图1是被配置为执行现代计算机的功能的软件组件和被设计为隐藏恶
意软件的RootKit的框图2是具有被配置为在引导环境中标识恶意软件的组件的计算机的图 示描绘;
图3是示出在计算机启动时执行的事件的示例性时间线的图示描绘; 图4是在引导过程期间标识恶意软件的软件模块的示例性流程图。
详细描述
本发明的各方面可在诸如程序模块等由计算机执行的计算机可执行指 令的通用上下文中描述。 一般而言,程序模块包括执行特定任务或实现特 定抽象数据类型的例程、程序、应用程序、窗口小部件、对象、组件、数 据结构等。此外,本方面可以在其中任务由通过通信网络链接的远程处理 设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以 位于本地和/或远程计算机存储介质上。
现参考图2,将描述具有实现本发明的各方面的组件的计算机200。本 领域技术人员和其他人将认识到,计算机200可以是各种设备的任一种, 包括但不限于,个人计算设备、基于服务器的计算设备、小型和大型计算 机、膝上型计算机、个人数字助理("PDA")、机顶盒、娱乐和游戏系 统、或具有某种类型的存储器的其它电子设备。图2所示的计算机200包 含与以上参考图l所描述的名称相同的多个相同的组件。就此,计算机200包括应用程序202、具有相关联的接口 205的操作系统204和存储设备206。 为易于说明且因为其对于理解本发明并不重要,所以图2未示出许多计算 机系统的典型组件,如键盘、鼠标、显示器、CPU、存储器等。然而,在 该实施例中,计算机200还包括扫描引擎208和引导检测模块210。如下更 详细地描述的,扫描引擎208和引导检测模块210共同提供标识诸如 RootKit等在可以使用传统反病毒软件所提供的服务之前开始执行的恶意 软件的方法。就此,在引导计算机200时,标识感染该计算机的RootKit 或其它恶意软件以使RootKit不能够继续隐藏作为恶意软件特征的数据。
图2中示出的操作系统204可以是诸如Microsoft⑧操作系统、UNIX 操作系统或Linux⑧操作系统等通用操作系统。同样,操作系统204可被配 置为使用为专用计算机系统所设计的非通用硬件。无论如何,如本领域技 术人员和其他人员所理解的,操作系统204控制计算机200的一般操作并
负责管理硬件和基本系统操作以及执行应用程序。更具体地,操作系统204 确保诸如应用程序202等计算机程序能够使用像存储设备206等资源。通 过提供供代码在为操作系统204所保留的存储器空间中执行的机制,现代 计算机允许应用程序扩展操作系统204的功能。这类系统的问题是RootKit 或其它恶意软件可能能够危及操作系统204提供给诸如反病毒软件等应用 程序的数据的完整性。结果,RootKit能够实现防止反病毒软件标识该 RootKit和/或任何其它相关联的恶意软件的混淆技术。
本领域技术人员和其他人员将认识到,RootKit通常将其自身添加到计 算机上的自动启动可扩展性点(以下称为"ASEP")。 一般而言,ASEP 指的是允许无需明确的用户调用而开始执行程序的可扩展性点。作为被添 加到ASEP的结果, 一旦用户执行"登录"或其后某一时间,RootKit则可 以在引导过程期间开始执行。通常,反病毒软件使用操作系统所提供的服 务来搜索恶意软件且只在操作系统所提供的服务可用的情况下才可以保护 计算机。结果,在操作系统的服务可用之前感染操作系统或计算机的其它 低级组件的RootKit可能能够隐藏作为恶意软件特征的数据。在本发明的一 实施例中,提供了在操作系统所提供的服务可用之前标识恶意软件的引导 检测模块210。由于引导检测模块210的各方面在下文中参考图4更详细地描述,因此在此将不提供引导检测模块210的详细描述。然而, 一般而言,
引导检测模块210使扫描引擎208在引导过程期间被加载到存储器中并被 执行。如果标识了恶意软件,则可以从计算机移除该恶意软件或者可以"隔 离"该恶意软件以便一旦计算机引导之后,反病毒软件可以处理该感染。
如图2中进一步示出的,计算机200还包括用于确定计算机存储器中 的数据是否是恶意软件的特征的扫描引擎208。扫描引擎208可以使用任何 当前现有的或将要开发的技术来标识在操作系统204所提供的服务可用之 前开始执行的恶意软件。就此,扫描引擎208可以利用完整性检验来验证 实现操作系统的程序代码是否是由诸如操作系统提供者等可信实体数字地 签名的。此外,扫描引擎208可以搜索诸如在非预期位置的跳转指令、隐 藏的进程、对分配给操作系统204的范围之外的存储器地址的引用等可疑 活动。例如,某些操作系统维护具有当前正在执行的程序列表的数据结构, 有时也称为进程表。从进程表或类似的数据结构中移除一个条目可能是存 在RootKit的强烈的启发式指示符。同样,扫描引擎208可以利用引导环境 中的传统的基于签名的技术来检测恶意软件。就此,可以通过将实现恶意 软件的文件数据中的模式和被称为该恶意软件的"签名"的内容进行匹配 来标识该数据。在这种情况下,已知是实现恶意软件的数据,或该数据的 特征子集,是由将该数据转换为唯一地标识该恶意软件的签名的函数来处 理的。 一旦关于该恶意软件的签名可用,则搜索引擎208可以在存储器中 搜索匹配的数据。
如本领域技术人员和其他人员所理解的,图2是能够实现本发明的各 方面的一个计算机200的简化示例。计算机200的实际实施例将具有图2 中未示出的或在所附文本中所描述的另外的组件。同样,图2示出能够在 引导环境中执行对恶意软件的搜索的一个组件体系结构。因此,图2中示 出的软件组件应被解释为是示例性的而非限制性的。
现参考图3,将描述示出在引导计算机时所执行的事件的示例性时间 线300。本领域技术人员和其他人员将认识到,时间线300是可在计算机启 动时发生的事件的概括且非穷尽性的集合的高度简化的示例。在其它实施 例中,可以发生另外的或更少的事件,或者事件能够以与以下提供的描述所不同的顺序来发生。因此,图3中示出的时间线300仅仅是说明性的并 应被解释为是示例性的。
如图3所示,在事件302处,电源被"打开"以便向计算机供电。在 有足够的电源可用时,在事件304处,CPU开始执行基本输入输出系统 ("BIOS")代码。BIOS代码包含使计算机执行用于初始化计算机硬件的 功能的计算机指令通常,计算机一旦上电,计算机的BIOS则进行通常被称 为上电自检(POST)的硬件检查以确定支持硬件是否存在并正确工作。本 领域技术人员和其他人员将认识到,BIOS通常位于非易失性存储器中以确 保BIOS总是可用的且将不被影响易失性存储器或大容量数据存储的故障 的损坏。此外,本领域技术人员和其他人员将认识到,BIOS提供低级输入 /输出控制。例如,在个人计算机中,BIOS包含控制键盘、显示器屏幕、 盘驱动器、执行基本输入输出("I/O")、和其它杂项功能的计算机指令。
在事件306处,BIOS中的指令将控制定向到操作系统加载器。通常, 操作系统加载器执行硬件检测,将操作系统加载到例如, 一组随机存取存 储器(RAM)存储器设备等计算机易失性存储器中,并开始初始化操作系 统。在事件307处,加载操作系统"内核",且其可用于向其它组件提供 服务。就此,在事件308处,操作系统的称为I/O管理器的一个组件的初 始化启动加载和初始化引导驱动程序的进程。就此,1/0管理器组装引导驱 动程序的优先化列表且该列表上的每一驱动程序都被加载到存储器中。引 导驱动程序通常提供启用对诸如视频卡、打印机、盘驱动器等硬件资源的 优化的访问的服务。 一旦加载了所有的引导驱动程序,则在事件310处, 启动用户模式子系统。 一般而言,用户模式子系统向用户模式应用程序空 间提供支持服务。就此,启动用户模式子系统可以包括建立本地安全授权 机构并最终向用户呈现"登录"提示。在事件312处,执行登录且使用户 模式服务可用。例如,服务器消息块("SMB")是在执行登录后变得可 用的、在计算机之间共享文件、打印机、串行端口和通信抽象的协议。一 旦用户模式服务可用,则在事件314处,可以访问用户模式应用程序空间 来执行程序。 一旦到达事件314,可以执行被设计来在通用计算机上执行特 定任务的程序。就此,在程序被选择来在用户模式应用程序空间中执行时,
10操作系统可以使得与该所选择的程序相关联的程序代码从存储设备(例如, 硬盘驱动器)加载到CPU可以访问该程序代码的存储器中。
如以下更详细地描述的,本发明的各方面使得在引导过程期间执行对 恶意软件的搜索。更具体地,在时间线300的任何数量的不同位置处,可
以将软件模块(例如,扫描引擎208)加载到存储器中。随后,可以执行对 作为恶意软件特征的数据的搜索。就此,可以继续扫描在引导过程期间执 行的组件,直到一旦引导过程完成,传统反病毒软件可用来保护计算机为 止。
取决于计算机的配置,本发明的各方面可以在BIOS、操作系统加载器、 或引导驱动程序中实现。就此,且如图3所示,扫描引擎208可被加载到 存储器中,并在事件304、 306或310处开始执行。 一般而言,期望在引导 过程中尽可能早地开始扫描恶意软件,以防止感染先前组件的恶意软件拥 有实现混淆技术的机会。然而,即使恶意软件能够在引导过程期间实现混 淆技术,该恶意软件可用的资源也可能不足以来避免检测。就此,引导环 境是受限的,且恶意软件隐藏自身和/或在实现本发明的计算机上执行恶意 动作的能力受到限制。
时间线300或引导过程中提供免于恶意软件的保护的位置可以取决于 计算机的配置。例如,本领域技术人员和其他人员将认识到,计算机厂商 各自都可以提供用于初始化计算机上的硬件的不同BIOS。因此,BIOS所 提供的服务可能是不标准化的,但是可以不管计算机平台而提供本发明的 单个实现。换言之,如果BIOS所提供的服务是跨计算机平台标准化的,则 在BIOS中实现本发明的各方面可以更容易地被执行。更一般地,引导过程 中扫描引擎208被加载到存储器中以及开始执行的位置可以取决于影响计 算机可被如何配置的任何数量的因素。
现参考图4,将更详细地描述如上参考图2简单提到的示例性引导检 测模块210。 一般而言,引导检测模块210提供标识诸如RootKit等在引导 过程期间变为活动的恶意软件的方法。通过在引导过程期间变为活动的, 恶意软件能够更容易地实现混淆技术来过滤传递到传统反病毒软件的数 据。最初,在执行引导检测模块210之前,"打开"电源以使有电能可供计算机使用。
如图4所示,引导检测模块210在框400处开始,在此作出关于是否
在当前引导中执行一个或多个恶意软件扫描的判定。如上所述,在电源被 施加到计算机时,发生使得计算机引导的一系列事件。在一实施例中,引
导检测模块210可被配置为在计算机每次引导时都扫描恶意软件。然而,
取决于所使用的技术,扫描恶意软件可以是资源密集型过程。因此,在其 它实施例中,基于是否满足最小化计算机资源的使用的先决条件而选择性 地执行恶意软件扫描。
可被用来在各情况之间区分要还是不要执行恶意软件扫描的第一先决 条件是"可疑"活动的标识。反病毒软件可以标识可能是恶意软件特征的 活动但没有足够的信息来确定地声明存在恶意软件感染。在这种情况下, 计算机或计算机网络可以转换到在其中进行对恶意软件的穷尽性搜索的加
强状态。到加强状态的转换可以使得在计算机的每次引导期间都执行恶意 软件扫描。就此,在标识可疑活动时可以设置跨各次引导而持续存在的变
量以指示将在计算机启动时执行恶意软件扫描。在这种情况下,在框400 处,引导检测模块210检査该变量的值以确定是否执行恶意软件扫描。
可被用来在各情况之间区分要还是不要执行扫描的另一先决条件是基 于用户输入的。就此,可以将使用户能够生成使得在引导过程期间执行恶 意软件扫描的输入的控制集成到反病毒软件中。同样,在引导过程期间可 以提示用户提供关于是否应当执行扫描的输入。类似于以上所提供的描述, 在接收到指示将执行扫描的适当的用户输入时,可以设置持续存在的变量。
作为附加示例,可以自动调度恶意软件扫描而不需标识可疑活动或接 收用户输入。就此,本发明的各方面可被配置为以诸如计算机每五次引导 等规则的时间间隔或其它任意地建立的值来执行恶意软件扫描此外,可以 随机做出关于是否发生恶意软件扫描的判定。例如,本领域技术人员和其 他人员将认识到,诸如高级可编程中断控制器("APIC")等硬件设备可 被用来生成随机值。就此,关于是否在当前引导中执行恶意软件扫描的判 定可以基于该值。如果由于不满足适当的先决条件而在框400做出不执行 恶意软件扫描的判定,则引导检测模块210前进至框414,其在此终止。相反,如果作出执行扫描的判定,则引导检测模块210前进至框402。
在框402处,初始化扫描引擎208 (图2)且其在引导过程中的预定位 置处开始执行。如上所述,在引导计算机时,本发明的各方面可以在可能 不同的位置处开始搜索恶意软件。就此,可以将实现本发明的程序代码集 成到BIOS、操作系统加载器、或引导驱动程序中。结果,在框402处,扫 描引擎208的初始化可以在时间线300 (图3)中的不同位置处发生。此外, 在其所集成到其中的组件中,扫描引擎208的初始化可以且通常将被分配 最高优先级。例如,如上所述,使用优先化列表来标识引导驱动程序被初 始化的顺序。如果扫描引擎208是由引导驱动程序来初始化的,则该引导 驱动程序与其它引导驱动程序相比被分配最高优先级。结果,在后续初始 化的引导驱动程序被加载到存储器中时,对其进行恶意软件扫描。以此方 式,在引导过程期间恶意软件可以隐藏自身的可能性被最小化。
如图4所示,在判定框404处,引导检测模块210保持空闲,直到扫 描事件发生为止。在一实施例中,扫描引擎208 —被初始化则自动执行恶 意软件扫描。然而,可以定义使得在引导过程期间执行另外的恶意软件扫 描的扫描事件。类似于现有反病毒软件所执行的"访问时"扫描,在引导 过程期间加载到存储器中的软件的每一部分在被允许执行之前都由扫描引 擎208来扫描。例如,在每一引导驱动程序被加载到存储器中时,在事件 310 (图3)处,可以生成扫描事件以便对引导驱动程序进行恶意软件扫描。 此外,本领域技术人员和其他人员将认识到, 一旦扫描引擎208被初始化, 则可以在其它情况下生成扫描事件而不背离所要求保护的主题的范围。
在扫描被标识的事件时,在框406处,引导检测模块210使得恶意软 件扫描被执行。如上参考图2简要地提到的,任何当前现有的或要被开发 的技术都可被用来搜索恶意软件。就此,扫描引擎208可以实现完整性检 验来确定分配给操作系统的存储器地址空间中的程序代码是否是源自可信 实体的。同样,除完整性检验之外,构想可以在扫描中执行基于签名的技 术和/或搜索"可疑修改"。
在一实施例中,在框406处执行的扫描搜索已知恶意软件的子集。如 上所述,恶意软件扫描可以是资源密集型过程。此外,扫描引擎208在执行扫描时所请求的服务与非引导环境相比在引导环境中可能不能被迅速满 足。就此,在引导环境中执行对所有已知的恶意软件的扫描可能负面影响 用户体验。因此,在框406处,可以执行扫描来标识最可能在引导环境中
开始执行的恶意软件的类型(例如,RootKit)。然而,本领域技术人员和
其他人员将认识到,这仅仅是优化技术且不应被解释为对所要求保护的主
题的限制。随后,在判定框408处,作为在框406处执行的扫描的结果, 作出关于是否标识了恶意软件的判定。如果没有标识恶意软件,则引导检 测模块210前进至以下将更详细地描述的框412。相反,如果标识了恶意软 件感染,则引导检测模块210前进至框410。
如图4所示,在框410处,引导检测模块210使得该恶意软件感染被 处理。如果到达框410,则在引导过程期间标识恶意软件的数据特征。在一 实施例中,在框412处处理感染包括尝试通过杀死进程、删除文件、移除 配置文件中与恶意软件相关联的条目等来从计算机中移除该恶意软件。然 而,由于在引导环境中可用的资源是有限的,所以在框412处,成功地移 除恶意软件的所有组件可能是困难的或不可能的。例如,某些恶意软件实 现在其中监视恶意软件的资源(例如,文件、进程、配置文件中的条目等) 的自我保存技术。在标识了移除该恶意软件的尝试时,执行被设计来保存 该恶意软件的资源并维持感染的功能。因此,处理恶意软件感染还可以包 括"隔离"恶意软件的在引导环境中活动的组件。就此,可以使用"占位 程序(stub)"模块作为恶意软件的占位符。例如,占位程序模块可被配置 为维持恶意软件进程、响应于被调用而接受和/或返回有效数据、或执行防 止触发恶意软件自我保存技术的任何其它动作。在该实施例中,在隔离恶 意软件时,数据通常被传递到一旦计算机引导则执行的反病毒软件,以便 可以移除恶意软件的所有组件。
如图4所示,在框412处,作出关于计算机是否成功引导的判定。如 上所述,在传统反病毒软件能够提供保护之前,本发明的各方面标识在引 导环境中变为活动的恶意软件。然而, 一旦引导过程完成并且传统反病毒 软件可用。本发明的功能则休眠直到引导过程重新启动为止。在引导过程 完成时,引导检测模块210前进至框141,其在此终止。然而,如果在框412处作出引导过程未完成的判定,则引导检测模块返回至框404,且重复 框404-412,直到引导过程确实完成为止。
尽管示出和描述了各说明性实施例,但可以理解,可在其中作出各种 改变而不背离本发明的精神和范围。
权利要求
1. 一种在计算机启动时利用引导过程的计算机200中的计算机实现的方法,所述方法标识在所述引导过程期间变为活动的恶意软件,所述方法包括(a)使得被配置为执行恶意软件扫描的软件模块在所述引导过程期间被初始化402;(b)响应于标识扫描事件的发生404(i)使得所述软件模块扫描计算机200存储器以寻找作为恶意软件特征的数据406;以及(ii)如果标识了恶意软件的数据特征,则处理所述恶意软件感染410。
2. 如权利要求1所述的方法,其特征在于,所述被配置为执行恶意软件扫 描的软件模块是在所述引导过程中执行BIOS的阶段处初始化的。
3. 如权利要求1所述的方法,其特征在于,所述被配置为执行恶意软件扫 描的软件模块是在所述引导过程中执行操作系统加载器的阶段处初始化的。
4. 如权利要求1所述的方法,其特征在于,所述被配置为执行恶意软件扫 描的软件模块是在引导驱动程序中实现的。
5. 如权利要求1所述的方法,其特征在于,恶意软件扫描是在满足先决条 件时在计算机启动时选择性地执行的。
6. 如权利要求5所述的方法,其特征在于,用户输入是所述被用来确定在 当前引导期间是否执行扫描的先决条件。
7. 如权利要求1所述的方法,其特征在于,恶意软件扫描是在所述计算机 200的规则地调度的引导时选择性地执行的。
8. 如权利要求1所述的方法,其特征在于,恶意软件扫描是在所述计算机 200的随机选择的引导时执行的。
9. 如权利要求1所述的方法,其特征在于,使得所述软件模块扫描计算机 存储器以寻找作为恶意软件特征的数据包括将存储器中的数据和与恶意软件 相关联的签名进行比较。
10. 如权利要求l所述的方法,其特征在于,使得所述软件模块扫描计 算机存储器以寻找作为恶意软件特征的数据包括执行完整性检验来确定分配 给所述操作系统的存储器空间中的程序代码是否源自可信实体。
11. 如权利要求l所述的方法,其特征在于,所述扫描被配置为标识可 能在引导环境中活动的所有已知恶意软件的子集。
12. 如权利要求1所述的方法,其特征在于,处理所述恶意软件感染410包括杀死进程、删除文件、以及移除配置文件中与所述恶意软件相关联的条目。
13. 如权利要求1所述的方法,其特征在于,处理所述恶意软件感染410 包括使用占位程序模块作为占位符来防止触发恶意软件自我保存技术。
14. 一种包含计算机200可读指令的计算机可读介质,所述指令当在启 动时实现引导环境的计算机200中执行时,执行一种确定所述计算机200是否 感染恶意软件的方法,所述方法包括(a) 将恶意软件扫描引擎208集成到所述引导环境的组件中;(b) 确定在当前引导期间是否执行恶意软件扫描404;以及(c) 如果作出在当前引导期间执行恶意软件扫描的判定,则使得扫描引 擎208搜索所述引导环境的各组件以寻找恶意软件406。
15. 如权利要求14所述的计算机可读介质,其特征在于,恶意软件扫 描引擎208被集成到BIOS、操作系统加载器、或引导驱动程序中。
16. 如权利要求14所述的计算机可读介质,其特征在于,所述在当前 引导期间是否执行恶意软件扫描的判定404是通过接收响应于提示的用户输入 而做出的。
17. 如权利要求14所述的计算机可读介质,其特征在于,使得扫描引 擎208搜索所述引导环境的各组件以寻找恶意软件406包括搜索RootKit的可 疑活动特征。
18. 如权利要求17所述的计算机可读介质,其特征在于,执行所述对 作为RootKit特征的可疑活动的搜索包括(a) 标识非预期位置中的跳转指令;(b) 标识隐藏的进程;以及(c) 标识对分配给所述操作系统104的范围之外的存储器地址的引用。
19. 一种具有用于在引导环境中标识恶意软件的计算机可执行组件的 计算机可读介质,包括(a) 被配置为搜索计算机存储器以寻找作为恶意软件特征的数据的扫 描组件208;(b) 用于在所述引导过程期间初始化所述扫描组件的引导检测组件 210;以及(C) 使得所述扫描组件搜索存储器以寻找已知恶意软件的子集的优化 组件。
20. 如权利要求19搜索的计算机可读介质,其特征在于,所述引导检测组件还被配置为通过用占位程序模块替换恶意软件程序代码来处理所述恶 意软件感染。
全文摘要
一般而言,本发明针对标识恶意软件。在一实施例中,提供了在引导过程期间执行对恶意软件的搜索的方法。更具体地,该方法使得被配置为扫描恶意软件的软件模块在计算机启动时被初始化。随后,响应于标识扫描事件的发生,该方法使得该软件模块扫描计算机存储器以寻找作为恶意软件特征的数据。如果标识了恶意软件的数据特征,则该方法处理该恶意软件感染。
文档编号G06F12/16GK101479709SQ200780024510
公开日2009年7月8日 申请日期2007年2月21日 优先权日2006年6月30日
发明者A·A·波利亚科夫, R·R·菲利普斯, S·A·费尔德 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1