CN101542446B - 用于系统分析和管理的方法和装置 - Google Patents

用于系统分析和管理的方法和装置 Download PDF

Info

Publication number
CN101542446B
CN101542446B CN2007800443099A CN200780044309A CN101542446B CN 101542446 B CN101542446 B CN 101542446B CN 2007800443099 A CN2007800443099 A CN 2007800443099A CN 200780044309 A CN200780044309 A CN 200780044309A CN 101542446 B CN101542446 B CN 101542446B
Authority
CN
China
Prior art keywords
program
equipment
file
nearest
calculates
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.)
Active
Application number
CN2007800443099A
Other languages
English (en)
Other versions
CN101542446A (zh
Inventor
C·弗波瓦斯基
J·李
X·刘
R·鲁斯夫
Y-M·王
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101542446A publication Critical patent/CN101542446A/zh
Application granted granted Critical
Publication of CN101542446B publication Critical patent/CN101542446B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect

Abstract

用于实现系统管理的、基于对一个或多个程序与它们趋向于表示的持续状态之间的交互的审阅的系统和方法。该系统提供对发生在系统内的修改的检测,验证这些修改是否是经批准的并在检测到未知修改时生成通知。

Description

用于系统分析和管理的方法和装置
背景 
构建可靠且安全的计算机系统的主要挑战是管理系统的持续状态(PS),这包括所有可执行文件、配置设置以及管控系统如何运作的其它数据。误配置和其它PS问题是范围从个人台式机到大规模因特网服务的各种系统上的故障和安全漏洞的主要原因。PS问题以及由诸如硬件组件和编程逻辑等系统元素的故障引起的问题可能有害地影响整个系统。 
无法有效管理系统的PS的代价是高昂的。例如,PS问题可在系统重新引导或应用程序重新启动之后再现自己。另外,PS状态在运行时期间由于诸如补丁和应用程序相关更新等改变而漂移。当前不存在有效的方式来关闭系统上所发生的、改变上的循环。在这样的场景中,如果已知问题标识失败,且如果随后的系统重新引导/应用程序重新启动不能补救PS问题,则没有选择而只能手动检查系统来标识根本原因PS。 
手动调查系统以标识根本原因PS由于大量潜在问题而是困难且昂贵的。例如,可能影响发生故障的应用程序的潜在状态的集合是巨大的,且因此潜在根本原因列表可包括系统上状态的完整集合。此外,如果也对集合的每一可能的组合进行了考虑,尤其对其中不是单个PS根本原因的情况进行了考虑,则情形可能更坏。 
概述 
提供本概述以便介绍将在以下详细描述中进一步描述的基于模型的许可证计数的简化概念。本概述并不旨在标识所要求保护的主题的必要特征,也不旨在用于帮助确定所要求保护的主题的范围。 
在一实施例中,对基于计算的设备的程序进行分类和枚举,获得向该基于计算的设备注册的程序的最近加载时间,并且将与向该基于计算的设备注册的程序相关联的文件的最近修改时间同最近加载时间进行比较。 
附图简述 
参考附图来描述详细描述。在附图中,参考标号中最左边的数字标识该参考标号首次出现的附图。在各附图中,使用相同的标号来指示相同的特征和组件。 
图1示出用于系统管理的示例性体系结构。 
图2示出示例性收集服务器。 
图3示出描绘所生成的通知的示例性可视界面。 
图4示出描绘一个程序的执行对第一程序的执行的依赖性的示例性可视界面。 
图5示出用于捕捉与系统的PS中的修改相关联的数据的示例性方法。 
图6示出用于对所记录的改变进行分类的示例性方法。 
图7示出用于禁止未经授权的交互的执行的示例性方法。 
图8示出用于检测一个或多个可扩展性点的示例性方法。 
图9示出用于检测漏出条目的示例性方法。 
图10示出用于检测常见误配置或失效文件的示例性方法。 
图11示出示例性计算机环境。 
详细描述 
为实现这一点,系统包括报告与发生在系统内的修改相关联的数据的一个或多个计算机程序或代理。该数据包括与同文件和/或设置的所有交互相关联的信息。这种类型的交互包括像对注册表项、文件的读或写访问,以及诸如加载等二进制模块交互等活动。代理将所收集的数据报告给后端服务,该后端服务处理所报告的信息来进行像生成web报告、警告,或与用于执行系统管理的其它服务集成等活动。此外,处理可以在其中也收集该数据的单个机器上完成。这包括生成报告、警告等。具体地,着眼于系统的持续状态(PS),其中PS包括所有可执行文件、配置设置、和管控该系统如何运作的其它数据。虽然讨论持续状态,但应当理解,所讨论的技术和方法适用于其它种类的状态。 
所报告的数据可用于若干用途。例如,可以检查数据来验证正在发起 的交互符合固定策略或与经授权的交互相关联。 
尽管所描述的用于系统管理的系统和方法的各方面可用任何数量的不同计算系统、环境和/或配置来实现,但系统分析和管理的各实施例在以下示例性系统体系结构的上下文中描述。 
示例性系统 
图1示出其中可以收集和分析与一个或多个程序之间的交互相关联的信息的示例性计算机系统100。系统100包括其上运行或安装一个或多个程序的基于计算的设备102、收集服务器104、档案收集106和报告108。 
与一个或多个程序和/或文件系统或设置之间的交互相关联的信息代表了可能发生在系统100内部的、持续状态(PS)中的修改。基于计算的设备102可以包括任何数量的基于计算的设备102。例如,在一个实现中,系统100还可以包括公司网络,该公司网络包括遍及若干国家的数千台办公室个人计算机(PC)、各种服务器以及其它基于计算的设备,其所有都用作基于计算的设备102。或者,在另一可能的实现中,系统100可包括具有有限数量的PC的家庭网络。基于计算的设备102可通过包括LAN、WAN或任何其它本领域已知的联网技术的有线和/或无线网络来按照各种组合彼此耦合。 
基于计算的设备102可以包括能够对系统100中的功能进行插装(instrument)来捕捉与一个或多个基于计算的设备102和/或文件系统和设置之间的交互相关联的信息的代理110。在一个实现中,代理110可以是能够修改、添加和/或删除该功能中的计算机可读指令来截取调用该功能的线程的线程数据记录器(TDR)。在另一可能的实现中,对功能进行插装还包括修改、添加和/或删除功能中的计算机可读指令来要求线程执行该功能中允许对与该线程相关联的数据进行捕捉的计算机可读指令。在又一实现中,与该线程相关联的数据包括关于与该线程相关联的程序、与该线程相关联的一个或多个交互的信息,和关于与该线程相关联的程序的用户的信息。虽然讨论了TDR,但应当理解,可能并不是所有算法都需要截取,因此所讨论的技术和方法可能不必绑定到基于TDR的数据收集。此外,基于虚拟机(VM)的插装可与其中动态地添加代码的基于TDR的插装不同。 在VM中,可能是VM内部件的硬编码功能来进行这类收集。 
被进行插装的功能可包括可由程序/进程调用的功能。在一个实现中,被进行插装的功能可包括低级瓶颈功能,诸如文件系统驱动程序、注册表功能、创建新进程和/或服务的功能等。 
线程数据记录器从线程捕捉的数据可被存储和/或处理,以管制系统100的行为以及调查系统100的状况或持续状态。线程数据记录器可从线程捕捉的数据的类型和线程数据记录器的操作在Verbowski等人在______提交的、申请序列号为______的题为“ThreadInterception and Analysis(线程截取和分析)”的美国专利申请中更详细地讨论,该申请通过引用结合于此。 
收集服务器104负责收集与在系统100中所发生的修改相关的信息。在一个实现中,代理110将与交互相关联的信息作为经压缩的日志存储在收集服务器104中。在另一实现中,与交互相关联的信息还可以被上传到档案收集106。对收集服务器104或档案收集106中所收集的信息的分析被用于生成报告108。作为在收集服务器104或档案收集106上所收集的信息上所执行的分析的结果而生成的报告108提供对在一个或多个基于计算的设备102内发生的交互或修改的洞察。在另一实现中,报告108可以通过可视界面来生成。在又一实现中,可视界面可以通过用于检索和显示先前创建的和/或高速缓存的报告的浏览器来实现,以便执行对存储在收集服务器104或档案收集106中的信息的可编程数据访问。收集服务器104和档案收集106可以驻留在用作收集服务器104或档案收集106的单个设备上,或作为该单个设备的一部分。 
如上所述,代理110所收集的并存储在收集服务器104或档案收集106中的信息可被分析,以提供对系统100的运作的洞察。所执行的分析可以包括异常检测、改变管理、管理异常系统活动、标识安全漏洞、标识未经授权的应用程序、执行遵从审核等。 
图2示出被配置成存储、处理和/或分析来自代理110的数据的示例性收集服务器106。收集服务器106包括一个或多个处理器202和存储器204。处理器202例如包括:微处理器、微机、微控制器、数字信号处理器、中 央处理单元、状态机、逻辑电路和/或基于操作指令操纵信号的任何设备。处理器202被配置成取回并执行存储在存储器204中的计算机可读指令,并且具有其它能力。 
存储器204可以是本领域已知的任何计算机可读介质,例如包括易失性存储器(例如RAM)和/或非易失性存储器(例如,ROM、闪存等)。存储器204也可包括程序206和数据208。程序206可对与运行在一个或多个基于计算的设备102上的程序与文件系统和/或设置之间的交互相关联的数据执行查询相关进程以及其它操作。程序206还包括例如查询模块210、通知模块212、操作系统214和其它应用程序216。操作系统214提供用于程序206中的一个或多个模块的运作的操作环境。 
查询模块210对代理110所收集的诸如日志存储218所包括的信息等信息执行基于查询的操作。代理110所收集的信息还可从档案收集106中检索。查询220包括多个查询,如预定义的查询。这种预定义的查询可以涉及与诸如安全策略定义等为系统100所规定的一个或多个策略定义相关的状况。在这种情况下,可由查询模块210执行的任何或所有分析都可以符合这种预定义的策略定义或预定义的查询。 
查询模块210可将查询220限于一个或多个属性。这样的属性可包括文件名、应用程序类型、执行的时间等。当在受限查询的基础上运作时,查询模块210扫描存储在日志存储218和/或档案收集106中的所有信息以寻找指示该属性的存在的值。例如,如果个体希望在档案收集106中搜索与诸如文字处理程序等特定应用程序相关的数据,则查询模块210搜索与该文字处理程序所发起或影响的交互相关联的条目或事件。 
查询220可以包括诸如系统管理员等一个或多个个体或实体所输入或编程的查询。例如,查询220可包括检测与给定用户ID相关联的所有交互的指令。此外,查询220可以包括检测与在一个或多个基于计算的设备102上运行的应用程序相关联的所有交互的指令。 
回头参考收集服务器104,执行对与一个或多个基于计算的设备102同文件系统和/或设置之间的交互相关联的信息的分析,以确定系统100的运作和/或持续状态。查询模块210可被用来对代理110所收集的并存储在 日志存储218和/或档案收集106中的信息执行分析。查询模块210可通过使用查询220中所指定的一个或多个查询来执行对日志存储218和/或档案收集106的搜索来这样做。执行查询220所生成的结果指示了一个或多个基于计算的设备102与文件系统和/或设置之间的交互。 
查询模块210可以指示通知模块212发出因执行查询220而生成的结果的通知。通知模块212所生成的通知可被存储在数据208中的通知222中。通知模块212所发出的通知还可被存储在外部数据库中,如外部存储设备。查询模块210还可以指示通知模块212传递因执行查询220而生成的通知。 
查询模块210可以搜索日志存储218和/或档案收集106,来检测关于查询模块210所执行的查询220的、与一个或多个基于计算的设备102之间的交互相关联的信息中的偏差。在这种情况下,检测这种与特定交互相关的偏差可再次由通知模块212通知,并且对应的通知222可被传递给如系统管理员或计算系统等各个个体,用于存储通知以供将来引用。 
通知模块212还能够提供与通知222相关联的上下文信息。该上下文信息可以另外指定与对应的交互相关联的设置。上下文信息可对相关通知进行一级或多级注解。例如,一个级别提供与其上安装程序的机器的数量、文件的最常用版本等相关的统计信息。另一级别的注解指示所安装的文件的散列值与索引例如程序名、版本信息等属性的数据收集的比较。能够存在又一级别的注解,其可以提供与已知问题、厂商等相关的注释或任何辅助信息。可以实现附加级别的注解,从而指定与相关联的通知222相关的附加属性。通知222还可以通过允许例如系统管理员等个体审阅通知222并对必要情况采取适当的动作的可视界面来显示。 
查询模块210可被用于检测所记录的、由于在一个或多个基于计算的设备102上运行的程序与文件系统和/或设置之间的交互而在系统100内发生的改变。所记录的改变包括由于程序、操作系统、用于实现如结算等特定商务任务的程序和其它程序等的非预期执行而导致的对系统的PS的改变或修改。这种所纪录的对系统的PS的改变被授权和控制,以防止如系统的被扼制的性能、安全问题等不合需要的状况。还应注意,PS中所发生的 改变并不全是所记录的改变。 
所记录的改变可以由标识符来进行注解,并按照所分配的注解来分类。所记录的改变的注解可以通过查询模块210指定分类规则来执行。基于分类规则中所指定的参数,将适当的参数与同所记录的改变相关的特定属性进行关联。例如,查询模块210将分类规则中包含的子串的每一匹配与所记录的每一改变中包含的修改的名称或类型进行关联。所记录的改变的分类可以在优先级值的基础上来分配。例如,在这种情况下,具有较高优先级的分类子串的匹配优先于具有较低优先级的分类子串。具有较高优先级的分类子串随后确定为相关的所记录的改变的相关分类。 
所记录的改变可以通过将改变标记为以下分类的至少一个或多个来分类: 
问题:指示来自即时PS的存在或移除的已知问题或结果。 
安装:指示PS中的作为安装或升级的结果的改变。 
设置:指示对配置设置或配置PS所进行的改变。 
内容:指示网页、图像、文本和用户数据。 
管理改变:指示对在系统上运行的负责该系统的管理的程序所进行的安装、打补丁、或配置改变。 
未经授权的:指示未经授权的或禁止的应用程序的安装或包括禁止值的配置改变。 
用户活动:指示PS中的作为用户登录或运行窗口应用程序的结果的改变。 
噪声:指示临时的或高速缓存的PS。 
未知:指示未分类的PS。 
可以提供附加解来进一步对所记录的改变进行分类并使它们与其它改变相区别。 
查询模块210还可用于确定在系统100上运行的程序的状态是经授权的还是未经授权的。这是基于只有经授权的进程或程序才应在系统100上运行的需求的。查询模块210通过将查询220中所指定的属性与定义系统的PS中的特定改变或修改的属性进行比较,来确定在系统100上运行的程 序的状态是经授权的还是未经授权的。例如,查询模块210执行指定应用程序类型为未经授权的程序的查询220。因执行查询220而获得的结果包含与PS中的、响应于指定的应用程序类型的执行所发生的改变相关的信息。查询模块210在获得结果时将这些结果标记为未经授权的程序的执行或动作所招致的改变。 
查询模块210可以将经批准的和/或未经批准的程序的预定义列表中指定的属性与定义系统的PS中的特定改变或修改的属性进行比较。该列表在即时情况下可以包含特定数量的经批准的或未经批准的程序。在系统100上运行的、与在该预定义列表中被标识为未经批准的程序相类似的程序被标记为未经批准的程序。 
预定义列表中所指定的经批准的和/或未经批准的程序还可以包含诸如标记等属性化程序的本性和/或各种特性的附加信息。这种附加信息的示例包括诸如“经批准的”、“类型”、“类别”、“功能”、“产品信息”、“制造商信息”和“产品描述”等标记。例如,被标记为“经批准的”的程序被认为是用于在系统100中的一个或多个基于计算的设备102上运行的经授权的程序;而“类别”标记指定该程序的预期用途。 
程序第一次所执行的改变或修改默认是未经批准的,并被标记为“未经授权的”。例如,在第一次检测程序的改变和修改时,查询模块210将该查询及其相关联的交互标记为“未经授权的”。被标记为“未经授权的”的程序可由通知模块212通知来供例如系统管理员审阅,以在必要时执行诊断或等待批准。如果获得批准,则该经批准的程序被进一步与属性化该程序的适当的标记进行关联,并还可以被添加到包含经批准的和/或未经批准的程序的预定义列表中。 
查询模块210还可以检测可扩展性点(EP)。EP是指示与在一个或多个基于计算的设备102上运行的操作系统或程序相关联的指令的动态加载和执行的交互。例如,在诸如文字处理程序、电子表格应用程序等在一个或多个基于计算的设备102上运行的第一程序启动时,该第一程序还可以触发与诸如插件程序等向该第一程序的运行提供附加功能的其它程序相关联的指令。以此方式,第一程序的运行可以生成各种交互,包括第一程序 与文件系统之间的交互和向第一程序的运行提供附加功能的其它程序与该文件系统之间的交互。这种信息可以提供对其上安装第一程序的系统的运作的洞察,并且还推测这些安装可能在系统上产生的影响。 
作为第一程序的运行的结果所生成的、与各种交互相关联的信息可由例如代理110截取并复制。与各种交互相关联的事件信息可以作为经压缩的日志存储在日志存储218和/或档案收集106中。虽然事件信息存储在压缩存储中,但可以理解,可能不必使用压缩存储;然而,对压缩存储的使用通过使存储占据更少空间来使系统可伸缩性更好。所存储的事件信息可由诸如系统管理员等实体或由查询模块210来审阅,以检测与第一程序和其它程序相关联的、同文件系统的交互。以此方式,如果其它程序与第一程序的运行相关联,则可以检测它们。 
查询模块210还可被用来检测第一程序的直接EP。例如,查询模块210可通过隔离(1)关于在第一程序的执行之前加载到系统存储器中供执行的各个程序,并且(2)引用第一程序或与第一程序的运行相关联的交互,来检测直接EP。 
在一个示例性实现中,查询模块210可通过在日志存储218和/或档案收集106中查询关于在第一程序的执行之前加载到系统存储器中供执行的各个程序的交互来标识第一程序的潜在直接EP。例如,查询模块210可查询关于在第一程序的执行之前的给定时间范围内,诸如1秒内加载到系统存储器中供执行的各个程序的交互。查询模块210可通过查询引用第一程序或与第一程序的运行相关联的交互的潜在EP来从潜在EP中标识第一程序的直接EP。直接EP可以存储在其它数据224中。 
查询模块210还可用于检测间接EP。例如,返回以上第一程序示例,查询模块210可以查询日志存储218和/或档案收集106以寻找引用直接EP或与直接EP相关联的交互。这种交互可被称为间接EP。间接EP可以存储在其它数据224中。 
查询模块210也可用于通过监控直接EP来检测恶意软件应用程序的存在。恶意软件应用程序可包括诸如“间谍软件”、“特洛伊木马”、“蠕虫”、“病毒”等在正常环境下不与程序相关联的应用程序。例如,查询 模块210可以将在一个或多个基于计算的设备102上运行的程序的EP与在不存在恶意软件的情况下在该程序在基于计算的设备102上运行时所找到的同一程序的控制EP进行比较。EP和控制EP之间的差异可由诸如查询模块210和/或系统管理员等实体来检查,以确定这些差异是否指示结合程序运行的恶意软件的存在。使用EP找到的恶意软件可由查询模块210、系统管理员等从受影响的基于计算的设备102中移除。 
在另一实现中,查询模块210可被用于由通知模块响应于对EP的检测而生成通知222。在又一实现中,所生成的通知222还可通过方便诸如系统管理员等个体对通知222进行审阅以进行进一步分析或执行必需诊断的可视界面来查看和检索。 
图3示出描绘在各可能的实现的一个中所生成的通知222的示例性可视界面300。在所示实现中,可视界面300描绘第一程序(例如web浏览器)在其执行时所执行的下载。可视界面300在段302和304中描绘第一程序在其执行期间所下载的程序列表(在图3所示的示例中,具体是“MSN搜索工具栏(msnsearchtoolbarsetup_en-us.exe)”和“Winamp媒体播放器(winamp52_full_emusic-7plus.exe)”)。在该图示中,在段306中可以看到,在段302、304中所看到的程序的下载还导致与不同于第一程序和段302、302所示的程序的程序相对应的程序文件的创建。可视界面300形式的可视表示因而提供在执行、下载和/或安装第一程序时无意地安装在系统100的一个或多个基于计算的设备102上的程序的列表。 
段306还可以指示系统100的PS中的、作为不同于第一程序的程序的安装或执行的结果的影响或修改。不同于第一程序的一个或多个程序的进一步执行可能依赖于第一程序的执行。例如,如图所示,“MAN搜索工具栏”可在第一程序的程序文件的执行时被激活。对该效果的判定可以通过检测对应于第一程序的EP来实现。通过监控与第一程序相关联的EP,依赖于第一程序的执行的其它程序的程序执行的实例可被检测并且在需要时可以采取纠正动作。 
依赖于第一程序的执行的其它程序的执行的实例还可以通过另一可视界面400来显示,如图4所示。图4示出如段402所示的例如“iexplorer.exe” 等第一程序的执行,包括如段404所示的Winamp的执行,其又进一步执行如段406所示的“emusic.exe”。从该图示中,与第一程序相关联的EP的检测可以详细地并通过可视手段来实现。 
查询模块210可用于检测漏出PS。漏出文件包括在创建文件或注册表设置的程序被卸载之后留在诸如系统100的系统上的文件或注册表设置。其还可以包括作为安装的结果所创建的(例如临时文件)但在安装过程完成之后没有被删除的文件或设置。此外,另一类PS可能漏出,如在程序的运行时期间(即,在安装之后)所生成的PS。这些的示例是可在第一次使用时所生成的状态或在初始安装之后分开安装的对程序的扩展。 
为检测漏出文件,查询模块210对安装文件和与加载到系统100上的每一程序相关联的设置改变进行分类,这可以通过程序的使用以及初始安装来跟踪。之后,如果程序被卸载,则可回收该程序的安装文件和配置或注册表设置的相应的目录,且可检查系统100来确保移除或复位了所有安装文件和注册表设置。为了检测基于计算的设备102上的漏出文件,查询模块210可通过对一个或多个基于计算的设备102运行扫描来检测诸如应用程序等安装在基于计算的设备102上的所有程序以对安装文件分类。 
查询模块210也可取得一个或多个基于计算的设备102的操作系统的安装程序数据库中注册的所有程序的列表。安装程序数据库的示例包括产生安装在所考虑的基于计算的设备上的程序的填充列表的组件。 
查询模块210在日志存储218和/或档案收集106中查询注册表配置或设置信息并枚举向基于计算的设备102的操作系统注册的程序的列表。查询模块210随后可以扫描日志存储218和/或档案收集106,来枚举安装在基于计算的设备102上的、可被概括为所有PS的文件和注册表项。为了枚举文件和注册表项,查询模块210可查询对应于安装在基于计算的设备102上的程序的例如程序ID等一个或多个属性的所有文件和注册表项。 
如果基于计算的设备102上的文件或设置没有被包括在对应于安装在基于计算的设备102上的程序的程序ID的文件和注册表项中,则查询模块210可推断该文件或设置是漏出文件。漏出文件可由查询模块210或包括操作系统、系统管理员等在内的各种其它程序来移除。 
检测到的漏出文件(PS)可以通过允许例如系统管理员等个体审阅该漏出文件并对必要情况采取适当动作的可视界面来显示。此外,所显示的漏出文件(PS)和相关联的信息可以存储在例如外部数据库等外部存储收集中以供将来引用。漏出PS列表可被系统用来在主应用程序被移除后自动地移除漏出状态。该漏出PS还可被用来将系统上的每一PS与所有者应用程序进行关联。 
查询模块210可检测由于改变的文件、设置或失效模块,包括常见的误配置、老软件版本等而失效的进程。失效进程例如当软件升级无法在替换盘上可执行文件、程序文件或设置之后重启受影响的进程时出现。结果,其上找到失效进程的基于计算的设备将忽略升级并继续基于老的可执行文件、程序文件或设置来执行。 
为检测失效进程,查询模块210可以查询存储在日志存储218和/或档案收集106中的、与程序的交互相关联的信息。查询模块210在日志存储218和/或档案收集106中查询安装在一个或多个基于计算的设备102上的程序的最近加载时间。查询模块210也可在日志存储218和/或档案收集106中查询与所安装的软件相关联的文件或注册表设置的最近加载时间。在一个示例性实现中,查询模块210在日志存储218和/或档案收集106中查询与随软件安装的软件关联动态链接库(DLL)相关联的文件或注册表设置的最近加载时间。查询模块210也可在日志存储218和/或档案收集106中查询安装在基于计算的设备上的软件的最近修改的时间或日期。这样的修改例如包括对与所安装的软件的最近已知版本相关联的一个或多个文件或程序设置执行的访问。 
在软件的最近加载时间晚于软件最近已知修改的时间或日期时,可能发生因软件没有利用最近加载的更新而导致的不一致性。这样的不一致性如果被查询模块210检测到,则可由诸如系统管理员等个体注意并更正。 
检测到的失效文件可以通过允许例如系统管理员等个体审阅该失效文件并对必要情况采取适当的动作的可视界面来显示。此外,所显示的失效文件和相关联的信息可以存储在例如外部数据库等外部存储收集中以供将来引用。 
查询模块210可以检测包括诸如“恶意软件”、“间谍软件”、“特洛伊木马”、“病毒”等软件应用程序在内的已知不当程序的出现。为此,查询模块210可在日志存储218和/或档案收集106中查询并搜索在一个或多个基于计算的设备102的存储器中所加载以供执行的程序。在存储器中加载以供执行的程序然后可例如由查询模块210对照已知不当程序的列表来比较。 
例如,查询模块210可基于与程序相关联的标识符,诸如程序ID等来检测基于计算的设备102上的存储器中所加载以供执行的程序的出现。查询模块210随后可将基于计算的设备102上的存储器中所加载以供执行的程序的标识符对照诸如程序ID等已知不当程序的标识符列表进行比较。如果在存储器中所加载以供执行的程序的标识符与一已知不当程序的标识符相匹配,则查询模块210可实现从基于计算的设备102移除在存储器中所加载以供执行的程序。在一可能的实现中,已知不当程序的标识符的列表可至少部分由系统管理员输入。 
查询模块210所检测到的不当程序可以通过允许例如系统管理员等个体审阅该不当程序并对其移除采取适当的动作的可视界面来显示。所显示的不当程序和相关联的信息可以存储在例如外部数据库等外部存储收集中,以供将来引用来用于检测相同的或类似的不当程序。 
一个或多个基于计算的设备102上的不具有与其相关联的标识符的未标识的程序可由查询模块210检测出并被报告给系统管理员以查明该未标识的程序是否是不当程序。系统管理员可以通过审阅报告形式的未标识的程序的列表来检查该未标识的程序的目的。系统管理员的审阅可以包括检查该未标识的程序的目的、该未标识的程序对其它程序的依赖性、以及确定该未标识的程序是否是不当的。另外,系统管理员可审阅对具有与这些未标识的程序类似的特征的程序的以往经验来确定未标识的程序是否是不当的。 
如果系统管理员确定未标识的程序是不当的,则系统管理员可实现从基于计算的设备102移除该未标识的程序。例如,系统管理员自己可以移除未标识的程序,或系统管理员可以指示基于计算的设备102的元素来移 除该未标识的程序。 
另外,系统管理员可以在所生成的报告或一个或多个通知222的基础上向未标识的程序分配诸如程序ID等标识符,并将该标识符包括在不当程序的列表上。以此方式,如果未标识的程序出现在基于计算的设备102上,则其可在相关联的标识符的基础上被快速地标识为不当程序。此外,未标识的程序的移除可由基于计算的设备102的各元素、代理110等来实现。 
查询模块210所检测到的未标识的程序及其相关联的进程可以通过允许例如系统管理员等个体审阅该未标识的程序并对其移除采取适当的动作的可视界面来显示。所显示的未标识的程序和相关联的信息可以存储在例如外部数据库等外部存储收集中,以供将来引用来用于检测相同的或类似的不当程序。此外,还可以标识和/或跟踪不需要的改变。 
查询模块210可以通过禁止在一个或多个基于计算的设备102上运行的程序向网络驱动器或可移动位置写入,来阻塞将文件复制到这些位置。查询模块210还可以审阅先前出于审核目的执行的这种禁止写入以便将来防止这种写入。 
示例性方法 
参考图1到4描述线程截取和分析的示例性方法。这些示例性方法可在计算机可执行指令的一般上下文中描述。一般而言,计算机可执行指令可包括执行特定功能或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构、过程、模块、功能等。这些方法还能在其中功能由通过通信网络链接的远程处理设备完成的分布式计算环境中实现。在分布式计算环境中,计算机可执行指令可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。 
图5示出用于捕捉和收集与在一个或多个基于计算的设备102上运行的程序和/或文件系统和设置之间的交互相关联的信息的示例性方法500。描述方法的次序并不旨在解释为限制,并且任何数量的所述方法框都可以按任何次序组合以实现本方法或实现替换方法。另外,可从方法中删除各个框,而不背离此处所述的主题的精神和范围。此外,本方法可用任何合适的硬件、软件、固件或其组合来实现。 
在框502处,截取与在系统上运行或执行的程序相关联的信息或数据。在一实现中,在程序/进程调用包括经修改的功能代码在内的被进行插装的功能时收集所述信息。例如,计算机可读指令可被修改,来指示一个或多个功能捕捉与在基于计算的设备102的一个或多个上运行的程序和/或文件系统和设置之间的交互相关联的数据。在一实现中,虚拟机在其解释原始代码执行时直接应用数据收集逻辑。该技术将不要求修改原始代码。类似地,这可以直接在处理器硬件中实现。 
诸如代理110等代理可以对系统100中的一个或多个功能进行插装。可通过修改与该一个或多个功能相关联的计算机可读指令来对该一个或多个功能进行插装。 
诸如线程数据记录器等代理110可以截取调用系统100中的经修改的功能的线程。线程与之相关联的程序可在若干操作层之一中运行,诸如程序层202、中间件层204、操作系统层等。程序可能正视图与之交互的文件系统可包括文件(诸如数据文件、可执行文件)和设置信息(诸如配置设置或注册表设置)等。 
在框504处,与在一个或多个基于计算的设备102上运行的程序的执行相关联的各种信息或数据被收集在或复制到存储器位置中。与程序同文件系统和/或设置的交互(包括经修改的功能所发起的交互)相关联的信息被复制和发送到存储器位置。例如,代理110可以复制与这些交互相关联的所有或选择的数据,并将该数据存储在存储器位置中,如收集服务器104。与这些交互相关联的数据可以包括关于所插装的功能所发起的交互的信息。 
在框506处,压缩存储在存储器位置中的数据。在一个实现中,压缩数据可被存储在另一存储器位置中。例如,压缩数据可被存储在收集服务器104中的日志存储218中和/或档案收集106中。 
在框508处,周期性上传压缩数据以供分析。压缩数据可被上传给收集服务器106或用作收集服务器106的存储器位置。上传压缩数据以供分析的周期可变化。在一个实现中,压缩数据在指定时间间隔之后上传。在另一实现中,压缩数据可在压缩数据超出存储器的预定义阈值限制时上传。 
图6示出用于分类所记录的改变的示例性方法600。所记录的改变包括由于程序、操作系统、用于实现如结算等特定商务任务的程序和其它程序等的非预期执行而发生的改变或修改。描述方法的次序并不旨在解释为限制,并且任何数量的所述方法框都可以按任何次序组合以实现本方法或实现替换方法。另外,可从方法中删除各个框,而不背离此处所述的主题的精神和范围。此外,本方法可用任何合适的硬件、软件、固件或其组合来实现。 
在框602处,指定由各参数值所属性化的分类规则。例如,分类规则可以由查询模块210连同定义该分类规则的参数值一起来指定。 
在框604处,将定义分类规则的参数与定义所记录的改变的本性和特征的一个或多个属性进行关联。查询模块210将定义分类规则的参数与表征所记录的改变的属性进行关联。一个或多个参数值与表征所考虑的所记录的改变的属性的关联产生一组可能的分类。例如,程序模块210将分类规则中包含的子串的每一匹配与所记录的每一改变中包含的PS名称进行关联。 
在框606处,向一个或多个可能的分类分配优先级值。查询模块210可以向一个或多个可能的分类分配优先级值。例如,在较长一段时间内所发生的特定的所记录的改变将被分配较高的优先级值。 
在框608处,向所考虑的所记录的改变分配具有最高优先级值的可能的分类。在一实现中,查询模块210确定分配给可能的分类的最高优先级值,并将该分类分配给所考虑的所记录的改变。 
图7示出用于禁止例如由系统管理员定义的未经授权的交互在一个或多个基于计算的设备102上的执行的示例性方法700。未经授权的交互的示例包括由未被授权对文件系统执行读和/或写动作的实体或程序对文件系统执行这样的动作。 
描述方法的次序并不旨在解释为限制,并且任何数量的所述方法框都可以按任何次序组合以实现本方法或实现替换方法。另外,可从方法中删除各个框,而不背离此处所述的主题的精神和范围。此外,本方法可用任何合适的硬件、软件、固件或其组合来实现。 
在框702处,接收与在系统上运行的程序相关联的信息。该信息与程序同文件系统和/或配置设置之间的交互相关联。查询模块210可以在日志存储218和/或档案收集106中查询与一个或多个基于计算的设备102上的程序所执行的交互相关的信息。通过查询的执行所获得的信息由一个或多个属性来表征。 
在框704处,将在系统上运行的程序的属性与预定义列表中所包括的多个经批准的和未经批准的程序/进程的属性进行比较。例如,查询模块210将该程序的诸如程序类型等属性与预定义列表中所包括的程序的属性进行比较。 
在框706处,确定该属性是否对应于未经批准的程序/进程或交互的属性。例如,如果在系统100上运行的程序的属性对应于与未经批准的交互相关联的属性(即自框706的‘是’分支),则不允许进行与程序相关联的交互(即框708)。另选地,如果在系统100上运行的程序的属性不对应于与未经批准的交互相关联的属性(即自框706的‘否’分支),则允许进行与该程序相关联的交互(即框710)。 
图8示出用于检测安装在一个或多个基于计算的设备102上的程序的一个或多个可扩展性点(EP)的示例性方法800。EP包括控制计算机应用程序的动态加载和执行的交互。描述方法的次序并不旨在解释为限制,并且任何数量的所述方法框都可以按任何次序组合以实现本方法或实现替换方法。另外,可从方法中删除各个框,而不背离此处所述的主题的精神和范围。此外,本方法可用任何合适的硬件、软件、固件或其组合来实现。 
在框802处,检查先前的交互(即,关于在第一程序的执行之前在系统存储器中所加载以供执行的各个程序的交互)。例如,查询模块210可通过在日志存储218和/或档案收集106中查询关于在第一程序的执行之前加载到一个或多个基于计算的设备102的存储器中以供执行的各个程序的交互,来标识第一程序的潜在直接可扩展性点(EP)。查询模块210可查询关于在第一程序的执行之前的给定时间范围内,诸如2秒内加载到存储器中以供执行的各个程序的交互。 
在框804处,执行检查以找出引用在基于计算的设备的系统存储器中 所加载以供执行的第一程序的文件名的先前交互。例如,查询模块210可查询与引用第一程序或同第一程序在基于计算的设备102上的执行相关联的各个程序相关联的交互。查询模块210可查询包括各种属性的交互,属性诸如有第一程序的文件名、第一程序的程序ID等。 
在框806处,将引用第一程序的文件名的先前的交互标记为直接EP。例如,查询模块210可通过查询引用第一程序或与第一程序的执行相关联的所有先前交互,来标识第一程序的直接EP。 
图9示出用于检测因从一个或多个基于计算的设备卸载程序而留下的漏出条目的示例性方法900。描述方法的次序并不旨在解释为限制,并且任何数量的所述方法框都可以按任何次序组合以实现本方法或实现替换方法。另外,可从方法中删除各个框,而不背离此处所述的主题的精神和范围。此外,本方法可用任何合适的硬件、软件、固件或其组合来实现。 
在框902处,分类并枚举与加载到基于计算的设备和/或系统上的每一程序相关联的安装文件和设置改变。枚举包括创建向基于计算的设备的操作系统注册的程序的列表。 
例如,可扫描系统100以检测安装在系统中的基于计算的设备上的所有程序以及与基于计算的设备上的程序相关联的所有操作系统安装文件。可通过将安装在基于计算的设备上的所有程序和/或与程序相关联的所有操作系统安装文件置于列表中来枚举这些程序和文件。 
查询模块210对系统100运行扫描,检测安装在一个或多个基于计算的设备102上的所有程序以分类并枚举基于计算的设备102上的所有操作系统安装文件。例如,查询模块210可在日志存储218和/或档案收集106中查询向系统100中的一个或多个基于计算的设备102的操作系统注册的所有程序。所找到的程序可由如查询模块210、代理110等各个设备来分类和枚举。此外,与所找到的程序相关联的、基于计算的设备102上的所有操作系统安装文件可由如查询模块210、代理110等各个设备来分类和枚举。 
在框904处,枚举存在于基于计算的设备和/或系统上的持续状态(PS),包括与卸载的程序相关联的文件和注册表设置。这可涉及在基于计算的设 备和/或系统上的存储器中扫描已被安装在基于计算的设备和/或系统上的所有程序的文件和注册表设置,包括已被卸载的程序的文件和注册表设置。例如,查询模块210可查询日志存储218和/或档案收集106以获取对应于已被安装在基于计算的设备102上的所有程序的标识符(如程序ID)的所有文件和注册表设置。 
在框906处,将与向操作系统注册的程序相关联的文件和注册表设置与已被安装在基于计算的设备102和/或系统100上的程序的文件和注册表设置进行比较。例如,查询模块210可将所枚举的、与向基于计算的设备102的操作系统注册的程序相关联的文件和注册表设置的标识符(如程序ID)与已被安装在基于计算的设备102上的所有程序的文件或设置的标识符进行比较。 
在框908处,可将与同时位于这两个列表上的程序相关联的文件和注册表设置排除在考虑之外。表示对应于已从基于计算的设备102和/或系统100卸载的程序的文件和注册表设置的其余文件和注册表设置可被称为漏出文件,且可从基于计算的设备102和/或系统100中移除。例如,查询模块210可使与向基于计算的设备102的操作系统注册的程序相关联的文件和注册表设置的标识符(如程序ID)与关联于已被安装在基于计算的设备102上的程序的文件和注册表设置的标识符相关。与非相关程序相关联的文件和注册表设置可由查询模块210视为漏出文件,并可由诸如查询模块210、代理110等元素从基于计算的设备102移除。 
图10示出用于检测包括常见的误配置、老软件版本等安装在一个或多个基于计算的设备102上的失效文件的示例性方法1000。失效文件例如在软件升级无法在替换磁盘上的可执行文件之后重启受影响的进程时出现。结果,其上找到失效文件的基于计算的设备102将忽略升级并继续根据老的文件来执行该程序。描述方法的次序并不旨在解释为限制,并且任何数量的所述方法框都可以按任何次序组合以实现本方法或实现替换方法。另外,可从方法中删除各个框,而不背离此处所述的主题的精神和范围。此外,本方法可用任何合适的硬件、软件、固件或其组合来实现。 
在框1002处,分类并枚举加载到基于计算的设备和/或系统上的程序。 在一个实现中,枚举包括创建向基于计算的设备的操作系统注册的程序的列表。例如,可扫描系统以检测安装在该系统中的基于计算的设备上的所有程序。可通过将安装在基于计算的设备上的所有程序置于列表中来枚举这些程序。 
在一个可能的实现中,查询模块210对系统100运行扫描,检测在一个或多个基于计算的设备102上注册的所有程序以分类并枚举向基于计算的设备102的操作系统注册的所有程序。例如,查询模块210可在日志存储218和/或档案收集106中查询向系统100中的一个或多个基于计算的设备102的操作系统注册的所有程序。所找到的程序可由如查询模块210、代理110等各个设备或实体来分类和枚举。 
在框1004处,获取在基于计算的设备和/或系统上注册的所有程序的最近加载时间,以及与在基于计算的设备和/或系统上注册的程序相关联的文件的最近加载时间。例如,查询模块210在日志存储218和/或档案收集106中查询在基于计算的设备102上注册的程序的最近加载时间和/或随在系统100中的基于计算的设备102上注册的程序而安装的诸如动态链接库(DLL)文件等文件的最近加载时间。 
在框1006处,获取与在基于计算的设备和/或系统上注册的程序相关联的文件或设置的最近修改时间,并将其与该程序的最近加载时间进行比较。例如,查询模块210可在日志存储218和/或档案收集106中查询向基于计算的设备102的操作系统注册的程序的最近修改的时间或日期。查询模块210可将最近修改的时间和日期与程序的最近加载时间进行比较。 
在框1008处,记录在比较期间找到的任何不一致性。例如,在基于计算的设备和/或系统上注册的程序的最近加载时间晚于该程序的最近已知修改的时间或日期的情况下,程序有可能还未对最近修改作出响应。在这种情况下,可向诸如用户或系统管理员等实体发出出错报告,报告程序未对最近尝试的修改作出响应。或者,可进行尝试来重试程序的最近尝试的修改。 
在一个示例性实现中,查询模块210可查询向系统100中的基于计算的设备102的操作系统注册的程序的最近加载时间和最近修改时间两者。 查询模块210可将最近加载时间与最近修改时间进行比较,如果程序的最近加载时间晚于程序的最近修改时间,则查询模块210可向诸如用户或系统管理员等实体发出出错报告,报告程序未对最近尝试的修改作出响应。在另一实现中,查询模块210还可以尝试重试程序的最近尝试的修改。 
示例性计算机环境 
图11示出了示例性通用计算机环境1100,它可用于实现此处所述的技术,且整体或部分地表示此处所述的元素。计算机环境1100仅是计算环境的一个示例,而非旨在对计算机和网络体系结构的使用范围或功能提出任何限制。计算机环境1100也不应被解释成对于在示例计算机环境1100中所示出的任一组件或其组合有任何依赖或要求。 
计算机环境1100包括计算机1102形式的通用的基于计算的设备。计算机1102例如可以是台式计算机、手持式计算机、笔记本或膝上型计算机、服务器计算机、游戏控制台等。计算机1102的各组件可以包括但不限于:一个或多个处理器或处理单元1104、系统存储器1106、以及将包括处理器1104在内的各系统组件耦合至系统存储器1106的系统总线1108。 
系统总线1108表示任何若干类型的总线结构中的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口以及使用任何各种总线体系结构的处理器或局部总线。作为示例,这样的体系结构可包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也被称为夹层(Mezzanine)总线)。 
计算机1102通常包括各种计算机可读介质。这样的介质可以是能由计算机1102访问的任何可用介质,包括易失性和非易失性介质以及可移动和不可移动介质。 
系统存储器1106包括诸如随机存取存储器(RAM)1110等易失性存储器形式的计算机可读介质,和/或诸如只读存储器(ROM)1112等非易失性存储器形式的计算机可读介质。基本输入/输出系统(BIOS)1114被存储在ROM 1102中,它包含帮助在诸如启动期间在计算机1112内元件之间传递信息的基本例程。RAM 1110通常包含处理单元1104可以立即访问和/ 或目前正在操作的数据和/或程序模块。 
计算机1102还可以包括其它可移动/不可移动、易失性/非易失性的计算机存储介质。作为示例,图11示出了对不可移动、非易失性磁性介质(未示出)进行读写的硬盘驱动器1116,对可移动、非易失性磁盘1120(例如“软盘”)进行读写的磁盘驱动器1118,以及对诸如CD-ROM、DVD-ROM或其它光学介质等可移动、非易失性光盘1124进行读写的光盘驱动器1122。硬盘驱动器1116、磁盘驱动器1118和光盘驱动器1122各自通过一个或多个数据介质接口1126连接至系统总线1108。或者,硬盘驱动器1116、磁盘驱动器1118和光盘驱动器1122也可通过一个或多个接口(未示出)与连接至系统总线1108。 
盘驱动器及其相关联的计算机可读介质向计算机1102提供对计算机可读指令、数据结构、程序模块以及其它数据的非易失性存储。尽管该示例示出了硬盘1116、可移动磁盘1120和可移动光盘1124,可以理解可存储可由计算机访问的数据的其它类型的计算机可读介质也可用来实现该示例性计算系统和环境,这些介质如盒式磁带或其它磁存储设备、闪存卡、CD-ROM、数字多功能盘(DVD)或其它光盘存储、随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)等等。 
众多程序模块可储存在硬盘1116、磁盘1120、光盘1124、ROM 1112和/或RAM 1110中,作为示例包括操作系统1127、一个或多个应用程序1128、其它程序模块1130和程序数据1132。每个这样的操作系统1127、一个或多个应用程序1128、其它程序模块1130以及程序数据1132(或其某种组合)可实现支持分布式文件系统的常驻组件的全部或部分。 
用户可通过诸如键盘1134和定点设备1136(例如“鼠标”)等输入设备向计算机1102输入命令和信息。其它输入设备1138(未具体示出)可以包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、串行接口、扫描仪等。这些和其它输入设备通过耦合到系统总线1108的输入/输出接口1140连接到处理单元1504,但也可通过其它接口和总线结构如并行端口、游戏端口或通用串行总线(USB)来连接。 
监视器1142或其它类型的显示设备也经由诸如视频适配器1144等接 口连接至系统总线1108。除监视器1142之外,其它输出外围设备可包括诸如扬声器(未示出)和打印机1146等组件,这些组件可通过输入/输出接口1140连接至计算机1102。 
计算机1102可使用至一台或多台远程计算机(如远程基于计算的设备1148)的逻辑连接在网络化环境中操作。作为示例,远程基于计算的设备1148可以是个人计算机、便携式计算机、服务器、路由器、网络计算机、对等设备或者其它常见网络节点等。远程基于计算的设备1148被示为可以包括在本文中相对于计算机1102描述的许多或全部元素和特征的便携式计算机。 
计算机1102和远程计算机1148之间的逻辑连接被描绘为局域网(LAN)1150和通用广域网(WAN)1152。这样的联网环境常见于办公室、企业范围计算机网络、内联网和因特网中。 
当在LAN联网环境中实现时,计算机1102通过网络接口或适配器1154连接到局域网1150。当在WAN联网环境中实现时,计算机1102通常包括调制解调器1156或用于在广域网1152上建立通信的其它装置。调制解调器1156可以是计算机1102内置或外置的,其可通过输入/输出接口1140或其它适当的机制连接到系统总线1108。可以理解,所示网络连接是示例性的,也可采用在计算机1102和1148之间建立通信链接的其它手段。 
在诸如对计算环境1100示出的网络化环境中,相对于计算机1102描绘的程序模块或其部分可被存储在远程存储器存储设备中。作为示例,远程应用程序1158驻留在远程计算机1148的存储器设备上。为说明起见,应用程序和诸如操作系统的其他可执行程序组件在这里被示为离散的块,但可以理解,这样的程序和组件在不同的时间驻留在基于计算的设备1102的不同存储组件中,并由计算机的数据处理器来执行。 
各种模块和技术在此可在诸如程序模块等由一个或多个计算机或其它设备执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定的任务或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构等。通常,程序模块的功能可以在各个实施例中按需进行组合或分布。 
这些模块和技术的实现可以存储在某种形式的计算机可读介质上或通过某种形式的计算机可读介质传输。计算机可读介质可以是可由计算机访问的任何可用介质。作为示例而非限制,计算机可读介质可包括“计算机存储介质”和“通信介质”。 
“计算机存储介质”包括以存储如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、盒式磁带、磁带、磁盘存储或其它磁存储设备,或者任何其它可用于存储所需信息并可由计算机访问的介质。 
或者,框架的各部分可用硬件或硬件、软件和/或固件的组合来实现。例如,可将一个或多个专用集成电路(ASIC)或可编程逻辑器件(PLD)设计或编程为实现该框架的一个或多个部分。 
结论 
尽管已经用结构特征和/或方法专用的语言描述了系统管理和分析的各实施例,但是应该理解所附权利要求的主题不必限于所述具体特征或方法。相反,这些具体特征和方法是作为系统管理和分析的示例性实现而公开的。 

Claims (15)

1.一种用于系统分析和管理的方法,包括:
对加载到基于计算的设备上的程序进行分类;
获得向所述基于计算的设备注册的程序的最近加载时间;以及
将与向所述基于计算的设备注册的程序相关联的文件的最近修改时间同所述最近加载时间进行比较。
2.如权利要求1所述的方法,其特征在于,所述分类包括创建向所述基于计算的设备的操作系统注册的程序的列表。
3.如权利要求1所述的方法,其特征在于,所述分类包括通过将所述程序置于列表中来枚举所述程序。
4.如权利要求1所述的方法,其特征在于,所述分类包括扫描以检测在所述基于计算的设备上注册的所有程序。
5.如权利要求1所述的方法,其特征在于,所述获得包括查询日志文件。
6.如权利要求1所述的方法,其特征在于,所述比较包括查询日志文件。
7.如权利要求1所述的方法,其特征在于,还包括记录在所述比较期间找到的任何不一致性。
8.如权利要求1所述的方法,其特征在于,还包括
记录在所述比较期间找到的任何不一致性;
对计算设备的程序进行分类;
注册所述程序的最近加载时间;
获得与所述程序相关联的文件的最近修改时间;以及
将所述文件的最近修改时间与所述程序的最近加载时间进行比较。
9.一种用于系统分析和管理的计算设备,包括:
处理单元;
日志存储组件,所述日志存储组件被配置以存储:
与在所述计算设备上注册的程序相关联的文件的最近加载时间;和
与在所述计算设备上注册的程序相关联的文件的最近修改时间;
查询日志组件,所述查询日志组件被配置以:
对在所述计算设备上注册的程序进行分类;
将所述最近修改时间与所述最近加载时间进行比较以检测在所述计算设备内的失效文件,其中失效文件的存在导致忽略程序内的升级,其中升级的忽略将继续执行来自旧文件的程序;
向诸如用户或系统管理员的实体报告失效文件,所述报告包括未对最近尝试的修改作出响应的程序、以及重试程序的最近尝试的修改的尝试。
10.如权利要求9所述的计算设备,其特征在于,还包括档案收集组件,所述档案收集组件被配置以存储与在所述计算设备上注册的程序相关联的文件的最近加载时间以及最近修改时间。
11.如权利要求9所述的计算设备,其特征在于,其中所述查询日志组件被进一步配置以扫描在基于计算的设备上注册的所有程序。
12.一种用于系统分析和管理的方法,包括:
对与在基于计算的设备上注册的程序相关联的文件和设置进行分类,并枚举所述与在基于计算的设备上注册的程序相关联的文件和设置;
获取所述与在基于计算的设备上注册的程序相关联的文件和设置的最近加载时间和日期;
获取所述与在基于计算的设备上注册的程序相关联的文件和设置的最近修改时间和日期;以及
将所述与在基于计算的设备上注册的程序相关联的文件和设置的最近修改时间和日期与最近加载时间和日期进行比较,其中所述比较进一步包括记录在基于计算设备内注册的程序内的不一致性,包括生成包括未对最近尝试的修改作出响应的程序的报告。
13.如权利要求12所述的方法,其特征在于,其中所述比较进一步包括比较与在基于计算的设备内注册的未安装的程序相关联的文件和设置以确定漏出文件。
14.如权利要求13所述的方法,其特征在于,其中所述漏出文件从基于计算的设备中移除。
15.如权利要求12所述的方法,其特征在于,其中所述比较包括查询日志文件。
CN2007800443099A 2006-12-01 2007-11-30 用于系统分析和管理的方法和装置 Active CN101542446B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/566,170 US7698305B2 (en) 2006-12-01 2006-12-01 Program modification and loading times in computing devices
US11/566,170 2006-12-01
PCT/US2007/086195 WO2008070587A1 (en) 2006-12-01 2007-11-30 System analysis and management

Publications (2)

Publication Number Publication Date
CN101542446A CN101542446A (zh) 2009-09-23
CN101542446B true CN101542446B (zh) 2013-02-13

Family

ID=39493284

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800443099A Active CN101542446B (zh) 2006-12-01 2007-11-30 用于系统分析和管理的方法和装置

Country Status (12)

Country Link
US (1) US7698305B2 (zh)
EP (2) EP3236354A1 (zh)
JP (1) JP4903879B2 (zh)
KR (1) KR101443932B1 (zh)
CN (1) CN101542446B (zh)
AU (1) AU2007329468B8 (zh)
BR (1) BRPI0719184A2 (zh)
CA (1) CA2668204C (zh)
MX (1) MX2009004903A (zh)
NO (2) NO20092482L (zh)
RU (1) RU2451326C2 (zh)
WO (1) WO2008070587A1 (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8250657B1 (en) 2006-12-29 2012-08-21 Symantec Corporation Web site hygiene-based computer security
US8312536B2 (en) 2006-12-29 2012-11-13 Symantec Corporation Hygiene-based computer security
US8499063B1 (en) * 2008-03-31 2013-07-30 Symantec Corporation Uninstall and system performance based software application reputation
JP5178319B2 (ja) * 2008-05-22 2013-04-10 キヤノン株式会社 アプリケーションプラットフォーム
US8595282B2 (en) 2008-06-30 2013-11-26 Symantec Corporation Simplified communication of a reputation score for an entity
US8413251B1 (en) 2008-09-30 2013-04-02 Symantec Corporation Using disposable data misuse to determine reputation
US8904520B1 (en) 2009-03-19 2014-12-02 Symantec Corporation Communication-based reputation system
US8381289B1 (en) 2009-03-31 2013-02-19 Symantec Corporation Communication-based host reputation system
JP5487962B2 (ja) * 2009-12-28 2014-05-14 株式会社リコー 操作抑制システム、画像形成装置、操作抑制情報提供装置、及び操作抑制方法
US8341745B1 (en) 2010-02-22 2012-12-25 Symantec Corporation Inferring file and website reputations by belief propagation leveraging machine reputation
US8510836B1 (en) 2010-07-06 2013-08-13 Symantec Corporation Lineage-based reputation system
US8869307B2 (en) * 2010-11-19 2014-10-21 Mobile Iron, Inc. Mobile posture-based policy, remediation and access control for enterprise resources
JP5682467B2 (ja) * 2011-06-14 2015-03-11 富士通株式会社 設定情報管理プログラム、設定情報管理方法及び情報処理装置
US9059949B2 (en) * 2011-08-23 2015-06-16 Bank Of America Corporation Monitoring of regulated associates
US9124472B1 (en) 2012-07-25 2015-09-01 Symantec Corporation Providing file information to a client responsive to a file download stability prediction
JP6070847B2 (ja) * 2013-08-09 2017-02-01 富士通株式会社 検証方法、検証装置および検証プログラム
US9471798B2 (en) 2013-09-20 2016-10-18 Oracle International Corporation Authorization policy objects sharable across applications, persistence model, and application-level decision-combining algorithm
US9519513B2 (en) 2013-12-03 2016-12-13 Vmware, Inc. Methods and apparatus to automatically configure monitoring of a virtual machine
US9678731B2 (en) 2014-02-26 2017-06-13 Vmware, Inc. Methods and apparatus to generate a customized application blueprint
JP2015162136A (ja) * 2014-02-28 2015-09-07 東芝テック株式会社 情報処理装置及び情報処理プログラム
US9916171B2 (en) * 2014-07-10 2018-03-13 International Business Machines Corporation Application discovery in virtual machines using temporal clustering of installation files
US10171437B2 (en) * 2015-04-24 2019-01-01 Oracle International Corporation Techniques for security artifacts management
US10699020B2 (en) 2015-07-02 2020-06-30 Oracle International Corporation Monitoring and alert services and data encryption management
US10489352B2 (en) * 2015-11-16 2019-11-26 International Business Machines Corporation Software discovery for software on shared file systems
US9965313B2 (en) * 2016-01-05 2018-05-08 Bitdefender IPR Management Ltd. Systems and methods for auditing a virtual machine
CN108959951B (zh) * 2017-05-19 2021-01-12 北京瑞星网安技术股份有限公司 文档安全防护的方法、装置、设备及可读存储介质
US11113138B2 (en) 2018-01-02 2021-09-07 Carrier Corporation System and method for analyzing and responding to errors within a log file
US10628138B2 (en) 2018-02-09 2020-04-21 International Business Machines Corporation Automated management of undesired code use based on predicted valuation and risk analysis
US11163557B2 (en) * 2019-11-08 2021-11-02 International Business Machines Corporation Automated techniques for detecting the usage of software applications in a computing environment using configuration objects
CN113992717A (zh) * 2021-10-28 2022-01-28 傲拓科技股份有限公司 基于tsn技术的边缘数据采集系统及方法
CN116383165B (zh) * 2023-06-03 2023-08-11 浙江档安科技有限公司 一种适应性写入的档案保存方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6374401B1 (en) * 1999-03-29 2002-04-16 International Business Machines Corporation System, method, and program for updating registry objects with a cross-platform installation program
US20050114285A1 (en) * 2001-11-16 2005-05-26 Cincotta Frank A. Data replication system and method

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06222933A (ja) * 1993-01-26 1994-08-12 Toshiba Corp 計算機システム
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US6282712B1 (en) * 1995-03-10 2001-08-28 Microsoft Corporation Automatic software installation on heterogeneous networked computer systems
US5675510A (en) 1995-06-07 1997-10-07 Pc Meter L.P. Computer use meter and analyzer
US6151643A (en) * 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US5797016A (en) * 1996-10-29 1998-08-18 Cheyenne Software Inc. Regeneration agent for back-up software
US6041333A (en) * 1997-11-14 2000-03-21 Microsoft Corporation Method and apparatus for automatically updating a data file from a network
US6047390A (en) * 1997-12-22 2000-04-04 Motorola, Inc. Multiple context software analysis
JPH11232109A (ja) * 1998-02-10 1999-08-27 Hitachi Ltd クラスオブジェクトのロード方法
JP3444227B2 (ja) * 1999-04-09 2003-09-08 日本電気株式会社 ソフトウェアの不正使用防止方法
US6574729B1 (en) 1999-08-26 2003-06-03 Lucent Technologies Inc. System for remotely identifying and providing information of unknown software on remote network node by comparing the unknown software with software audit file maintained on server
US7073198B1 (en) 1999-08-26 2006-07-04 Ncircle Network Security, Inc. Method and system for detecting a vulnerability in a network
US7085936B1 (en) 1999-08-30 2006-08-01 Symantec Corporation System and method for using login correlations to detect intrusions
US6775657B1 (en) 1999-12-22 2004-08-10 Cisco Technology, Inc. Multilayered intrusion detection system and method
JP3578266B2 (ja) * 2000-01-06 2004-10-20 インターナショナル・ビジネス・マシーンズ・コーポレーション アプリケーションの起動方法、アプリケーションの起動のためのソフトウエア・プロダクト
JP4700884B2 (ja) 2000-04-28 2011-06-15 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータのセキュリティ情報を管理するための方法およびシステム
US20030023857A1 (en) 2001-07-26 2003-01-30 Hinchliffe Alexander James Malware infection suppression
US7032244B2 (en) 2001-10-02 2006-04-18 International Business Machines Corporation Identifying potential intruders on a server
US6874001B2 (en) * 2001-10-05 2005-03-29 International Business Machines Corporation Method of maintaining data consistency in a loose transaction model
JP2004127253A (ja) * 2002-07-31 2004-04-22 Ricoh Co Ltd 情報処理装置およびバージョンチェック方法
JP2004164351A (ja) * 2002-11-14 2004-06-10 Hitachi Ltd コンピュータシステムの不正プログラム修正方法およびその装置
US6980927B2 (en) 2002-11-27 2005-12-27 Telos Corporation Enhanced system, method and medium for certifying and accrediting requirements compliance utilizing continuous risk assessment
US20070128899A1 (en) * 2003-01-12 2007-06-07 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
US7024548B1 (en) 2003-03-10 2006-04-04 Cisco Technology, Inc. Methods and apparatus for auditing and tracking changes to an existing configuration of a computerized device
US7124400B2 (en) * 2003-03-12 2006-10-17 Microsoft Corporation Extensible customization framework for a software system
US7168064B2 (en) * 2003-03-25 2007-01-23 Electric Cloud, Inc. System and method for supplementing program builds with file usage information
US20050010916A1 (en) * 2003-05-24 2005-01-13 Hagen David A. System for providing software application updates to multiple clients on a network
US7478433B2 (en) * 2003-06-19 2009-01-13 Panasonic Corporation Program execution system having authentication function
JP2005063259A (ja) * 2003-08-18 2005-03-10 Canon Inc アプリケーションの共用ファイル制御方法
US7840646B2 (en) * 2003-10-08 2010-11-23 Yahoo! Inc. Learned upload time estimate module
EP1745381A2 (en) * 2004-03-17 2007-01-24 Riverstone Networks, Inc. Managing process state information in an operating system environment
US20060047713A1 (en) 2004-08-03 2006-03-02 Wisdomforce Technologies, Inc. System and method for database replication by interception of in memory transactional change records
US7716530B2 (en) * 2006-02-28 2010-05-11 Microsoft Corporation Thread interception and analysis

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6374401B1 (en) * 1999-03-29 2002-04-16 International Business Machines Corporation System, method, and program for updating registry objects with a cross-platform installation program
US20050114285A1 (en) * 2001-11-16 2005-05-26 Cincotta Frank A. Data replication system and method

Also Published As

Publication number Publication date
AU2007329468A1 (en) 2008-06-12
EP3236354A1 (en) 2017-10-25
CA2668204C (en) 2015-06-02
NO20092482L (no) 2009-08-31
KR20090095627A (ko) 2009-09-09
AU2007329468B8 (en) 2011-12-08
US20080133972A1 (en) 2008-06-05
CA2668204A1 (en) 2008-06-12
AU2007329468B2 (en) 2011-10-20
NO20171308A1 (no) 2009-08-31
WO2008070587A1 (en) 2008-06-12
BRPI0719184A2 (pt) 2014-04-15
MX2009004903A (es) 2009-05-19
US7698305B2 (en) 2010-04-13
NO343315B1 (no) 2019-01-28
JP4903879B2 (ja) 2012-03-28
JP2010511940A (ja) 2010-04-15
EP2126702A1 (en) 2009-12-02
RU2009120574A (ru) 2010-12-10
KR101443932B1 (ko) 2014-09-23
CN101542446A (zh) 2009-09-23
EP2126702A4 (en) 2012-06-13
RU2451326C2 (ru) 2012-05-20

Similar Documents

Publication Publication Date Title
CN101542446B (zh) 用于系统分析和管理的方法和装置
US8621278B2 (en) System and method for automated solution of functionality problems in computer systems
US7865777B2 (en) Thread interception and analysis
RU2544752C2 (ru) Конвейер классификации данных, включающий в себя правила автоматической классификации
US20110239293A1 (en) Auditing access to data based on resource properties
US20070277222A1 (en) System and method for executing a permissions recorder analyzer
US20070022480A1 (en) System for tracking and analyzing the integrity of an application
US11086618B2 (en) Populating a software catalogue with related product information
US9898603B2 (en) Offline extraction of configuration data
JP2019008376A (ja) ファイル管理装置及びファイル管理方法
CN110472381B (zh) 基于安卓系统的root权限隐藏方法、系统及存储介质
CN101390077B (zh) 线程截取和分析
US8812458B2 (en) Adaptive methodology for updating solution building block architectures and associated tooling

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150601

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150601

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.