检测运行在计算机系统上的恶意软件的存在的系统、方法及程序产品的制作方法

xiaoxiao2020-7-22  15


专利名称::检测运行在计算机系统上的恶意软件的存在的系统、方法及程序产品的制作方法
技术领域
:本发明涉及计算机系统和软件,更具体地,涉及用于检测运行在计算机系统上的恶意软件(例如,恶意服务代理)的存在的技术。
背景技术
:不想要的软件和恶意软件常常使用复杂的技术对主机的用户隐瞒它们的安装。已经提出了不同的技术来检测“rootkits”和其他的秘密安装技术。这些现有技术需要在加电和断电状态下通过本地手段对主机进行查询。这些现有技术,特别是在断电状态下评定主机的处理,是高破坏性且耗时的。同样,需要管理员在不使主机断电的情况下有效地识别这种安装的存在。
发明内容根据本发明的实施例,本发明在于用于利用程序或者工具检测恶意软件的存在的系统、方法和程序产品。该方法包括本地查询计算机系统以列举当前运行在计算机系统上的任务和网络服务的本地清单(inventory),用于检测运行在计算机系统上的恶意服务代理的存在,其中,所列举的任务和网络服务的本地清单包括在该计算机系统上的使用中的各个端口;以及通过网络从远程计算机系统远程查询该计算机系统,以列举当前运行在计算机系统上的任务和网络服务的远程清单,用于检测运行在计算机系统上的恶意服务代理的存在,其中,所列举的任务和网络服务的远程清单包括在计算机系统上的使用中的各个端口。此外,该方法包括收集每个所列举的任务和网络服务的本地清单,收集每个所列举的任务和网络服务的远程清单,并且将所列举的任务和网络服务的本地清单与所列举的任务和网络服务的远程清单进行比较,以识别所列举的任务和网络服务的本地清单与所列举的任务和网络服务的远程清单之间的任何差异,用于检测运行在计算机系统上的恶意服务代理的存在。在一实施例中,本地查询步骤还包括提供用于本地检测运行在计算机系统上的恶意服务代理的存在的第一工具;以及利用该第一工具进行对计算机系统的本地扫描以本地查询计算机系统。在一实施例中,远程查询步骤还包括提供用于远程检测运行在计算机系统上的恶意服务代理的存在的第二工具;以及利用该第二工具进行对计算机系统的远程扫描以远程查询计算机系统。在一实施例中,各个端口中的端口包括开放端口、关闭端口和过滤端口中的至少一个。在一实施例中,该方法还包括标记具有所识别的任何差异的计算机,用于进行进一步的测试以评估所识别的任何差异,用于确定运行在计算机系统上的恶意服务代理的存在。从第一方面看,本发明提供了一种检测运行在计算机系统上的恶意服务代理的存在的方法,所述方法包括步骤本地查询计算机系统以产生包括当前运行在所述计算机系统上的任务和网络服务的本地清单的列表,用于检测运行在所述计算机系统上的恶意服务代理的存在,其中所述任务和网络服务的本地清单还包括列举在所述计算机系统上的使用中的各个端口的列表;通过网络从远程计算机系统远程查询所述计算机系统以产生当前运行在所述计算机系统上的任务和网络服务的远程清单的列表,用于检测运行在所述计算机上的所述恶意服务代理的存在,其中所述任务和网络服务的远程清单还包括列举在所述计算机系统上的使用中的各个端口的列表;收集任务和网络服务的本地清单以及任务和网络服务的远程清单;以及将任务和网络服务的本地清单与任务和网络服务的远程清单进行比较,以识别任务和网络服务的本地清单与任务和网络服务的远程清单之间的任何差异,用于检测运行在所述计算机系统上的所述恶意服务代理的存在。优选地,本发明提供了一种方法,其中所述本地查询步骤还包括步骤检测运行在所述计算机系统上的所述恶意服务代理的存在;以及响应于检测步骤,进行对所述计算机系统的本地扫描以本地查询所述计算机系统。优选地,本发明提供了一种方法,其中所述远程查询步骤还包括步骤远程检测运行在所述计算机系统上的所述恶意服务代理的存在;以及响应于远程检测步骤,进行对所述计算机系统的远程扫描以远程查询所述计算机系统。优选地,本发明提供了一种方法,其中所述各个端口中的端口包括开放端口、关闭端口和过滤端口中的至少一个。优选地,本发明提供了一种方法,还包括标记具有所识别的差异的所述计算机,用于进行进一步的测试以评估所识别的差异,用于确定运行在所述计算机系统上的恶意服务代理的存在。优选地,本发明提供了一种方法,其中本地和/或远程扫描步骤还包括启动与在计算机系统上的每个被识别为开放的端口的通信;以及为每个识别的开放端口,确定通过该开放端口操作的服务是否为已知服务。从第二方面看,本发明提供了一种检测运行在计算机系统上的恶意服务代理的存在的系统,该系统包括部件,用于本地查询计算机系统以产生包括当前运行在所述计算机系统上的任务和网络服务的本地清单的列表,用以检测运行在所述计算机系统上的恶意服务代理的存在,其中所述任务和网络服务的本地清单还包括列举在所述计算机系统上的使用中的各个端口的列表;部件,用于通过网络从远程计算机系统远程查询所述计算机系统以产生当前运行在所述计算机系统上的任务和网络服务的远程清单的列表,用以检测运行在所述计算机系统上的所述恶意服务代理的存在,其中所述任务和网络服务的远程清单还包括列举在所述计算机系统上的使用中的各个端口的列表;部件,用于收集任务和网络服务的本地清单以及任务和网络服务的远程清单的;以及部件,用于将任务和网络服务的本地清单与任务和网络服务的远程清单进行比较,以识别任务和网络服务的本地清单与任务和网络服务的远程清单之间的任何差异,用于检测运行在所述计算机系统上的所述恶意服务代理的存在。优选地,本发明提供了一种系统,其中所述本地查询步骤还包括部件,用于检测运行在所述计算机系统上的所述恶意服务代理的存在;以及部件,用于响应于检测步骤,进行对所述计算机系统的本地扫描以本地查询所述计算机系统。优选地,本发明提供了一种系统,其中所述远程查询步骤还包括部件,用于远程检测运行在所述计算机系统上的所述恶意服务代理的存在;以及部件,用于响应于远程检测步骤,进行对所述计算机系统的远程扫描以远程查询所述计算机系统。优选地,本发明提供了一种系统,其中所述各个端口中的端口包括开放端口、关闭端口和过滤端口中的至少一个。优选地,本发明提供了一种系统,还包括部件,用于标记具有所识别的差异的所述计算机系统,用于进行进一步的测试以评估所识别的差异,用于确定运行在所述计算机系统上的所述恶意服务代理的存在。优选地,本发明提供了一种系统,其中本地和/或远程扫描步骤还包括;部件,用于启动与在计算机系统上的每个被识别为开放的端口的通信;以及,部件,用于为每个被识别的开放端口,确定通过该开放端口操作的服务是否为已知服务。从另一方面看,本发明提供了可加载到数字计算机的内存的计算机程序,包括当所述产品在计算机上运行时用于执行以实现上述本发明的软件代码部分。从另一方面看,本发明提供了一种用于检测运行在主机系统上的恶意服务代理的存在的系统,包括网络通信信道;连接至所述网络通信信道的主机系统;第一工具,用于本地检测运行在所述主机系统上的恶意服务代理的存在,所述第一工具被本地安装在所述主机系统上以进行对所述主机系统的本地扫描;连接至所述网络通信信道的远程计算机系统;第二工具,用于远程检测运行在所述主机系统上的所述恶意服务代理的存在,所述第二工具被安装在所述远程计算机系统上,用于进行对所述主机系统的远程扫描;以及结果关联引擎,用于关联从对所述主机系统的所述本地扫描与对所述主机系统的所述远程扫描收集的结果,所述结果关联引擎识别对所述主机系统的所述本地扫描与所述远程扫描之间的任何差异,用于检测所述主机系统上的所述恶意服务代理的存在。优选地,本发明提供了一种系统,还包括用于提供差异报告的第三工具,所述差异报告报告对所述主机系统的所述本地扫描与所述远程扫描之间所识别的任何差异,用于检测所述主机系统上的所述恶意服务代理的存在。优选地,本发明提供了一种系统,其中所述第一工具本地查询所述主机系统,以列举当前运行在所述主机系统上的任务和网络服务的本地清单,其中所列举的任务和网络服务的本地清单包括在所述主机系统上的使用中的各个端口,并且其中当前运行在所述主机系统上的所述任务和网络服务的本地清单中列举的所述各个端口中的端口包括开放端口、关闭端口和过滤端口中的至少一个。优选地,本发明提供了一种系统,其中所述第二工具远程查询所述主机系统,以列举当前运行在所述主机系统上的任务和网络服务的远程清单,其中所列举的任务和网络服务的远程清单包括在所述主机系统上的使用中的各个端口,并且其中在当前运行在所述主机系统上的所述任务和网络服务的远程清单中列举的所述各个端口中的端口包括开放端口、关闭端口和过滤端口中的至少一个。优选地,本发明提供了一种系统,还包括第四工具,用于标记具有所识别的任何差异的主机系统,以便进行进一步的测试以评估所述任何差异,用于验证运行在所述主机系统上的所述恶意服务代理的存在。从另一方面看,本发明提供了一种计算机程序产品,用于检测运行在主机系统上的恶意服务代理的存在,所述计算机程序产品包括计算机可读存储介质;第一程序指令,用于本地查询计算机系统以列举当前运行在所述计算机系统上的任务和网络服务的本地清单,用以检测运行在所述计算机系统上的恶意服务代理的存在,其中所列举的任务和网络服务的本地清单包括在所述计算机系统上的使用中的各个端口;第二程序指令,用于通过网络从远程计算机系统远程查询所述计算机系统,以列举当前运行在所述计算机系统上的任务和网络服务的远程清单,用以检测运行在所述计算机系统上的所述恶意服务代理的存在,其中所列举的任务和网络服务的远程清单包括在所述计算机系统上的使用中的各个端口;第三程序指令,用于收集每个所列举的任务和网络服务的本地清单并收集每个所列举的任务和网络服务的远程清单;第四程序指令,用于将所列举的任务和网络服务的本地清单与所列举的任务和网络服务的远程清单进行比较,以识别所列举的任务和网络服务的本地清单与所列举的任务和网络服务的远程清单之间的任何差异,用于检测运行在所述计算机系统上的所述恶意服务代理的存在,其中所述第一、第二、第三和第四程序指令被记录在所述计算机可读存储介质上。优选地,本发明提供了一种计算机程序产品,还包括第五程序指令,用于标记具有所识别的任何差异的所述计算机系统,用以进行进一步的测试以评估所述任何差异,其中所述第五程序指令被记录在所述计算机可读存储介质上。优选地,本发明提供了一种计算机程序产品,其中所述第一程序指令还包括指令,用于提供用于本地检测运行在所述计算机系统上的所述恶意服务代理的存在的第一工具,并且利用所述第一工具进行对所述计算机系统的本地扫描以本地查询所述计算机系统。优选地,本发明提供了一种计算机程序产品,其中所述第二程序指令还包括指令,用于提供用于远程检测运行在所述计算机系统上的所述恶意服务代理的存在的第二工具,并且利用所述第二工具进行对所述计算机系统的远程扫描以远程查询所述计算机系统。优选地,本发明提供了一种计算机程序产品,其中所述各个端口中的端口包括开放端口、关闭端口和过滤端口中的至少一个。结合于此并形成本说明书的一部分的附示了本发明的实施例,并且与描述一起用来解释本发明的原理图1是图示根据本发明的优选实施例的、用于检测运行在计算机系统上的恶意软件的存在的系统的实施例的示意框图;图2示出根据本发明的优选实施例的、其上部署了本地扫描工具的计算机系统的实施例,其中所述本地扫描工具用于执行对计算机系统的本地扫描,用以检测运行在计算机系统上的恶意软件的存在;图3示出根据本发明的优选实施例、其上部署了远程扫描工具的计算机系统的实施例,其中所述远程扫描工具用于执行对远程计算机系统的远程扫描,用以检测运行在远程计算机系统上的恶意软件的存在;图4示出根据本发明的优选实施例的、其上部署了结果关联引擎或程序的计算机系统的实施例,其中所述结果关联引擎或程序用于执行对接收到的本地扫描结果和接收到的远程扫描结果的分析和评估,用以检测运行在计算机系统上的恶意软件的存在;图5示出根据本发明的优选实施例的、用于检测运行在计算机系统上的恶意软件的存在的计算机基础结构;图6示出概述根据本发明的优选实施例的、由主机系统执行的、用于本地检测运行在主机系统上的恶意软件的存在的步骤的流程图;图7示出概述根据本发明的优选实施例的、由远程计算机系统执行的、用于远程检测运行在主机系统上的恶意软件的存在的步骤的流程图;以及图8示出概述根据本发明的优选实施例的、由结果关联计算机系统执行的、用于检测运行在主机系统上的恶意软件的存在的全部步骤的流程图。具体实施例方式本说明书中所描述的许多功能单元已经被标记为模块,以便更加具体地强调它们的实施独立性。例如,模块可以实施为包括传统VLSI电路或门阵列、诸如逻辑芯片、晶体管或其他分立组件的现成半导体的硬件电路。模块也可以以诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件等的可编程硬件设备来实施。模块也可以以通过各种类型的处理器执行的软件来实施。例如,可执行代码的识别的模块或组件可包括一个或多个例如可以组织为对象、进程或功能的计算机指令的物理或逻辑块。然而,识别的模块的可执行文件(executable)不需要物理地设置在一起,而是可以包括存储在不同位置的完全不同的指令,其当逻辑地被连接在一起时,包括该模块并实现针对该模块的所述目的。此外,可执行代码的模块可以是单个指令或者多个指令,并且甚至可以分布在几个不同的代码段上、在不同的程序之间以及跨越几个内存设备。同样地,可操作数据这里可以在模块内被识别并描述,并且可以以任何合适的形式体现并被组织在任何合适类型的数据结构内。可操作数据可以被收集为单个数据集,或者可以被分布在不同位置上(包括在不同的存储设备上、在完全不同的内存设备上),并且可以至少部分地仅仅作为系统或网络上的电子信号而存在。此外,模块也可以被实施为软件和一个或多个硬件设备的组合。例如,模块可以被体现在存储在内存设备上的软件可执行代码的组合中。在另一个示例中,模块可以是在一组操作数据上操作的处理器的组合。另外,模块可以以在通过传输线路通信的电子信号的组合来实施。贯穿于本说明书的对“一个实施例”、“实施例”或者类似的语言的引用意味着结合实施例而描述的特定特征、结构或者特点包含在本发明的至少一个实施例中。因此,贯穿于本说明书的短语“在一个实施例中”、“在实施例中”以及类似语言的出现可以(但并非必须)全部指同一个实施例。此外,所描述的本发明的特征、结构或特点可以在一个或多个实施例中以任何合适的方式组合。对于本领域的技术人员显而易见的是,在不背离本发明的范围的情况下,可以对本发明做出各种修改和变化。因此,本发明企图覆盖对本发明的修改和变化,只要它们在所附权利要求及其等价物的范围内。现在将详细参考本发明的优选实施例。在一个实施例中,根据本发明的实施例,本发明提供了一种用于检测运行在计算机系统或主机系统上的恶意软件的存在的系统。现在参考图1(标号100),其示意性地图示了根据本发明的实施例的、用于检测运行在计算机系统上的恶意软件(例如恶意服务代理)的存在的系统的实施例。如图1所示,系统基础结构100包括远程连接至网络120的第一主机系统102。在实施例中,第一主机系统102具有安装在其上的、用于对第一主机系统102进行本地查询或询问的本地询问代理程序或者本地扫描代理或工具。本地询问代理或软件运行在第一计算机系统102上,以确定当前运行在第一主机系统102上的本地任务和网络服务。此外,系统基础结构100包括也连接至网络120且远离第一主机系统102的第二主机系统104。在实施例中,第二主机104包括网络询问工具,用于对第一主机系统102进行远程查询或询问,用以列举当前运行在第一主机系统102上的任务和网络服务的远程清单。此外,系统基础结构100包括连接至网络120的第三计算机系统106,该第三计算机系统106具有部署在其上的、用于关联从第一计算机系统102和第二计算机系统104接收的结果的结果关联引擎。在实施例中,第三计算机系统106收集由第一主机系统102进行的本地查询或询问的结果。此外,第三计算机系统106还收集由第二主机系统104对第一主机系统102进行的远程查询或询问的结果。此外,部署在第三计算机系统106上的结果关联引擎将由第一主机系统102列举的任务和网络服务的本地清单结果、与由第二主机系统104列举的任务和网络服务的远程清单结果进行比较,以识别从第一主机系统102获得的本地清单结果与从第二主机系统104获得的远程清单结果之间的任何差异,用以检测运行在第一主机系统102上的任何恶意软件(例如恶意服务代理)的存在。此外,在实施例中,第三计算机系统106包括报告工具,用于产生识别在由第一主机系统102执行的本地扫描、与由第二主机系统104对第一主机系统102执行的远程扫描之间的任何差异的差异报告108,用以检测运行在第一主机系统102上的任何恶意软件的存在。现在参考图2(标号200),其描绘了根据本发明的实施例的主机系统或者服务器(例如,图1中所示的主机系统102)的实施例,其中该主机系统或者服务器在其上部署了计算机程序产品,即,本地扫描代理程序或工具,用于对被怀疑有恶意软件运行在其上的主机系统进行本地扫描或询问。在实施例中,本地扫描工具或程序220运行在主机系统或服务器200内。优选地,计算机系统200是包括中央处理单元(CPU)204、本地存储设备202、用户接口206、网络接口208以及内存210的计算机系统或服务器。CPU204通常被配置为在主机系统/服务器200内执行操作。在一个实施例中,用户接口206被配置为允许用户或者操作员与计算机系统或服务器200交互,包括允许输入用于进行对计算机系统200的本地扫描的命令和/或数据。在一个实施例中,网络接口208被配置为便利于主机系统或者服务器200通过网络(例如图1中所示的网络120)的通信信道进行网络通信。在实施例中,内存210被配置为存储一个或多个应用或程序212,例如字处理应用、电子表格应用等。在一个实施例中,如图2所示,运行在主机服务器或系统200上的本地扫描代理程序或工具220包括包含多个模块的逻辑单元,所述模块被配置为功能地执行进行对主机系统200的本地扫描的必要步骤,用以列举运行在主机系统上的任务和网络服务的本地清单。如图2所示,在实施例中,运行在主机系统200上的本地扫描工具或代理程序220包括启动模块222、任务模块224、网络服务模块226、列表产生模块228、结果日志模块230、转发模块232和通信模块234。在实施例中,启动模块222被配置为启动主机系统200的本地扫描。任务模块2M被配置为列举或者列出运行在主机系统200上的所有任务。此外,网络服务模块2被配置为列举或者列出运行在主机系统200上的所有网络服务。在实施例中,列表产生模块2被配置为产生列举运行在主机系统上的所有任务和网络服务的列表。结果日志模块230被配置为产生对主机系统进行的本地扫描的结果的日志。在实施例中,由结果日志模块230产生的本地扫描结果日志214存储在主计算机系统200内的本地存储器202中。转发模块232被配置为将对主机系统200执行的本地扫描的结果转发至包括结果关联引擎的另一计算机系统(例如,图4中所示的计算机系统400),用于评估从主机系统200接收的本地扫描结果。通信模块234被配置为允许在本地扫描工具220、内存210、本地存储器202的各种模块与外部计算机系统(例如,通过网络连接至主机系统的包括结果关联引擎的计算机系统)之间的通信。现在参考图3(标号300),其描绘了根据本发明的实施例的远程主机系统或服务器(例如,图1中所示的远程主机系统104)的实施例,其中该远程主机系统或服务器在其上部署了计算机程序产品,即,远程扫描代理程序或工具,用于开放与第一主机系统的连接并用于对被怀疑有恶意软件运行在其上的第一主机系统进行远程扫描或询问。在实施例中,远程扫描工具或程序320在第二主机系统或服务器300内运行。优选地,计算机系统300是包括中央处理单元(CPU)304、存储设备302、用户接口306、网络接口308和内存310的计算机系统或服务器。CPU304通常被配置为在主机系统/服务器300内执行操作。在一个实施例中,用户接口306被配置为允许用户或操作员与计算机系统或服务器300交互,包括允许输入用于进行对远离计算机系统300的主机系统(例如图2中所示的计算机系统200)的远程扫描的命令和/或数据。在一个实施例中,网络接口308被配置为便利于主机系统或服务器300通过网络(例如图1中所示的网络120)的通信信道进行网络通信。在实施例中,内存310被配置为存储一个或多个应用或程序312,例如,字处理应用、电子表格应用等。如图3所示,在一个实施例中,运行在主机服务器或系统300上的本地扫描代理程序或工具320包括包含多个模块的逻辑单元,所述模块被配置为功能地执行进行对远程计算机系统200(图2)的远程扫描的必要步骤,用于列举运行在远程主机系统200上的任务和网络服务的远程清单。在实施例中,如图3所示,运行在主机系统300上的远程扫描工具或代理程序320包括启动模块322、任务模块324、网络服务模块326、列表产生模块328、结果日志模块330、转发模块332和通信模块334。在实施例中,启动模块322被配置为通过网络启动对远程主机系统200的所有端口的远程扫描。任务模块3M被配置为列举或者列出运行在远程主机系统200上的所有任务。此外,网络服务模块3被配置为列举或者列出运行在远程主机系统200上的所有网络服务。在实施例中,列表产生模块3被配置为产生列举运行在远程主机系统200上的所有任务和网络服务的列表。结果日志模块330被配置为产生对远程主机系统200进行的远程扫描的结果的日志。在实施例中,由结果日志模块330产生的远程扫描结果日志314存储在主计算机系统300内的本地存储器302中。转发模块332被配置为将对远程主机系统200执行的远程扫描的结果转发至包括结果关联引擎的另一计算机系统(例如,图4中所示的计算机系统400),用于评估从主机系统300接收的远程扫描结果。通信模块334被配置为允许在远程扫描工具320、内存310、本地存储器302的各种模块与外部计算机系统(例如,通过网络连接至主机系统300的包括结果关联引擎的计算机系统400(图4中所示))之间的通信。现在参考图4(标号400),其描绘了根据本发明的实施例的计算机系统或服务器(例如,图1中所示的计算机系统106)的实施例,其中该计算机系统或服务器在其上部署了计算机程序产品,即,结果关联程序或工具或弓丨擎420,用于关联从第一主机系统或服务器接收的本地扫描结果、与从第二主机系统或服务器接收的第一主机系统的远程扫描结果,用以检测运行在第一计算机上的任何恶意软件的存在。优选地,计算机系统400是包括中央处理单元(CPU)404、存储设备402、用户接口406、网络接口408和内存410的计算机系统或服务器。CPU404通常被配置为在主机系统/服务器400内执行操作。在一个实施例中,用户接口406被配置为允许用户或操作员与计算机系统或服务器400交互,包括允许输入用于收集来自一个或多个计算机系统或服务器(例如,计算机系统200(图2)和/或计算机系统300(图3))的扫描结果的命令和/或数据。在一个实施例中,网络接口408被配置为便利于计算机系统或服务器400通过网络(例如图1中所示的网络120)的通信信道进行网络通信。在实施例中,内存410被配置为存储一个或多个应用或程序412,例如,字处理应用、电子表格应用等。在一个实施例中,如图4所示,运行在计算机服务器或系统400上的结果关联程序或工具420包括包含多个模块的逻辑单元,所述模块被配置为功能地执行进行对从本地主机系统200(图2)和远程主机系统300(图3)两者接收的扫描结果的评估的必要步骤,用于检测运行在主机系统200上的任何恶意软件的存在。在实施例中,如图4所示,运行在计算机系统或服务器400上的结果关联程序或工具420包括接收模块422、比较模块424、评估模块426、标记模块428、报告产生模块430和通信模块432。在实施例中,接收模块422被配置为接收来自被怀疑有恶意软件运行在其上的主机服务器或系统的本地扫描结果、以及来自通过网络进行对主机系统或服务器的远程扫描的远程计算机系统或服务器的远程扫描结果。比较模块4M被配置为比较作为所执行的本地扫描的结果的被列举为运行在主机系统200上的所有任务的列表、与作为对主机系统200执行的远程扫描的结果的被列举为运行在主机系统200上的所有远程任务的列表。在实施例中,比较模块424比较通过本地计算机系统从本地端口获得的服务列表、与通过远程计算机系统从同一端口远程获得的服务列表。此外,评估模块似6被配置为评估由比较模块似4进行的比较,以便产生存储在本地存储器402中的关联结果日志414中的、关于是否存在在本地扫描结果和远程扫描结果之间发现的任何差异的关联结果。标记模块4被配置为标记被怀疑有恶意软件运行在其上的计算机系统,作为由评估模块似6进行的评估的结果。报告产生模块430被配置为产生列举由计算机系统400评估的在本地扫描与远程扫描之间发现的差异的差异报告。在实施例中,通信模块432被配置为允许在结果关联工具420、内存410、本地存储器402的各种模块与外部计算机系统(例如,通过网络连接至计算机系统400的计算机系统200(图2中所示)和计算机系统300(图3中所示))之间的通信。现在参考图5,图示了根据本发明的实施例的系统500,其中在基础结构502内包括服务器或计算机系统504,服务器或计算机系统504其在其上部署了计算机程序产品,即,本地扫描代理程序或工具514,其实施本发明用以动态执行对计算机系统504的本地扫描。计算机程序产品包括计算机可读或计算机可用的存储介质,其提供程序代码,即,本地扫描代理程序或工具514,用于被计算机服务器或计算机系统或者任何指令执行系统使用,或者与其相结合使用。本地扫描程序或工具514可以从计算可读存储介质(标号516)(例如,磁带或磁盘、光介质、DVD、存储棒、半导体存储器等)加载到主机系统504的内存514中,或者通过安装在相应系统或服务器上的网络适配卡(标号518)从服务器下载。如图5所示,系统500包括计算机基础结构502,其意图表示安全环境中所维护的任何类型的计算机体系结构(即,强制对其的访问控制)。此外,如所示的,基础结构502包括典型地表示包括本地扫描代理程序或工具514的应用服务器或系统504等的计算机服务器或系统504。然而,应该理解的是,尽管未示出,但其他硬件和软件组件(例如,附加的计算机系统、路由器、防火墙等)可以包含在基础结构502中。通常,主机系统504通过网络连接至基础结构502。主机系统504包括运行在主机系统504上的本地扫描工具或代理程序514,用于执行对当前运行在主机系统504上的任务和网络服务的本地扫描。此外,如图5所示,如此处关于上面图1所讨论的,主机系统504(图1中的计算机系统102)可以通过网络(图1中的标号120)与计算机服务器或系统530(图1中的计算机系统104)和/或计算机服务器或系统MO(图1中的计算机系统106)进行通信。例如,计算机系统或服务器530可以与基础结构502交互,以便使用远程扫描程序或工具534运行对计算机系统或服务器504的远程扫描,其中,远程扫描程序或工具534是从计算机可读存储介质(标号53(例如,磁带或磁盘、光介质、DVD、存储棒、半导体存储器等)加载到主机系统530的本地内存533中的,或者通过安装在相应系统或服务器530上的网络适配卡(标号554)从服务器下载的。同样地,计算机系统或服务器540可以与基础结构502交互,以便接收由系统或服务器504执行的本地扫描的结果,并且可以接收由服务器530执行的对计算机系统或服务器504的远程扫描的结果。在实施例中,结果关联工具或程序是从计算机可读存储介质(标号(例如,磁带或磁盘、光介质、DVD、存储棒、半导体存储器等)加载到主机系统540的本地内存543中的,或者通过安装在相应系统或服务器540上的网络适配卡(标号556)从服务器下载的。同样地,计算机系统或服务器540接收由计算机系统504进行的本地扫描的结果和由计算机系统530对计算机系统504进行的远程扫描的结果,并且可以比较本地扫描结果与远程扫描结果,以确定主机系统504是否可能正在运行恶意软件。应该理解的是,在本发明下,基础结构502可以由诸如提供者526的一方、或者由独立实体拥有和/或操作。无论如何,基础结构502的使用和此处所描述的教示可以在预订或免费的基础上被提供给所述方。主机系统或服务器504被示为包括CPU(下文为“处理单元506”)、内存512、总线510和输入/输出(I/O)接口508。此外,服务器504被示为与外部I/O设备/资源520和存储系统522通信。通常,处理单元506执行存储在内存512中的计算机程序代码(例如,本地扫描代理程序或工具514),以确定当前运行在计算机系统504上的任务和服务。在实施例中,通过执行本地扫描代理程序或工具514而产生的本地扫描结果5M存储在存储器522中。尽管图5中未示出,但与计算机系统504类似,计算机系统或服务器530和540各自包括CPU、内存、总线和输入/输出(I/0)接口。此外,服务器530与外部I/O设备/资源(未示出)和存储系统536通信,而计算机系统或服务器540与I/O设备或资源(未示出)和存储系统546通信。通常,处理单元506执行存储在内存512中的计算机程序代码(例如,本地扫描代理程序或工具514)以确定当前运行在计算机系统504上的任务和服务,而计算机系统530的处理单元执行存储在内存533中的计算机程序代码(例如,远程扫描代理程序534)以确定运行在计算机系统504上的任务和服务。同样地,计算机系统MO的处理单元执行存储在内存M3中的计算机程序代码(例如,结果关联工具或程序M4)以确定计算机系统504的本地扫描与远程扫描之间的任何差异。此外,在实施例中,通过执行运行在计算机系统504上的本地扫描代理程序或工具514而产生的本地扫描结果5M存储在存储器522中,而通过执行远程扫描代理534而产生的远程扫描结果538存储在计算机系统530的存储器536中,而通过执行计算机系统540上的结果关联工具544而执行的关联结果548存储在计算机系统540的存储器M6中。当执行计算机系统504上的本地扫描工具或程序514时,处理单元506可以向/从内存512、存储系统522和/或I/O接口508写和/或读数据,例如,存储在存储器522中的本地扫描结果524。可替代地,本地扫描工具514可以在内存512中存储本地扫描结果524。总线510提供在计算机系统500中的各组件之间的通信链路,从而信息可以在基础结构502内传递。外部设备5M可以包括使用户能够与计算机系统500交互的任何设备(例如,键盘、点击设备、显示器等)、和/或使主机系统504能够与一个或多个其他计算设备(例如,服务器530和/或M0)通信的任何设备(例如网卡、调制解调器等)。同样地,当执行计算机系统530上的远程扫描工具或程序534时,处理单元可以向/从内存533、存储系统536写和/或读数据,例如,存储在存储器536中的本地扫描结果538。可替代地,远程扫描工具534可以将远程扫描结果538存储在内存533中。此外,当执行计算机系统540上的结果关联工具或程序544时,处理单元可以向/从内存M3、存储系统546写和/或读数据,例如,存储在存储器546中的关联结果548。可替代地,结果关联工具544可以将关联结果548存储在内存M3中。计算机基础结构502只是用于说明实施本发明的各种类型的计算机基础结构。例如,在一个实施例中,计算机基础结构502可以包括两个或更多通过网络通信以执行本发明的各种处理步骤的服务器组或集群。此外,计算机系统500只是用于代表可包括众多硬件组合的各种可能的计算机系统。在这个程度上,在其他实施例中,计算机系统500可以包括任何包括执行特定功能的硬件和/或计算机程序代码的专用的计算制品(articlesofmanufacture)、任何包括专用和通用硬件/软件的组合的计算条款制品等。在每一种情况下,可以分别利用标准编程和工程技术来创建程序代码和硬件。此外,处理单元506可以包括单个处理单元,或者跨越一个或多个位置中(例如,在客户机和服务器上)的一个或多个处理单元而分布。同样地,内存512和/或存储系统522可以包括驻留在一个或多个物理位置的各种类型的数据存储器和/或传输介质的任何组合。此外,I/O接口508可以包括任何用于与一个或多个外部设备520交换信息的系统。此外,应该理解的是,图5中未示出的一个或多个附加组件(例如,系统软件、数学协同处理单元等)可以包含在计算机系统500中。存储系统522、536和546可以是能够在本发明下提供针对信息的存储器的任何类型的系统(例如,数据库)。在这个程度上,存储系统522、536和546可以包括一个或多个存储设备,例如,磁盘驱动器或者光盘驱动器。在另一个实施例中,系统522、536和546包括跨越例如局域网(LAN)、广域网(WAN)或者存储区域网络(SAN)(未示出)而分布的数据。尽管未示出,但是附加的组件(例如,高速缓冲存储器、通信系统、系统软件等)可以合并到计算机系统500中。在另一实施例中,根据本发明的实施例,本发明提供了一种用于检测运行在计算机系统或主机系统上的恶意软件的存在的方法或者处理。现在参考图6(标号600),其概述了根据本发明的实施例的、由被怀疑有不想要的恶意软件运行在其上的主机系统执行的步骤。如图6所示,在步骤602中,本地扫描软件工具或代理程序本地运行在被怀疑有恶意软件运行在其上的“可疑的”主机系统上,以便获得当前运行的或者活动的网络服务的列表。在步骤604中,本地运行在主机系统上的本地扫描工具或代理程序列举和列出当前运行的或者活动的服务、及它们各自在主机系统中的使用中的端口。列出或列举活动的服务及它们各自在主机系统中的使用中的端口的本地扫描结果被发送(步骤606)至网络上的另一计算机系统,即,运行用于比较和评估扫描结果的结果扫描引擎的结果关联计算机系统,如此处关于下面的图8所讨论的。现在参考图7(标号700),其概述了根据本发明的实施例的、由作为远离主机系统的计算机系统的远程计算机系统执行的、用于检测运行在主机系统上的不想要的恶意软件的存在的步骤。在步骤702中,远程扫描工具或代理程序运行在远程计算机系统上,用于通过网络远程连接至主机系统并且获得主机系统上的开放网络端口的列表。在步骤704中,远程扫描工具或代理程序远程连接至主机系统,以列举和列出当前运行的或者活动的网络服务、及它们各自在主机系统中的使用中的端口。在实施例中,远程扫描计算机系统试图连接至主机系统上的每个开放端口并且执行对运行的服务的询问,以确定该服务是否为已知的或者普通的服务。同样地,由远程计算机系统获得开放、关闭和过滤端口的列表。此外,在步骤706中,列出或列举通过网络可见的网络端口及服务的远程扫描结果被发送至运行用于比较和评估扫描结果的结果关联引擎的结果关联计算机系统,如此处关于下面的图8所讨论的。现在参考图8(标号800),其概述了根据本发明的实施例的、由结果关联计算机系统执行的用于检测运行在主机系统上的不想要的恶意软件的存在的步骤。在步骤802中,结果关联计算机系统从主机系统接收本地扫描结果,并且在步骤804中,结果关联计算机系统从远程计算机系统接收远程扫描结果。在步骤806中,运行结果关联引擎的结果关联计算机系统针对任何差异而比较运行在主机系统上的网络服务的本地列表(对应于本地扫描)和远程列表(对应于远程扫描)。所发现的任何差异代表隐藏的服务,并指示不想要的软件或者恶意软件。在步骤810中,结果关联引擎确定在本地列表和远程列表之间是否存在差异。如果在步骤810中,结果关联引擎确定运行在主机系统上的网络服务的本地列表和远程列表之间没有差异,即,没有发现可疑的网络差异,则该处理在步骤812中结束。然而,如果在步骤810中,结果关联引擎确定存在在运行在主机系统上的网络服务的本地列表和远程列表之间发现的一个或多个差异,即,存在被发现的可能与运行在主机系统上的不想要的或恶意的软件相关联的可疑网络差异,则在步骤814中,结果关联引擎为所述差异提供文件并写入日志。此外,在步骤816中,结果关联引擎将“可疑的”主机系统标记或识别为可能被感染的。此外,在步骤818中,进一步的测试运行在被标记的主机系统上,并且监控被标记的主机系统来评估所发现的差异和当前安装在主机系统上的恶意的或不想要的软件的性质,结束该处理。在实施例中,主机系统在其上部署了一个或多个测试程序,用于测试和/或评估由结果关联引擎发现的任何差异。本领域的技术人员应该理解,如果需要,对主机系统的测试和评估可以由管理员手动实施。因此,根据本发明的实施例,本发明提供了用于检测运行在计算机系统或主机系统上的恶意软件的存在的系统、方法和程序产品。本发明需要本地和远程询问主机系统的能力。本地询问可以通过本地安装的代理(用户或管理员级的访问),或者通过典型地需要管理级访问的标准网络服务询问技术而进行。主机系统的远程服务询问可以通过标准接口扫描和脆弱性扫描技术而进行。被标记为“可疑主机”的设备可以是或者不是原本“可疑的”,并且对主机的询问可以是用于恶意活动的优先检测和不想要的服务的安装的例行程序/调度的事件。网络服务的本地主机列举可以通过使用默认的操作系统查询工具或者常规工具而实现。网络询问器可以使用标准远程端口扫描技术来识别开放端口并列举它们后面的服务。结果关联引擎可以是独立的设备、网络询问器工具箱的一部分、或者附加软件套装的一部分,其目的在于当在“本地扫描结果”和“远程网络扫描结果”之间识别的任何差异时起作用。为了说明和描述的目的,前面已经给出对本发明的具体实施例的描述。他们并非意图穷举,或者将本发明限制于所公开的精确的形式,并且明显地,按照前面的教示,许多修改和变化是可能的。为了最好地解释本发明的原理及其实际应用,选择并描述了这些实施例,从而使本领域的其他技术人员能够最好地利用本发明和具有适于预期的特定用途的各种修改的各种实施例。意图本发明的范围由附在这的权利要求及其等价物来限定。权利要求1.一种检测运行在计算机系统上的恶意服务代理的存在的方法,所述方法包括步骤本地查询计算机系统,以产生包括当前运行在所述计算机系统上的任务和网络服务的本地清单的列表,用于检测运行在所述计算机系统上的恶意服务代理的存在,其中所述任务和网络服务的本地清单还包括列举所述计算机系统上的使用中的各个端口的列表;通过网络从远程计算机系统远程查询所述计算机系统,以产生当前运行在所述计算机系统上的任务和网络服务的远程清单的列表,用于检测运行在所述计算机系统上的所述恶意服务代理的存在,其中所述任务和网络服务的远程清单还包括列举所述计算机系统上的使用中的各个端口的列表;收集任务和网络服务的本地清单以及任务和网络服务的远程清单;以及比较任务和网络服务的本地清单与任务和网络服务的远程清单,以识别任务和网络服务的本地清单与任务和网络服务的远程清单之间的任何差异,用于检测运行在所述计算机系统上的所述恶意服务代理的存在。2.如权利要求1所述的方法,其中所述本地查询步骤还包括步骤检测运行在所述计算机系统上的所述恶意服务代理的存在;以及响应于检测步骤,进行对所述计算机系统的本地扫描,以本地查询所述计算机系统。3.如权利要求1所述的方法,其中所述远程查询步骤还包括步骤远程检测运行在所述计算机系统上的所述恶意服务代理的存在;以及响应于远程检测步骤,进行对所述计算机系统的远程扫描,以远程查询所述计算机系统。4.如权利要求1所述的方法,其中所述各个端口中的端口包括下列项中的至少一项开放端口、闭合端口和过滤端口。5.如权利要求1所述的方法,还包括标记具有所识别的差异的所述计算机系统,用以进行进一步的测试来评估所识别的差异,用于确定运行在所述计算机系统上的所述恶意服务代理的存在。6.如权利要求2或3所述的方法,其中本地和/或远程扫描步骤还包括启动与计算机系统上的每个被识别为开放的端口的通信,并且为每个识别的开放端口确定通过该开放端口操作的服务是否为已知服务。7.—种检测运行在计算机系统上的恶意服务代理的存在的系统,所述系统包括部件,用于本地查询计算机系统,以产生包括当前运行在所述计算机系统上的任务和网络服务的本地清单的列表,用以检测运行在所述计算机系统上的恶意服务代理的存在,其中所述任务和网络服务的本地清单还包括列举所述计算机系统上的使用中的各个端口的列表;部件,用于通过网络从远程计算机系统远程查询所述计算机系统,以产生当前运行在所述计算机系统上的任务和网络服务的远程清单的列表,用以检测运行在所述计算机系统上的所述恶意服务代理的存在,其中所述任务和网络服务的远程清单还包括列举所述计算机系统上的使用中的各个端口的列表;部件,用于收集任务和网络服务的本地清单以及任务和网络服务的远程清单;以及部件,用于比较任务和网络服务的本地清单与任务和网络服务的远程清单,以识别任务和网络服务的本地清单与任务和网络服务的远程清单之间的任何差异,用以检测运行在所述计算机系统上的所述恶意服务代理的存在。8.如权利要求7所述的系统,其中所述本地查询步骤还包括部件,用于检测运行在所述计算机系统上的所述恶意服务代理的存在;以及部件,用于响应于检测步骤,进行对所述计算机系统的本地扫描,以本地查询所述计算机系统。9.如权利要求7所述的系统,其中所述远程查询步骤还包括部件,用于远程检测运行在所述计算机系统上的所述恶意服务代理的存在;以及部件,用于响应于远程检测步骤,进行对所述计算机系统的远程扫描,以远程查询所述计算机系统。10.如权利要求7所述的系统,其中所述各个端口中的端口包括下列项中的至少一项开放端口、闭合端口和过滤端口。11.如权利要求7所述的系统,还包括部件,用于标记具有所识别的差异的所述计算机系统,以进行进一步的测试来评估所识别的差异,用以确定运行在所述计算机系统上的所述恶意服务代理的存在。12.如权利要求8或9所述的系统,其中本地和/或远程扫描步骤还包括部件,用于启动与计算机系统上的每个被识别为开放的端口的通信;以及部件,用于为每个被识别的开放端口确定通过该开放端口操作的服务是否为已知服务。13.—种可以加载到数字计算机的内存的计算机程序,包括软件代码部分,用于当所述产品运行在计算机上时,执行以实现如权利要求1到6所述的本发明。全文摘要一种用于检测运行在计算机系统上的恶意软件的存在的系统、方法和程序产品。该方法包括本地查询系统以产生运行在该系统上的任务和网络服务的本地清单,用于检测运行在系统上的恶意软件的存在;以及通过网络从远程系统远程查询该系统以产生运行在该系统上的任务和网络服务的远程清单,用于检测运行在系统上的恶意软件的存在,其中,本地清单列举了该系统上的使用中的端口,并且其中,远程清单列举了该系统上的使用中的端口。此外,该方法包括收集本地清单和远程清单,并将本地清单与远程清单进行比较以识别本地清单和远程清单之间的任何差异,用于检测运行在系统上的恶意软件的存在。文档编号G06F21/00GK102171987SQ200980138679公开日2011年8月31日申请日期2009年10月14日优先权日2008年10月29日发明者冈特.D.奥尔曼申请人:国际商业机器公司

最新回复(0)