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

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

Info

Publication number
CN105701405B
CN105701405B CN201610066755.0A CN201610066755A CN105701405B CN 105701405 B CN105701405 B CN 105701405B CN 201610066755 A CN201610066755 A CN 201610066755A CN 105701405 B CN105701405 B CN 105701405B
Authority
CN
China
Prior art keywords
machine
procedure set
image
code
father
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
CN201610066755.0A
Other languages
English (en)
Other versions
CN105701405A (zh
Inventor
A·Y·索罗多夫尼科夫
A·V·拉蒂科夫
S·V·特斯维特科夫
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.)
Kaspersky Lab AO
Original Assignee
Kaspersky Lab AO
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 Kaspersky Lab AO filed Critical Kaspersky Lab AO
Publication of CN105701405A publication Critical patent/CN105701405A/zh
Application granted granted Critical
Publication of CN105701405B publication Critical patent/CN105701405B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/561Virus type analysis
    • 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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • 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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • 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/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Abstract

公开了一种用于对软件程序集的本机图像进行防病毒检测的系统和方法。实施例包括用于检测机器代码的恶意本机图像的方法,所述方法包括:接收所述机器代码的本机图像;识别父程序集,所述父程序集用于创建所述本机图像;确定所述父程序集是否对应所述机器代码的本机图像;和当所述父程序集不对应所述机器代码的本机图像时,确定本机图像是恶意的。

Description

对软件程序集的本机图像进行防病毒检查的系统和方法
技术领域
本公开大体涉及计算机科学领域,更具体地,涉及对软件程序集的本机图像进行防病毒检查的系统和方法。
背景技术
目前,可安装在用户装置(例如,个人计算机、智能电话、平板电脑等)上的软件应用显著地增长,且可由这些应用创建的文件的数目也指数地上升。在应用的安装和运行时由软件应用创建的某些文件是唯一的,即,文件可作为单一副本存在。很难在不执行其内容的详细分析的情况下分类此类文件。
通常,这些文件可为机器代码中的父程序集的图像(即,本机图像),这是.NET技术的一部分。.NET应用可使用一定数目的程序集一起创建,其中程序集为由公共语言运行("CLR")环境辅助的二进制文件。.NET程序集包括以下元数据元素:
·可移植执行("PE")文件标头;
·CLR标头;
·公共中间语言("CIL")代码;
·在各种类型的程序集中使用的元数据(例如,类别、接口、结构、列举(enumerations)、委托);
·程序集的清单;以及
·额外的内置资源。
大体上,PE标头识别程序集可在系列的操作系统中加载和执行。PE标头还识别应用(例如,控制台应用、具有图形用户接口的应用、代码库等)的类型。
CLR标头构成可支持所有.NET程序集以便它们可在CLR环境中维护的数据。CLR标头包含诸如标记、CLR版本、入口点(例如,在特定情况下,开始函数Main()的地址),这允许执行环境确定管理的文件的组成(即,包含管理代码的文件)。
各个程序集均包含CIL代码,其为并非依赖处理器的中间代码。在执行期间,CIL代码由JIT(准时,即,动态编译)以实时模式编译成对应于特定处理器的要求的指令。
在任何给定程序集中,还存在完整描述存在于程序集内的类型(例如,类别、接口、结构、计数、委托等)以及程序集参照的外部类型(即,其它程序集中描述的类型)的格式的元数据。在可执行环境中,元数据用于确定二进制文件中的类型的位置,以将类型置于存储器中,且简化类型的方法的远程调用的进程。
程序集还可包含清单,其描述组成程序集的各个模块、程序集的版本以及还有当前程序集参照的任何外部程序集。清单还包含指定程序集的版本和身份的程序集的要求所需的所有元数据,以及确定程序集的范围和允许链接至资源和类别所需的所有元数据。下表示出了包含在程序集的清单中的数据。前四个元素(程序集名称、版本号、语言和区域参数,以及强名称数据)构成程序集的身份。
任何.NET程序集都可包含任何给定数目的嵌入资源,如,应用图标、图形文件、音频片段或字符串表。
程序集可由若干模块构成。模块为程序集的一部分,即,代码或资源的逻辑收集。用于程序集中的实体的等级为:程序集>模块>类型(类别、接口、结构、计数、委托(delegate))>方法。模块可为内部(即,程序集的文件内)或外部的(即,分离文件)。模块没有入口点,其也不具有任何独立的版本号,且因此其不可由CLR环境直接地载入。模块仅可由程序集的主模块载入,如,包含程序集的清单的文件。模块的清单仅包含所有外部程序集的计数。各个模块均具有模块版本标识符("MVID"),其为程序集的各个模块中写出的唯一标识符,其在各次编译期间变化。
图1A示出了单文件程序集的示例性布局。如图所示,在单文件程序集中,所有要求元素(例如,标头、CIL代码、类型的元数据、清单和资源)位于单个文件*.exe或*.dll内。
图1B示出了多文件程序集的实例。多文件程序集由一组.NET模块构成,其以单个逻辑单元的形式配置,且设有相同的版本号。通常,这些模块中的一个称为主模块,且包含程序集的清单,且还可包含所有所需的CIL指令、元数据、标头和附加资源。
主模块的清单描述主模块的操作依赖的所有其它相关模块。多文件程序集中的次级模块可分配扩展名*.netmodule。次级*.netmodule模块也包含CIL代码和类型的元数据,以及模块的水平的清单,其中列举了由给定模块所需的外部程序集。
正如任何PE文件,程序集可利用数字签名(例如,X.509)来签名,其位于PE文件或数字签名目录文件(.cat)的叠加部分(overlay)中。强名称签名另外或单独使用,即,通过使用程序集的内容和RSA私钥生成的哈希值。哈希值位于PE标头与元数据之间的程序集中。哈希值使得有可能检查程序集从其编译时的时间起没有变化。对于单文件程序集,当编译文件时,在PE标头之后没有字节。文件的哈希值然后使用私钥计算,且所得的哈希值输入这些可用的字节中。
该技术对于多文件程序集是不同的。除程序集的主文件的哈希值之外,还计算外部模块的哈希值,此后,数据输入主程序集中。模块没有其自身的签名,且它们具有不同于主模块的MVID。以下项目输入程序集的清单中:
·PublicKey,即,强名称签名的公钥,以及
·PublicKeyToken,即,强名称签名的密钥的公开部分的哈希。
通常,程序集分成:私密和公开/共享。私密程序集应当总是位于与它们用于其中的客户应用相同的目录(即,应用目录)中或其子目录中的一个中。
相比之下,公开程序集可同时用于同一装置上的若干应用中。公开程序集并非位于与它们被认为应用其中的应用相同的目录内。相反,它们可安装在全局程序集缓存(GAC)中。GAC可同时位于如下表所示的若干位置中:
安装在GAC中的程序集应当具有强名称。强名称是用于COM中的全局唯一标识符(GUID)的当代.NET等同物。不同于128位数字的COM中的GUID值,.NET的强名称部分地基于称为公开密钥和秘密(私密)密钥的两个相关加密密钥。
强名称由一组相关数据构成,至少包括:
·程序集的名称(没有文件扩展名的程序集的名称)。
·程序集的版本号;
·公钥值;
·指定区域的值,其不是强制的,且可用于应用的定位;以及
·利用从程序集的内容和私钥的值获得的哈希值创建的数字签名。
为了创建程序集的强名称,例如,用户可获得公钥和私钥,公钥和私钥的数据由提供为.NET框架SDK的一部分的实用程序sn.exe生成。实用程序生成包含用于两个不同但数学上相关的密钥(公钥和私钥)的数据的文件。该文件的位置然后向编译器指出,编译器写出程序集的清单中的公钥的全部值。
在特定情况中,编译器基于程序集的全部内容(例如,CIL代码、元数据等)生成对应的哈希值。哈希值是对于固定输入数据在统计上唯一的数值。因此,在.NET程序集的任何数据(甚至字符串字面值中的单个字符)的变化的情况下,编译器将生成不同的哈希值。生成的哈希值然后与包含在文件内的私钥数据组合,以获得插入CLR标头数据内的程序集中的数字签名。
图1C示出了用于生成强名称的示例性进程。通常,私钥数据未在清单中指出,而是仅用于由数字签名(连同生成的哈希值)识别程序集的内容。在完成创建和分配强名称的进程之后,程序集可安装在GAC中。
例如,至GAC中的程序集的路径可为:
C:\Windows\assembly\GAC_32\KasperskyLab\2.0.0.0__b03f5f7f11d50a3a\KasperskyLab.dll,其中:
C:\Windows\assembly是至GAC的路径;
\GAC_32是处理器的GAC结构;
\KasperskyLab是程序集的名称;
\2.0.0.0__b03f5f7f11d50a3a是程序集_公钥标记的版本;以及
KasperskyLab.dll是\程序集名称的扩展名。
在一个特定情况中,程序集的代码的执行按以下发生。首先,分析PE标头来确定应当开始哪个进程(32或64位)。接下来,载入的选择的文件版本MSCorEE.dll(对于32位系统是C:\Windows\System32\MSCorEE.dll)。程序集的源代码的实例按以下存在:
为了方法的执行(为了方便起见,代码以其原始形式存在,且并未编译成CIL代码),如,方法System.Console。WriteLine("Kaspersky"),JIT编译器将CIL代码转换成机器命令。
图2示出了执行程序集代码的示例性方法。首先,在执行函数Main()之前,CLR环境找出所有公告的类型(级别)(例如,类型Console)。接下来,CLR环境确定方法,将它们组合在统一"结构"内的记录中(一个方法,如类型Console中分别限定那样)。该条目(entry)包含可找到方法的实施方式所处的位置。在方法WriteLine的首次访问中,调用JIT编译器。JIT编译器知晓调用的方法和限定该方法的类型。一旦调用,则JIT编译器搜索对应的程序集的元数据来实施方法代码(即,实施方法WriteLine(string str)的代码)。JIT编译器然后将CIL代码编译成机器代码,且将编译的代码保存在动态存储器中。接下来,JIT编译器返回类型数据(控制台)的内部"结构",且以具有机器代码的存储器区段的地址替换调用的方法的地址。方法Main()又访问方法WriteLine(string str)。由于已经编译了代码,故访问没有JIT编译器调用。在执行方法WriteLine(string str)之后,控制回到方法Main()。
从描述中得出的是,当JIT编译器将CIL代码转换成处理器指令时,该函数仅在第一调用时工作"较慢"。在所有其它情况中,代码已经在存储器中,且提供为针对给定处理器优化。然而,如果又一个程序在另一个过程中开始,则将为了此同一方法又调用JIT编译器。
上文所述的本机图像解决了在第一调用时程序缓慢工作的问题。当加载程序集时,将加载图像,机器代码将从其执行。使用该技术,有可能加速应用的加载和运行,因为JIT编译器不需要编译任何东西,且/或还每次重新创建数据结构。其所有都取自图像。图像可对于任何给定的.NET程序集创建,而不管其是否安装在GAC中。对于编译,在一个实例中,人们使用由路径%WINDIR%\Microsoft.NET\Framework\<Framework_version>\ngen.exe定位的实用程序ngen.exe。在ngen.exe启动时,使用了JIT编译器创建程序集的CIL代码的机器代码,且结果保存至本机图像缓存("NIC")中的盘上。编译在本地装置上完成,考虑了其软件和硬件配置,且因此,图像应用仅用于编译其的环境。创建此图像的目的在于提高管理的应用的有效性,即,在JIT编译的地方加载机器代码完成的程序集。
如果程序集的代码由许多应用使用,则图像的创建显著增大了启动和执行应用的速度,因为图像可由许多应用同时使用,同时由JIT编译器即时生成的代码仅由其为之编译的应用的副本使用。
至可编译图像的路径形成为以下,例如:C:\Windows\assembly\NativeImages_v4.0.30319_32\Kaspersky\9c87f327866f53aec68d4fee40cde33d\Kaspersky.ni.dll,其中:
C:\Windows\assembly\NativeImages是至系统的图像缓存的路径;
v4.0.30319_32是<版本.NET框架>_<处理器架构(32or 64)>;
Kaspersky是程序集的易记名称;
9c87f327866f53aec68d4fee40cde33d是应用的哈希值;以及
Kaspersky.ni.dll是<程序集的易记名称>.ni.<扩展名>。
在创建64位应用的程序集ngen.exe的机器代码的图像时,相关部分可保存在注册表分支HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727\NGenService\Roots中,对于32位应用,可保存在HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727\NGenService\Roots\中。
如果对于位于GAC中的程序集安装图像,则可调用分支:…\Roots\Accessibility,版本=2.0.0.0,Culture=Neutral,PublicKeyToken=b03f5f7f11d50a3a,processorArchitecture=msil。但如果程序集并未安装在GAC中,则其可调用:…\Roots\C:/Program Files(x86)/ATI Technologies/ATI.ACE/Core-Static/A4.Foundation.DLL。
之前,开发者总是必须自己利用ngen.exe(或通过配置安装程序)来开始程序集的图像的创建、更新和移除。在中,可为某些程序集自动地创建图像。
在一个特定情况中,本机图像服务用于控制图像。这允许在装置静止不动时开发者推迟安装、更新和移除机器代码(这些进程随后执行)的图像。本机图像服务由安装应用或更新程序启动。这借助于实用程序ngen.exe完成。该服务结合保存在注册表中的请求队列进行工作,各个请求具有其自身的优先级。形成的优先级确定了将何时执行任务。
在另一个特定情况中,机器代码的图像不但根据开发者或管理员的主动性创建,而且由.NET框架平台自动创建。.NET框架平台自动地创建图像,跟踪JIT编译器的工作。大体上,在应用的操作期间创建图像花费很多时间,且因此,该操作通常随后被执行,为此目的,CLR环境将任务置于队列中,且在装置空闲期间执行任务。
CLR环境使用程序集结合模块(即,程序集结合器)来找出在执行对应的程序集时加载的程序集。CLR可使用若干类型的结合模块。图像结合模块(即,本机结合器)用于搜索图像。搜索所需的图像在两个阶段中执行,首先,给定模块识别文件系统中的程序集和图像,且其次,给定模块检查图像与程序集的对应关系。
图3示出了运行结合模块的方法。如图所示,在步骤310中,程序集结合模块搜索程序集,搜索在GAC中执行,GAC预先假定了搜索的程序集被签名且程序集的内容未被读取;且在应用目录中,其中打开程序集且读取元数据。
接下来,在步骤320中,图像结合模块在对应于识别的程序集的NIC中搜索图像。在识别图像的情况中,这在步骤330中被检查,且图像结合模块在步骤340中从图像读取所需的数据和元数据,以确保图像满足执行仔细分析的某些标准,包括但不限于,查阅:
·强名称;
·创建时间(图像应当比程序集更近);
·程序集和图像的MVID;
·.NET框架的版本;
·进程器架构;以及
·相关图像的版本(例如,图像mscorlib.dll)。
如果程序集没有强名称,则MVID用于检查。在步骤350处,分析图像来确定其是否是当前的,且如果其不是当前的,则控制在步骤370中传递至JIT编译器。否则,来自图像的代码在步骤360中加载。
从前述描述得出的是,本机图像的数目大致超过程序集的数目,而且由相同父程序集生成的本机图像的数目对于不同的设备以及不同的图像版本来说可能是不同的,所有这些都极大使分配图像的任务复杂化。一些常规文件分类方法使用云服务等,但还未创造出能够正确且有效地分类图像的解决方案。
发明内容
公开了用于对软件程序集的本机图像进行防病毒检查的示例性系统、方法和计算机程序产品。在一个方面,用于检测机器代码的恶意本机图像的示例性方法,所述方法包括:通过硬件处理器接收所述机器代码的本机图像;通过硬件处理器识别父程序集,所述父程序集用于创建所述本机图像;通过硬件处理器确定所述父程序集是否对应所述机器代码的本机图像;和当所述父程序集不对应所述机器代码的本机图像时,通过硬件处理器确定本机图像是恶意的。
在另一个示例性方面,确定所述父程序集是否对应所述机器代码的本机图像包括:确定所述父程序集的公共中间语言(CIL)代码和所述机器代码之间的对应关系。
在另一个示例性方面,使用一种或多种元数据元件确定所述父程序集是否对应所述机器代码的本机图像,所述一种或多种元数据元素包括:CIL代码、机器代码、元数据类型、清单、便携可执行的(PE)文件标头和公共语言运行(CLR)标头。
在另一个示例性方面,确定所述父程序集是否对应所述机器代码的本机图像包括:比较所述父程序集和所述机器代码的相应的元数据元素。
在另一个示例性方面,确定所述父程序集是否对应所述机器代码的本机图像包括:比较所述机器代码的原始的本机图像和所述机器代码的生成的本机图像的相应的元数据,其中,所述原始的本机图像是从所述父程序集生成的机器代码的保证未修改的本机图像。
在另一个示例性方面,用于执行机器代码的本机图像的防病毒分析的示例性方法包括:通过硬件处理器接收机器代码的本机图像;通过硬件处理器收集关于所述机器代码的本机图像的数据,所述数据包括存储在关于创建所述机器代码的本机映像的操作系统中的数据;通过硬件处理器基于所收集的数据识别父程序集,其用于创建所述机器代码的本机图像;通过硬件处理器执行所述父程序集的防病毒分析;和通过将所述父程序集的防病毒分析结果与所述本机图像相关联,将所述机器代码的本机图像从所述防病毒分析中排除。
在另一个示例性方面中,关于创建所述机器代码的本机图像的所收集的数据包括至所述操作系统的注册表中的父程序集的路径。
在另一个示例性方面中,其中关于所述机器代码的所收集的数据还包括一个或多个模块版本标识符(MVID)、强名称、机器代码的本机图像的元数据,以及至所述机器代码的本机图像的路径。
上述实施例的方面的简述用于提供本公开的基本理解。该概述不是对所有预期方面的广泛综述,并且既不是要确定所有方面的关键或重要元素,也不希望描绘本公开的任何范围或所有方面。其唯一目的在于以简化形式呈现一个或多个方面,作为随后的本公开的更详细的说明的序幕。为了实现前述内容,本公开的一个或多个方面包括在权利要求中所描述和特别指出的特征。
附图说明
以下附图,合并至本文并组成本文的一部分,示出了本公开的一个或多个示例性方面,以及与详细说明一起用于解释其原理及应用。
图1A示出了单个文件程序集的示例性布局;
图1B示出了多个文件程序集的示例性布局;
图1C示出了生成强名称的示例性进程;
图2示出了执行程序集代码的示例性方法;
图3示出了运行结合模块的方法;
图4示出了根据一个方面分类图像的示例性方法;
图5示出了根据一个方面的图像的示例性结构;
图6示出了根据一个方面的将分类分配给图像的示例性方法;
图7示出了能够实施本公开的系统和方法的通用计算机系统的实施例。
具体实施方式
在用于对软件程序集的本机图像进行防病毒检查的系统、方法和计算机程序产品的上下文中,描述实施例的方面。本领域的普通技术人员将认识到,以下的描述仅是说明性的并无意以任何方式进行限制。对于受益于本公开的本领域技术人员来说,其它方面将很容易想到。现在将参考如图附图中所示的示例方面的实施方式来详细描述。相同的编号将被尽可能地用于全部附图和下面的说明中,以指代相同或类似的物品。
图4示出了根据一个方面分类图像的示例性方法。如图所示,在步骤400中,获取图像。在一个实例中,图像可从本机图像缓存("NIC")获取(例如,如果图像安装在装置上且用作意欲在装置上使用),且在另一个实例中,图像可从任何其它的图像库获取(如,在装置用作储存器且图像并不意欲在装置上使用)。接下来,在步骤410中,确定图像的信任类别。在一个示例性方面中,将请求数据库来确定图像的信任类别,其中可使用图像的校验和。在另一个示例性方面中,可使用图像的MVID。模板也用于确定图像的种类。在下文中更详细论述以模板工作的机制。
如果图像在数据库中是未知的,则在步骤420中,确定创建该图像的父程序集。为了确定父程序集,至少可使用以下数据、数据结构和机制:MVID、注册表(例如,Windows注册表)、结合模块和强名称。
在一个示例性方面中,例如,当包含存在于当前装置上的程序集的MVID的数据库存在时,可使用经由MVID确定的结果。在此方面中,图像的MVID可在包含程序集的MVID的数据库中识别。
在另一个示例性方面中,当注册表中的条目在图像的创建期间被创建时,父程序集可从注册表中的条目来确定。在上文更详细论述了此条目的实例。在一个示例性方面中,条目可包含关于至父程序集的路径的信息、关于本机图像的信息以及各种辅助数据。通过将来自注册表的数据与从分析的影响获取的数据相比较,可识别父程序集。
在另一个示例性方面中,父程序集可从用于由强名称程序集创建的图像的强名称确定。父程序集的强名称的组成部分从图像取得,强名称生成,且基于该数据,确定了至装置的GAC中的、或以有序方式根据强名称保存程序集的数据库中父程序集的路径。
确定父程序集的进程取决于一定数目的因素,其例如可包括父程序集和图像的位置(例如,用户的装置或远程或本地数据库)、在其储存位置处危害程序集和图像的可能性、命名程序集(强名称或普通名称)的方法等。
在一个示例性方面中,在确定父程序集之后,本机图像与程序集之间的对应关系在步骤421中确定。如果存在本机图像(在创建之后)可在储存位置处未授权(例如,其可被危害、损坏等)的情况下改变的可能性,则执行该步骤。在一个示例性方面中,算法可用于确定使用图像结合模块(上文所述)的对应关系。在另一个示例性方面中,在确定父程序集之后,可创建来自此程序集(即,原始的本机图像,其是保证未改变的图像)的图像,且其可与进行分析来确定对应关系的本机图像直接比较。在一个示例性方面中,比较可逐字节地进行。
在一个示例性方面中,为了防止图像的未授权改变,仅允许对信任进程(例如,如,仅ngen.exe)改变图像,而仅容许对其它进程从本机图像读取数据。
一个示例性方面中,模板的机制可用于确定图像与父程序集之间的对应关系。在一个示例性方面中,如果没有父程序集与对应本机图像之间的对应关系,则图像认作是损坏的(即,恶意的)。损坏的图像与原始图像的差别可在于CIL代码、机器代码、类型的元数据、包含在CLR和PE标头中的信息等。
图5示出了根据一个方面本机图像的示例性结构。本机图像如父程序集具有某一结构。例如,程序集KasperskyLab.dll和图像KasperskyLab.ni.dll包含元数据和代码,其中程序集只包含CIL代码,而特定方面中的本机图像也包含机器代码和结构NativeImageHeader。基于该结构、元数据和代码,生成模板KasperskyLab.dll.tmpl(上文所述)且其与父程序集和由此创建的图像相关联(即,建立对应关系)。为了将结构、代码和元数据合并到模板中,例如,示例性系统和方法使用智能哈希技术(也称为本地敏感哈希)。在一个示例性方面中,生成了如图5中所示的模板。
更具体而言,数据(即,清单、元数据、CIL代码等)从程序集取得。相同的数据和机器代码从本机图像取得。处理对于由相同父程序集创建的图像的可能版本中的各个不变的数据(例如,从中计算校验和),且哈希形成且置于模板中。从图像的一个版本变为图像另一个版本的数据(如,机器代码)也被处理,且只能因此生成智能哈希值。在特定方面中,生成了用于机器代码的函数调用日志,具有分解的机器代码的列表或反映给定机器代码的实施的逻辑的任何其它实体;以及由这些实体形成的智能哈希值。在另一个特定方面中,这些实体直接用于模板中。应当注意的是,模板形成为以便清楚地关联(建立对应关系)父程序集和图像,而不管取决于装置的软件和硬件配置的图像版本。在图像的机器代码中产生变化且图像代码的执行的逻辑不再对应于程序集代码的执行的逻辑的情况中,没有在父程序集与图像之间基于模板建立对应关系,且确定图像为不对应程序集。
下文更详细描述使用模板确定对应关系的实例。例如,如果某一父程序集Kaspersky.dll存在,且在装置上对其创建图像Kaspersky.ni.dll。形成Kaspersky.dll.tmpl模板,使得有可能建立父程序集与图像之间的对应关系。则在装置上,更新软件和硬件(即,操作系统、.NET框架、进程器替换等的更新),且使图像Kaspersky.ni.dll的版本不再是当前的。因此,不可使用图像,且该图像的更新开始,且创建不同于之前版本的图像的新图像Kaspersky.ni.dll。在使用模板时,发现了更新的图像对应于父程序集(即,机器代码的执行的逻辑仍相同)。在另一个情况中,恶意程序安装在装置上,其改变图像Kaspersky.ni.dll。在此情况中,当使用模板时,确定了由恶意程序改变的图像不对应于父程序集(例如,机器代码的执行的逻辑不同于嵌入父程序集的逻辑)。
再次参看图4,在确定父程序集之后,建立程序集的信任类别(步骤430)。程序集的信任类别为装置的保护系统的部分上的程序集(如,防病毒应用)中的信任度(信任或不信任)。在一个示例性方面中,存在两个可能的程序集类别:信任的程序集或不信任的程序集。在本公开内容的上下文中,人们应当将程序集的种类的概念与程序集的危险状态的概念区分开。本公开内容的上下文中的程序集的危险状态可为:危险或不危险。还存在其危险状态并未确定的未知程序集。程序集的危险状态确定程序集对程序集安装到其上的装置的危险性。在一个示例性方面中,程序集对装置的危险性包括在执行程序集的代码期间从装置窃取数据、置换数据或对装置的软件未授权修改的可能性。
信任程序集包括由保护系统确定为不危险的程序集。具体而言,该装置的保护系统,在为程序集分配信任类别时,在设备上当前状态的上下文中并且基于关于该程序集的信息在本地这样做。在一个特定方面中,此信息为程序集的危险状态。程序集的危险状态可通过使用程序集的标识信息确定,如,程序集的MVID、程序集的强名称、程序集的校验和等。为此,在步骤431中,对信誉数据库组织请求。一方面,数据库存在于程序集储存在其上的装置上,而另一方面,数据库位于远程。如果程序集是已知的(即,关于其的信息包含在信誉数据库中),则程序集已经相应地取决于来自信誉数据库的信息具有不危险或危险的危险状态。如果程序集的标识信息未包含在数据库中,则程序集认作是未知的,即,程序集不具有状态(即,状态未确定)。如果程序集具有不危险状态,则在一个特定方面中,程序集接收信任的类别。在另一个特定方面中,程序集的种类由关于程序集的其它实际和统计信息确定,例如,通过将程序集安装在危险状态已知的带有安装程序包的装置上或其附属物上。
在特定方面中,关于程序集的实际信息是关于数字签名(例如,签名的强名称或X.509)的信息。在此情况下,应当验证数字签名。对于步骤432中的验证,获取关于程序集的数字签名的标识信息,例如,其包含关于制造者的信息或文件或其部分的哈希值。签名可位于程序集中或目录(即,目录签名)中。程序集的数字签名的危险状态通过使用签名的标识信息确定,由此组织对信誉数据库的查询。如果签名已知(即,关于签名的信息包含在信誉数据库中),则签名已经具有不危险或危险的状态。如果签名的标识信息未包含在数据库中,则签名认作是未知的,即,签名没有状态(即,状态未知)。在特定方面中,如果签名具有不危险的状态,则在特定方面中,对程序集给予信任类别,且如果签名具有危险状态,则在特定方面中,对程序集给予不信任类别。
状态以多种方式分配至签名。在一个特定方面中,签名的状态取决于制造者。另一方面,签名的状态由其签名状态已知的安装程序的承继(inheritance)来分配。另一方面,签名的状态取决于签名的普及性分配,例如,签名越普及,则分配越高水平的信任。
在一个示例性方面中,在步骤433处,信任类别由程序集的防病毒检查来确定,为此,各种方法用于检测恶意程序,包括签名、启发式、统计等。在此方面,如果从防病毒检查的结果中发现程序集不危险,则程序集接收信任的类别。否则,程序集被认作是不受信任的。
在确定程序集的信任类别之后,在步骤440中,确定图像的信任类别。在特定方面中,对图像分配针对父程序集确定的信任类别。在另一个方面中,图像的类别由上文针对步骤410所述的方法确定。
根据示例性方面,当保护系统安装在装置上时,示例性系统和方法确认图像的存储库并未且将不会在未授权情况下改变。
图6示出了用于将类别分配至图像的示例性方法。如图所示,在步骤600中,限制了对图像的存储库或至少一个图像的访问。一方面,限制包括仅允许信任进程或有限数目的某些信任程序(如,仅进程ngen.exe)改变图像,所有其它进程仅允许读取访问。在另一个特定方面中,限制包括完全阻止访问写入作为整体的库中或至少一个图像中。
接下来,在步骤610中,确定用于创建其访问已经被限制的图像的父程序集。在步骤620中,更新至少一个图像(例如,由另一个图像替换)。在一个特定方面中,更新包括移除之前创建的图像和由操作系统创建新图像(例如,通过在父程序集上运行ngen.exe或通过自动图像创建服务)。另一方面,更新图像数据的仅一部分,如,机器代码,且更新通过信任的程序来完成。在第一种情况中,在其移除之后重新创建图像。在一个特定方面中,这立即执行,且在另一个情况中,创建推迟一定时间长度,例如,直到如步骤610中确定的那样,运行更新的图像的父程序集。在步骤630中,将父程序集的类别分配至图像。
防病毒应用在其运行中使用信任类别,例如,其除去具有信任或不信任的类别的本机图像,或大致限制其使用,例如,防病毒应用限制其对由操作系统提供的资源的访问。
在一个示例性方面中,防病毒应用可执行检测到的父程序集的防病毒扫描,且从防病毒分析中排除机器代码的本机图像,但使父程序集的防病毒扫描的结果与机器代码的本机图像相关联。在仅扫描的父程序集时,这改善了计算机系统的防病毒分析的性能,同时由其创建的机器代码的本机图像将承继程序集的信任类别和/或危险状态(判定)。因此,未执行本机图像的防病毒扫描。
图7示出了公开的系统和方法可根据示例性方面在其上实施的通用计算机系统(其可为个人计算机或服务器)的实例。如图所示,计算机系统包括中央处理单元21、系统存储器22和连接各种系统构件(包括与中央处理单元21相关联的存储器)的系统总线23。系统总线23实现为从现有技术中获知的任何总线结构,依次包括总线存储器或总线存储器控制器,外围总线和本地总线,其能够与任何其它总线构架交互。系统存储器包括永久性存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统(BIOS)26包括确保信息在个人计算机20的元素之间传输的基本进程,如,借助于ROM24加载操作系统时的那些程序。
个人计算机20继而又包括用于读取和写入数据的硬盘27、用于在可移动磁盘29上读取和写入的磁盘驱动器28以及用于在可移动光盘31,如CD-ROM、DVD-ROM和其它光学信息介质上读取和写入的光学驱动器30。硬盘27、磁盘驱动器28和光学驱动器30分别穿过硬盘接口32、磁盘接口33和光学驱动器接口34连接到系统总线23上。驱动器和对应的计算机信息介质为用于个人计算机20的计算机指令、数据结构、程序模块和其它数据的储存的功率独立模块。
本公开内容提供了使用硬盘27、可移动磁盘29和可移动光盘31的系统的实施方式,但应当理解的是,有可能使用其它类型的计算机信息介质56(固态驱动器、闪存卡、数字盘、随机存取存储器(RAM)等),其能够储存可由计算机可读的形式的数据,其经由控制器55连接到系统总线23上。
计算机20具有文件系统36,所记录的操作系统35、以及附加的程序应用37、其它程序模块38和程序数据39被存储在其中。用户能够通过使用输入装置(键盘40、鼠标42)将命令和信息输入个人计算机20中。其它输入装置(未示出)可使用:麦克风、操纵杆、游戏控制器、扫描仪等。此类输入装置通常经由继而又连接到系统总线上的串行端口46插入计算机系统20中,但它们可以以其它方式连接,例如,借助于并行端口、游戏端口或通用串行总线(USB)。显示器47或其它类型的显示装置也穿过接口如视频适配器48连接到系统总线23上。除显示器47之外,个人计算机可配备有其它外围输出装置(未示出),如,扬声器、打印机等。
个人计算机20能够在网络环境中使用,使用网络连接到一个或多个远程计算机49。远程计算机(或多个计算机)49也是个人计算机或服务器,其具有所描述的个人计算机20(如图4中所示)的性质中大部分或所有上述元素。其它装置也可存在于计算机网络中,如,路由器、网络基站、对等装置或其它网络节点。
网络连接可形成局域计算机网络(LAN)50和广域计算机网络(WAN)。此网络用于企业计算机网络和内部公司网络中,且它们一般可访问因特网。在LAN或WAN网络中,个人计算机20通过网络适配器或网络接口51连接到局域网络50上。当使用网络时,个人计算机20可使用调制解调器54或其它模块来用于提供与广域计算机网络如因特网的通信。可为内部或外部装置的调制解调器54由串行端口46连接到系统总线23上。应当注意的是,网络连接仅为示例,且不必绘出网络的准确构造,即,实际上存在由技术通信模块形成一个计算机与另一个计算机的连接的其它方式。
在各种方面中,本文所述的系统和方法可在硬件、软件、固件或它们的任何组合中实施。如果在软件中实施,则方法可储存为非暂时性计算机可读介质上的一个或多个指令或代码。计算机可读介质包括数据储存器。举例来说但不限制的是,此计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM、闪速存储器或其它类型的电学、磁性或光学储存介质,或可用于传送或储存指令或数据结构形式的期望程序代码且可由通用计算机的处理器访问的任何其它介质。
在各种方面中,本公开中以模块为术语的方式描述了系统和方法。如本文所使用的。如本文使用的术语"模块"是指使用硬件来实施的现实世界的装置、构件或构件布置,例如,如,通过专用集成电路(ASIC)或字段可编程门阵列(FPGA),或作为硬件和软件的组合,如,通过微处理器系统和一组指令来实施模块的功能,其(在执行时)将微处理器系统转换成专用装置。模块还可实施为两者的组合,其中某些功能由硬件单独促进,而其它功能由硬件和软件的组合来促进。在某些实施方式中,模块的至少一部分(且有时全部)可在通用计算机的处理器上执行(如,在以上的图6中更详细描述的处理器)。因此,各个模块均可以以多种适合的构造实现,且不应当限于本文列举的任何特定实施方式。
为了清楚起见,本文并未公开这些方面的所有常规特征。将认识到的是,在本公开内容的任何实际实施方式的开发中,必须进行许多实施方式特有的决定,以便实现开发者特定的目标,且这些特定目标将对于不同的实施方式和不同的开发者变化。将理解的是,此开发努力可能很复杂且耗时,但仍将是受益于本公开内容的本领域的普通技术人员的工程的常规任务。
此外,将理解的是,本文使用的措辞或术语为了描述而非限制的目的,使得本说明书的措辞或术语将由本领域的技术人员鉴于本文提出的教导内容和方针与相关领域中的技术人员的知识组合来理解。此外,不期望说明书或权利要求中的任何用语归于不常见或特殊的意义,除非明确地如此阐明。
本文公开的各种方面包含本文通过图示提到的已知模块的目前和未来的已知的等同物。此外,尽管已经示出和描述了一些方面和应用,但受益于本公开内容的本领域的技术人员将清楚的是,比上文提到的更多的改型是可能的,而不会脱离本文公开的发明构想。

Claims (16)

1.一种用于检测机器代码的恶意本机图像的方法,所述方法包括:
通过硬件处理器接收所述机器代码的本机图像;
通过所述硬件处理器识别父程序集,所述父程序集用于创建所述本机图像;
通过所述硬件处理器确定所述父程序集是否对应所述机器代码的本机图像;和
当所述父程序集不对应所述机器代码的本机图像时,通过所述硬件处理器确定所述本机图像是恶意的。
2.根据权利要求1所述的方法,其中通过所述硬件处理器确定所述父程序集是否对应所述机器代码的本机图像包括:确定所述父程序集的公共中间语言(CIL)代码和所述机器代码之间的对应关系。
3.根据权利要求1所述的方法,其中通过所述硬件处理器使用一种或多种元数据元素确定所述父程序集是否对应所述机器代码的本机图像,所述一种或多种元数据元素包括:CIL代码、机器代码、元数据类型、清单、便携可执行的(PE)文件标头和公共语言运行(CLR)标头。
4.根据权利要求1所述的方法,其中,通过所述硬件处理器确定所述父程序集是否对应所述机器代码的本机图像包括:比较所述父程序集和所述机器代码的相应的元数据元素。
5.根据权利要求1所述的方法,其中,通过所述硬件处理器确定所述父程序集是否对应所述机器代码的本机图像包括:比较所述机器代码的原始的本机图像和所述机器代码的生成的本机图像的相应的元数据,其中,所述原始的本机图像是从所述父程序集生成的所述机器代码的保证未修改的本机图像。
6.一种用于执行机器代码的本机图像的防病毒分析的方法,所述方法包括:
通过硬件处理器接收所述机器代码的本机图像;
通过所述硬件处理器收集关于所述机器代码的本机图像的数据,所述数据包括存储在关于创建所述机器代码的所述本机图像的操作系统中的数据;
通过所述硬件处理器基于所收集的数据识别父程序集,其用于创建所述机器代码的所述本机图像;
通过所述硬件处理器执行所述父程序集的防病毒分析;和
通过将所述父程序集的所述防病毒分析结果与所述本机图像相关联,将所述机器代码的所述本机图像从所述防病毒分析中排除。
7.根据权利要求6所述的方法,其中关于创建所述机器代码的所述本机图像的所收集的数据包括至所述操作系统的注册表中的父程序集的路径。
8.根据权利要求6所述的方法,其中关于所述机器代码的所收集的数据还包括模块版本标识符(MVID)、强名称、所述机器代码的所述本机图像的元数据,以及至所述机器代码的所述本机图像的路径中的一个或多个。
9.一种用于检测机器代码的恶意本机图像的系统,所述系统包括:
硬件处理器,被配置为:
接收所述机器代码的本机图像;
识别父程序集,所述父程序集用于创建所述本机图像;
确定所述父程序集是否对应所述机器代码的所述本机图像;和
当所述父程序集不对应所述机器代码的所述本机图像时,确定所述本机图像是恶意的。
10.根据权利要求9所述的系统,其中确定所述父程序集是否对应所述机器代码的所述本机图像包括:确定所述父程序集的公共中间语言(CIL)代码和所述机器代码之间的对应关系。
11.根据权利要求9所述的系统,其中使用一种或多种元数据元素确定所述父程序集是否对应所述机器代码的所述本机图像,所述一种或多种元数据元素包括:CIL代码、机器代码、元数据类型、清单、便携可执行的(PE)文件标头和公共语言运行(CLR)标头。
12.根据权利要求9所述的系统,其中,确定所述父程序集是否对应所述机器代码的所述本机图像包括:比较所述父程序集和所述机器代码的相应的元数据元素。
13.根据权利要求9所述的系统,其中,确定所述父程序集是否对应所述机器代码的所述本机图像包括:比较所述机器代码的原始的本机图像和所述机器代码的生成的本机图像的相应的元数据,其中,所述原始的本机图像是从所述父程序集生成的所述机器代码的保证未修改的本机图像。
14.一种用于执行机器代码的本机图像的防病毒分析的系统,所述系统包括:
硬件处理器,被配置为:
接收所述机器代码的本机图像;
收集关于所述机器代码的所述本机图像的数据,所述数据包括存储在关于创建所述机器代码的所述本机图像的操作系统中的数据;
基于所收集的数据识别父程序集,其用于创建所述机器代码的所述本机图像;
执行所述父程序集的防病毒分析;和
通过将所述父程序集的所述防病毒分析结果与所述本机图像相关联,将所述机器代码的所述本机图像从所述防病毒分析中排除。
15.根据权利要求14所述的系统,其中关于创建所述机器代码的所述本机图像的所收集的数据包括至所述操作系统的注册表中的父程序集的路径。
16.根据权利要求14所述的系统,其中关于所述机器代码的本机图像的所收集的数据还包括模块版本标识符(MVID)、强名称、机器代码的所述本机图像的元数据,以及至所述机器代码的所述本机图像的路径中的一个或多个。
CN201610066755.0A 2015-07-21 2016-01-29 对软件程序集的本机图像进行防病毒检查的系统和方法 Active CN105701405B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/804,868 US9367686B1 (en) 2015-07-21 2015-07-21 System and method for antivirus checking of native images of software assemblies
US14/804,868 2015-07-21

Publications (2)

Publication Number Publication Date
CN105701405A CN105701405A (zh) 2016-06-22
CN105701405B true CN105701405B (zh) 2018-12-07

Family

ID=54106187

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610066755.0A Active CN105701405B (zh) 2015-07-21 2016-01-29 对软件程序集的本机图像进行防病毒检查的系统和方法

Country Status (3)

Country Link
US (1) US9367686B1 (zh)
EP (1) EP3121750B1 (zh)
CN (1) CN105701405B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10255435B1 (en) * 2016-02-18 2019-04-09 Symantec Corporation Systems and methods for establishing a reputation for related program files
US10713359B2 (en) * 2017-09-29 2020-07-14 AO Kaspersky Lab System and method of identifying a malicious intermediate language file
US10846403B2 (en) * 2018-05-15 2020-11-24 International Business Machines Corporation Detecting malicious executable files by performing static analysis on executable files' overlay
EP4089555B1 (en) * 2021-05-13 2024-03-06 AO Kaspersky Lab Systems and methods for verifying the integrity of a software installation image

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101359355A (zh) * 2007-08-02 2009-02-04 芯微技术(深圳)有限公司 Windows系统下受限帐户提升用户权限的方法
CN101615230A (zh) * 2009-08-07 2009-12-30 浪潮电子信息产业股份有限公司 一种文件可信执行和可信保护的方法
CN102663318A (zh) * 2012-03-22 2012-09-12 百度在线网络技术(北京)有限公司 浏览器及客户端
CN104781785A (zh) * 2012-09-05 2015-07-15 微软公司 为应用从中间语言代码生成本机代码

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6535903B2 (en) * 1996-01-29 2003-03-18 Compaq Information Technologies Group, L.P. Method and apparatus for maintaining translated routine stack in a binary translation environment
US6560774B1 (en) * 1999-09-01 2003-05-06 Microsoft Corporation Verifier to check intermediate language
US7124408B1 (en) * 2000-06-28 2006-10-17 Microsoft Corporation Binding by hash
US6993751B2 (en) * 2001-05-14 2006-01-31 Microsoft Corporation Placing exception throwing instructions in compiled code
US7543271B2 (en) * 2003-09-08 2009-06-02 Microsoft Corporation Compiling source code using generic classes
US7743423B2 (en) * 2004-02-03 2010-06-22 Microsoft Corporation Security requirement determination
US7266804B2 (en) * 2004-02-20 2007-09-04 Microsoft Corporation Strategy for selectively making non-public resources of one assembly visible to another
US7631302B2 (en) * 2004-11-30 2009-12-08 Microsoft Corporation System and method for validation of arguments provided to an application
CN101226569A (zh) * 2007-01-19 2008-07-23 国际商业机器公司 在虚拟机中验证代码模块的方法及装置
US8281410B1 (en) * 2008-03-31 2012-10-02 Symantec Corporation Methods and systems for providing resource-access information
US9250938B2 (en) * 2008-10-15 2016-02-02 Microsoft Technology Licensing, Llc Caching runtime generated code
US8918873B1 (en) * 2009-07-02 2014-12-23 Symantec Corporation Systems and methods for exonerating untrusted software components
US8352484B1 (en) * 2010-07-02 2013-01-08 Symantec Corporation Systems and methods for hashing executable files
US9584877B2 (en) * 2011-06-16 2017-02-28 Microsoft Technology Licensing, Llc Light-weight validation of native images
US8683207B2 (en) * 2011-12-19 2014-03-25 Microsoft Corporation Updating signature algorithms for strong name binding

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101359355A (zh) * 2007-08-02 2009-02-04 芯微技术(深圳)有限公司 Windows系统下受限帐户提升用户权限的方法
CN101615230A (zh) * 2009-08-07 2009-12-30 浪潮电子信息产业股份有限公司 一种文件可信执行和可信保护的方法
CN102663318A (zh) * 2012-03-22 2012-09-12 百度在线网络技术(北京)有限公司 浏览器及客户端
CN104781785A (zh) * 2012-09-05 2015-07-15 微软公司 为应用从中间语言代码生成本机代码

Also Published As

Publication number Publication date
US9367686B1 (en) 2016-06-14
CN105701405A (zh) 2016-06-22
EP3121750A1 (en) 2017-01-25
EP3121750B1 (en) 2017-09-06

Similar Documents

Publication Publication Date Title
CN105631337B (zh) 控制机器代码的本机图像访问操作系统资源的系统及方法
US11100546B2 (en) Method and system for provenance tracking in software ecosystems
US11372980B2 (en) Blockchains for software component vulnerability databases
CN103530563B (zh) 用于更新经授权软件的系统和方法
EP2807598B1 (en) Identifying trojanized applications for mobile environments
US20160021174A1 (en) Computer implemented method for classifying mobile applications and computer programs thereof
JP5992622B2 (ja) 悪意あるアプリケーション診断装置及び方法
CN109873804A (zh) 基于行为的服务识别方法、装置、设备及可读存储介质
CN105760787B (zh) 用于检测随机存取存储器中的恶意代码的系统及方法
CN105701405B (zh) 对软件程序集的本机图像进行防病毒检查的系统和方法
US9229758B2 (en) Passive monitoring of virtual systems using extensible indexing
US9069963B2 (en) Statistical inspection systems and methods for components and component relationships
US11533182B2 (en) Identity-based security platform and methods
Fu et al. Data correlation‐based analysis methods for automatic memory forensic
CN105631336B (zh) 检测移动装置上的恶意文件的系统及方法
JP2011233081A (ja) アプリケーション判定システムおよびプログラム
JP2021516379A (ja) ライセンス検証装置
CN113010268B (zh) 恶意程序识别方法及装置、存储介质、电子设备
RU2628920C2 (ru) Способ обнаружения вредоносных сборок
RU2617925C2 (ru) Способ антивирусной проверки компьютерной системы
RU2625052C1 (ru) Способ ограничения доступа образа машинного кода к ресурсам операционной системы
JP6884652B2 (ja) ホワイトリスト管理システムおよびホワイトリスト管理方法
US20240134979A1 (en) Systems and Methods for API Security Integration
Cam et al. Detect repackaged android applications by using representative graphs
CN104077304B (zh) 文件识别系统和方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant