用于检测目标为计算机引导过程的恶意软件的系统和方法.pdf

上传人:1*** 文档编号:4758681 上传时间:2018-11-07 格式:PDF 页数:25 大小:1.61MB
返回 下载 相关 举报
摘要
申请专利号:

CN201210587555.1

申请日:

2012.12.28

公开号:

CN103065094A

公开日:

2013.04.24

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 21/56申请日:20121228|||公开

IPC分类号:

G06F21/56(2013.01)I

主分类号:

G06F21/56

申请人:

卡巴斯基实验室封闭式股份公司

发明人:

尤里·G·帕新; 弗拉季斯拉夫·V·培提斯基

地址:

俄罗斯莫斯科

优先权:

2011.12.28 RU 2011153568

专利代理机构:

北京市磐华律师事务所 11336

代理人:

徐丁峰;魏宁

PDF下载: PDF下载
内容摘要

用于在具有可引导设备的目标计算机系统上检测恶意软件的系统和方法。连同定义可引导设备的存储布置结构的物理参数数据一起获得存储在可引导设备上的至少部分地定义目标计算机系统的引导过程的引导过程信息。基于该引导过程信息和该物理参数数据,对目标计算机系统的引导过程进行仿真。仿真包括执行引导过程信息的指令和跟踪从可引导设备所访问的数据。在引导过程的仿真期间存储表示从可引导设备所访问的数据的数据结构。可以对该数据结构分析任意引导过程恶意软件的存在。

权利要求书

权利要求书一种用于调查目标计算机系统上未知程序的存在的自动的计算机实现的方法,所述目标计算机系统包括处理器、存储器和基本输入/输出系统(BIOS)并进一步包括可引导设备,所述可引导设备包含至少部分地定义用于所述目标计算机系统的引导过程的引导代码,所述方法包括:
由自动保护系统获得定义所述可引导设备的存储布置结构的物理参数数据;
由所述自动保护系统基于所述物理参数数据来仿真所述目标计算机系统的所述引导过程,其中所述仿真在表示所述目标计算机系统的虚拟环境中进行并且包括执行所述引导代码和响应于所述引导代码的执行来获得引导过程信息;
由所述自动保护系统生成至少表示所述引导过程信息的数据结构;以及
基于所述数据结构来获得所述引导过程信息是否包括未知程序的确定。
根据权利要求1所述的方法,其中获得所述引导过程信息包括获得所述可引导设备的主引导记录(MBR)。
根据权利要求1所述的方法,其中获得所述引导过程信息包括获得由所述可引导设备的主引导记录(MBR)所调用的程序代码。
根据权利要求1所述的方法,其中获得所述引导过程信息包括在所述目标计算机系统上操作rootkit旁路驱动程序。
根据权利要求1所述的方法,其中仿真所述引导过程在所述目标计算机系统的应用层上实施。
根据权利要求1所述的方法,其中仿真所述引导过程包括操作虚拟处理器、虚拟存储器、虚拟基本输入/输出系统(BIOS)和表示所述可引导设备的所述存储布置结构的虚拟启动设备。
根据权利要求1所述的方法,其中生成所述数据结构包括存储容器数据结构,所述容器数据结构包括用于存储所述可引导设备的所述存储布置结构的表示的第一部分和用于存储所述可引导设备的多个扇区的内容的第二部分,所述第一部分和第二部分足够完整以在位于远程的计算机系统上促进所述目标计算机系统的所述引导过程的仿真。
根据权利要求1所述的方法,进一步包括:
传送所述数据结构至位于远程的计算机系统。
根据权利要求1所述的方法,进一步包括:
拦截对所述可引导设备的启动相关的部分写数据的命令;
响应于所述拦截来启动所述仿真;以及
响应于所述引导过程信息包括未知程序的确定,阻止对所述可引导设备的所述启动相关的部分写数据的所述命令的执行。
根据权利要求1所述的方法,其中由所述自动保护系统生成所述引导过程信息是否包括未知程序的所述确定。
根据权利要求1所述的方法,其中从位于远程的计算机系统获得所述引导过程信息是否包括未知程序的所述确定。
一种用于在具有可引导设备的目标计算机系统上检测未知程序的自动的计算机实现的方法,所述方法包括:
由远离所述目标计算机系统的自动分析系统接收数据结构,所述数据结构包含:
存储在至少部分地定义所述目标计算机系统的引导过程的所述可引导设备上的引导过程信息;以及
定义所述可引导设备的存储布置结构的物理参数数据;
由所述自动分析系统分析所述可引导设备是否包含由所述目标计算机系统的所述引导过程所访问的可疑程序,所述分析包括基于所述数据结构来仿真所述目标计算机系统的所述引导过程,其中所述仿真包括在表示所述目标计算机系统的物理特性的虚拟化计算机系统中执行所述引导过程信息的代码,以及评估该代码的所述执行的结果。
根据权利要求12所述的方法,其中所述分析包括连同经修改的MBR一起发现所述可引导设备的原始主引导记录(MBR)的拷贝。
根据权利要求12所述的方法,其中评估所述引导过程的所述代码的所述执行的所述结果包括观察在所述仿真期间所调用的程序的功能以检测恶意软件的存在。
根据权利要求12所述的方法,进一步包括:
基于所述分析来更新恶意软件签名的数据库。

说明书

说明书用于检测目标为计算机引导过程的恶意软件的系统和方法
技术领域
本发明总体上涉及信息处理和安全,并且,更具体地涉及对感染计算机系统引导过程的恶意程序进行检测。
背景技术
随着恶意软件作恶者不断开发新技术,保护计算机系统免遭恶意软件的攻击成为不断演进的挑战,其中恶意软件即有害程序,诸如计算机病毒、特洛伊木马、蠕虫、rootkit等等。引起特别关注的是被称为bootkit的恶意软件,其改变计算机系统的引导(boot)过程。这些都属于当代计算机系统最难以检测的恶意软件。在引导过程中的渗透可让有害的代码绕过现有的保护特征、隐藏自身并且恶化计算机检测和移除有害进程的能力。
计算机引导过程具有若干步骤,其中包括硬件的测试和初始化、操作系统引导以及用户应用的自动加载。在引导序列中有害物越早取得控制权,反击这种威胁越困难。反恶意软件程序的目标之一为,在有害代码取得控制权之前控制引导序列,这将可让反病毒程序监视和检测异常情况和可疑数据。
目前,反rootkit技术是已知的并且用于该目的,在公开号为No.2006/480774和2007/873583的美国专利申请中描述了其示例。这些方法被设计为操作系统驱动程序,这些驱动程序修改操作系统引导过程、进一步跟踪引导过程活动并且必要时阻止和删除有害的引导程序。这些技术仅对其目的在于渗透操作系统的威胁有效,但是不允许对于在操作系统之前加载的bootkit的检测。bootkit通过改变引导记录来在最初的阶段修改引导过程。当与rootkit技术相结合时,这类程序对于安装于计算机系统上的传统保护特征来说变得无法企及。
用于对抗这类恶意软件的一种方法是使用外部引导技术,在公开号为EP1995936668和WO2007069245中公开了其示例。当从外部设备引导时,计算机恶意软件不会被加载并且可以在文件系统、硬件驱动器等传统的反病毒扫描过程中被检测。这类方法的缺点包括,需要专门的外部磁盘或设备,以及需要用户通过采用外部引导技术来采取特定的、针对性的动作以进行引导过程恶意软件的评估。
至少由于以上原因,需要一种对部署有bootkit的恶意软件提供实际的和自动的检测的解决方案。
发明内容
本发明的一个方面针对仿真计算机系统的引导过程。仿真指机器实现的计算机系统的操作的复制。仿真可在与正被仿真的计算机系统相同的计算机系统硬件上实施,或者在与正被保护的计算机系统通信地连接的不同计算机硬件集上实施。仿真允许在计算机开启的那刻起就开始对引导过程进行评估,并且对计算机系统或者网络媒介上的恶意软件,或者更通常是对实际上可能有害或无害的未知程序进行检测。本发明的多个方面不仅允许检测已知的有害代码(例如,通过校验和、哈希、或某些特征或其他签名可识别的),还允许发现引导过程中的异常情况(即,允许在引导期间检测它们的有害性质)。本发明的实际应用允许保护服务提供商远程分析受感染的媒介,不必须使用外部引导设备。使用引导过程仿真来检测未知程序显著地减小了发现和分析修改引导过程的未知程序和未知磁盘扇区所需的时间。
根据相关的实施例,通过目标计算机系统的自动保护系统获得定义可引导设备的存储布置结构的物理参数数据,基于该物理参数数据来仿真该目标计算机系统的引导过程。在表示目标计算机系统的虚拟环境中进行仿真,包括:执行引导代码和响应于引导代码的执行来获得引导过程信息。生成至少表示引导过程信息的数据结构。基于该数据结构确定引导过程信息是否包括未知程序。
根据本发明的另一个方面,提供用于检测在具有引导设备的目标计算机系统上的未知程序的保护系统。该系统包括引导仿真器模块,配置为收集存储在至少部分地定义了目标计算机系统的引导过程的可引导设备上的引导过程信息,以及定义可引导设备的存储布置结构的物理参数数据。引导仿真器模块配置为基于所述引导过程信息和所述物理参数数据,实施对目标计算机系统的引导过程的仿真。引导仿真器模块进一步配置为执行引导过程信息的指令,并响应于引导过程信息的指令跟踪从可引导设备所访问的数据。检测器模块与引导仿真器模块通信耦合,并配置为在引导过程的仿真中基于从可引导的设备所访问的数据来检测未知程序的存在。
在本发明的另一个方面,提供一种用于检测在具有可引导设备的目标计算机系统上的未知程序的自动的计算机实现的方法。该方法包括,通过位于远离目标计算机系统远端的自动分析系统来接收数据结构,所述数据结构包含:存储在至少部分定义该目标计算机系统的引导过程的可引导设备上的引导过程信息;以及定义可引导设备的存储布置结构的物理参数数据。自动分析系统对可引导设备是否包含由目标计算机系统的引导过程所访问的可疑程序进行分析,包括:至少通过在表示目标计算机系统的物理特性的虚拟化计算机系统中执行引导过程信息的代码,基于数据结构对该目标计算机系统的引导过程进行仿真,以及对该代码的执行的结果进行评估。
本发明的各方面有利地提供了对上面所概述问题的实际解决方案,并克服了传统方法处理bootkit以及相关恶意软件的若干其它缺陷。
附图说明
结合附图和以下对本发明各种实施例的详细描述可以更彻底地理解本发明,其中:
图1是示出了被设计为目标为计算机系统引导过程的恶意软件的操作的示意图;
图2A是根据本发明一个实施例的,示出了用于对抗bootkit恶意软件的系统的示意图;
图2B是示出了容器数据结构的示意图,该容器数据结构用于存储和传送关键信息以识别和仿真bootkit的操作;
图3A和图3B是根据本发明实施例的,示出了通过使用引导仿真技术以清理受感染磁盘和阻止磁盘感染的程序功能的示例的流程图;
图4是根据本发明各实施例的,示出了本发明的各方面可应用于其中的多级安全计算机系统模型;
图5示出了根据一个实施例的,其中rootkit被安装于计算机系统上并进行对抗的示范性过程;
图6是根据一个实施例的,示出了用于在引导过程期间检测诸如bootkit的未知程序的系统的功能框图;
图7是根据一个实施例的,示出了为检测未知程序和数据,计算机系统引导仿真的过程的示意图;
图8是示出了系统的一个或多个功能模块可在其上实现的示例性通用计算机系统的框图。
在本发明遵从各种修改和替代形式的同时,其细节以图中示例的方式示出并将被详细描述。然而,应该理解并非意图将本发明限于所述的具体实施例。相反,意图覆盖落入如由所附权利要求所定义的本发明的精神和范围内的所有修改、等同和替代。
具体实施方式
计算机引导过程是具有许多细节和细微差别的复杂的过程,通常可将其分为两个阶段:初始引导和操作系统引导。在计算机开启之后,电源测试所有的必要电压电平;如果所有电压电平均相当于正常电平,则母板接收PowerGood信号。在初始状态,处理器的输入接收RESET信号,该信号保持处理器在复位状态。但在从电源接收到PowerGood信号后,RESET信号将被移除,并且处理器将开始执行它的第一指令。因此,在电源测试后,处理器始于下述状态:命令寄存器CS包含0xFFFF、命令指针(IP寄存器)包含0、数据和堆栈段寄存器包含0。在RESET被移除后,处理器执行位于0xFFFF0地址的指令,在实模式(real mode)下ROM BIOS区域位于该地址。其大小为16字节,直到在实模式下最大的可访问地址区域的末端‑‑‑0xFFFFF。用于转换至实模式可执行BIOS代码的指令位于该地址。通过执行BIOS代码,计算机经历了POST(开机自检)诊断阶段。处理器、存储器和输入/输出资源被测试;另外,系统主板的软件可选资源被配置。
在经历测试和配置过程之后,计算机前进到操作系统引导过程。BIOS程序将信息从BOOT扇区的激活引导磁盘(active boot disk,由BIOS设定所定义)读取到位于物理地址0x7C00的计算机存储器中,对于软盘或硬盘驱动器来说,所述激活引导磁盘位于地址Cylinder(柱面)=0,Head(磁头)=0,Sector(扇区)=1。扇区的大小为512字节。在此之后,实施检查以确定这一扇区是否为引导扇区。通过在该扇区的末端搜索0x55AA签名来完成该确定。如果在该扇区的末端没有发现这样的序列,则BIOS发送没有发现引导扇区的消息。
扇区是硬盘驱动器的最小可寻址单元。不可能读取小于一个扇区。在大多数驱动器上,扇区的大小为200h字节;更新的硬盘驱动器具有较大的扇区大小。硬盘驱动器的零扇区包含所谓的主引导记录(MBR)。该记录占用整个扇区,即512字节。通过这一记录,BIOS确定逻辑驱动器的数量,以及确定必须加载哪个系统和从何处加载。
MBR包含由处理器执行的机器代码、在磁盘的四个分区上的信息和在最末端处的0xAA55签名。执行开始于扇区的零偏移量。MBR结构如下所述。签名由BIOS加载器使用以验证MBR的正确性;在故障的情况下,计算机操作被挂起。每个分区也均由单独的结构来描述。活动指示符字节可以等于0或者等于0x80。如果其等于0x80,则该分区被认为是激活的;加载器读取它的第一0x200字节并向其转移控制权。“分区类型”字段描述了特定分区的格式并且可假设不同的值。
通常在硬盘驱动器上不会存在四个以上的分区。然而,Windows允许将驱动器划分为更多个部分。扩展分区(分区类型代码7)除了分区内容本身外还包含指向下一个分区的指针。因此,从扩展分区形成链接列表。它们的数量仅受限于空闲的未格式化的空间。因此,完整的计算机引导算法如下:MBR中的代码验证硬盘驱动器的可操作性,然后通过浏览分区表来搜索具有0x80的所显示的活动指示符的分区,并且将控制权转移至后者的第零字节。
MBR代码从指定的磁盘扇区加载信息(其可以是一个或多个程序诸如将被进一步执行的引导加载器或由那些程序使用的数据)。跟随MBR代码和任何随后的引导过程程序的执行之后,控制权被转移给操作系统。
从安全的角度看,在保护过程中MBR是最易受攻击的区域。如果它被编辑以及如果引导代码被改变,有害组件就将被加载到操作系统内核中;这一组件将能够排除计算机上的任何安全程序,包括反病毒程序。一些黑客利用这一因素,设计了被称为bootkit的专门程序。
bootkit修改MBR的引导扇区,即硬盘驱动器上的第一物理扇区。这类恶意软件被用于赢得操作系统中的最高特权,并用于在系统中隐匿。bootkit可获得管理员(超级用户)权限并实施若干有害动作,使得这类恶意软件成为最危险的恶意软件之一。
bootkit的活动开始于计算机被重启时。重启可以由恶意软件或由用户启动。一旦从受感染的引导扇区重新引导计算机,执行有害功能的bootkit组件就被启动。
存在很多类型的bootkit,可通过它们工作流程的复杂度来区分。简单的bootkit编辑引导记录、将数据和代码置入磁盘扇区,其并不编码数据,也不像rootkit技术一样在系统中使用自我隐匿技术。与之相反,其他bootkit使用各种自我保护工具以对抗反病毒检查和避免检测。
Bootkit感染和操作的场景之一的示意图在图1中示出。如果计算机具有已安装的应用100,其存在黑客已知的漏洞101,该漏洞101用于夺取执行过程的控制权以将恶意软件120、121、122写到磁盘110。感染可经由已被黑客攻击的网站发生。有害部件被上传到计算机;该部件使用例如在已安装软件中的漏洞来夺取控制权和修改引导记录。可使用其它方法引起感染,但最终的结果都明确地意在替换引导扇区。感染可由诸如dropper(投放器)102的有害部件或由远程受控的间谍程序(例如,特洛伊木马下载器)引起,分别为包含bootkit或将其从远程地址上传。以下为这样的磁盘扇区记录的示例:
HANDLE hDisk=CreateFileA("\\\\.\\PhysicalDrive0",GENERIC_WRITE|GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0x0,0x0);
WriteFile(hDisk,MbrBuffer,sizeof(MbrBuffer),&dwWritten,NULL);
在各种实施例中,bootkit内容被写入磁盘的未格式化的部分、被写入伪“坏”扇区(即,由文件系统标记为“损坏”而实际并未损坏的扇区)、被置于第一扇区的末端、被使用rootkit技术所隐藏等等。图1示出在磁盘131、132、133上的bootkit数据可被写入的区域。因此,如果反病毒软件不使用有效对抗这类威胁的工具,则bootkit数据121、122和引导记录130的被隐藏的拷贝不会在操作系统的文件系统中反映出来,不会包括在磁盘分区中,并且不可通过扫描文件和磁盘空间被检测到。本发明的多个方面认识到有可能通过分析当前威胁和它们的有害功能来为计算机创建有效的安全系统;这要求访问存储恶意软件以及由恶意软件使用的文件或数据区域。对了尽早对威胁进行响应,及时搜集该威胁的信息尤为重要;否则,大量计算机的感染可能导致爆发并引起对公共信息系统的极大危害。
在一个示例中,bootkit包括执行rootkit功能的驱动程序121、经修改的MBR120和有害功能的有效负荷122。在这种情况下,bootkit可附加包含用于隐匿数据的编码部件、反检测部件和其他附加功能,这使得恶意软件的分析复杂化。在系统引导过程期间所使用的磁盘扇区的数量可以为几十甚至几百,而由在操作系统引导之后所执行的有害功能所占用的磁盘区域甚至可以更大。
当计算机从具有经修改的引导扇区的受感染磁盘111引导时,经修改的MBR120加载包含bootkit代码的磁盘扇区;随后,控制权被转移并且操作系统连同rootkit部件一起被加载。这一引导顺序使bootkit可以保持不被检测到。原始的MBR130被拷贝到磁盘133上的特定区域并且在一些情况下可以被编码。为了通过引导记录完整性测试并且为了当对磁盘引导扇区进行调用时替换原始记录,bootkit需要MBR130的拷贝。结果,操作系统、传统的反病毒程序以及其他安全工具断定实际上经修改的MBR120并未被修改以及磁盘111未被感染。对保存原始MBR130的需要也为系统的恢复提供了机会。为此,保护系统确定在磁盘上原始MBR130被拷贝到的地址、对其解码(如果必要)并将其重写到引导扇区,以替换经修改的记录120。
每个bootkit均具有其自己的功能:一些意图在于收集保密信息并将其远程发送;另外一些目的在于阻止计算机操作;其他的用于创建僵尸网络(bot‑network)。取决于bootkit操作模型,包含有害功能的可执行代码可以在操作系统启动之前或之后被写入存储器中。在前一种情况下,为了跟踪包含可执行代码的磁盘区域,研究操作系统启动之前系统的引导过程就足够。在后一种情况下,必须在系统引导之后研究操作系统活动并跟踪有问题的功能的执行过程。这种操作要求极多的计算资源以及对硬件仿真的高优先级。
通常可以理解,为了有效对抗bootkit,必须分析bootkit起始数据,包括经修改的MBR。然而,由于恶意软件操作特性和它自我混淆的能力,几乎不可能通过扫描磁盘、文件或通过使用行为分析器来搜集这些文件。这种威胁必须在感染时被识别。本发明的一个方面允许检测、阻止和修复含有有害引导程序的受感染计算机。图2A是根据一个实施例的,示出了用于对抗bootkit恶意软件的系统的示意图。
在一个示范性实施例中,反bootkit保护系统包括保护模块200,其至少一部分可以在正受保护的计算机系统上本地驻留和执行。保护系统进一步包括分析器模块210和保护数据库220。在一类实施例中,这些模块可在计算机系统上本地执行。在另一类实施例中,一个或多个分析器模块210和保护数据库220在远离正受保护的计算机系统来实现,诸如由保护服务提供商所操作的一个或多个服务器。在后一类型的实施例中,通信机制230促进客户端侧模块和服务器侧模块之间的交互。在一类示例性的配置中,本地驻留在正受保护计算机系统上的保护系统的任何部件均可由保护服务提供商授权给计算机系统的用户。
如本文中所使用的术语“模块”指现实世界的设备、部件或使用硬件所实现的部件的布置或作为硬件和软件的组合,所述使用硬件所实现的部件的布置诸如通过专用集成电路(ASIC)或现场可编程门阵列(FPGA),所述硬件和软件的组合诸如通过微处理器系统和使模块适合于实现具体功能的程序指令集,该指令集(当被执行时)将微处理器系统转换为专用设备。模块也可实现为两者的组合,由硬件单独促进某些功能和由硬件和软件的组合来促进其他功能。在某些实现方案中,模块的至少一部分以及在一些情况下模块的全部都可以在执行操作系统、系统程序和应用程序的一个或多个计算机的处理器上执行,同时也使用多任务、多线程、在适当情况下的分布式(例如,云)处理或其他此类技术来实现模块。因此,每个模块均可在各种各样的合适的配置下实现,并且通常不应限于本文示例的任何具体实现方案,除非这种限制被明确指出。
检测器模块201配置为具有针对若干已知bootkit的签名信息。在操作中,检测器模块201获得被写入MBR和引导设备的其他关键部分中的数据,并将该数据与已知bootkit的签名相比较。
仿真器模块202实现计算机系统引导过程的仿真技术,其允许识别包含隐藏的恶意软件元素的磁盘扇区。这一示例性布置允许发现感染MBR的新的、未知的威胁,不必仅依赖于由检测模块201进行签名扫描。但是,通过签名扫描的分析在该情况下对于dropper即感染磁盘的程序的检测仍然有效。随后,有可能通过它的“痕迹”(签名)、通过从外部驱动器引导计算机和通过扫描受感染的物理磁盘,或通过基于所生成的签名实施检查、通过反rootkit工具调用磁盘来检测磁盘上的bootkit。
实施对恶意软件的更详细的分析以:
·从程序体中分离引起感染的有害资源的地址;
·生成bootkit文件211、磁盘扇区和其他数据的签名,用于随后的签名检查和感染阻止;
·为了从计算机中清除恶意软件,分离原始的MBR和它的解码方法。
通过利用专门的rootkit旁路(rootkit‑bypassing)驱动程序来获得可靠的信息,仿真器模块202获得硬盘驱动器111的引导相关部分的准确映像,如下所更详细描述的。
在一个实施例中,容器250的数据结构用于将与正被调查的引导设备有关的关键信息转移至分析器。容器250的一个示例在图2B中示出。容器250包括存储bootkit数据120‑122的所有硬盘驱动器扇区。例如,以下磁盘扇区可被存储:经修改的MBR扇区120、存储rootkit功能(即驱动程序)的扇区121、存储迁移自引导扇区并可能被编码的原始MBR的拷贝的扇区130以及包含用于执行bootkit有害的有效负荷的代码的扇区122。但该实施例的容器布置仅为一个示例,也可以包含更多或更少的扇区,这取决于所讨论的bootkit。
容器250存储所分析的硬盘驱动器的物理参数253,以及连同每个扇区相对于第零扇区的偏移251一起的扇区的内容。在一个实施例中,物理参数253包括定义所分析的硬件驱动器的存储布置结构的数据,诸如柱面的数目、每个柱面的磁头数目、扇区大小等等。因此,在容器250中维护的信息足以重新创建bootkit,同时考虑到其在磁盘上的位置。所生成的容器随后用于分析bootkit。
对于写进容器250的每个扇区或对于由顺序安置的扇区所构成的每个磁盘数据区域,指定相对于零扇区的偏移251和大小252。偏移和大小在扇区的数量上和信息量上(按字节、位)都可以改变。
容器250的大小可由扇区的数量、存储器大小或其他参数所限制。在一个示范性实施例中,为了容器250的最佳处理以及为了在不使系统或网络过度负载的情况下通过网络发送容器250,容器的大小可保持在大约1MB以下。
在一个实施例中,容器250被传送至保护服务提供商用于分析。可考虑各种数据转移方法。在一个这样的数据转移规定下,为了分析威胁,利用通信机制230来从客户端计算机搜集数据。通信机制230的一个示例在7,743,419号美国专利中有所描述,通过引用合并到本文中。
由分析器210检查容器250,分析器210可以各种形式驻留在正被保护的计算机系统上,或远离计算机系统例如在保护服务提供商处的服务器上。在分析器210位于远离正被保护的计算机系统的一类实施例中,分析器210包括它自己的本地仿真器模块214。在分析器210位于远离正被保护的计算机系统的另一类实施例中,分析器210利用仿真器模块202或可驻留在单独的服务器上或在云计算模型下的不同的仿真器模块(未示出)。在后一种实施例中,分析器210传递容器250至将被使用的仿真器模块。
已接收容器250用于分析,仿真器202、214按照这样的方式加载磁盘映像信息:按照容器250中指定的偏移251布置受感染的扇区120、121、122。在这一方法中,分析器模块210在虚拟磁盘上的虚拟空间中虚拟地重新创建所检查引导设备的物理状态。这有助于系统引导过程的仿真。基于作为容器250的一部分存储的物理参数253,在仿真中虚拟磁盘重新创建硬件驱动器的物理特性。
在引导仿真期间,跟踪bootkit的所有动作,包括磁盘读和写命令、存储器的调用和与计算机系统部件相关的其他动作。在一个实施例中,分析器模块210配置为搜索并发现原始MBR的拷贝130,其可以被编码或打包。
在相关实施例中,分析器模块210配置为对在启动期间所执行的程序指令的功能(即,行为)进行分析,以检测任意恶意软件的存在。在bootkit的功能涉及例如,数据的转移或加载或者执行来自指定的外部地址的远程命令的情况下,对bootkit的分析得以识别表示威胁的资源的地址。
作为分析器模块210的操作结果,利用检测到的威胁的签名211、有害部件文件和计算机清理脚本212对反病毒数据库220进行更新。一旦数据库被更新,新的纪录由恢复模块203使用以清理计算机,以及由检测模块201使用以防止新的计算机感染。计算机的清理通过计算机MBR 120的重写和通过从硬盘驱动器移除bootkit部件来完成,其中使用在对bootkit的分析期间所识别的或保存在备份拷贝中的原始版本130来进行MBR 120的重写。在这种情况下,在感染时被恶意软件所修改的扇区可以从备份拷贝得以恢复。
图3A和3B是包括时间轴的流程图,示出了用于清理受感染磁盘和通过使用引导仿真技术阻止磁盘感染的程序的功能的示例。对应于特定事件,时间轴被标上指示符。位于时间轴上方的指示符对应于与恶意软件的功能相关的事件;而那些位于时间轴下方的指示符对应于保护相关的事件。
在图3A中示出的系列事件描述了bootkit已经感染了计算机并且呈现于系统中的情况。为了有效地对抗威胁,第一种方法使用过程仿真器和签名检查之外的反病毒功能。在该实施例中,隔离模块创建可疑文件的备份拷贝。云服务收集用户感染统计。系统日志记录所执行的处理器命令和存储器操作命令、计算机流和进程的行为、API功能的调用、文件的读写、网络连接和应用级别等等。尤其是,该阶段甚至是在威胁出现在计算机上之前执行;它开始监控系统对象和对那些对象所实施的操作,以及日志的保持300,日志的保持300使得系统可以随后检测过程、对象、物理存储器、计算机用户和外部资源之间的链接。
维护这种信息允许保护系统基于计算机系统的当前状态来确定感染的情况。例如,如果在硬盘驱动器上发现与有害对象相关的信息,则为了识别有关的可执行文件,将有可能(使用系统日志)确定最后调用指定磁盘的扇区的进程。如果感染是使用溢出(exploit,利用应用或设备中的漏洞的代码)发生的,那么包含该溢出的文件或资源URL被识别。
在进一步的实施例中,考虑通过在计算机系统中放置dropper301而感染计算机系统的情况。一旦dropper301被上传到计算机或者被从外部媒介启动,其所有的动作就都被记录在系统日志中:将拦截对磁盘的访问,以及将在至硬盘驱动器的bootkit的安装302和MBR的替换303期间调用MBR。假设恶意软件能够绕过安全工具并在302处造成感染。在实现rootkit部件后,有害功能在305处开始执行,并且在计算机系统在304处重启之后仍继续发挥作用。
在306处启动计算机引导过程的仿真。在各种实施例中,引导仿真开始于不同的时间:例如,根据用户要求、周期性地(在指定的时间周期之后)、响应于事件或按照已建立的任务计划(在指定的时刻)。在仿真期间,可疑部件被收集到容器250中,接下来是使用已知的恶意软件分析和bootkit识别的方法的bootkit分析307。如果识别到bootkit的存在,那么该过程继续在308处通过移除bootkit以及恢复引导过程来清理计算机系统,同时将新的威胁的签名通过保护服务直接地或通过更新反恶意软件数据库来发送至其他用户。
图3B示意了根据相关实施例的另一个过程流,其使用诸如仿真器202或仿真器214的引导仿真器来针对bootkit主动保护计算机系统。在这种情况下,计算机的感染被阻止。有害动作的序列与前面用于图3A中的相同——已经启动自身或已经夺取受害计算机上控制权的dropper301发送命令以向磁盘写入数据,诸如将命令写至引导扇区302。不断地监控这些对磁盘的操作并根据它们的发生,在311处由保护模块对其进行拦截;恶意软件的活动被挂起;然后,在312处启动仿真器,其输入接收替换的MBR和试图被写入磁盘的数据,同时考虑数据的位置。也就是说,从被拦截的磁盘写命令生成容器250并对其进行发送用于仿真。接下来是包含指定改变的虚拟磁盘的引导的仿真,和假如在313检测到威胁,反病毒工具阻止恶意软件并将其从系统中移除。此外,将恶意软件(或恶意软件的签名)发送给保护服务提供商用于增强已知威胁的知识库或用于另外的分析。可在服务提供商侧或在受保护的计算机系统中生成签名。这一过程防止bootkit最终功能的执行305。
在各种实施例中,引导过程仿真器模块可基于硬件(以微芯片的形式)、基于软件(以在处理器上执行的应用、服务或驱动程序的形式)或基于固件(例如,以具有程序代码的微芯片的形式)。
在一个实施例中,在应用级操作仿真器。计算机系统的架构为多级模型,如图4中所示。根据安全模式将存储器进行分区,分离在内核模式400中所执行的操作系统401的系统服务、在用户模式410中所执行的用户应用411和存储在硬件420中的微程序421。安全级别的数量可以变化。例如,Windows家族的OS使用两级保护模式。计算机系统中微程序的示例为BIOS(基本输入/输出系统),其定义了操作系统401的驱动程序和计算机系统硬件级420之间的交互逻辑,并直接参与计算机系统的引导过程。
为了便于理解这一模型是如何发挥作用的,考虑应用是如何对磁盘起作用的示例。应用对磁盘起作用的过程包括以下阶段:在应用的执行期间,进程流产生读/写/创建/移除在一个磁盘上的文件的命令。该请求被寻址到文件系统(FAT,NTFS等)的相关驱动程序,其依次确定文件被读出或写入的簇。随后,文件系统驱动程序调用硬盘驱动器自身的硬件驱动程序,其使用用指定的协议通过硬盘驱动器控制器来执行命令以对磁盘起作用。在这种情况下,在用户模式410中执行应用、驱动器在内核级400(内核模式或Ring0),同时硬件级420被硬盘驱动器控制器所表示。为了使应用能绕过操作系统401对磁盘实施操作,它需要获得根目录级的特权,或调用在内核模式400中实现的驱动程序。
图5示出了根据一个实施例的示范性过程,其中rootkit 501安装在计算机系统上并进行对抗。rootkit拦截至磁盘111的文件操作并阻止它们或返回错误数据。当操作在应用级的保护模块200的仿真器模块202扫描磁盘111或存储在其上的文件时,或当保护模块200需要创建用于仿真或用于数据备份的磁盘映像时,在rootkit驱动程序501在运行时它将不能够获得准确信息并保证信息的可靠性。
在一个实施例中,如图5所示,引导设备映像模块204使用反rootkit旁路驱动程序502获得对磁盘或文件的访问权限,确保被处理信息的可访问性和完整性;否则,它将被rootkit拦截并用错误数据替代。在一个实施例中,旁路驱动程序502是提供对引导设备(例如,硬盘驱动器)的关键扇区的访问的内核级驱动程序,并且与通常实施相同功能的文件系统或操作系统的磁盘访问驱动程序不同。在相关实施例中,旁路驱动程序502具有特征:与默认的操作系统驱动程序相比,针对rootkit攻击提供更强的免疫力。
bootkit包含用于类似rootkit的功能用于在系统中隐匿数据。在系统重启后bootkit驱动程序(在图5中由rootkit的模糊驱动程序501表示)启动自身,拦截对其数据所处磁盘的调用包括对引导扇区120的调用,并蓄意返回错误值(例如,空白值、随机值、用其他扇区替换被调用扇区等)。如果操作系统通过返回当前MBR来响应对引导扇区的调用,所述当前MBR出于bootkit加载的目的被修改,那么rootkit模糊驱动程序返回已经存储在磁盘不同区域的原始未改变MBR的拷贝130。
图6是根据一个实施例的,示出了用于在引导过程期间检测例如bootkit的未知程序的系统的功能框图。系统包括仿真模块202、214,虚拟硬盘驱动器模块601和磁盘操作记录器模块602。为重新产生引导过程,实际的处理器、存储器和BIOS被分别仿真为处理器*611、RAM*612和BIOS*613。
虚拟硬盘驱动器601是物理设备的抽象表示。如果硬盘驱动器110被提供给仿真器的输入,那么虚拟磁盘模仿硬盘驱动器的几何结构(具有相同的扇区大小、容量、柱面和磁头的数目)。为了将仿真器和正执行在其上的所有指令与包括硬盘驱动器110的实际数据的实际系统相隔离,使用磁盘的虚拟表示。
在一个实施例中,从硬盘驱动器110读的过程如下:首先,请求被发送至虚拟磁盘601。响应于该请求,虚拟磁盘601从实际的硬盘驱动器110请求数据,将其结果返回给正被仿真的进程。取决于实际磁盘的受感染/未受感染情况,仿真器202、214可舍弃无答复的请求或故意提供错误数据。例如,对磁盘的写过程不会在实际磁盘110上实施,仅限于写到虚拟的硬盘驱动器601。在虚拟随机存取存储器中创建仿真器和实际环境之间的类似交互:对实际RAM621的调用经历抽象表示,在该处它被过滤、重定向、阻止或模拟(例如,在被请求的值的位置以人为值替代)。
下面根据一个实施例对仿真实际设备引导的过程加以描述。为了对来自该设备的引导进行仿真,检测系统接收与所要分析的引导设备有关的信息,可以是硬盘驱动器110、逻辑驱动器、存储器单元621、容器记录250等等。为该引导设备创建虚拟硬盘驱动器601。随后,引导记录120被拷贝至虚拟的随机存取存储器(RAM*)612,引导记录从该虚拟的随机存取存储器(RAM*)612开始以在虚拟CPU*611的处理器上执行。可执行的16比特引导代码由虚拟BIOS*613处理。在引导仿真期间,从磁盘加载附加扇区630。所有对磁盘的调用都被日志记录在磁盘操作记录器模块602中。仿真过程受限于命令的数量、处理器周期、时间周期或其他参数。引导过程继续,直到操作系统被加载并且控制权被转移给该操作系统。仿真过程可随着该加载的结束而一起停止,或继续跟踪有害功能;这还将需要操作系统的服务和驱动程序的仿真,其可能在实际的仿真系统上施加极大的负载。这一问题可通过固件(软件&硬件)仿真器布置来解决,其会将仿真器的计算从实际计算机系统转移至单独的设备。
在计算机系统的启动期间,容器250接收被请求磁盘扇区630的记录。一旦完成引导仿真,则从虚拟磁盘收集被读取和记录的扇区至容器250,使用例如Kaspersky实验室的KSN ToolsTM的通信机制230将该容器250发送至保护服务提供商。如上所述,容器250的示例可用于bootkit的存储和转移。容器的格式经设计以提供机会来实施安装容器250到虚拟硬盘驱动器601中的反向动作。在该实施例中,容器250可被用作到恶意软件检测系统的输入,这允许它可以再次仿真引导或仿真另一个计算机系统的引导。
图7是根据一个实施例的,示出了为检测未知程序和数据的计算机系统引导仿真的过程的示意图。一旦启动引导仿真,在705确定物理参数,即磁盘几何结构。该信息可从容器250读出或从在别处可用的硬盘驱动器参数确定。在710,确定处理器寄存器值。在715,MBR被加载到仿真器模块的虚拟存储器中。
在720,在虚拟处理器上引导记录代码开始执行。在725使用BIOS虚拟化技术来处理请求,所述BIOS虚拟化技术在730发送用于直接访问磁盘的地址。在735,将在仿真期间所请求的所有扇区和在730所接收的它们的地址记录在容器中。
可取决于设计和设定来停止引导仿真,各种原因包括:当所仿真的命令达到最大数量时、当达到最大容器大小时等等。块725、730和735被重复,直到仿真过程结束,如决策740所确定的。一旦生成容器,在745它被发送至保护服务提供商、至专用服务器、至另一个计算机或至安装于正被研究的计算机系统上的分析工具用于分析。该分析导致在750反病毒数据库的更新和在755对计算机系统清理所检测和分析出的威胁。
在实际实现中,使用计算机设备分别实现和执行本发明的系统和方法。计算机实现的系统可在一个物理机器上实现,或可分布在多个物理机器之间,诸如按照任务或功能,或者按照在云计算分布式模型下的处理线程。在各种实施例中,本发明的多个方面可配置为运行于在一个或多个物理机器上依次执行的虚拟机中。本技术领域的技术人员应该理解,本发明的特征可通过各种不同的合适的机器实现方案来实现。
图8是示出了示例性通用计算机系统的框图,在该计算机上可实现本系统的一个或多个功能模块。个人计算机或服务器20包含CPU 21、系统存储器22和系统总线23,其包含各种系统部件,包括与CPU 21相关联的存储器。系统总线23实现为总线结构中的任何已知结构,包括总线存储器、总线存储器控制器、外围总线和局部总线,该系统总线可与任何其他总线架构交互。系统存储器包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统(BIOS)包含确保个人计算机20的元件间信息转移的主程序,例如在引导时使用ROM 24。
个人计算机20包含用于读和写的硬盘驱动器27、用于读和写至可移动磁盘29的磁盘驱动器28和用于读和写至可移动光盘31的光盘驱动器30,所述可移动光盘诸如CD‑ROM、DVD‑ROM或其他光学媒介。硬盘驱动器27、磁盘驱动器28、光盘驱动器30分别经由硬盘接口32、磁盘驱动器接口33和光盘驱动器接口34全部连接至系统总线23。驱动器和相应的计算机存储媒介是计算机指令、数据结构、程序模块和个人计算机20的其他数据的非易失性存储装置。虽然本说明书公开了使用硬盘、可移动磁盘29和可移动光盘31的系统的实现方案,但应该理解,有可能使用可以计算机可读形式(固态磁盘、磁带、闪存驱动器或其他非易失性存储器、数字磁盘、Bernoulli墨盒、随机存取存储器(RAM)、只读存储器(ROM)等等)存储数据的其他类型的计算机存储媒介。
一些软件模块,其中可以是操作系统35,存储在硬盘、磁盘29、光盘31、ROM24或RAM25上。计算机20具有文件系统36,其存储操作系统35和附加的软件应用37、其他程序模块38和程序数据39。用户能够通过输入设备(键盘40、鼠标42)输入命令和信息到个人计算机20中。其他输入设备可以是(未示出):麦克风、操作杆、游戏机、卫星天线、扫描仪等。这样的输入设备通常通过串行端口46连接至CPU 21,串行端口转而连接至系统总线,但也可通过其他装置连接,诸如并行端口、游戏端口或通用串行总线(USB)。监视器47或其他类型的显示设备也经由诸如视频适配器48的接口连接至系统总线23。除监视器47以外,个人计算机可装配其他外围输出设备(未示出),诸如扬声器和打印机等。
个人计算机20通常操作在网络环境中,使用至一个或多个远程计算机49的逻辑连接。远程计算机(或多个远程计算机)49可采用一个或多个个人计算机、服务器、路由器、网络站点、对等设备或其他网络主机的形式,并且通常具有在前述对个人计算机20的实质的描述中所描述的大多数或全部元件。逻辑连接包括至LAN50或广域网(WAN)的网络接口51。
当使用LAN网络时,个人计算机20经由网络适配器或接口51连接至LAN50。当使用WAN组网时,个人计算机20具有调制解调器54或与诸如因特网等全球计算机网络通信的其他装置。调制解调器54,其可以是内置或外置的,经由串行端口46连接至系统总线23。在联网环境下,暴露的个人计算机20的软件模块或者部分这类程序被存储于远程存储设备中。应该指出,网络连接仅是例示性的,不要求显示精确的网络配置、网络,即实际上存在建立逻辑连接的其他方式、一台计算机与另一台计算机通信的其他技术装置。
应该注意,本发明的多个方面可使用作为前述通用计算机系统的子集的计算机系统来实现。例如计算机系统可以是具有相对有限的输入/输出设备集的刀片服务器。如果该计算机系统包括足够的输入/输出设备以使其能够与正被管理的从计算机系统或与其他计算设备相连接,则计算机系统也可以实现为运行在微控制器数字信号处理器、专用集成电路、现场可编程门阵列等等上的嵌入式系统。
以上实施例是为了例示而非限定的目的。附加的实施例包括在权利要求的范围内。另外,虽然本发明的各个方面参考具体实施例进行描述,但本领域技术人员将理解在不脱离如由权利要求所定义的本发明的精神和范围的情况下,可以对形式和细节加以改变。
相关领域的普通技术人员将理解本发明可包括少于上述任意一个单个的实施例中所例示的特征。本文所述实施例并非意在是可对本发明的各种特征进行组合的方式的详尽呈现。因此,实施例并不是相互排斥的特征的组合;相反,本发明可包括从不同的单个实施例中所选择的不同的单个特征的组合,正如本技术领域普通技术人员所理解的。
以上引用文档的任何并入均是受限的,使得并未并入违背本文明确公开的内容的主题。以上引用文档的任何并入是进一步受限,使得并未将包括在文档中的权利要求通过引用并入到本发明的权利要求中。然而,任何文档的权利要求均结合作为本文公开的一部分,除非被特别地排除在外。此外,以上引用文档的任何并入是更进一步受限的,使得文档中所提供的任何定义均未通过引用并入到本文中,除非特别地将其包括于本文。
出于说明本发明权利要求的目的,明确意在不援引美国法典35章第112条第六段的规定,除非在权利要求中引述具体的术语“用于....的装置”或“用于....的步骤”。

用于检测目标为计算机引导过程的恶意软件的系统和方法.pdf_第1页
第1页 / 共25页
用于检测目标为计算机引导过程的恶意软件的系统和方法.pdf_第2页
第2页 / 共25页
用于检测目标为计算机引导过程的恶意软件的系统和方法.pdf_第3页
第3页 / 共25页
点击查看更多>>
资源描述

《用于检测目标为计算机引导过程的恶意软件的系统和方法.pdf》由会员分享,可在线阅读,更多相关《用于检测目标为计算机引导过程的恶意软件的系统和方法.pdf(25页珍藏版)》请在专利查询网上搜索。

用于在具有可引导设备的目标计算机系统上检测恶意软件的系统和方法。连同定义可引导设备的存储布置结构的物理参数数据一起获得存储在可引导设备上的至少部分地定义目标计算机系统的引导过程的引导过程信息。基于该引导过程信息和该物理参数数据,对目标计算机系统的引导过程进行仿真。仿真包括执行引导过程信息的指令和跟踪从可引导设备所访问的数据。在引导过程的仿真期间存储表示从可引导设备所访问的数据的数据结构。可以对该数。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 >


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1