对软件程序集的本机图像进行防病毒检查的系统和方法_3

文档序号:9922226阅读:来源:国知局
的。
[0076] 在另一个示例性方面,确定所述父程序集是否对应所述机器代码的本机图像包 括:确定所述父程序集的公共中间语言(CIL)代码和所述机器代码之间的对应关系。
[0077] 在另一个示例性方面,使用一种或多种元数据元件确定所述父程序集是否对应所 述机器代码的本机图像,所述一种或多种元数据元素包括:CIL代码、机器代码、元数据类 型、清单、便携可执行的(PE)文件标头和公共语言运行(CLR)标头。
[0078] 在另一个示例性方面,确定所述父程序集是否对应所述机器代码的本机图像包 括:比较所述父程序集和所述机器代码的相应的元数据元素。
[0079] 在另一个示例性方面,确定所述父程序集是否对应所述机器代码的本机图像包 括:比较所述机器代码的原始的本机图像和所述机器代码的生成的本机图像的相应的元数 据,其中,所述原始的本机图像是从所述父程序集生成的机器代码的保证未修改的本机图 像。
[0080] 在另一个示例性方面,用于执行机器代码的本机图像的防病毒分析的示例性方法 包括:通过硬件处理器接收机器代码的本机图像;通过硬件处理器收集关于所述机器代码 的本机图像的数据,所述数据包括存储在关于创建所述机器代码的本机映像的操作系统中 的数据;通过硬件处理器基于所收集的数据识别父程序集,其用于创建所述机器代码的本 机图像;通过硬件处理器执行所述父程序集的防病毒分析;和通过将所述父程序集的防病 毒分析结果与所述本机图像相关联,将所述机器代码的本机图像从所述防病毒分析中排 除。
[0081] 在另一个示例性方面中,关于创建所述机器代码的本机图像的所收集的数据包括 至所述操作系统的注册表中的父程序集的路径。
[0082] 在另一个示例性方面中,其中关于所述机器代码的所收集的数据还包括一个或多 个模块版本标识符(MVID)、强名称、机器代码的本机图像的元数据,以及至所述机器代码的 本机图像的路径。
[0083] 上述实施例的方面的简述用于提供本公开的基本理解。该概述不是对所有预期方 面的广泛综述,并且既不是要确定所有方面的关键或重要元素,也不希望描绘本公开的任 何范围或所有方面。其唯一目的在于以简化形式呈现一个或多个方面,作为随后的本公开 的更详细的说明的序幕。为了实现前述内容,本公开的一个或多个方面包括在权利要求中 所描述和特别指出的特征。
【附图说明】
[0084] 以下附图,合并至本文并组成本文的一部分,示出了本公开的一个或多个示例性 方面,以及与详细说明一起用于解释其原理及应用。
[0085] 图1A示出了单个文件程序集的示例性布局;
[0086] 图1B示出了多个文件程序集的示例性布局;
[0087] 图1C示出了生成强名称的示例性进程;
[0088] 图2示出了执行程序集代码的示例性方法;
[0089]图3示出了运行结合模块的方法;
[0090] 图4示出了根据一个方面分类图像的示例性方法;
[0091] 图5示出了根据一个方面的图像的示例性结构;
[0092] 图6示出了根据一个方面的将分类分配给图像的示例性方法;
[0093] 图7示出了能够实施本公开的系统和方法的通用计算机系统的实施例。
【具体实施方式】
[0094] 在用于对软件程序集的本机图像进行防病毒检查的系统、方法和计算机程序产品 的上下文中,描述实施例的方面。本领域的普通技术人员将认识到,以下的描述仅是说明性 的并无意以任何方式进行限制。对于受益于本公开的本领域技术人员来说,其它方面将很 容易想到。现在将参考如图附图中所示的示例方面的实施方式来详细描述。相同的编号将 被尽可能地用于全部附图和下面的说明中,以指代相同或类似的物品。
[0095] 图4示出了根据一个方面分类图像的示例性方法。如图所示,在步骤400中,获取图 像。在一个实例中,图像可从本机图像缓存(〃NIC〃)获取(例如,如果图像安装在装置上且用 作意欲在装置上使用),且在另一个实例中,图像可从任何其它的图像库获取(如,在装置用 作储存器且图像并不意欲在装置上使用)。接下来,在步骤410中,确定图像的信任类别。在 一个示例性方面中,将请求数据库来确定图像的信任类别,其中可使用图像的校验和。在另 一个示例性方面中,可使用图像的MVID。模板也用于确定图像的种类。在下文中更详细论述 以模板工作的机制。
[0096]如果图像在数据库中是未知的,则在步骤420中,确定创建该图像的父程序集。为 了确定父程序集,至少可使用以下数据、数据结构和机制:MVID、注册表(例如,Windows注册 表)、结合模块和强名称。
[0097]在一个示例性方面中,例如,当包含存在于当前装置上的程序集的MVID的数据库 存在时,可使用经由MVID确定的结果。在此方面中,图像的MVID可在包含程序集的MVID的数 据库中识别。
[0098] 在另一个示例性方面中,当注册表中的条目在图像的创建期间被创建时,父程序 集可从注册表中的条目来确定。在上文更详细论述了此条目的实例。在一个示例性方面中, 条目可包含关于至父程序集的路径的信息、关于本机图像的信息以及各种辅助数据。通过 将来自注册表的数据与从分析的影响获取的数据相比较,可识别父程序集。
[0099] 在另一个示例性方面中,父程序集可从用于由强名称程序集创建的图像的强名称 确定。父程序集的强名称的组成部分从图像取得,强名称生成,且基于该数据,确定了至装 置的GAC中的、或以有序方式根据强名称保存程序集的数据库中父程序集的路径。
[0100]确定父程序集的进程取决于一定数目的因素,其例如可包括父程序集和图像的位 置(例如,用户的装置或远程或本地数据库)、在其储存位置处危害程序集和图像的可能性、 命名程序集(强名称或普通名称)的方法等。
[0101] 在一个示例性方面中,在确定父程序集之后,本机图像与程序集之间的对应关系 在步骤421中确定。如果存在本机图像(在创建之后)可在储存位置处未授权(例如,其可被 危害、损坏等)的情况下改变的可能性,则执行该步骤。在一个示例性方面中,算法可用于确 定使用图像结合模块(上文所述)的对应关系。在另一个示例性方面中,在确定父程序集之 后,可创建来自此程序集(即,原始的本机图像,其是保证未改变的图像)的图像,且其可与 进行分析来确定对应关系的本机图像直接比较。在一个示例性方面中,比较可逐字节地进 行。
[0102] 在一个示例性方面中,为了防止图像的未授权改变,仅允许对信任进程(例如,如, 仅ngen. exe)改变图像,而仅容许对其它进程从本机图像读取数据。
[0103] -个示例性方面中,模板的机制可用于确定图像与父程序集之间的对应关系。在 一个示例性方面中,如果没有父程序集与对应本机图像之间的对应关系,则图像认作是损 坏的(即,恶意的)。损坏的图像与原始图像的差别可在于CIL代码、机器代码、类型的元数 据、包含在CLR和PE标头中的信息等。
[0104]图5示出了根据一个方面本机图像的示例性结构。本机图像如父程序集具有某一 结构。例如,程序集KasperskyLab · dl 1和图像KasperskyLab ·ni · dl 1包含元数据和代码,其 中程序集只包含CIL代码,而特定方面中的本机图像也包含机器代码和结构 似1:;^611]^〖6!163(161'。基于该结构、元数据和代码,生成模板1^8卩6『81^]^113.(111.1:111卩1(上文 所述)且其与父程序集和由此创建的图像相关联(即,建立对应关系)。为了将结构、代码和 元数据合并到模板中,例如,示例性系统和方法使用智能哈希技术(也称为本地敏感哈希)。 在一个示例性方面中,生成了如图5中所示的模板。
[0105] 更具体而言,数据(即,清单、元数据、CIL代码等)从程序集取得。相同的数据和机 器代码从本机图像取得。处理对于由相同父程序集创建的图像的可能版本中的各个不变的 数据(例如,从中计算校验和),且哈希形成且置于模板中。从图像的一个版本变为图像另一 个版本的数据(如,机器代码)也被处理,且只能因此生成智能哈希值。在特定方面中,生成 了用于机器代码的函数调用日志,具有分解的机器代码的列表或反映给定机器代码的实施 的逻辑的任何其它实体;以及由这些实体形成的智能哈希值。在另一个特定方面中,这些实 体直接用于模板中。应当注意的是,模板形成为以便清楚地关联(建立对应关系)父程序集 和图像,而不管取决于装置的软件和硬件配置的图像版本。在图像的机器代码中产生变化 且图像代码的执行的逻辑不再对应于程序集代码的执行的逻辑的情况中,没有在父程序集 与图像之间基于模板建立对应关系,且确定图像为不对应程序集。
[0106] 下文更详细描述使用模板确定对应关系的实例。例如,如果某一父程序集 Kas
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1