CN109583201A - 识别恶意中间语言文件的系统和方法 - Google Patents

识别恶意中间语言文件的系统和方法 Download PDF

Info

Publication number
CN109583201A
CN109583201A CN201810770368.4A CN201810770368A CN109583201A CN 109583201 A CN109583201 A CN 109583201A CN 201810770368 A CN201810770368 A CN 201810770368A CN 109583201 A CN109583201 A CN 109583201A
Authority
CN
China
Prior art keywords
file
resource
similarity
analyzed
hash
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
Application number
CN201810770368.4A
Other languages
English (en)
Other versions
CN109583201B (zh
Inventor
弗拉基米尔·V·克雷洛夫
亚历山大·V·利斯金
阿列克谢·E·安东诺夫
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
Priority claimed from RU2017133835A external-priority patent/RU2660643C1/ru
Application filed by Kaspersky Lab AO filed Critical Kaspersky Lab AO
Publication of CN109583201A publication Critical patent/CN109583201A/zh
Application granted granted Critical
Publication of CN109583201B publication Critical patent/CN109583201B/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/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • 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/564Static detection by virus signature recognition
    • 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/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bioethics (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种用于识别恶意中间语言文件的系统和方法。在一个示例性方面中,所述系统包括包含已知恶意文件的散列的数据库;被配置成从正在被分析的文件中选取资源的集合的资源分配模块;耦接到所述资源分配模块的散列计算模块,所述散列计算模块被配置成计算所述资源的集合的感知散列;以及耦接到其它模块的分析模块,所述分析模块被配置成通过将所述感知散列与来自已知恶意文件的资源的集合的感知散列进行比较来识别所述资源的集合与所述来自已知恶意文件的资源的集合之间的相似度,基于所述相似度确定所述正在被分析的文件的有害性,以及当所述有害性超过预设阈值时,移除或隔离所述正在被分析的文件。

Description

识别恶意中间语言文件的系统和方法
技术领域
本发明总体上涉及用于计算机安全的解决方案,更具体地,涉及识别恶意中间语言文件的系统和方法。
背景技术
随着技术的进步,保留在计算设备上的文件的数量正在显著增长。计算机和移动设备在不同的操作系统(OS)的控制下运行且通常包含各种已安装的应用程序和用户文件。此外,操作系统的应用程序和部件定期更新,因此,相同的部件在不同的设备上或对于不同的用户可能具有不同的版本。由提供的的平台正在变得越来越普及,其促进了整个用户文件的增加。许多应用程序正在适应这种技术。.NET平台的一个关键特征是,不管创建应用程序时使用的.NET平台的高级语言如何,编译器都将初始代码转换成称为微软中间语言(MSIL)的中间语言。MSIL是独立于处理器并且能够有效地被转换为机器代码的指令集。
应该注意的是,恶意软件(例如计算机病毒、特洛伊木马、互联网蠕虫)的数量也在增长。创建恶意软件的犯罪分子也经常利用.NET平台来创建恶意软件。
安全应用程序(诸如抗病毒应用程序)采用各种方法来检测恶意软件,其中包括使用.NET平台创建的文件的分析方法。
然而,识别中间语言文件的有害性的当前方法是资源和时间密集型的。因此,在本领域中存在改进识别中间语言文件的有害性的过程的需要。
发明内容
公开了用于检测恶意中间语言文件的系统和方法。在一个示例性方面中,提供了一种用于检测恶意中间语言文件的方法。在该方面中,所述方法包括:从正在被分析的文件中选取资源的集合,其中,所述文件是中间语言文件;计算所述资源的集合的感知散列;通过将所述感知散列与来自已知恶意文件的资源的集合的感知散列进行比较来识别所述资源的集合与所述来自已知恶意文件的资源的集合之间的相似度;基于所述相似度确定所述正在被分析的文件的有害性;以及当所述有害性超过预设阈值时,移除或隔离所述正在被分析的文件。
根据另一示例性方面,所述方法包括,所述文件是通用中间语言(CIL)文件。
根据另一示例性方面,所述方法包括当文件缺乏来自可信认证中心的数字签名时,和/或当文件的大小或校验和已经改变时,将文件识别为所述正在被分析的文件。
根据另一示例性方面,所述方法包括将过滤器应用于所述资源的集合以确定所述资源的集合中的哪些资源是由随机方法生成的;以及在识别所述相似度之前,丢弃所述资源的集合中的由随机方法生成的那部分资源。
根据另一示例性方面,所述方法包括通过对感知散列的逐位比较,将已知恶意文件的感知散列组合成共同散列。
根据另一示例性方面,提供了一种用于检测恶意中间语言文件的系统。在该方面中,所述系统包括:包含已知恶意中间语言文件的散列的数据库;在硬件处理器上执行的资源分配模块,所述资源分配模块被配置成从正在被分析的文件中选取资源的集合,其中,所述文件是中间语言文件;耦接到所述资源分配模块的散列计算模块,所述散列计算模块被配置成计算所述资源的集合的感知散列;以及耦接到其它模块(即所述数据库、所述资源分配模块和所述散列计算模块)的分析模块,所述分析模块被配置成:1)通过将所述感知散列与来自已知恶意文件的资源的集合的感知散列进行比较来识别所述资源的集合与所述来自已知恶意文件的资源的集合之间的相似度,2)基于所述相似度确定所述正在被分析的文件的有害性,3)当所述有害性超过预设阈值时,移除或隔离所述正在被分析的文件。
根据另一示例性方面,提供了一种用于检测恶意中间语言文件的计算机可读介质,其中,所述介质上包含有指令,当该指令执行时,执行上面描述的方法。
以上对示例性方面的简化概述用于提供对本发明的基本理解。该概述并不是对所有预期方面的广泛综述,并且既不旨在识别所有方面的关键要素或重要要素,也不旨在描绘本发明的任何方面或所有方面的范围。它的唯一目的是以简化的形式呈现一个或多个方面,作为随后的对本发明的更详细的描述的前奏。为了实现前述目的,本发明的一个或多个方面包括权利要求中所描述和示例性指出的特征。
附图说明
并入本说明书中并构成本说明书的一部分的附图示出了本发明的一个或多个示例性方面,并且与详细描述一起用于解释它们的原理和实现方式。
图1是根据本发明的示例性方面的识别恶意中间语言文件的系统的框图。
图2是根据本发明的示例性方面的识别恶意CIL文件的方法的流程图。
图3呈现了根据本发明的示例性方面的其上可以实现本发明的通用计算机系统的示例。
具体实施方式
本文在用于检测恶意中间语言文件的系统、方法和计算机程序产品的上下文中描述了示例性方面。本领域的普通技术人员将认识到,以下描述仅仅是说明性的,而不旨在以任何方式进行限制。其它方面将容易地将其自身暗示给了解本发明的优点的本领域的技术人员。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同的或类似的项目。
下列术语将贯穿本发明、附图和权利要求使用。
通用中间语言(CIL)文件是由支持.NET平台的编译器创建的可执行文件,其包含从高级语言(例如.NET平台上的C#)到中间语言CIL的转换代码。通常,CIL文件是信息介质上的命名数据区域。在特定方面中,CIL文件是包含从.NET平台的高级语言到CIL的转换代码的连续存储区域。
图1是根据本发明的示例性方面的识别恶意中间语言文件的系统100的框图。
识别恶意中间语言文件(例如,CIL文件)的系统100可以包括安全应用程序140(诸如抗病毒应用程序)和数据库190。在示例性方面中,安全应用程序140可以包括资源分配模块110、散列计算模块120和分析模块130。在通常情况下,安全应用程序140在计算设备上运行。安全应用程序140识别需要被进行有害性分析的中间语言文件180(为了便于讨论,“CIL文件180”)(在下文中,用于分析的文件)并将该用于分析的文件导向资源分配模块110。在一个方面中,安全应用程序140识别用于分析的不具有来自可信认证中心的数字签名的CIL文件180。在另一方面中,安全应用程序140识别用于分析的、大小或校验和已经改变的CIL文件180,由于CIL文件180是转换成中间代码的文件,因此,当在Windows操作系统上更新.NET框架时,这样的文件可以“重新组装”以匹配最新的.NET版本,并且在该过程中,可以改变文件的大小或文件的校验和。例如,这是为什么白名单将无法正确地将此文件识别为非恶意的示例,因为在改变文件的大小或文件的校验和之后,该文件将不再被视为安全的(被信任的)。在本发明中,尽管校验和或大小改变(即,考虑CIL文件的可变性),但是描述的其它静态分析方法能够确定CIL文件是否是恶意的。本领域普通技术人员将认识到,虽然文件180被称为CIL文件180,但是其可以用任何其它的中间语言文件替代并且系统100将同样地起作用。
在一个方面中,资源分配模块110在用户的设备上实现。在另一方面中,资源分配模块110在远程服务器上实现或作为云服务实现。资源分配模块110被设计为从用于分析的CIL文件中挑选出资源。在通常情况下,资源分配模块110从CIL文件的资源区域挑选出行。在一个方面中,资源分配模块110挑选出由ANSI字符组成的行。在另一方面中,资源分配模块110确定由上述分配的行组成的语言学上的语言。在分配上述行之后,资源分配模块110借助现有技术中已知的过滤器确定挑选出的ANSI行中的哪些行是通过随机方法生成的。在通常情况下,资源分配模块110从正在被分析的CIL文件的进一步分析中丢弃通过随机方法生成的行。
资源分配模块110将挑选出的没有被丢弃的ANSI行的集合发送至散列计算模块120。
在一个方面中,散列计算模块120在用户的设备上实现。在另一方面中,散列计算模块120在远程服务器上实现或作为云服务实现。散列计算模块120被设计为计算从资源分配模块110接收的、挑选出的正在被分析的CIL文件180的ANSI行的集合的感知散列。该感知散列是通过设计为创建比较散列的方法来计算的散列。
用于计算感知散列的方法在现有技术中是已知的。由散列计算模块120来计算感知散列的一个示例是使用离散余弦变换(DCT)的方法。
令x[m]是长度为N的行的集合,其中,m=0,…,(N-1)。
DCT可以定义为:
可以将该表达式改写为:
其中:c[n,m]是在具有n行和m列的DCT矩阵的交叉点处的元素。
将DCT矩阵定义为:
在一个方面中,可以针对任一给定长度的行预先计算DCT矩阵。因此,DCT可以表示为:
DCT=M×I×M'
其中:M为DCT矩阵,I为二元维度的行的集合,M'为逆矩阵。
应当注意,由于信息的较大部分通常集中在几个低频系数中,因此,DCT的低频系数对于行的操纵是最稳定的。
在给定的示例中,矩阵I是分配的ANSI行的集合,该集合是对二元维度(行的长度等于行的数量,长度由零字符补充,空行用零字符填充)的补充。接下来将矩阵I压缩到32×32的维数。在一个方面中,可以通过比较模块112将现有技术中已知的各种过滤器应用于矩阵I。因此,得到矩阵I',则在矩阵I'的左上角找到低频系数,而在一个方面中,散列计算模块120从左上角挑选出值为8×8的块(例如,ANSI字符的整数值)。接下来,计算所有64个值的平均值。在下一步骤中,创建64位的序列,其中,对于64个值中的每一个值,根据该位的值是大于或小于平均值来设置或清除序列的对应位。在下一步骤中,计算感知散列,借此将64个单独的位转换为64位(64-bit)值。位的优先顺序没有意义。
将计算出的感知散列(64位值)通过散列计算模块120发送到分析模块130。在一个方面中,已知为恶意的CIL文件的被分配的ANSI行的感知散列可以通过散列计算模块120预先计算并保存在数据库190中,数据库190还保存与计算出的感知散列对应的已知的恶意CIL文件的标识符。将通过现有技术的任何一种已知方法或这些方法的组合来提前完成已知恶意CIL文件的有害性的分析。
在一个方面中,分析模块130在用户的设备上实现。在另一方面中,分析模块130在远程服务器上实现或作为云服务实现。分析模块130被设计为,基于由散列计算模块120针对正在被分析的文件180的挑选出的ANSI行的集合计算出的感知散列与已知恶意CIL文件的感知散列的比较结果来识别正在被分析的CIL文件180的有害性。
在一个方面中,为了比较,针对从正在被分析的CIL文件180中挑选出的ANSI行的集合和已知的恶意CIL文件计算相似度。在通常情况下,相似度是概率数值,并且值越高,挑选出的ANSI行的集合的相似性就越大。在通常情况下,使用用于比较感知散列中不同位的数量的海明距离(Hemming distance)来计算相似度。零距离表示分配的ANSI行的集合可能相同,挑选出的正在被比较的ANSI行的集合的相似度等于1。距离5表示挑选出的ANSI行的集合是不同的,然而彼此相似,其相似度为高(诸如0.75)。如果距离为10或更大,则它们可能是挑选出的完全不同的ANSI行的集合,其相似度为低(诸如0.1)。在一个方面中,可以将相似度与海明距离的对应关系的值保存在数据库190中。在另一方面中,比较模块112使用阈值(对于相似度或对于海明距离)。在另一方面中,通过感知散列的逐位组合,比较模块112将依据海明距离的已知的恶意CIL文件的最接近的感知散列组合成共同(通用)散列。如果已知的恶意CIL文件(或恶意CIL文件族)将ANSI行的集合从一个版本更新为另一个版本,而ANSI行的集合没有显著变化,并且记住与已知的恶意的CIL文件的所有版本相对应的所有ANSI行的集合是不可行的(因此,与所有ANSI行的集合进行比较是不可行的),则这种方式在识别一组类似的CIL文件时可能是有用的。
如果超过阈值(例如,阈值为0.9,计算出的相似度为0.99),则认为ANSI行的集合是相似的,并且分析模块130做出正在被分析的CIL文件180是恶意的判定。
在通常情况下,由分析模块130将关于正在被分析的CIL文件180的有害性的判定发送至安全应用程序140。
安全应用程序140在从分析模块130接收关于正在被分析的CIL文件180的有害性的判定的情况下,执行用于确保计算设备的安全的动作。在一个方面中,安全应用程序140移除正在被分析的CIL文件180。在另一方面中,安全应用程序140将正在被分析的CIL文件180放置在隔离区。在另一方面中,安全应用程序140阻止CIL文件180的活动,例如,阻止网络或文件活动。
图2是识别恶意中间语言文件的方法200的流程图。方法200是系统100的多个部分的示例性实现,系统100的多个部分例如是在计算机系统(诸如在图3中示出的计算机系统20)上执行的资源分配模块110、比较模块112、散列计算模块120、分析模块130。
在步骤210中,资源分配模块110用于从正在被分析的文件180中挑选出行的集合,其中,正在被分析的文件包含从高级语言到中间语言的转换代码。在通常情况下,正在被分析的文件是诸如CIL文件的中间语言文件,但不限于CIL文件。在一个方面中,挑选出ANSI格式的行。
在一个方面中,资源分配模块110从识别出的行的集合中丢弃随机生成的行。
在步骤220中,散列计算模块120用于计算挑选出的行集合的感知散列。
在一个方面中,散列计算模块120通过使用离散余弦变换来计算感知散列。
在步骤230中,分析模块130用于通过比较感知散列来识别从正在被分析的文件180中挑选出的行的集合与从已知的恶意文件中挑选出的行的集合的相似度,该相似度是概率数值,该值随着从所提及的文件挑选出的行的集合和从已知文件挑选出的行的集合的相似度更高而更大。
在步骤240中,分析模块130基于比较的结果来做出关于有害性的判定。在从正在被分析的文件180挑选出的所提及的行的集合的相似度超过阈值的情况下,分析模块130将正在被分析的文件180确定为恶意的。
图3为示出根据示例性方面的在其上可以实现检测恶意中间语言文件的系统和方法的各方面的通用计算机系统的框图。
如图所示,该计算机系统20(其可以是个人计算机或服务器)包括中央处理单元21、系统存储器22和连接各种系统部件的系统总线23,各种系统部件包括与中央处理单元21相关联的存储器。如本领域普通技术人员将理解的,系统总线23可包括总线存储器或总线存储器控制器、外围总线和本地总线,系统总线23能够与任何其它总线架构交互。系统存储器可包括永久性存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统(basicinput/output system,BIOS)26可存储用于计算机系统20的元件之间的信息传输的基本程序,例如在使用ROM 24加载操作系统时的那些基本程序。
该计算机系统20还可以包括用于读取和写入数据的硬盘27、用于在可移动磁盘29上读取和写入的磁盘驱动器28和用于读取和写入可移动光盘31(例如CD-ROM、DVD-ROM和其它的光学介质)的光盘驱动器30。硬盘27、磁盘驱动器28、和光盘驱动器30分别经过硬盘接口32、磁盘接口33和光盘驱动器接口34连接到系统总线23。驱动器和对应的计算机信息介质为用于存储计算机系统20的计算机指令、数据结构、程序模块和其它数据的电源独立的模块。
该计算机系统20包括经由控制器55连接到系统总线23的硬盘27、可移动磁盘29以及可移动光盘31。本领域普通技术人员将理解,还可以使用能够以计算机可读的形式存储数据的任何类型的介质56(固态驱动器、闪存卡、数字盘、随机存取存储器(RAM)等)。
该计算机系统20具有文件系统36(在文件系统36中,可以存储操作系统35)、以及另外的应用程序37、其它的程序模块38和程序数据39。计算机系统20的用户可以通过使用键盘40、鼠标42或本领域普通技术人员已知的任何其它输入设备(例如但不限于麦克风、操纵杆、游戏控制器、扫描器等等)输入命令和信息。这样的输入设备通常通过串行端口46而插接到计算机系统20中,该串行端口46转而连接至系统总线,但是本领域普通技术人员将理解,输入设备也可以以其它方式被连接,例如但不限于经由并行端口、游戏端口或通用串行总线(USB)连接。监控器47或其它类型的显示设备也可以经过接口(诸如视频适配器48)连接至系统总线23。除了监控器47外,个人计算机还可以配备有其它的外围输出设备(未示出),诸如扬声器、打印机等。
个人计算机20可以使用与一个或多个远程计算机49的网络连接,在网络环境中操作。一个或多个远程计算机49可以是本地计算机工作站或服务器,其包括在描述计算机系统20的性质时所提到的元件中的大多数元件或全部元件。其它的设备也可以存在于计算机网络中,例如但不限于路由器、网站、对等设备或其它的网络节点。
网络连接可以形成局域计算机网络(Local-Area Network,LAN)50和广域计算机网络(Wide-Area Network,WAN)。这种网络用在企业计算机网络和公司内部网络中,并且它们通常有权访问因特网。在LAN或WAN网络中,个人计算机20通过网络适配器或网络接口51连接到局域网50。当使用网络时,计算机系统20可以采用调制解调器54或本领域普通技术人员已知的能够与广域计算机网络(例如因特网)通信的其它模块。可以作为内部设备或外部设备的调制解调器54可以通过串行端口46连接至系统总线23。本领域普通技术人员将理解,所述网络连接是使用通信模块建立一个计算机到另一个计算机的连接的众多公知方法的非限制性示例。
在各个方面中,本文中所描述的系统和方法可以以硬件、软件、固件或它们的任何组合来实施。如果以软件来实施,则上述方法可以作为一个或多个指令或代码而被存储在非暂时性计算机可读介质上。计算机可读介质包括数据存储器。以示例性而非限制性的方式,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM、闪存或其它类型的电存储介质、磁存储介质或光存储介质、或任何其它介质,该任何其它介质可用来承载或存储所期望的指令或数据结构形式的程序代码并可以被通用计算机的处理器访问。
在各个方面中,本发明中所描述的系统和方法可以按照模块来处理。本文所使用的术语“模块”指的是现实世界的设备、部件、或使用硬件(例如通过专用集成电路(ASIC)或现场可编程门阵列(field-programmable gate array,FPGA))实施的部件的布置、或硬件和软件的组合,例如通过微处理器系统和实现模块功能的指令集,该指令集(在被执行时)将微处理器系统转换成专用设备。一个模块还可以被实施为两个模块的组合,其中单独地通过硬件促进某些功能,以及通过硬件和软件的组合促进其它功能。在某些实现方式中,模块的至少一部分、以及在某些情况下模块的全部可以被执行在通用计算机(例如上文在图3中更详细描述的通用计算机)的处理器上。因此,每一个模块可以以各种适合的配置来实现,而不应受限于本文所例示的任何特定的实现方式。
为了清楚起见,没有公开各个方面的所有例行特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当理解的是,这种开发努力可能是复杂且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的例行任务。
此外,应当理解的是,本文所使用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文所提出的教导和指导结合相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。
本文所公开的各个方面包括本文以说明性方式所提到的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将显而易见的是,许多比上面所提及的更多的修改是可行的,而不脱离本文所公开的发明构思。

Claims (24)

1.一种用于检测恶意中间语言文件的方法,所述方法包括:
从正在被分析的文件中选取资源的集合,其中,所述文件是中间语言文件;
计算所述资源的集合的感知散列;
通过将所述感知散列与来自已知恶意文件的资源的集合的感知散列进行比较来识别所述资源的集合与所述来自已知恶意文件的资源的集合之间的相似度;
基于所述相似度确定所述正在被分析的文件的有害性;以及
当所述有害性超过预设阈值时,移除或隔离所述正在被分析的文件。
2.根据权利要求1所述的方法,其中,所述文件是通用中间语言文件。
3.根据权利要求1所述的方法,还包括:
当文件缺乏来自可信认证中心的数字签名时,和/或当文件的大小或校验和已经改变时,将所述文件识别为所述正在被分析的文件。
4.根据权利要求1所述的方法,其中,如果代码来自所述文件,则所述资源是行,所述行包括ANSI字符。
5.根据权利要求4所述的方法,还包括:
确定所述行的语言学上的语言。
6.根据权利要求1所述的方法,还包括:
将过滤器应用于所述资源的集合以确定所述资源的集合中的哪些资源是由随机方法生成的;以及
在识别所述相似度之前,丢弃所述资源的集合中的由随机方法生成的那部分资源。
7.根据权利要求1所述的方法,其中,所述相似度是概率数值,并且相似度比预设阈值高得越多,表示所述正在被分析的文件和所述恶意文件之间的相似度越大。
8.根据权利要求1所述的方法,还包括:
通过对所述感知散列的逐位比较,将已知的恶意文件的感知散列组合成共同散列。
9.一种用于检测恶意中间语言文件的系统,所述系统包括:
数据库,所述数据库包括已知恶意中间语言文件的散列;
资源分配模块,所述资源分配模块在硬件处理器上执行,所述资源分配模块被配置成从正在被分析的文件中选取资源的集合,其中,所述文件是中间语言文件;
散列计算模块,所述散列计算模块耦接到所述资源分配模块,并被配置成计算所述资源的集合的感知散列;以及
分析模块,所述分析模块耦接到其它模块,并被配置成:
通过将所述感知散列与来自已知恶意文件的资源的集合的感知散列进行比较来识别所述资源的集合与所述来自已知恶意文件的资源的集合之间的相似度;
基于所述相似度确定所述正在被分析的文件的有害性;以及
当所述有害性超过预设阈值时,移除或隔离所述正在被分析的文件。
10.根据权利要求9所述的系统,其中,所述文件是包含通用中间语言的一个或多个行的通用中间语言文件。
11.根据权利要求9所述的系统,其中,所述资源分配模块还被配置成:
当文件缺乏来自可信认证中心的数字签名时,和/或当文件的大小或校验和已经改变时,将所述文件识别为所述正在被分析的文件。
12.根据权利要求9所述的系统,其中,如果代码来自所述文件,则所述资源是行,所述行包括ANSI字符。
13.根据权利要求12所述的系统,其中,所述资源分配模块还被配置成:
确定所述行的语言学上的语言。
14.根据权利要求9所述的系统,其中,所述资源分配模块还被配置成:
将过滤器应用于所述资源的集合以确定所述资源的集合中的哪些资源是由随机方法生成的;以及
在识别所述相似度之前,丢弃所述资源的集合中的由随机方法生成的那部分资源。
15.根据权利要求9所述的系统,其中,所述相似度是概率数值,并且相似度比预设阈值高得越多,表示所述正在被分析的文件和所述恶意文件之间的相似度越大。
16.根据权利要求9所述的系统,还包括:
比较模块,所述比较模块被配置成:通过对所述感知散列的逐位比较,将已知恶意文件的感知散列组合成共同散列。
17.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质上存储有可执行指令,所述可执行指令在由硬件处理器执行时,执行用于检测恶意中间语言文件的方法,所述方法包括:
从正在被分析的文件中选取资源的集合,其中,所述文件是中间语言文件;
计算所述资源的集合的感知散列;
通过将所述感知散列与来自已知恶意文件的资源的集合的感知散列进行比较来识别所述资源的集合与所述来自已知恶意文件的资源的集合之间的相似度;
基于所述相似度确定所述正在被分析的文件的有害性;以及
当所述有害性超过预设阈值时,移除或隔离所述正在被分析的文件。
18.根据权利要求17所述的非暂时性计算机可读介质,其中,所述文件是通用中间语言文件。
19.根据权利要求17所述的非暂时性计算机可读介质,还包括:
当文件缺乏来自可信认证中心的数字签名时,和/或当文件的大小或校验和已经改变时,将所述文件识别为所述正在被分析的文件。
20.根据权利要求17所述的非暂时性计算机可读介质,其中,如果代码来自所述文件,则所述资源是行,所述行包括ANSI字符。
21.根据权利要求20所述的非暂时性计算机可读介质,还包括:
确定所述行的语言学上的语言。
22.根据权利要求17所述的非暂时性计算机可读介质,还包括:
将过滤器应用于所述资源的集合以确定所述资源的集合中的哪些资源是由随机方法生成的;以及
在识别所述相似度之前,丢弃所述资源的集合中的由随机方法生成的那部分资源。
23.根据权利要求17所述的非暂时性计算机可读介质,其中,所述相似度是概率数值,并且相似度比预设阈值高得越多,表示所述正在被分析的文件和所述恶意文件之间的相似度越大。
24.根据权利要求17所述的非暂时性计算机可读介质,还包括:
通过对所述感知散列的逐位比较,将已知恶意文件的感知散列组合成共同散列。
CN201810770368.4A 2017-09-29 2018-07-13 识别恶意中间语言文件的系统和方法 Active CN109583201B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
RU2017133835A RU2660643C1 (ru) 2017-09-29 2017-09-29 Система и способ выявления вредоносного CIL-файла
RU2017133835 2017-09-29
US201762574271P 2017-10-19 2017-10-19
US62/574,271 2017-10-19
US15/939,789 2018-03-29
US15/939,789 US10713359B2 (en) 2017-09-29 2018-03-29 System and method of identifying a malicious intermediate language file

Publications (2)

Publication Number Publication Date
CN109583201A true CN109583201A (zh) 2019-04-05
CN109583201B CN109583201B (zh) 2023-08-22

Family

ID=62165496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810770368.4A Active CN109583201B (zh) 2017-09-29 2018-07-13 识别恶意中间语言文件的系统和方法

Country Status (3)

Country Link
US (1) US10713359B2 (zh)
EP (1) EP3462699B1 (zh)
CN (1) CN109583201B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112487420A (zh) * 2019-09-11 2021-03-12 卡巴斯基实验室股份制公司 减少文件分类中的误报的数量的系统和方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200372183A1 (en) * 2019-05-21 2020-11-26 Hewlett Packard Enterprise Development Lp Digitally Signing Software Packages With Hash Values
US11469942B2 (en) 2019-08-15 2022-10-11 At&T Intellectual Property I, L.P. System and method for SDN orchestration validation
US11409868B2 (en) * 2019-09-26 2022-08-09 At&T Intellectual Property I, L.P. Ransomware detection and mitigation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8375450B1 (en) * 2009-10-05 2013-02-12 Trend Micro, Inc. Zero day malware scanner
US8769683B1 (en) * 2009-07-07 2014-07-01 Trend Micro Incorporated Apparatus and methods for remote classification of unknown malware
CN105631336A (zh) * 2015-06-30 2016-06-01 卡巴斯基实验室股份制公司 检测移动装置上的恶意文件的系统及方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7370361B2 (en) * 2004-02-06 2008-05-06 Trend Micro Incorporated System and method for securing computers against computer virus
RU2420791C1 (ru) 2009-10-01 2011-06-10 ЗАО "Лаборатория Касперского" Метод отнесения ранее неизвестного файла к коллекции файлов в зависимости от степени схожести
US10313324B2 (en) 2014-12-02 2019-06-04 AO Kaspersky Lab System and method for antivirus checking of files based on level of trust of their digital certificates
RU2628920C2 (ru) 2015-03-31 2017-08-22 Закрытое акционерное общество "Лаборатория Касперского" Способ обнаружения вредоносных сборок
RU2635271C2 (ru) 2015-03-31 2017-11-09 Закрытое акционерное общество "Лаборатория Касперского" Способ категоризации сборок и зависимых образов
US9495633B2 (en) * 2015-04-16 2016-11-15 Cylance, Inc. Recurrent neural networks for malware analysis
RU2589862C1 (ru) 2015-06-30 2016-07-10 Закрытое акционерное общество "Лаборатория Касперского" Способ обнаружения вредоносного кода в оперативной памяти
US9367686B1 (en) 2015-07-21 2016-06-14 AO Kaspersky Lab System and method for antivirus checking of native images of software assemblies
US10909243B2 (en) * 2017-06-29 2021-02-02 AVAST Software s.r.o. Normalizing entry point instructions in executable program files

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8769683B1 (en) * 2009-07-07 2014-07-01 Trend Micro Incorporated Apparatus and methods for remote classification of unknown malware
US8375450B1 (en) * 2009-10-05 2013-02-12 Trend Micro, Inc. Zero day malware scanner
CN105631336A (zh) * 2015-06-30 2016-06-01 卡巴斯基实验室股份制公司 检测移动装置上的恶意文件的系统及方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112487420A (zh) * 2019-09-11 2021-03-12 卡巴斯基实验室股份制公司 减少文件分类中的误报的数量的系统和方法

Also Published As

Publication number Publication date
EP3462699B1 (en) 2020-04-01
US20190102549A1 (en) 2019-04-04
EP3462699A1 (en) 2019-04-03
US10713359B2 (en) 2020-07-14
CN109583201B (zh) 2023-08-22

Similar Documents

Publication Publication Date Title
CN109583201A (zh) 识别恶意中间语言文件的系统和方法
Costin et al. A {Large-scale} analysis of the security of embedded firmwares
US10169347B2 (en) Layer identification and dependency analysis for management of images
US20210157666A1 (en) Determining server error types
CN106133743B (zh) 用于优化预安装应用程序的扫描的系统和方法
RU2581560C2 (ru) Способ сканирования файлов, клиентский компьютер и сервер
EP2807598B1 (en) Identifying trojanized applications for mobile environments
US11475133B2 (en) Method for machine learning of malicious code detecting model and method for detecting malicious code using the same
CN110659486B (zh) 用于使用两级文件分类来检测恶意文件的系统和方法
CN109873804A (zh) 基于行为的服务识别方法、装置、设备及可读存储介质
EP3218811B1 (en) Testing insecure computing environments using random data sets generated from characterizations of real data sets
CN106326737B (zh) 用于检测可在虚拟堆栈机上执行的有害文件的系统和方法
US20140068768A1 (en) Apparatus and Method for Identifying Related Code Variants in Binaries
US20050262567A1 (en) Systems and methods for computer security
US20070294179A1 (en) Discovering software code subject to licenses
US20130283382A1 (en) System and method for detecting malware in file based on genetic map of file
CN105631337B (zh) 控制机器代码的本机图像访问操作系统资源的系统及方法
CN105493095A (zh) 用于样本提交的自适应和递归过滤
CN105205397A (zh) 恶意程序样本分类方法及装置
US11522885B1 (en) System and method for information gain for malware detection
CN109558207A (zh) 在虚拟机中形成用于进行文件的防病毒扫描的日志的系统和方法
CN105631336B (zh) 检测移动装置上的恶意文件的系统及方法
CN103679027A (zh) 内核级恶意软件查杀的方法和装置
JP2011113354A (ja) ログ出力装置、ログ出力方法、ログ出力用プログラム
Li et al. Juxtapp and dstruct: Detection of similarity among android applications

Legal Events

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