CN106326737B - 用于检测可在虚拟堆栈机上执行的有害文件的系统和方法 - Google Patents

用于检测可在虚拟堆栈机上执行的有害文件的系统和方法 Download PDF

Info

Publication number
CN106326737B
CN106326737B CN201610113527.4A CN201610113527A CN106326737B CN 106326737 B CN106326737 B CN 106326737B CN 201610113527 A CN201610113527 A CN 201610113527A CN 106326737 B CN106326737 B CN 106326737B
Authority
CN
China
Prior art keywords
file
cluster
data
function
verification
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
CN201610113527.4A
Other languages
English (en)
Other versions
CN106326737A (zh
Inventor
安东·M·伊万诺夫
亚历山大·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 CN106326737A publication Critical patent/CN106326737A/zh
Application granted granted Critical
Publication of CN106326737B publication Critical patent/CN106326737B/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/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • 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
    • 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/18File system types
    • G06F16/188Virtual file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • 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
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • 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
    • 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/034Test or assess a computer or a system

Abstract

本发明公开了用于检测可在虚拟堆栈机上执行的有害文件的系统和方法。一种示例性方法包括:从在虚拟堆栈机上执行的文件识别数据,该数据包括该文件的文件节段的参数和/或该文件的函数的参数;在数据库中搜索安全文件的至少一个群集,该安全文件的至少一个群集包含以下中的至少一者:文件节段的参数中的超过第一阈值的值、和函数的参数中的超过第二阈值的值;基于所识别的安全文件的群集,创建该文件的数据的群集;计算所创建的该文件的数据的群集的校验和;以及如果所计算的校验和匹配有害文件的校验和的数据库中的校验和,则确定该文件是有害文件。

Description

用于检测可在虚拟堆栈机上执行的有害文件的系统和方法
技术领域
本发明总体涉及计算机安全领域,尤其涉及用于检测可在虚拟堆栈机上执行的有害文件的系统和方法。
背景技术
计算机技术在过去十年的迅速发展以及不同的计算设备(例如个人计算机、笔记本电脑、平板电脑、智能电话等等)的广泛使用已经强有力地刺激了这些设备在不同活动领域的使用以及用于巨大量的任务(例如从因特网冲浪到银行转账和电子文件传播)。在计算设备和运行在这些设备上的软件的数目增长的同时,有害程序(也称为恶意软件或恶意程式)的数目也显著增长。
存在许多不同种类的有害程序。其中一些有害程序从用户的设备窃取个人机密数据,例如登录名和密码、银行信息、电子文件等等。其它有害程序从用户设备形成所谓的僵尸网络用以攻击(例如拒绝服务(DDOS))或用以通过暴力破解而分类整理出用于其它计算机或计算机网络的密码。还有其它有害程序通过侵入广告、付费订阅、发送SMS到支付号等等来向用户提供付费内容(例如广告软件)。
专门的反病毒程序用来对抗有害程序,也就是说,用来检测有害程序、防止感染并恢复被有害程序感染的计算机系统。尤其是,反病毒程序利用各种技术来检测有害程序的全分集,例如“签名分析”,其是利用已知的代码(签名)从有害程序的签名的数据库搜索被分析的程序的代码的特定节段的对应。其它技术包括“启发式分析”,其是模拟被分析的程序的工作、创建模拟日志(即,包含关于API函数调用的数据、传输的参数、被分析的程序的代码节段等等)并在所创建的日志的数据中搜索与来自有害程序的模拟的数据库的数据的对应。还有其它技术利用“白名单”和“黑名单”,其包括在有害程序的校验和的数据库(黑名单)中或在合法程序的校验和的数据库(白名单)中搜索所计算的被分析的程序(或其多个部分)的校验和。最后,技术通过如下方式使用主动防御:拦截系统中正在运行的被分析的程序的API函数调用,创建用于该被分析的程序的工作的日志(包含关于API函数调用的数据、传输的参数、被分析的程序的代码节段等等),并在所创建的日志的数据中搜索与来自有害程序的调用的数据库的数据的对应。
反过来,有害程序越来越多地使用多种方法来抵制反病毒程序对其在感染的计算机系统上的存在进行的检测。这些技术包括用于击败签名分析的代码混淆,即,向程序的原始文本(例如类似JavaScript的脚本的原始文本)或可执行代码提供保持它们的功能性但在反编译期间抵制对工作算法的分析、理解以及修改的外观。此外,有害程序利用更复杂的行为来击败启发式分析,包括使用大量的操作或API函数调用,这些操作或API函数调用的使用不会影响程序的输入/输出工作的结果,但破坏反病毒程序对其的模拟。最后,这种程序还监控第三方程序的行为,以击败主动防御,即,连续监控在操作系统中的第三方程序的行为、搜索反病毒程序并针对这些反病毒程序采取动作(例如,针对分析隐藏或替换其自身的代码)。
通过使用各种技术,例如代码生成器(即,能够自动创建具有指定功能的有害程序的设计者程序)、混淆器(即,能够改变程序的可执行代码从而在不改变其功能的情况下使其分析复杂化的程序)、封装器(即,引入到程序中的程序模块,该程序模块加密程序的可执行代码并在启动时解密该可执行代码)等等,黑客能够快速且毫不费力地创建并传播不可被反病毒应用检测到的大量的新版本的有害程序。
对于通过上述方法所获得的有害程序的有效检测,使用一种收集具有某些特征(例如,由一个版本的封装器封装的有害程序的文件、具有类似行为的有害程序等等)的一组有害程序(即群集)的技术。此外,在所收集的群集的文件中,针对类似的代码节段、来自模拟日志的数据、或行为(例如,一系列的API函数调用)进行搜索。最后,创建检测的规则,使得如果知道群集中的一个有害程序的数据(例如代码节段),则还可以检测该群集的其它有害程序。
该途径的一个显著的限制是,不存在独立于有害程序在其上运行的平台(例如移动架构ARM)或组成有害程序的数据的类型(例如JavaScript脚本、JavaScript字节码或编译的C++代码)而检测有害文件的通用的解决方案。因此,经常有必要使用对于平台和数据类型个性化的算法来聚类并创建用于检测有害程序的规则。
大量的有害程序主动利用虚拟机(及其漏洞)来进行它们在用户的计算机上的传播和破坏性活动,尤其是利用虚拟堆栈机(例如Adobe Flash或Java虚拟机)。与在PC上检测普通的有害程序相比,检测这样的有害程序涉及另外的困难,这是因为标准的检测方法是不适用的(由于虚拟机的架构特征)或者是缓慢的或低效率的(具有太低的检测水平)。因此,需要更有效的技术来检测虚拟堆栈机上的恶意软件。
发明内容
公开了用于检测可在虚拟堆栈机上执行的有害文件的系统和方法。在一个方面中,一种示例性方法包括:通过硬件处理器从在所述虚拟堆栈机上执行的文件识别数据,所述数据包括所述文件的文件节段的参数和由所述虚拟堆栈机执行的所述文件的函数的参数中的至少一者;基于所识别的所述数据,通过所述硬件处理器在数据库中搜索安全文件的至少一个群集,所述安全文件的至少一个群集包含以下中的至少一者:所述文件节段的所述参数中的一个参数的超过第一阈值的值、和所述函数的所述参数中的一个参数的超过第二阈值的值;至少部分地基于所识别的所述安全文件的至少一个群集,通过所述硬件处理器创建由所述虚拟堆栈机执行的所述文件的数据的群集;通过所述硬件处理器计算所创建的所述由所述虚拟堆栈机执行的所述文件的数据的群集的至少一个校验和;通过所述硬件处理器访问有害文件的校验和的数据库;以及如果所计算的所述至少一个校验和匹配所述有害文件的校验和的数据库中的校验和,则通过所述硬件处理器确定在所述虚拟堆栈机上执行的所述文件是有害文件。
在一个示例性方面中,所述文件的所述文件节段的所述参数包括以下中的至少一者:代码、名称、标题类型、数据在所述文件节段中的偏移量、和所述数据在所述文件节段中的大小。
在一个示例性方面中,所述文件的所述函数的所述参数包括以下中的至少一者:函数体索引、函数代码在所述文件节段中的位置和长度、函数描述符索引、在执行所述函数时堆栈的最大深度、由所述函数所使用的局部变量的数目、所述函数的名称、操作数的数目、和能够返回的数据类型。
在一个示例性方面中,所述第一阈值为文件节段的类型的数目。
在一个示例性方面中,所述第二阈值为由所述函数所使用的局部变量的数目。
在一个示例性方面中,计算所述至少一个校验和包括通过计算集合MD5来计算模糊校验和,所述集合MD5包括:包含节段标题类型和这些节段的大小的群集、包含由所述文件的所述函数所使用的局部变量的数目的群集、和包含能够由所述虚拟堆栈机执行的所述函数的名称的群集。
在一个示例性方面中,确定能够在所述虚拟堆栈机上执行的所述文件是有害文件包括:确定所述集合MD5的所述群集的至少两个校验和匹配所述有害文件的校验和的数据库中的至少两个校验和。
在一个示例性方面中,创建所述文件的所述数据的群集根据集群规则来执行,所述集群规则包括以下中的至少一者:将所识别的所述数据以从所述文件识别所述数据的顺序布置在连续的群集中;如果所述文件节段的所述数据的大小等于零,则不使用所述文件节段的所述参数来创建所述数据的群集;如果由所述函数所使用的局部变量的数目等于零,则不使用所述文件的所述函数的所述参数来创建所述数据的群集;以及不使用从在安全文件的群集的所述数据库中识别的所述群集所识别的数据来创建所述数据的群集。
在另一个方面中,一种用于检测在虚拟堆栈机上执行的有害文件的示例性系统包括:至少一个数据库,所述至少一个数据库被配置成存储安全文件的群集和有害文件的校验和的群集;以及硬件处理器,所述硬件处理器被配置成:从在所述虚拟堆栈机上执行的文件识别数据,所述数据包括所述文件的文件节段的参数和由所述虚拟堆栈机执行的所述文件的函数的参数中的至少一者;基于所识别的所述数据,在所述数据库中搜索安全文件的至少一个群集,所述安全文件的至少一个群集包含以下中的至少一者:所述文件节段的所述参数中的一个参数的超过第一阈值的值、和所述函数的所述参数中的一个参数的超过第二阈值的值;至少部分地基于所识别的所述安全文件的至少一个群集,创建由所述虚拟堆栈机执行的所述文件的数据的群集;计算所创建的所述由所述虚拟堆栈机执行的所述文件的数据的群集的至少一个校验和;访问有害文件的校验和的数据库;以及如果所计算的所述至少一个校验和匹配所述有害文件的校验和的数据库中的校验和,则确定在所述虚拟堆栈机上执行的所述文件是有害文件。
以上对示例性方面的简要概述用来提供对本发明的基本理解。该概述并不是对所有预期方面的广泛综述,并且既不旨在识别所有方面的关键要素或重要要素,也不旨在描绘本发明的任何方面或所有方面的范围。它的唯一目的是以简化形式提出一个或多个方面,作为随后的对本发明的更详细的描述的前奏。为了实现前述目的,本发明的一个或多个方面包括权利要求中所描述和特别指出的特征。
附图说明
并入本说明书并构成本说明书的一部分的附图示出了本发明的一个或多个示例性方面,以及连同详细的描述一起用来阐述这些示例性方面的原理和实现方式。
图1示出根据示例性方面的用于检测虚拟堆栈机上的有害文件的系统的框图;
图2示出根据示例性方面的用于检测虚拟堆栈机上的有害文件的方法的流程图;以及
图3示出根据示例性方面的可以实现所公开的系统和方法的通用计算机系统的示例。
具体实施方式
本文描述了用于检测在虚拟堆栈机上的有害文件的系统、方法和计算机程序产品的示例性方面。本领域的普通技术人员将认识到,以下描述仅仅是说明性的,而不旨在以任何方式进行限制。其它方面将是了解本发明的优点的本领域技术人员容易想到的。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同的或类似的项目。
以下公开介绍了将用在描述所公开的系统和方法的不同方面中的若干个定义和概念。
反病毒程序-用于检测有害程序并恢复被这种程序感染(修改)的文件、以及还用于预防文件或操作系统被有害程序感染(修改)的专用程序。
安全程序-不用于未经用户批准的对信息的损坏、阻止、修改或复制或者中断计算机或计算机网络的工作的程序。
安全文件-作为安全程序的组成部分的文件。
有害程序-专门设计成用于未经用户批准的对信息的损坏、阻止、修改或复制或者中断计算机或计算机网络的工作的程序。
有害文件-作为有害程序的组成部分的文件。
虚拟机-在主机平台上模拟某一目标平台的硬件并执行用于该目标平台的程序或者需要提供平台的硬件的虚拟化并在其上创建使程序以及甚至操作系统彼此隔离的环境的软件系统或硬件系统。
虚拟堆栈机-仅以一种数据结构定位正执行的函数的所有操作数的虚拟机,称为虚拟机的堆栈。虚拟堆栈机的示例是Java虚拟机、Adobe虚拟机或公共语言执行环境.NET。
群集-数个同类要素(例如文件节段的名称)的联合,其可以被视为具有某些性能的独立单元。
集群-收集包含关于对象中的一样本的信息的数据并随后将这些对象排序成相对同类的组的过程。
校验和(散列)-通过使用特定算法(例如循环冗余码CRC32或强加密算法MD5)而针对一组数据计算的、用于在数据传输或存储期间校验数据的完整性的值。
模糊校验和(模糊散列)-针对一组数据计算的、组成针对该数据组的某些所选部分计算的校验和的集合(例如MD5或SHA256)的值。
图1示出了用于检测虚拟堆栈机上的有害文件的示例性系统的框图。通常,系统100处理可在堆栈虚拟机上执行的文件,以确定它们是否是有害的。系统100可以实现为配置成处理某些类型的文件(即,可在堆栈虚拟机上执行的文件)的反病毒应用的组件。反病毒应用可以运行在堆栈虚拟机上或物理机(例如PC或反病毒服务器)上。在后一种情况下,反病毒应用可以完全不与虚拟堆栈机相互作用,而是简单地处理从用户计算机或其它设备或服务所接收的文件。
如图所示,系统100包括文件结构分析模块110、集群模块120、校验和计算模块130、测试模块140、安全文件的群集的数据库150和有害文件的群集的校验和的数据库160。
根据一个示例性方面,文件结构分析模块110被配置成:基于例如文件扩展名(例如*.swf)或文件标题(例如“FWS”)识别可在虚拟堆栈机上执行的文件;分析识别的文件的结构;从所分析的文件识别某数据;基于从所分析的文件识别的数据而在安全文件的群集的数据库150中执行搜索群集;从在安全文件的群集的数据库150中所找到的群集识别某数据;以及向集群模块120发送从所分析的可由虚拟堆栈机执行的文件和在安全文件的群集的数据库150中所找到的群集识别的数据。
根据该示例性方面,文件结构分析模块110被配置成从所分析的文件识别某数据,该数据包括但并不限于文件节段的参数,例如代码、名称、标题类型、数据在节段中的偏移量、和节段数据的大小。此外,根据示例性方面,文件结构分析模块110还被配置成识别其它数据,该其它数据包括但并不限于可由虚拟堆栈机执行的函数的参数,例如函数体索引、函数代码在节段中的位置和长度、函数描述符索引、在执行函数时堆栈的最大深度、由函数所使用的局部变量的数目、函数的名称、操作数的数目和可以返回的数据类型。
文件结构分析模块110使用虚拟堆栈机的操作知识和关于可在虚拟堆栈机上执行的文件的结构的信息来从所分析的文件提取数据。可在虚拟堆栈机上执行的各种文件的文件结构的这一知识可以通过分析不同文件的结构、模拟文件的某些要素(函数)并使用其它的文件分析技术来获得。
根据该示例性方面,文件结构分析模块110还被配置成,在安全文件的群集的数据库150中搜索群集。例如,搜索群集可以基于文件节段的参数,例如节段代码、节段名称、节段标题类型、数据在该节段中的偏移量、和节段数据的大小。另外,例如搜索群集可以基于可由虚拟堆栈机执行的函数的参数,例如函数体索引、函数代码在节段中的位置和深度、函数描述符索引、在执行函数时堆栈的最大深度、由函数所使用的局部变量的数目、函数的名称、操作数的数目和可以返回的数据类型。
根据一个方面,文件结构分析模块110还被配置成,根据从可由虚拟堆栈机执行的文件识别的数据,在安全文件的群集的数据库150中搜索例如包含以下值的群集:文件节段的参数中的一个参数(例如文件的节段的类型的数目)的超过给定阈值的值、和/或可由虚拟堆栈机执行的函数的参数中的一个参数(例如由该函数所使用的局部变量的数目)的超过给定阈值的值。
此外,根据该示例性方面,集群模块120被配置成,使用集群规则由从分析模块110所获得的数据创建群集,并向校验和计算模块130传输所创建的群集。
根据一个方面,集群规则包括但不限于规定例如以下内容的规则:所收集的数据应当以其从文件识别的顺序被连续地布置在群集中;如果文件的节段数据的大小等于零,则文件节段的参数不应当以群集的形式来使用;如果由函数所使用的局部变量的数目等于零,则可由虚拟堆栈机执行的函数的参数不应当以群集的形式来使用;以及从在安全文件的群集的数据库中找到的群集所识别的数据不应当以群集的形式来使用。
根据该示例性方面,校验和计算模块130被配置成,计算从集群模块120所获得的群集的一个或多个校验和,并向测试模块140传送所计算的校验和。
根据一个方面,群集的校验和可以是由从分析模块110获得的不同类型的数据(例如文件节段的名称和可由虚拟堆栈机执行的函数的名称的集合MD5)所计算的一个或多个模糊校验和(例如,MD5或SHA256)。
根据该示例性方面,测试模块140被配置成,执行在有害文件的群集的校验和的数据库160中搜索从校验和计算模块130获得的校验和;以及在由于在有害文件的群集的校验和的数据库160中的搜索而检测到从校验和计算模块130获得的校验和的情况下检测有害文件。
根据一个方面,用于在有害文件的群集的校验和的数据库160中检测从校验和计算模块130获得的模糊校验和的条件是这样的条件:组成从校验和计算模块130所获得的模糊校验和的校验和与组成存储在有害文件的群集的校验和的数据库160中的模糊校验和的校验和相匹配的数目超过给定阈值。
以下描述提供了图2中示出的检测可由虚拟堆栈机执行的有害文件(例如检测有害文件Adobe)的系统的示例性操作。
特别是,假定为了检测有害文件已经对文件launchme.swf进行了分析,该文件launchme.swf除了包含多媒体资源(例如图片、音频和视频剪辑)外,还包含采用ActionScript3语言的代码。在该情况下,如上所述,文件结构分析模块110从文件launchme.swf识别数据以供分析。
在一个方面中,数据可以包括文件节段的参数(代码、名称和节段标题类型、数据偏移量、和节段数据的大小),例如:
code=69(FileAttributes),type=short,offset=0x14,length=0x4
code=9(SetBackgroundColor),type=short,offset=0x1a,length=0x3
code=82(DoABC),type=long,offset=0x1f,length=0x1a2e
根据示例性方面,数据可以包括包含在快闪(flash)文件(其可由虚拟堆栈机执行)中的采用ActionScript3语言的代码的函数的参数(函数体索引、函数代码在节段中的位置和长度、函数描述符索引、在执行该函数时堆栈的最大深度、由该函数所使用的局部变量的数目、函数的名称)。例如:
Method body 1:offset=0xd24,length=0xae,method=0,
max_stack=0x3,local_count=0x1,exception_count=0x0,
init_scope_depth=0x0,max_scope_depth=0x8,trait_count=0x0.
script0$init():*
在获得数据之后,文件结构分析模块110被配置成,在安全文件的群集的数据库150中搜索这样的群集,该群集中的文件节段的一系列参数(例如代码=69,类型=短)和可由虚拟堆栈机执行的函数(例如script0$init())与从被分析的launchme.swf文件识别的节段的参数和函数相一致。
如果找到安全文件的群集,则文件结构分析模块110被配置成在安全文件的群集中识别节段的参数(代码、名称和节段标题类型、数据偏移量、和节段数据的大小),例如:
code=69(FileAttributes),type=short,offset=0x14,length=0x4
此外,文件结构分析模块110被配置成识别可由虚拟堆栈机执行的函数的参数(函数体索引、函数代码在节段中的位置和长度、函数描述符索引、在执行函数时堆栈的最大深度、由该函数所使用的局部变量的数目、函数的名称),例如:
Method body 1:offset=0xc67,length=0xae,method=0,
max_stack=0x3,local_count=0x1,exception_count=0x0,
init_scope_depth=0x0,max_scope_depth=0x8,trait_count=0x0.
script0$init():*
所识别的数据之后可以被发送到集群模块120。根据示例性方面,集群模块120可以由从分析模块110所获得的数据创建三个群集:
包含节段标题类型和节段数据的大小的群集(例如,短、0x4,短、0x17,长、0x2c,短、0x5);
包含由可由虚拟堆栈机执行的函数所使用的局部变量的数目的群集(例如,0x7、0x5、0x11、0x7、0xc、0x2、0xf、0x5、0x5、0xa);以及
包含可由虚拟堆栈机执行的函数的名称的群集(例如,cript0$init、script0$read_data、script0$inject)。
所创建的群集以数据(即,节段的参数和可由虚拟堆栈机执行的函数)从被分析的文件识别的顺序来包含这些数据,从在安全文件的群集的数据库150中找到的群集所识别的数据(它们没有包括在创建的群集中)除外。所创建的群集之后可以被发送到校验和计算模块130。
根据该示例性方面,校验和计算模块130被配置成,针对从集群模块120所接收的群集计算模糊校验和,也就是说,校验和计算模块130计算集合MD5,该集合MD5由包含节段标题类型和这些节段的大小的群集、包含由函数所使用的局部变量的数目的群集、和包含可由虚拟堆栈机执行的函数的名称的群集的MD5组成。
0xed4d37994bec687a9c31844e47928ec3
0xb07b30a8430a63ae8ef5bad369d653de
0xcaa351de76e20cff266d24b9bf9ebdc1
所计算的模糊校验和之后被发送到测试模块140。根据该示例性方面,测试模块140被配置成,在有害文件的群集的校验和的数据库160中搜索这样的模糊校验和,该模糊校验和将组成一组至少三个MD5校验和,该至少三个MD5校验和中的至少两者与从校验和计算模块130获得的模糊校验和的MD5校验和相一致。根据该示例性方面,如果找到这样的模糊和,则测试模块140将推断出所分析的文件launchme.swf是有害的。应当领会的是,所计算的与数据库160中的校验和相匹配的模糊校验和的数目可以根据系统设计者的实现设计而改变。
图2示出了根据示例性方面的用于检测虚拟堆栈机上的有害文件的方法的流程图。如图所示,初始在步骤210处,文件结构分析模块110从被分析的文件识别数据。接下来,在步骤220处,文件结构分析模块110在安全文件的群集的数据库150中执行搜索群集。如在步骤230中所示,使用集群模块120来聚集被分析的文件的群集。在步骤240处,校验和计算模块130针对所聚集的群集计算校验和,以及在步骤250处,使用测试模块140来在有害文件的校验和的数据库150中测试校验和。最后,在步骤260处,测试模块140确定文件是否是有害的。
根据一个方面,在步骤210中,从可由虚拟堆栈机执行的被分析的文件识别数据。如上所述,可以在步骤210中从被分析的且可由虚拟堆栈机执行的文件识别的数据可以包括文件节段的参数和可由虚拟堆栈机执行的函数的参数。
接下来,在步骤220中,根据在步骤210中从被分析的且可由虚拟堆栈机执行的文件识别的数据,在安全文件的群集的数据库150中进行搜索群集,并从找到的群集识别该数据,该群集例如包含:文件节段的参数中的一个参数(例如,文件的节段的类型的数目)的超过给定阈值的值;可由虚拟堆栈机执行的函数的参数中的一个参数(例如由该函数所使用的局部变量的数目)的超过给定阈值的值。
如上所述,可从在安全文件的群集的数据库150中找到的群集识别的数据可以包括文件节段的参数和可由虚拟堆栈机执行的函数的参数。
接下来,在步骤230中,借助于集群规则,创建被分析的文件的群集。
接下来,在步骤240中,针对在步骤230中所创建的群集计算校验和。针对在步骤230中所创建的群集所计算的校验和可以是模糊校验和。针对在步骤230中所创建的群集所计算的模糊校验和是来自在步骤210中所识别的各种类型的数据(例如文件节段的名称和函数名称的集合MD5)的一组校验和(例如MD5或SHA256)。
在步骤250中,在有害文件的群集的校验和的数据库160中测试校验和。用于在有害文件的群集的校验和的数据库160中检测在步骤240中所获得的模糊校验和的条件是这样的条件:组成在步骤240中所获得的模糊校验和的校验和与组成存储在有害文件的群集的校验和的数据库160中的模糊校验和的校验和相匹配的数目超过给定阈值。
最后,在步骤260中,确定被分析的文件是否是有害的。在步骤250中在有害文件的群集的校验和的数据库160中检测到在步骤240中所获得的模糊校验和的情况下,确定被分析的文件确实是有害的。
图3示出了根据示例性方面的可在其上实现所公开的系统和方法的通用计算机系统(其可以是个人计算机或服务器)的示例。如图所示,该计算机系统包括中央处理单元21、系统存储器22和连接各种系统组件的系统总线23,各种系统组件包括与中央处理单元21相关的存储器。系统总线23像从现有技术已知的任何总线结构一样来实现,依次包括总线存储器或总线存储器控制器、外围总线和本地总线,系统总线23能够与任何其它的总线体系交互。系统存储器包括永久性存储器(ROM)24和随机存取存储器(random-access memory,RAM)25。基本输入/输出系统(basic input/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的计算机指令、数据结构、程序模块和其它数据的电源独立的模块。
本发明提供了使用硬盘27、可移动磁盘29和可移动光盘31的系统的实现方式,但是应当理解的是,可以采用能够以计算机可读的形式存储数据的其它类型的计算机信息介质56(固态驱动器、闪存卡、数字盘、RAM等等),计算机信息介质56经由控制器55连接到系统总线23。
计算机20具有文件系统36,其中保持所记录的操作系统35,并且还保持额外的程序应用37、其它程序模块38和程序数据39。用户能够通过使用输入设备(键盘40、鼠标42)将命令和信息输入到个人计算机20中。可以使用其它的输入设备(未示出):麦克风、操纵杆、游戏控制器、扫描器等等。这种输入设备通常通过串行端口46插入到计算机系统20中,串行端口46转而连接到系统总线,但是它们可以以其它的方式连接,例如在并行端口、游戏端口或通用串行总线(universal serial bus,USB)的帮助下得以连接。监控器47或其它类型的显示设备也可以通过接口(例如视频适配器48)连接到系统总线23。除了监控器47,个人计算机还可以装备有其它的外围输出设备(未示出),例如扬声器、打印机等等。
个人计算机20能够在网络环境中工作,使用与一个或多个远程计算机49的网络连接。一个或多个远程计算机49也是个人计算机或服务器,如图3中所示,其具有在描述个人计算机20的性质时的上述元件的大多数或全部。其它的设备也可以存在于计算机网络中,例如路由器、网络站、对等设备或其它的网络节点。
网络连接可以形成局域计算机网络(local-area computer network,LAN)50和广域计算机网络(wide-area computer 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 (16)

1.一种用于检测在虚拟堆栈机上执行的有害文件的方法,所述方法包括:
通过硬件处理器从在所述虚拟堆栈机上执行的文件识别数据,所述数据包括所述文件的文件节段的参数和由所述虚拟堆栈机执行的所述文件的函数的参数中的至少一者;
基于所识别的所述数据,通过所述硬件处理器在数据库中搜索安全文件的至少一个群集,所述安全文件的至少一个群集包含以下中的至少一者:所述文件节段的所述参数中的一个参数的超过第一阈值的值、和所述函数的所述参数中的一个参数的超过第二阈值的值;
至少部分地基于所识别的所述安全文件的至少一个群集,通过所述硬件处理器创建由所述虚拟堆栈机执行的所述文件的数据的群集;
通过所述硬件处理器计算所创建的所述由所述虚拟堆栈机执行的所述文件的数据的群集的至少一个校验和;
通过所述硬件处理器访问有害文件的校验和的数据库;以及
如果所计算的所述至少一个校验和匹配所述有害文件的校验和的数据库中的校验和,则通过所述硬件处理器确定在所述虚拟堆栈机上执行的所述文件是有害文件。
2.根据权利要求1所述的方法,其中,所述文件的所述文件节段的所述参数包括以下中的至少一者:代码、名称、标题类型、数据在所述文件节段中的偏移量、和所述数据在所述文件节段中的大小。
3.根据权利要求1所述的方法,其中,所述文件的所述函数的所述参数包括以下中的至少一者:函数体索引、函数代码在所述文件节段中的位置和长度、函数描述符索引、在执行所述函数时堆栈的最大深度、由所述函数所使用的局部变量的数目、所述函数的名称、操作数的数目、和能够返回的数据类型。
4.根据权利要求1所述的方法,其中,所述第一阈值为文件节段的类型的数目。
5.根据权利要求1所述的方法,其中,所述第二阈值为由所述函数所使用的局部变量的数目。
6.根据权利要求1所述的方法,其中,计算所述至少一个校验和包括通过计算集合MD5来计算模糊校验和,所述集合MD5包括:包含节段标题类型和这些节段的大小的群集、包含由所述文件的所述函数所使用的局部变量的数目的群集、和包含能够由所述虚拟堆栈机执行的所述函数的名称的群集。
7.根据权利要求6所述的方法,其中,确定能够在所述虚拟堆栈机上执行的所述文件是有害文件包括:确定所述集合MD5的所述群集的至少两个校验和匹配所述有害文件的校验和的数据库中的至少两个校验和。
8.根据权利要求1所述的方法,其中,创建所述文件的所述数据的群集根据集群规则来执行,所述集群规则包括以下中的至少一者:将所识别的所述数据以从所述文件识别所述数据的顺序布置在连续的群集中;如果所述文件节段的所述数据的大小等于零,则不使用所述文件节段的所述参数来创建所述数据的群集;如果由所述函数所使用的局部变量的数目等于零,则不使用所述文件的所述函数的所述参数来创建所述数据的群集;以及不使用从在安全文件的群集的所述数据库中识别的所述群集所识别的数据来创建所述数据的群集。
9.一种用于检测在虚拟堆栈机上执行的有害文件的系统,所述系统包括:
至少一个数据库,所述至少一个数据库被配置成存储安全文件的群集和有害文件的校验和的群集;以及
硬件处理器,所述硬件处理器被配置成:
从在所述虚拟堆栈机上执行的文件识别数据,所述数据包括所述文件的文件节段的参数和由所述虚拟堆栈机执行的所述文件的函数的参数中的至少一者;
基于所识别的所述数据,在所述数据库中搜索安全文件的至少一个群集,所述安全文件的至少一个群集包含以下中的至少一者:所述文件节段的所述参数中的一个参数的超过第一阈值的值、和所述函数的所述参数中的一个参数的超过第二阈值的值;
至少部分地基于所识别的所述安全文件的至少一个群集,创建由所述虚拟堆栈机执行的所述文件的数据的群集;
计算所创建的所述由所述虚拟堆栈机执行的所述文件的数据的群集的至少一个校验和;
访问有害文件的校验和的数据库;以及
如果所计算的所述至少一个校验和匹配所述有害文件的校验和的数据库中的校验和,则确定在所述虚拟堆栈机上执行的所述文件是有害文件。
10.根据权利要求9所述的系统,其中,所述文件的所述文件节段的所述参数包括以下中的至少一者:代码、名称、标题类型、数据在所述文件节段中的偏移量、和所述数据在所述文件节段中的大小。
11.根据权利要求9所述的系统,其中,所述文件的所述函数的所述参数包括以下中的至少一者:函数体索引、函数代码在所述文件节段中的位置和长度、函数描述符索引、在执行所述函数时堆栈的最大深度、由所述函数所使用的局部变量的数目、所述函数的名称、操作数的数目、和能够返回的数据类型。
12.根据权利要求9所述的系统,其中,所述第一阈值为文件节段的类型的数目。
13.根据权利要求9所述的系统,其中,所述第二阈值为由所述函数所使用的局部变量的数目。
14.根据权利要求9所述的系统,其中,所述硬件处理器还被配置成:通过计算集合MD5来计算模糊校验和从而计算所述至少一个校验和,所述集合MD5包括:包含节段标题类型和这些节段的大小的群集、包含由所述文件的所述函数所使用的局部变量的数目的群集、和包含能够由所述虚拟堆栈机执行的所述函数的名称的群集。
15.根据权利要求14所述的系统,其中,所述硬件处理器还被配置成:通过确定所述集合MD5的所述群集的至少两个校验和匹配所述有害文件的校验和的数据库中的至少两个校验和,来确定能够在所述虚拟堆栈机上执行的所述文件是有害文件。
16.根据权利要求9所述的系统,其中,所述硬件处理器还被配置成:根据集群规则来创建所述文件的所述数据的群集,所述集群规则包括以下中的至少一者:将所识别的所述数据以从所述文件识别所述数据的顺序布置在连续的群集中;如果所述文件节段的所述数据的大小等于零,则不使用所述文件节段的所述参数来创建所述数据的群集;如果由所述函数所使用的局部变量的数目等于零,则不使用所述文件的所述函数的所述参数来创建所述数据的群集;以及不使用从在安全文件的群集的所述数据库中识别的所述群集所识别的数据来创建所述数据的群集。
CN201610113527.4A 2015-06-30 2016-02-29 用于检测可在虚拟堆栈机上执行的有害文件的系统和方法 Active CN106326737B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
RU2015125974A RU2624552C2 (ru) 2015-06-30 2015-06-30 Способ обнаружения вредоносных файлов, исполняемых с помощью стековой виртуальной машины
RU2015125974 2015-06-30
US14/833,620 2015-08-24
US14/833,620 US9396334B1 (en) 2015-06-30 2015-08-24 System and method for detecting harmful files executable on a virtual stack machine

Publications (2)

Publication Number Publication Date
CN106326737A CN106326737A (zh) 2017-01-11
CN106326737B true CN106326737B (zh) 2019-05-21

Family

ID=56381665

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610113527.4A Active CN106326737B (zh) 2015-06-30 2016-02-29 用于检测可在虚拟堆栈机上执行的有害文件的系统和方法

Country Status (5)

Country Link
US (2) US9396334B1 (zh)
EP (1) EP3136276B8 (zh)
JP (1) JP6277224B2 (zh)
CN (1) CN106326737B (zh)
RU (1) RU2624552C2 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI599905B (zh) * 2016-05-23 2017-09-21 緯創資通股份有限公司 惡意碼的防護方法、系統及監控裝置
US10873590B2 (en) 2017-09-29 2020-12-22 AO Kaspersky Lab System and method of cloud detection, investigation and elimination of targeted attacks
RU2708355C1 (ru) * 2018-06-29 2019-12-05 Акционерное общество "Лаборатория Касперского" Способ обнаружения вредоносных файлов, противодействующих анализу в изолированной среде
WO2020183828A1 (ja) 2019-03-12 2020-09-17 日本電気株式会社 ホワイトリスト生成装置、制御方法、及びプログラム
US11636208B2 (en) * 2019-07-19 2023-04-25 Palo Alto Networks, Inc. Generating models for performing inline malware detection
US11374946B2 (en) * 2019-07-19 2022-06-28 Palo Alto Networks, Inc. Inline malware detection
US11537523B2 (en) * 2019-07-31 2022-12-27 Red Hat, Inc. Command result caching for building application container images
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
RU2757408C1 (ru) * 2020-09-24 2021-10-15 Акционерное общество "Лаборатория Касперского" Система и способ формирования правила проверки файла на вредоносность
US20230350782A1 (en) * 2022-04-28 2023-11-02 Twilio Inc. Data logging for api usage analytics

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102664875A (zh) * 2012-03-31 2012-09-12 华中科技大学 基于云模式的恶意代码类别检测方法
CN102902925A (zh) * 2012-09-29 2013-01-30 北京奇虎科技有限公司 一种染毒文件的处理方法和系统
EP2819054A1 (en) * 2013-06-28 2014-12-31 Kaspersky Lab, ZAO Flexible fingerprint for detection of malware

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6618737B2 (en) * 2000-03-09 2003-09-09 International Business Machines Corporation Speculative caching of individual fields in a distributed object system
EP1154356A1 (en) * 2000-05-09 2001-11-14 Alcatel Caching of files during loading from a distributed file system
US7870610B1 (en) * 2007-03-16 2011-01-11 The Board Of Directors Of The Leland Stanford Junior University Detection of malicious programs
US8813222B1 (en) 2009-01-21 2014-08-19 Bitdefender IPR Management Ltd. Collaborative malware scanning
US8621636B2 (en) * 2009-12-17 2013-12-31 American Express Travel Related Services Company, Inc. Systems, methods, and computer program products for collecting and reporting sensor data in a communication network
US8468602B2 (en) * 2010-03-08 2013-06-18 Raytheon Company System and method for host-level malware detection
US8683216B2 (en) * 2010-07-13 2014-03-25 F-Secure Corporation Identifying polymorphic malware
EP2609538B1 (en) * 2010-08-25 2016-10-19 Lookout Inc. System and method for server-coupled malware prevention
JP5961183B2 (ja) * 2010-12-01 2016-08-02 シスコ テクノロジー,インコーポレイテッド 文脈上の確からしさ、ジェネリックシグネチャ、および機械学習法を用いて悪意のあるソフトウェアを検出する方法
US9454658B2 (en) * 2010-12-14 2016-09-27 F-Secure Corporation Malware detection using feature analysis
RU107621U1 (ru) * 2011-04-25 2011-08-20 Общество с ограниченной ответственностью "ЛАН-ПРОЕКТ" Система для контроля хода выполнения программ
WO2013009713A2 (en) * 2011-07-08 2013-01-17 Uab Research Foundation Syntactical fingerprinting
CN102930206B (zh) 2011-08-09 2015-02-25 腾讯科技(深圳)有限公司 病毒文件的聚类划分处理方法和装置
DE102011056502A1 (de) * 2011-12-15 2013-06-20 Avira Holding GmbH Verfahren und Vorrichtung zur automatischen Erzeugung von Virenbeschreibungen
US9146767B2 (en) 2012-06-19 2015-09-29 Raytheon Company Secure cloud hypervisor monitor
CN102810138B (zh) * 2012-06-19 2015-12-02 北京奇虎科技有限公司 一种用户端文件的修复方法和系统
WO2014012106A2 (en) * 2012-07-13 2014-01-16 Sourcefire, Inc. Method and apparatus for retroactively detecting malicious or otherwise undesirable software as well as clean software through intelligent rescanning
EP2688007A1 (en) * 2012-07-15 2014-01-22 Eberhard Karls Universität Tübingen Method of automatically extracting features from a computer readable file
KR101246623B1 (ko) * 2012-09-03 2013-03-25 주식회사 안랩 악성 애플리케이션 진단 장치 및 방법
RU2514140C1 (ru) * 2012-09-28 2014-04-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ увеличения качества обнаружений вредоносных объектов с использованием правил и приоритетов
RU2523112C1 (ru) * 2012-12-25 2014-07-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ выбора оптимального типа антивирусной проверки при доступе к файлу
US9317548B2 (en) * 2013-01-30 2016-04-19 International Business Machines Corporation Reducing collisions within a hash table
US9058488B2 (en) * 2013-08-14 2015-06-16 Bank Of America Corporation Malware detection and computer monitoring methods
US9294501B2 (en) 2013-09-30 2016-03-22 Fireeye, Inc. Fuzzy hash of behavioral results

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102664875A (zh) * 2012-03-31 2012-09-12 华中科技大学 基于云模式的恶意代码类别检测方法
CN102902925A (zh) * 2012-09-29 2013-01-30 北京奇虎科技有限公司 一种染毒文件的处理方法和系统
EP2819054A1 (en) * 2013-06-28 2014-12-31 Kaspersky Lab, ZAO Flexible fingerprint for detection of malware

Also Published As

Publication number Publication date
RU2015125974A (ru) 2017-01-11
RU2624552C2 (ru) 2017-07-04
JP2017021777A (ja) 2017-01-26
CN106326737A (zh) 2017-01-11
EP3136276A1 (en) 2017-03-01
US9396334B1 (en) 2016-07-19
US20170004310A1 (en) 2017-01-05
EP3136276B8 (en) 2018-03-07
JP6277224B2 (ja) 2018-02-07
EP3136276B1 (en) 2017-10-25
US10013555B2 (en) 2018-07-03

Similar Documents

Publication Publication Date Title
CN106326737B (zh) 用于检测可在虚拟堆栈机上执行的有害文件的系统和方法
Das et al. The web's sixth sense: A study of scripts accessing smartphone sensors
Mercaldo et al. Ransomware steals your phone. formal methods rescue it
Andronio et al. Heldroid: Dissecting and detecting mobile ransomware
RU2614557C2 (ru) Система и способ обнаружения вредоносных файлов на мобильных устройствах
Li et al. Deeppayload: Black-box backdoor attack on deep learning models through neural payload injection
Chumachenko Machine learning methods for malware detection and classification
Carmony et al. Extract Me If You Can: Abusing PDF Parsers in Malware Detectors.
CN106682497B (zh) 在管理程序模式下安全执行代码的系统和方法
Sood et al. Targeted cyber attacks: multi-staged attacks driven by exploits and malware
US8762948B1 (en) System and method for establishing rules for filtering insignificant events for analysis of software program
RU2491615C1 (ru) Система и способ формирования записей для обнаружения программного обеспечения
CN104517054B (zh) 一种检测恶意apk的方法、装置、客户端和服务器
CN105760787B (zh) 用于检测随机存取存储器中的恶意代码的系统及方法
CN106557697A (zh) 生成杀毒记录集合的系统和方法
Malisa et al. Mobile application impersonation detection using dynamic user interface extraction
CN109558207A (zh) 在虚拟机中形成用于进行文件的防病毒扫描的日志的系统和方法
Gupta et al. Evaluation and monitoring of XSS defensive solutions: a survey, open research issues and future directions
Hamadouche et al. Virus in a smart card: Myth or reality?
Bragen Malware detection through opcode sequence analysis using machine learning
Jordan et al. Safe-pdf: Robust detection of javascript pdf malware using abstract interpretation
Gupta et al. Developing a blockchain-based and distributed database-oriented multi-malware detection engine
Bagga et al. A biological immune system (BIS) inspired mobile agent platform (MAP) security architecture
Jawhar A Survey on Malware Attacks Analysis and Detected
Ciaramella et al. A Model Checking-based Approach to Malicious Family Detection in iOS Environment

Legal Events

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