CN102110213A - 检测计算机系统内隐藏的对象 - Google Patents
检测计算机系统内隐藏的对象 Download PDFInfo
- Publication number
- CN102110213A CN102110213A CN2011100499779A CN201110049977A CN102110213A CN 102110213 A CN102110213 A CN 102110213A CN 2011100499779 A CN2011100499779 A CN 2011100499779A CN 201110049977 A CN201110049977 A CN 201110049977A CN 102110213 A CN102110213 A CN 102110213A
- Authority
- CN
- China
- Prior art keywords
- service module
- group
- computer system
- institute
- information requested
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
Abstract
本发明提供一种用于检测运行于计算机上的操作系统的服务模块的安全损害的系统和方法。至少一个原生服务模块响应由至少一个进程或线程做出的请求,返回与计算机系统中至少一个对象有关的第一组所请求的信息。次级服务模块响应由至少一个已授权的进程或线程做出的请求,绕过该至少一个原生服务模块,生成并且返回与计算机系统中至少一个对象有关的第二组所请求的信息。限制线程到次级服务模块的访问,从而仅仅允许预定的由受信任的安全应用程序生成的线程访问次级服务模块。
Description
技术领域
本发明总体上涉及数据处理系统中的安全,且具体而言,涉及在此类系统中确定隐藏的对象的存在,其相应地可被用于检测恶意软件的存在,例如恶意rootkit。
背景技术
当前,全世界的计算机用户都被恶意软件的传播问题所困扰,其不仅影响运行MS windows版本的计算机,还影响其它并不普及的平台。恶意软件正愈来愈复杂化,迫使反恶意软件的开发商持续地寻找用于检测和移除恶意软件程序的新的途径。
除了常规的例如数字签名检查和使用仿真程序的检测方法之外,其它被使用的技术包括用于入侵检测或入侵防御的系统,所述系统控制程序并维护由受信任的应用程序所组成的白名单。
特别令人关注的是被称为rootkit的恶意软件程序,到目前为止,利用传统的安全措施还无法对其进行有效的处理。这些程序能够在计算机系统中使用例如劫持管理员(或更高级别)权限的技术来隐藏它们存在的痕迹。这类程序很难通过使用已知的反病毒技术来检测,因为已知的技术已经限制了发现隐藏的对象的能力,所述隐藏的对象例如,隐藏的文件、隐藏的进程或隐藏的注册表项。
为了隐藏他们的存在,rootkit使用各种拦截系统功能的方法,例如拦截也就是挂载(hooking),和改变响应程序功能调用所返回的信息。例如,rootkit能够发现请求某些注册表项的程序功能调用,并且取代返回那些实际的注册表项,rootkit将修改或简化后的注册表项列表返回给调用程序。
值得注意的是,除了将rootkit作为恶意软件的传统观念以外,一些rootkit可被用于合法的应用程序,例如防拷贝技术。检测rootkit的已知方法包含创建与单个rootkit相应的特定过程(例如rootkit的操作可以被绕过,或干扰rootkit所使用的系统功能拦截)。对安全程序开发者来说这些方法表现出密集型的负担,开发者需要努力跟上恶意软件的不断扩展的增长。
另一个途径,如在公开号为2007/0078915(发明人为Gassoway)的美国专利申请中所披露的,包含在内核空间运行单独的检测器,所述单独的检测器能绕过某些可能已被rootkit所损害的操作系统的核心代码。如果通过受损的内核代码以及通过单独的检测器双方来请求关于该计算机系统的信息,在两个单独的结果之间的任何差异都可能表明rootkit的存在。这种途径提供了一种用于在对特定的现有rootkit没有先验知识的情况下检测rootkit的手段;但是,单独的检测器本身可能受到针对特定安全技术的类rootkit的恶意软件的损害。
此外,不排除在不久的将来,rootkit或类rootkit的恶意软件可能针对计算机系统的不具备检测这类恶意软件的能力的其他部分。
因此,需要克服上述或其它挑战的用于有效检测rootkit的改进技术。
发明内容
本发明一方面旨在提供一种计算机系统,所述计算机系统用于检测可能被隐藏在其中的对象。所述计算机系统具有计算机电路,所述计算机电路至少包括与存储器配置(arrangement)连接的处理器,所述计算机电路至少被配置为执行操作系统和安全配置。所述操作系统适合于帮助实现多个进程的执行以及提供至少一个原生(native)服务模块,所述原生服务模块响应由所述多个进程的至少其中之一做出的请求,返回与所述计算机系统中至少一个对象有关的第一组所请求的信息。
所述安全配置包括次级(secondary)服务模块,所述次级服务模块适合于响应由所述多个进程中至少一个已授权的进程做出的请求,生成并返回与所述计算机系统中的所述至少一个对象有关的第二组所请求的信息。在生成所述第二组所请求的信息的过程中,所述次级服务模块绕过所述至少一个原生服务模块。进一步地,所述安全配置包括访问限制模块,所述访问限制模块限制对所述次级服务模块的访问,从而仅仅允许所述至少一个已授权的进程访问所述次级服务模块。
此外,所述安全配置包括比较模块,所述比较模块适合于比较所述第一组所请求的信息和所述第二组所请求的信息,并且基于比较结果,确定任一不在所述第一组所请求的信息中的对象是否存在于所述第二组所请求的信息中。
本发明的另一个方面旨在提供一种用于检测运行于计算机系统上的操作系统的服务模块的安全损害的方法。根据本方法,至少一个原生服务模块响应由至少一个线程做出的请求,返回与所述计算机系统中的至少一个对象有关的第一组所请求的信息。
次级服务模块响应由至少一个已授权线程做出的请求,生成并返回与所述计算机系统中的所述至少一个对象有关的第二组所请求的信息。在生成所述第二组所请求的信息的过程中,所述次级服务模块绕过所述至少一个原生服务模块。限制线程到所述次级服务模块的访问,从而仅仅允许预定的由受信任的安全应用程序所生成的线程访问所述次级服务模块。
比较所述第一组所请求的信息和所述第二组所请求的信息,并且基于比较结果,确定任一不在所述第一组所请求的信息中的对象是否存在于所述第二组所请求的信息,由此确定至少一个隐藏的对象。能够分析所述隐藏的对象以确定所述原生服务模块是否已经被损害。
本发明上述方面以及其他方面的一些优点将通过以下对优选实施例的具体描述而凸显。
附图说明
通过下述结合附图对本发明各实施例的具体描述,本发明将得到更为全面的理解,其中:
图1示出了本发明一实施例的流程图,该实施例通过绕过可能被rootkit所使用的挂载(hooks)的方式,可用于检测隐藏的系统对象。
图2示出了根据一实施例,用于通过计算机系统中应用程序来访问内核操作的独立的序列。
图3示出了根据一实施例,用于在确定隐藏的系统对象时识别rootkit的示范性过程。
图4示出了根据本发明的一个实施例,用于初始化次级内核和其相关组件的示范性过程。
图5示出了根据一个实施例,用于访问硬盘驱动器的两个序列,其中所述硬盘驱动器包括次级驱动器组。
图6示出了根据一个实施例,计算机系统模块的配置框图。
图7示出了根据各实施例,能够实施本发明的计算机系统的示意图。
同时,该发明是能够以各种修改和替代形式来实现,其细节已通过附图的示例方式展现并将加以详细描述。 但是应予理解的是,其目的并非将本发明限制于所描述的具体实施例。相反,在如随附权利要求书所限定的本发明的精神和范围内,本发明涵盖所有修改,等值和替代实施例。
具体实施方式
本发明的一个方面旨在通过检测在计算机系统中对象已经被隐藏的事实来检测在系统中rootkit的存在。在本文语境中使用的术语“对象”是指文件、进程、驱动程序、寄存器的内容、系统变量或该变量的值、系统注册表项、动态库的项目、存储设备或通常指计算机系统的数据或资源,所述计算机系统的数据或资源在系统中通常是可识别的,但是可能被秘密地或无意地隐藏起来而无法由常规手段所检测。
根据本发明的这一方面,对于对象被隐藏的事实的检测表明计算机系统可能已经被隐藏了该对象的rootkit所损害。
根据一类实施例,有可能通过次级(secondary)操作系统内核来检测隐藏的对象,所述次级操作系统内核与原生的(native)或初始的操作系统内核同时操作,帮助实现和协调系统进程和用户应用程序的操作。次级内核能够执行原生内核的大部分操作(并且事实上,在一些实施例中,能够被配置为执行原生内核的全部操作)。这一功能的示例包含寻址/访问下列系统对象的一个或多个:文件、驱动器、进程、注册表、存储器驻留动态链接库(memory-resident DLL)和其它计算机系统数据或资源。
图1示出了一个实施例的流程图,该实施例通过绕过可能被rootkit所使用的挂载的方式,可被用于检测隐藏的系统对象。如图所示,应用程序130以用户的名义执行操作,通过发送一个或多个请求到操作系统内核来实际地获得对特定系统对象的访问。然而,这些请求通常直接指向可能被rootkit 160所破坏的原生操作系统内核120,该rootkit 160能够拦截应用程序接口(API)功能140a。这样,如果用户应用程序130试图请求例如文件列表,那么rootkit 160凭借对API功能的rootkit拦截或挂载,能通过干扰和修改被返回到该请求应用程序130的文件列表来混淆该列表。同样地,rootkit 160可以出于其自身功能的需要而隐藏文件或注册表项,从而隐藏其在系统中的存在。
然而,使用次级内核110和其保持不变的API功能140,能够完全绕过rootkit对原生系统的API的拦截。为了这个目的,使用专门的驱动器--次级内核访问驱动器150,在一个实施例中该次级内核访问驱动器150被配置为唯一的用于使用户应用程序130与次级内核110连接的手段。这种途径使得避免rootkit的挂载和向该请求的应用程序返回数据成为可能,所述数据包含已被rootkit 160所隐藏的对象。在不同的实现方式中,次级内核110能够具有32位、64位或其它适合的架构。在一个示范性实施例中,相应于原生操作系统内核120的架构来设置次级内核110的架构。在其他实施例中,次级内核110可以具有与原生操作系统内核120不同的架构。
在相关类型的实施例中,对次级内核110的访问被限制到某些线程,例如那些由反病毒引擎产生的线程。为此,在这种类型的实施例中,为意图访问次级内核访问驱动器150的系统或应用程序线程专门配置该能力。在一个实施例中,生成的那些线程具有通过由次级内核访问驱动器150强制的认证阶段的能力。在各种实施例中,可以使用多种适合的认证技术,该认证技术包括但不限于密钥、数字签名、数字资格证书等等。
在一个实施例中,能够访问次级内核110的线程通过次级内核访问驱动器150,采用认证协议去访问次级内核110。在认证协议这个实施例中,使用公共密钥系统,此处已授权的应用程序具有私钥并且次级内核访问驱动器150具有已授权应用程序的公钥。已授权的应用程序的线程通过发送请求消息到次级内核访问驱动器150来请求来自次级内核110的服务,至少一部分所述请求消息由已授权的应用程序的私钥所加密。次级内核访问驱动器150使用已授权的应用程序的公钥来试图解密该请求的加密部分,并且如果能够成功地完成解密,那么提供服务的请求可被发送到次级内核110。对于伪装成来自已授权的应用程序线程的未经授权的线程,假定其缺少已授权的应用程序的私钥并且将因此不能发送由次级内核访问驱动器150所持有的、已授权的应用程序的公钥可解密的请求。
在另一个示范性实施例中,还使用公共密钥系统来实现质询-响应方式。协议可以先前的示例中所描述的形式开始,即,以由寻求访问次级内核110的线程发送到次级内核访问驱动器150的请求开始。如上所述,该请求可以被或可以不被至少部分地加密。响应该请求,次级内核访问驱动器150产生将由请求进程来完成的质询。所述质询要求请求进程使用其私钥来解密代码或消息(例如随机生成的数字)。相应地,次级内核访问驱动器150产生该质询代码或消息,使用已授权的应用程序公钥来对其进行加密并且发送已加密的质询到请求进程。该质询代码或消息可响应请求而被生成,并且对每个请求可以是不同的,使得预先被窃听的对话无法在将来被恶意进程所使用。作为对接收已加密的质询代码或消息的响应,已授权的应用程序的进程使用其自身私钥解密该代码或消息,并且将解密后的代码或消息返回到次级内核访问驱动器150。在发送解密后的代码或消息之前,已授权的进程可以用其私钥来加密该代码或消息,因此需要次级内核访问驱动器150用已授权的应用程序的公钥来对其进行解密。根据这个示例,请求进程控制与已授权的应用程序相关联的私钥的检验,构成了该请求进程的认证。
如上所述,除非在特定的权利要求中清楚地加以排除,否则在本发明的范围内,可以使用其它已知的或者将在未来出现的认证方法。
相应地,在给定的具有次级内核110的计算机系统中,可以有两类线程--能够访问次级内核访问驱动器150的线程,和不能访问次级内核访问驱动器150的线程。那些不能访问次级内核访问驱动器150的线程使用原生操作系统内核120进行操作,其通常可发生在未被保护的系统中。能够访问次级内核访问驱动器150的线程通过次级内核访问驱动器150被重新定向到次级内核110。
图2示出了根据一个实施例,用于通过计算机系统中的应用程序访问内核操作的独立的序列201和202。根据本发明的一个实施例,序列201具有检测隐藏的系统对象的能力,而序列202以常规方式操作。在序列201中,反病毒(AV)应用进程210产生AV应用线程220,为了得到认证,该AV应用线程与次级内核访问驱动器150接口,如方框230所示。当认证成功时,AV应用线程可访问次级内核110以在240请求操作。
在序列202中,其它进程250在260产生他们自身的线程,所述线程在270仅仅和原生内核120接口,从而避免与和次级内核110接口相关的对整个系统性能的任何损害。
图3示出了根据一个实施例,用于在确定隐藏的系统对象时识别rootkit的示范性过程。在310,AV应用程序的线程220的其中之一请求使用次级内核110和原生操作系统内核120的进程列表。作为对所述请求的响应,次级内核110和原生操作系统内核120各自返回进程列表。在320,AV应用程序比较所述两个返回的列表。这样,AV应用程序能够检测并且分析列表之间的任何差别。例如,如果次级内核110返回的进程列表比原生内核120所返回的更加完整,那么AV应用程序确定 rootkit 160对原生操作系统内核120的API功能140a的潜在的损害。
在次级内核110返回的进程列表比原生操作系统内核120返回的列表包含更多项目的情况下,在方框330,AV应用程序获得那些隐藏的进程中每一个的程序代码。例如,AV应用程序能请求与隐藏的进程相关联的文件。在方框340,AV应用程序检查每一个隐藏的进程的程序代码。
这类方式有利于实现用于规避挂载技术的安全配置,例如:
l 任何形式的拼接(其可能拦截任一API功能--基本上是通过取代指令的函数的前几个字节,该指令传输对拦截器代码的控制);
l SSDT(System Service Descriptor Table,系统服务描述符表)和Shadow SSDT(阴影系统服务描述符表)的挂载;
l 对于Windows 2000,使用中断INT 2E(通过为Zw-函数创建接口,Zw-函数是指,那些在执行诸如用户证书的安全检查之前被调用的函数,同时具有前缀Nt - net的函数)和MSR(在x86处理器中存在的特殊寄存器,其可用性和名称根据处理器的型号不同而不同));
l 任何回调和警报或通知,在次级内核110中调用那些函数时,都将停止操作。
图4示出了用于初始化次级内核110和其相关组件的示范性过程。在410,初始化次级内核访问驱动器。在420,加载到具有建立次级内核110的程序指令的文件的路径。在一个实施例中,从未公开的变量KeLoaderBlock中读取该路径。在内核初始化过程中,那个特定的变量仅在短时间内存在,因此在一种方式中,初始化阶段410尽早发生。在430,随着到次级内核文件的路径的加载,从磁盘中读取次级内核。在440,将次级内核加载到存储器中;调整页面调度,设置全局变量来指向原生操作系统内核,并且必要时,将函数输入到相应的模块。随后,在450,将次级内核110配置如下:创建其自身的SSDT表,为函数设置必要接口,并且移除回调和通知。
在另一个实施例中提供了用于检测在计算机系统底层所隐藏的对象的技术,其中已经插入了rootkit来覆盖系统驱动器。这个实施例举例说明了本发明不但能应用到系统内核中,还能应用到各种系统驱动器中,比如系统提供的存储端口驱动器。例如,在Windows操作系统中具有两种类型的存储端口驱动器:
l SCSI端口驱动器(scsiport.sys),Storport驱动器(storport.sys);以及
l ATA端口驱动器(ataport.sys / atapi.sys)。
参考图5,描述了用于访问硬盘驱动器的两个序列。根据一个实施例,序列501使用次级驱动器组用来检测可能被隐藏起来且对系统驱动器有损害的系统对象,以及502是常规的。在常规情况下,rootkit的挂载能够位于管理层硬盘分区520(例如,partmgr.sys),位于硬盘驱动器530(例如,disk.sys)甚至位于端口驱动器540的层面(例如,atapi.sys)。如果预先不知道哪个层面被rootkit所挂载,那么检测将不可能进行。
典型地,系统设计者基于已经提供的系统驱动器创建端口驱动器。该端口驱动器被包括在系统的驱动器堆栈中,并且提供系统的附加功能。通过访问接口的统一,这些端口驱动器帮助实现访问物理介质上的数据的通用的机制。
在所示的实施例中,采用和初始化次级内核以访问硬盘510拓展功能的相同的方式来初始化次级端口驱动器560。从而,次级端口驱动器560的使用能绕过rootkit的挂载,除此以外,其将会禁止对磁盘某些部分的访问或返回最底层内容的错误描述。在这个实施例中,如上述结合有关图2中次级内核访问驱动器150所述,通过次级端口驱动器访问驱动器550的认证采用类似的协议。
图6示出了根据一个实施例,计算机系统模块的配置框图。本文使用的术语“模块”表示现实的设备、组件或使用硬件或者作为硬件和软件结合所实现的组件配置,所述使用硬件例如,通过专用集成电路(ASIC)或现场可编程门阵列(FPGA),所述使用作为硬件和软件结合例如,通过微处理器系统和一组指令来实现模块功能,所述一组指令(当被执行的时候)将微处理器系统转换成专用设备。模块还可以通过上述两者的组合来实现:某些功能由硬件单独帮助实现,以及其他功能由硬件和软件的结合帮助实现。在某些实现方式中,能够在通用计算机(如下面所详细描述的)的处理其上执行模块的至少一部分,甚至在某些情况下执行模块的全部,所述通用计算机执行有操作系统、系统程序和应用程序,与此同时,还能采用多任务、多线程或其他此类技术来实现该模块。因此,每个模块能够以多种适合的配置来实现,并且并不限于这里所示例的任何特定实现方式。
在图6所描述的示范性系统中,原生操作系统内核120处理来自系统或应用进程的请求(例如,请求对象列表)。比较器模块630获得某些请求的结果,或者在一些实施例中获得所有此类请求的结果。比较器模块630经由访问模块620连接到内核功能供应模块610上。访问模块620负责认证比较器模块630,作为允许访问内核功能供应模块610的先决条件。相应地,能够阻止系统中其它应用程序或设备去访问内核功能供应模块610。
内核功能供应模块610实现原生操作系统内核120的一些或全部功能。在一个实施例中,访问模块620通过次级内核访问驱动器150(在上述结合图1所述)实现,并且内核功能供应模块610通过次级内核110(图1)实现。作为对获得由原生操作系统内核120提供的请求结果和由内核功能供应模块610提供的相应的请求结果的响应,比较器模块630分析所述两组结果,并且基于结果组之间的任何差异来确定是否存在已经被隐藏的任何系统对象。
在相关的实施例中,比较器模块630包含决策逻辑,以进一步分析所述两组结果之间所发现的任何差异的类型或属性,从而确定那些差异是否表示系统中存在rootkit。
在图6所示的示范性系统中,原生设备驱动器640帮助实现到例如硬盘驱动器的硬件设备660的接口。驱动器功能供应模块650也帮助实现到硬件设备660的接口,只不过由驱动器功能供应模块650提供的接口需要经由访问模块620以和确保内核功能供应模块610安全的相同的方式来确保安全。
作为对获得经由原生设备驱动器640和驱动器功能供应模块650做出的服务请求的结果的响应,比较器模块630比较两组结果并且确定器件是否存在任何差异。在相关的实施例中,比较器模块630包括决策逻辑,以进一步分析这两组结果之间所发现的任何差异的类型或属性,从而确定那些差异是否表示系统中存在rootkit。
图7更详细地示出了根据各实施例,能够实施本文所描述的发明的计算机系统700的示意图。计算机系统700可包括如个人计算机702的计算设备。个人计算机702包括一个或多个处理单元704、系统存储器706、视频接口708、输出外围接口710、网络接口712、用户输入接口714、可移除存储器接口716和不可移除存储器接口718以及连接到各种组件的系统总线或高速通信通道720。在各种实施例中,处理单元704可以具有多个逻辑核心,所述逻辑核心能够处理存储在计算机可读介质上的信息,所述计算机可读介质例如系统存储器706或附加到可移动存储器接口716和附加到固定存储器接口718上的存储器。计算机702的系统存储器706可以包括例如只读存储器(ROM)722的非易失性存储器或例如随机存取存储器(RAM)724的易失性存储器。ROM 722可以包括基本输入/输出系统(BIOS)726以帮助与计算机702的其它部分的通信。RAM 724可以存储各种软件应用程序的某些部分,所述软件应用程序例如操作系统728、应用程序730和其它程序模块732。进一步地,RAM 724可以存储例如程序或应用程序数据734的其他信息。在各种实施例中,RAM 724存储要求低延迟和高效访问的信息,例如正在被操控或操作的程序和数据。在各种实施例中,RAM 724包括双数据速率(Double Data Rate,DDR)存储器、纠错存储器(Error Correcting memory,ECC)或其它具备不同延迟和配置的存储技术,例如RAMBUS或者DDR2和DDR3。
移动存储器接口716和固定存储器接口718可将计算机702连接到诸如固态驱动器(solid-state drives,SSD)或转动磁盘驱动器(rotational disk drives)的磁盘驱动器736。所述磁盘驱动器736可为各种软件应用程序提供进一步的存储,所述各种软件应用程序例如操作系统738,应用程序740和其他程序模块742。进一步地,磁盘驱动器736可存储例如程序或应用程序数据744的其他信息。在各种实施例中,磁盘驱动器736存储信息,所述信息不要求和在其它存储介质中相同的低延迟。进一步地,在上述提到的各种实施例中,操作系统738、应用程序740数据、程序模块742和程序或应用程序数据744可以与RAM 724中存储的信息相同,或者其可以是不同于RAM 724所存储数据的潜在衍生物的数据。
进一步地,移动存储器接口716可以将计算机702连接到磁性便携式磁盘驱动器746或光盘驱动器750,所述磁性便携式磁盘驱动器746使用磁性介质例如软盘748,Iomega? Zip或Jazz,所述光盘驱动器750使用光学介质752,用以存储计算机可读介质例如Blu-Ray?,DVD-R/RW,CD-R/RW和其他类似的格式。还有其他实施例使用置入便携式的附件中的SSD或转动磁盘来增加移动存储的能力。
计算机702可以使用网络接口712,通过局域网(LAN)758或广域网(WAN)760与一个或多个远程计算机756通信。网络接口712可以使用网卡(NIC)或例如调制解调器762的其它接口来实现通信。调制解调器762可以通过电话线、同轴电缆、光纤、电力线或无线来实现通信。远程计算机756可以包含相似的硬件和软件配置或者可以具有包含远程应用程序766的存储器764,所述远程应用程序766可以提供附加的计算机可读指令给计算机702。在各种实施例中,可以使用远程计算机存储器764来存储信息,所述信息例如随后可被下载到原生系统存储器706中的已认证的文件信息。进一步地,在各种实施例中,远程计算机756可以是应用服务器、管理服务器、客户端计算机或网络设备。
用户可以使用连接到用户输入接口714的输入设备向计算机702输入信息,所述用户输入接口714例如鼠标768和键盘770。此外,输入设备可以是触控板、指纹扫描器、操纵杆、条形码扫描器、介质扫描器或诸如此类。视频接口708可向例如监视器722的显示器提供视觉信息。视频接口708可以是嵌入的接口或是分立的接口。进一步地,计算机可以使用多个视频接口708、网络接口712以及可移动存储器接口716和固定存储器接口718来增加操作计算机702的灵活性。进一步地,各种实施例使用多个监视器772和多个视频接口708来改变计算机702的性能和能力。计算机702中可包含其他计算机接口,例如输出外围接口710。这个输出外围接口可以被连接到打印机774或扬声器776或其它外围设备来向计算机702提供额外的功能。
计算机702的各种可选配置和实现方式都包括在本发明的精神之内。这些变化可包括但不限于连接到系统总线720的附加接口,例如通用串行总线(USB)、打印机端口、游戏端口、PCI总线、PCI Express或者在例如北桥或南桥的芯片集组件中的上述各种组件的集成。例如,在各种实施例中,处理单元704可包括嵌入的存储器控制器(未显示),从而相对于系统总线720所能提供的,能够更有效率地传输来自系统存储器706的数据。
上述实施例旨在例举而非限定。在权利要求范围内存在更多的实施例。此外,虽然已经参考特定实施例对本发明的各方面加以描述,但本领域技术人员应该认识到,在不脱离本发明权利要求所定义的精神和范围的情况下,可以在形式及细节上加以变化。
相关领域的一般技术人员应该认识到,本发明可以包含少于上述任何单独的实施例所例举的特征。本文所描述的实施例并未试图对本发明各个特征的可能组合方式进行穷举。因此,并不排斥实施例之间特征的互相组合;当然,根据本领域一般技术人员的理解,本发明可以由从不同独立实施例中选取的不同独立特征的组合构成。
限制以引用方式对上述文档进行的任何合并,因此,主题内容不应被引用,否则与此处的明确披露相违背。进一步限制以引用方式对上述文档进行的任何合并,因此,不应将本发明文档中所包括的权利要求以引用的方式进行合并。再进一步限制以引用方式对上述文档进行的任何合并,因此,除非本发明明确指出,否则不应对本发明文档中所提供的任何定义以引用的方式加以合并。
出于解释本发明权利要求的目的,明确指出,除非在权利要求中出现特定术语“装置”或者“方法”,否则并不援引美国专利法35 U.S.C.中第六段第112条的规定。
Claims (20)
1.一种用于检测隐藏对象的计算机系统,所述系统包括:
计算机电路,至少具有连接到存储器配置的处理器,所述计算机电路被配置为至少执行操作系统和安全配置;
其中,所述操作系统适合于帮助实现多个进程的执行以及提供至少一个原生服务模块,所述至少一个原生服务模块响应由所述多个进程的至少其中之一做出的请求,返回与所述计算机系统中至少一个对象有关的第一组所请求的信息;以及
其中,所述安全配置包括:
次级服务模块,所述次级服务模块适合于响应由所述多个进程的至少一个已授权的进程做出的请求,生成和返回与所述计算机系统中所述至少一个对象有关的第二组所请求的信息,其中,在生成所述第二组所请求的信息的过程中,所述次级服务模块绕过所述至少一个原生服务模块;
访问限制模块,所述访问限制模块限制对所述次级服务模块的访问,从而仅仅允许所述至少一个已授权的进程访问所述次级服务模块;和
比较模块,适合于比较所述第一组所请求的信息和所述第二组请求的信息以生成比较结果,并且基于所述比较结果,确定任一不在所述第一组所请求的信息中的对象是否存在于所述第二组所请求的信息中。
2.如权利要求1所述的计算机系统,其中所述至少一个原生服务模块包含所述操作系统的至少一部分内核。
3.如权利要求1所述的计算机系统,其中所述至少一个原生服务模块包含所述操作系统的至少一部分内核和至少一个驱动器,以及,其中所述安全配置包括第一类次级服务模块和第二类次级服务模块,所述第一类次级服务模块执行所述操作系统的所述至少一部分内核的至少一些功能,所述第二类次级服务模块执行所述至少一个驱动器的至少一些功能。
4. 如权利要求1所述的计算机系统,其中所述至少一个原生服务模块包含设备驱动器的至少一部分。
5. 如权利要求1所述的计算机系统,其中所述次级服务模块基本上包括所述原生服务模块的全部功能。
6.如权利要求1所述的计算机系统,其中所述次级服务模块具有不同于所述原生服务模块的架构。
7.如权利要求1所述的计算机系统,其中所述至少一个对象选自:至少一个文件、至少一个驱动器、至少一个进程、至少一个寄存器、至少一个注册表项、至少一个动态库、至少一个存储设备或其任意组合。
8.如权利要求1所述的计算机系统,其中所述访问限制模块适合于对每个请求访问所述次级服务模块的进程来施加认证检查,以仅仅允许那些能够通过所述认证检查的进程来访问所述次级服务模块。
9.如权利要求1所述的计算机系统,其中所述比较模块进一步适合于分析被发现不在所述第一组所请求的信息中但存在于所述第二组所请求的信息中的对象的属性,以确定所述对象不存在于所述第一组中是否表示在所述计算机系统中存在rootkit。
10.如权利要求1所述的计算机系统,其中所述访问限制模块适合于仅仅允许预定的与所述比较模块相关的至少一个进程来访问所述次级服务模块。
11.如权利要求1所述的计算机系统,其中所述安全配置进一步地包含安全应用程序,所述安全应用程序运行在用户空间中,并且当被执行时,在所述操作系统中生成特定安全线程;以及
其中在所述安全配置中,所述特定安全线程被送达所述次级服务模块。
12.一种在至少具有处理器的计算机系统中用于检测操作系统的服务模块的安全性损害的方法,所述处理器与存储器配置连接并被配置为至少执行所述操作系统和安全配置,所述方法包括:
通过所述操作系统提供至少一个原生服务模块,所述至少一个原生服务模块响应由至少一个线程做出的请求,返回与所述计算机系统中至少一个对象有关的第一组所请求的信息;
通过所述安全配置提供次级服务模块,所述次级服务模块适合于响应由至少一个已授权的线程做出的请求,生成并返回与所述计算机系统中所述至少一个对象有关的第二组所请求的信息,其中,在生成所述第二组所请求的信息的过程中,所述次级服务模块绕过所述至少一个原生服务模块;
限制线程对所述次级服务模块的访问,从而仅仅允许预定的由受信任的安全应用程序生成的线程来访问所述次级服务模块;
比较所述第一组所请求的信息和所述第二组所请求的信息以生成比较结果;
基于所述比较结果,确定任一不在所述第一组所请求的信息中的对象是否存在于所述第二组所请求的信息中,由此识别至少一个隐藏的对象;以及
分析所述隐藏的对象以确定所述原生服务模块是否已经被损害。
13.如权利要求12所述的方法,其中所述提供至少一个原生服务模块包括提供所述操作系统的一部分内核。
14.如权利要求12所述的方法,其中所述提供至少一个原生服务模块包括提供所述操作系统的至少一部分内核和至少一个驱动器;
在所述安全配置中提供第一类次级服务模块,所述第一类次级服务模块至少执行所述操作系统的所述至少一部分内核的至少一些功能;以及
在所述安全配置中,提供第二类次级服务模块,所述第二类次级服务模块执行所述至少一个驱动器的至少一些功能。
15.如权利要求12所述的方法,其中所述提供至少一个原生服务模块包括提供设备驱动器。
16.如权利要求12所述的方法,其中所述提供次级服务模块包括提供基本上所述原生服务模块的所有功能。
17.如权利要求12所述的方法,其中所述提供次级服务模块包括提供与所述原生服务模块的架构不同的架构。
18.如权利要求12所述的方法,其中所述至少一个对象选自:至少一个文件、至少一个驱动器、至少一个进程、至少一个线程、至少一个寄存器、至少一个注册表项、至少一个动态库、至少一个存储设备或其任意组合。
19.如权利要求12所述的方法,其中所述限制线程对所述次级服务模块的访问包括对每个请求访问所述次级服务模块的线程施加认证检查,以仅仅允许那些能够通过所述认证检查的线程来访问所述次级服务模块。
20.一种改进的计算机系统,所述计算机系统至少具有处理器,所述处理器与存储器配置连接并被配置为至少执行操作系统和安全配置,其中所述操作系统提供至少一个原生服务模块,所述原生服务模块响应由至少一个线程做出的请求,返回与所述计算机系统中至少一个对象有关的第一组所请求的信息,所述改进包括:
用于响应由至少一个已授权的线程做出的请求,生成并返回与所述计算机系统中所述至少一个对象有关的第二组所请求的信息的装置,其中在生成所述第二组所请求的信息的过程中,所述用于生成并返回的装置绕过所述至少一个原生服务模块;
用于限制线程对所述用于生成并返回的装置的访问的装置,从而仅仅允许预定的由受信任的安全应用程序生成的线程来访问那些装置;
用于比较所述第一组所请求的信息和所述第二组所请求的信息以生成比较结果的装置;以及
用于基于所述比较结果,确定任一不在所述第一组所请求的信息中的对象是否存在于所述第二组所请求的信息中,由此识别至少一个隐藏的对象的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2010119564 | 2010-05-18 | ||
RU2010119564 | 2010-05-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102110213A true CN102110213A (zh) | 2011-06-29 |
CN102110213B CN102110213B (zh) | 2015-03-11 |
Family
ID=43508769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110049977.9A Expired - Fee Related CN102110213B (zh) | 2010-05-18 | 2011-03-02 | 检测计算机系统内隐藏的对象 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8677492B2 (zh) |
EP (1) | EP2388726B1 (zh) |
CN (1) | CN102110213B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103927477B (zh) * | 2014-04-28 | 2017-03-08 | 上海新储集成电路有限公司 | 一种安全主板及其应用方法 |
CN111241588A (zh) * | 2016-10-08 | 2020-06-05 | 阿里巴巴集团控股有限公司 | 一种在应用中实现辅助功能的方法及装置 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9183111B2 (en) | 2011-05-10 | 2015-11-10 | Microsoft Technology Licensing, Llc | Methods and computer program products for collecting storage resource performance data using file system hooks |
RU2510075C2 (ru) * | 2012-04-11 | 2014-03-20 | Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" | Способ обнаружения вредоносного программного обеспечения в ядре операционной системы |
EP2852897B1 (en) * | 2012-05-20 | 2020-10-07 | Microsoft Technology Licensing, LLC | Server-based hierarchical mass storage system |
US9379892B2 (en) | 2013-05-30 | 2016-06-28 | Toshiba America Electronic Components, Inc. | Trusted manager bridge |
US8943592B1 (en) * | 2013-07-15 | 2015-01-27 | Eset, Spol. S.R.O. | Methods of detection of software exploitation |
US10339313B2 (en) * | 2013-07-15 | 2019-07-02 | Webroot Inc. | System and method for bypassing a malware infected driver |
US20150074808A1 (en) * | 2013-09-06 | 2015-03-12 | Triumfant, Inc. | Rootkit Detection in a Computer Network |
RU2571721C2 (ru) * | 2014-03-20 | 2015-12-20 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ обнаружения мошеннических онлайн-транзакций |
US9342415B2 (en) * | 2014-07-14 | 2016-05-17 | International Business Machines Corporation | Run-to-completion thread model for software bypass fail open for an inline intrusion protection system |
US9898615B1 (en) * | 2015-08-20 | 2018-02-20 | Symantec Corporation | Methods to impede common file/process hiding techniques |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070078915A1 (en) * | 2005-10-05 | 2007-04-05 | Computer Associates Think, Inc. | Discovery of kernel rootkits with memory scan |
US20070169192A1 (en) * | 2005-12-23 | 2007-07-19 | Reflex Security, Inc. | Detection of system compromise by per-process network modeling |
US7512810B1 (en) * | 2002-09-11 | 2009-03-31 | Guardian Data Storage Llc | Method and system for protecting encrypted files transmitted over a network |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6222529B1 (en) | 1999-05-05 | 2001-04-24 | Shareware, Inc. | Method and apparatus for providing multiple sessions on a single user operating system |
US7007025B1 (en) | 2001-06-08 | 2006-02-28 | Xsides Corporation | Method and system for maintaining secure data input and output |
WO2002101526A2 (en) | 2001-06-08 | 2002-12-19 | Xsides Corporation | Method and system for maintaining secure data input and output |
US6782424B2 (en) | 2002-08-23 | 2004-08-24 | Finite State Machine Labs, Inc. | System, method and computer program product for monitoring and controlling network connections from a supervisory operating system |
US20070107052A1 (en) * | 2003-12-17 | 2007-05-10 | Gianluca Cangini | Method and apparatus for monitoring operation of processing systems, related network and computer program product therefor |
US20050229250A1 (en) | 2004-02-26 | 2005-10-13 | Ring Sandra E | Methodology, system, computer readable medium, and product providing a security software suite for handling operating system exploitations |
US7571482B2 (en) | 2005-06-28 | 2009-08-04 | Microsoft Corporation | Automated rootkit detector |
US7587724B2 (en) | 2005-07-13 | 2009-09-08 | Symantec Corporation | Kernel validation layer |
US7647636B2 (en) * | 2005-08-24 | 2010-01-12 | Microsoft Corporation | Generic RootKit detector |
US7841006B2 (en) | 2005-10-05 | 2010-11-23 | Computer Associates Think, Inc. | Discovery of kernel rootkits by detecting hidden information |
US7757290B2 (en) | 2006-01-30 | 2010-07-13 | Microsoft Corporation | Bypassing software services to detect malware |
AU2006100099A4 (en) | 2006-02-08 | 2006-03-16 | Pc Tools Technology Pty Limited | Automated Threat Analysis System |
KR100799302B1 (ko) | 2006-06-21 | 2008-01-29 | 한국전자통신연구원 | 시스템 이벤트 정보를 이용한 은닉 프로세스 탐지 시스템및 방법 |
US8281393B2 (en) | 2006-11-08 | 2012-10-02 | Mcafee, Inc. | Method and system for detecting windows rootkit that modifies the kernel mode system service dispatch table |
-
2010
- 2010-10-20 EP EP10188163.9A patent/EP2388726B1/en active Active
- 2010-11-29 US US12/955,279 patent/US8677492B2/en not_active Expired - Fee Related
-
2011
- 2011-03-02 CN CN201110049977.9A patent/CN102110213B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7512810B1 (en) * | 2002-09-11 | 2009-03-31 | Guardian Data Storage Llc | Method and system for protecting encrypted files transmitted over a network |
US20070078915A1 (en) * | 2005-10-05 | 2007-04-05 | Computer Associates Think, Inc. | Discovery of kernel rootkits with memory scan |
US20070169192A1 (en) * | 2005-12-23 | 2007-07-19 | Reflex Security, Inc. | Detection of system compromise by per-process network modeling |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103927477B (zh) * | 2014-04-28 | 2017-03-08 | 上海新储集成电路有限公司 | 一种安全主板及其应用方法 |
CN111241588A (zh) * | 2016-10-08 | 2020-06-05 | 阿里巴巴集团控股有限公司 | 一种在应用中实现辅助功能的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2388726A1 (en) | 2011-11-23 |
EP2388726B1 (en) | 2014-03-26 |
CN102110213B (zh) | 2015-03-11 |
US20110289600A1 (en) | 2011-11-24 |
US8677492B2 (en) | 2014-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102110213B (zh) | 检测计算机系统内隐藏的对象 | |
US9596257B2 (en) | Detection and prevention of installation of malicious mobile applications | |
EP3113063B1 (en) | System and method for detecting malicious code in random access memory | |
JP6789308B2 (ja) | トリップワイヤファイルを生成するためのシステム及び方法 | |
US9183377B1 (en) | Unauthorized account monitoring system and method | |
JP6346632B2 (ja) | モバイルデバイスでの悪質なファイルを検出するシステム及び方法 | |
EP3111364B1 (en) | Systems and methods for optimizing scans of pre-installed applications | |
EP2732397B1 (en) | Computing device including a port and a guest domain | |
US20070136807A1 (en) | System and method for detecting unauthorized boots | |
CN105760773A (zh) | 通过易受攻击的应用控制打开文件的系统和方法 | |
US20140337918A1 (en) | Context based switching to a secure operating system environment | |
US10963583B1 (en) | Automatic detection and protection against file system privilege escalation and manipulation vulnerabilities | |
WO2014071867A1 (zh) | 程序处理方法和系统,用于程序处理的客户端和服务器 | |
CN109997138B (zh) | 用于检测计算设备上的恶意进程的系统和方法 | |
CN105760787A (zh) | 用于检测随机存取存储器中的恶意代码的系统及方法 | |
US10339307B2 (en) | Intrusion detection system in a device comprising a first operating system and a second operating system | |
KR101223594B1 (ko) | Lkm 루트킷 검출을 통한 실시간 운영정보 백업 방법 및 그 기록매체 | |
US10262131B2 (en) | Systems and methods for obtaining information about security threats on endpoint devices | |
KR102382889B1 (ko) | 프로세스 정보를 사용하여 웹쉘을 탐지하는 방법 및 시스템 | |
US11170103B2 (en) | Method of detecting malicious files resisting analysis in an isolated environment | |
US20080127352A1 (en) | System and method for protecting a registry of a computer | |
EP3243313B1 (en) | System and method for monitoring a computer system using machine interpretable code | |
US10243963B1 (en) | Systems and methods for generating device-specific security policies for applications | |
EP3588346A1 (en) | Method of detecting malicious files resisting analysis in an isolated environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150311 Termination date: 20210302 |
|
CF01 | Termination of patent right due to non-payment of annual fee |