CN109684836B - 使用经训练的机器学习模型检测恶意文件的系统和方法 - Google Patents
使用经训练的机器学习模型检测恶意文件的系统和方法 Download PDFInfo
- Publication number
- CN109684836B CN109684836B CN201811214984.8A CN201811214984A CN109684836B CN 109684836 B CN109684836 B CN 109684836B CN 201811214984 A CN201811214984 A CN 201811214984A CN 109684836 B CN109684836 B CN 109684836B
- Authority
- CN
- China
- Prior art keywords
- file
- files
- behavior
- harmfulness
- malicious files
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/564—Static detection by virus signature recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/046—Forward inferencing; Production systems
- G06N5/047—Pattern matching networks; Rete networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computational Linguistics (AREA)
- Medical Informatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种使用经训练的机器学习模型检测恶意文件的系统和方法。所述系统可以包括括硬件处理器,所述硬件处理器被配置为:形成至少一个行为模式;计算所有行为模式的卷积;基于所述行为模式,从检测模型数据库中选择至少两个用于检测恶意文件的模型;基于对所述卷积和所述至少两个用于检测恶意文件的模型的分析,计算正在被执行的文件的有害性程度;基于所述有害性程度,形成决策模式;如果形成的所述决策模式与来自之前基于对恶意文件的分析而形成的决策模式数据库的至少一个预定的决策模式之间的相似度超过预定阈值,则将所述正在被执行的文件识别为恶意的。
Description
技术领域
本发明涉及防病毒技术,并且更具体地涉及使用经训练的机器学习模型检测恶意文件的系统和方法。
背景技术
近十年来计算机技术的快速发展以及各种计算设备(个人计算机、笔记本电脑、平板电脑、智能手机等)的广泛普及,已经成为这些设备在各种活动领域和在大量任务(从网上冲浪到银行转账和电子文件交易)中的使用的强有力的推动力。在计算设备和在这些设备上运行的软件的数量增长的同时,恶意程序的数量也已快速增加。
目前,存在大量各种各样的恶意程序。它们中的一些恶意程序从设备的用户窃取个人数据和机密数据(例如登录名和密码、银行信息、电子文档)。另一些恶意程序则使用户设备形成所谓的僵尸网络,用于如拒绝服务(DDoS)(Distributed Denial of Service,分布式拒绝服务)的攻击,或者通过其它计算机或计算机网络上的暴力破解方法对密码进行破译。还有一些恶意程序通过侵入式广告、付费订阅、向收费号码发送SMS等向用户呈现付费内容。
被称为防病毒程序的专用程序用于对抗恶意程序,所述对抗恶意程序包括检测恶意程序、防止感染、以及恢复已被恶意程序感染的计算设备的工作能力。防病毒程序采用各种技术来检测各种恶意程序,所述技术例如:
·静态分析——基于构成正在被分析程序的文件中包含的数据(其中,可以在统计分析期间使用该数据),对程序进行有害性分析,包括正在被分析程序的运行或正在被分析程序的工作的仿真:
ο签名分析——从恶意程序签名数据库中搜索正在被分析程序的特定代码段与已知代码(签名)的对应关系;
ο白名单和黑名单——在恶意程序(黑名单)的校验和数据库或安全程序(白名单)的校验和数据库中搜索正在被分析程序(或正在被分析程序的一部分)的计算校验和;
·动态分析——基于在正在被分析程序的执行或正在被分析程序的工作的仿真过程中获得的数据(其中,可以在动态分析期间使用该数据),对程序进行有害性分析:
ο启发式分析——对正在被分析程序的工作进行仿真,创建仿真日志(包含关于API函数调用的数据、传输的参数、正在被分析程序的代码段等)以及搜索创建的日志的数据与来自恶意程序的行为签名数据库的数据之间的对应关系;
ο主动保护——拦截已启动的正在被分析程序的API函数调用,创建正在被分析程序的行为的日志(包含关于API函数调用的数据、传输的参数、正在被分析程序的代码段等)以及搜索创建的日志的数据与来自恶意程序的调用数据库的数据之间的对应关系。
静态分析和动态分析都有其优缺点。静态分析对正在被分析的计算设备的资源要求较低,并且由于静态分析不使用正在被分析程序的执行或仿真,因此统计分析更快,但同时效率更低,即,静态分析具有较低的恶意程序检测百分比和较高的误报(即,作出判定:由防病毒程序分析的文件是恶意的,反之其是安全的)百分比。动态分析,由于其使用在正在被分析程序的工作的执行或仿真期间获得的数据,因此速度较慢并且对正在被分析的计算设备的资源提出了较高的要求,但另一方面动态分析也更有效。现代防病毒程序采用全面的分析,包括静态分析和动态分析两者的要素。
由于现代计算机安全性标准依赖于对恶意程序(尤其是新恶意程序)的操作响应,因此恶意程序的自动检测是关注的主要焦点。为了有效地运行这种软件,经常使用人工智能的要素和模型的机器教导的各种方法来检测恶意程序(即,用于基于描述恶意文件的特定输入数据的集合来做出关于文件有害性判定的规则的集合),从而不仅实现对众所周知的恶意程序或具有众所周知的恶意行为的恶意程序的有效检测,而且实现对具有未知或很少研究的恶意行为的新恶意程序的有效检测,以及实现有效适应(学习)以检测新恶意程序。
尽管上述技术善于检测具有与已知恶意文件的特性特征类似的特定特性特征(即,描述来自特定文件组的文件的特定特性的数据,诸如图形界面的存在、数据加密、数据通过计算机网络的传输等)的恶意文件,但是上述技术无法处理对具有与已知恶意文件的特性特征(即使行为类似)不同的特性特征的恶意文件的检测。此外,上述技术没有公开模型的机器教导(如模型的测试和教导)、以及特性特征的训练和再训练(取决于上述测试的结果)这样的方面。
本发明能够解决检测恶意文件的问题。
发明内容
本发明是为文件的防病毒扫描而设计的。
本发明的技术结果是通过使用用于检测恶意文件的训练模型来检测恶意文件。
本发明的另一技术结果是通过使用多个用于检测恶意文件的模型来提高检测恶意文件的准确度,所述多个用于检测恶意文件的模型中的每个模型已被训练用于检测具有特定的、之前确定的特性特征的恶意文件。
本发明的又一技术结果是通过使用多个用于检测恶意文件的模型来提高检测恶意文件的速度,所述多个用于检测恶意文件的模型中的每个模型已被训练用于检测具有特定的、之前确定的特性特征的恶意文件。
在一个方面,提供了一种通过使用用于检测恶意文件的经训练的模型检测恶意文件的系统,所述系统包括硬件处理器,所述硬件处理器被配置为:基于从正在被执行的文件的行为日志中选择的命令和参数,形成至少一个行为模式;计算形成的所有行为模式的卷积;基于从所述正在被执行的文件的所述行为日志中选择的所述命令和参数,从检测模型数据库中选择至少两个用于检测恶意文件的模型;基于对所述卷积和所述至少两个用于检测恶意文件的模型的分析,计算所述正在被执行的文件的有害性程度;基于所述有害性程度,形成决策模式;如果形成的所述决策模式与来自之前基于对恶意文件的分析而形成的决策模式数据库的至少一个预定的决策模式之间的相似度超过预定阈值,则将所述正在被执行的文件识别为恶意的。
在该系统的另一方面,所述硬件处理器被配置为:形成所述正在被执行的文件的所述行为日志,所述行为日志被设计为至少在所述文件的执行期间拦截至少一个命令以及对所述文件的执行进行仿真;为每个被拦截的命令确定描述该命令的至少一个参数;以及基于所述被拦截的命令和确定的所述参数,形成所述文件的行为日志。
在该系统的另一方面,从所述检测模型数据库中选择的每个用于检测恶意文件的模型都被训练用于检测具有特定的、之前确定的特性特征的恶意文件。
在该系统的另一方面,所述硬件处理器还被配置为:如果形成的所述决策模式与来自所述决策模式数据库的至少一个预定的决策模式之间的相似度超过预定阈值,并且借助于那些用于检测恶意文件的模型计算出的所述有害性程度不超过预定阈值,则基于从所述正在被执行的文件的所述行为日志中选择的所述命令和参数,对来自所述检测模型数据库的至少一个检测模型进行再训练。
在该系统的另一方面,所述行为模式包括至少一个命令和参数的集合,所述参数描述来自所述集合的所有命令。
在该系统的另一方面,所述用于检测恶意文件的模型包括用于确定所述有害性程度的决策规则。
在该系统的另一方面,所述硬件处理器还被配置为通过分析所述行为日志形成所述行为模式。
在另一方面,提供了一种通过使用用于检测恶意文件的经训练的模型检测恶意文件的方法,所述方法包括:基于从正在被执行的文件的行为日志中选择的命令和参数,形成至少一个行为模式;计算形成的所有行为模式的卷积;基于从所述正在被执行的文件的所述行为日志中选择的所述命令和参数,从检测模型数据库中选择至少两个用于检测恶意文件的模型;基于对所述卷积和所述至少两个用于检测恶意文件的模型的分析,计算所述正在被执行的文件的有害性程度;基于所述有害性程度,形成决策模式;如果形成的所述决策模式与来自之前基于对恶意文件的分析而形成的决策模式数据库的至少一个预定的决策模式之间的相似度超过预定阈值,则将所述正在被执行的文件识别为恶意的。
在又一方面,一种计算机可读介质,其上存储有指令,所述指令在执行时执行上述方法。
以上对示例性方面的简要概述用于提供对本发明的基本理解。该概述不是对所有预期方面的广泛综述,并且既不旨在标识所有方面的关键的或主要的要素,也不旨在描绘本发明的任何方面或所有方面的范围。该概述的唯一目的是以简化的形式呈现一个或多个方面,作为随后的对具体实施方式的更详细描述的前奏。为了实现前述内容,本发明的一个或多个方面包括在权利要求中所描述的且特别指出的特征。
附图说明
并入本说明书中且构成本说明书的一部分的附图示出了本发明的一个或多个示例性方面,并与具体实施方式一起用来阐述这些示例性方面的原理和实现方式。
图1示出了用于检测恶意文件的模型的机器学习系统的结构图。
图2示出了用于检测恶意文件的模型的机器学习方法的结构图。
图3示出了作为行为模式的数量的函数的有害性程度的变化动态的示例。
图4示出了行为模式的要素之间的关系图的示例。
图5示出了通过使用经训练的用于检测恶意文件的模型检测恶意文件的系统的结构图。
图6示出了通过使用经训练的用于检测恶意文件的模型检测恶意文件的方法的结构图。
图7示出了通用计算机系统、个人计算机或服务器的示例。
具体实施方式
本文在用于使用经训练的机器学习模型检测恶意文件的系统、方法和计算机程序产品的背景下对示例性方面进行描述。本领域的普通技术人员将认识到,以下描述仅仅是说明性的,而不旨在以任何方式进行限制。其它方面将很容易将其自身暗示给了解本发明的优点的本领域的技术人员。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同或类似的项目。
贯穿本发明、附图和权利要求中将使用以下术语。
恶意文件——已知其执行能够导致对计算机信息的未经授权的破坏、阻止、修改、复制、或中和保护模块的文件。
可执行文件的恶意行为——可以在执行该文件期间执行并且已知能够导致对信息的未经授权的破坏、阻止、修改、复制、或中和保护模块的动作组。
可执行文件的恶意活动——由该文件根据其恶意行为执行的动作组。
普通用户的计算设备——具有先前选择的用户组的计算设备的普通特性的假设(理论)计算设备,在该假设(理论)计算设备上执行与这些用户的计算设备上相同的应用程序。
可由计算设备执行的命令——可由计算设备基于指令的参数(称为命令参数或描述该命令的参数)执行的那些机器指令集合或脚本的指令集合。
词法分析(令牌化)——将输入的字符序列解析为被识别的组(以下称为:词位(lexeme))以便在输出处形成识别序列(以下称为:令牌(token))的分析过程。
令牌——在词法分析过程中由词位形成的识别序列。
图1示出了用于检测恶意文件的模型的机器学习系统的结构图。
该机器学习系统的结构图由以下组成:准备模块111、行为日志模块112、行为模式模块121、卷积函数模块122、检测模型模块131、检测模型机器学习模块132、有害性模块142和管理模块143。
在一个示例性方面,所述检测模型的机器学习系统具有客户端-服务器架构,在该客户端-服务器架构中,准备模块111、行为日志模块112、行为模式模块121、卷积函数模块122、检测模型模块131和检测模型机器学习模块132在服务器侧工作,行为模式模块121、有害性模块142和管理模块143在客户端侧工作。
例如,客户端可以是用户的计算设备,诸如个人计算机、笔记本电脑、智能手机等,并且服务器可以是防病毒公司的计算设备,诸如服务器的分布式系统,通过该服务器的分布式系统,除了其它一切之外,还完成了文件的初步收集和防病毒分析、防病毒记录的创建等,其中,用于检测恶意文件的模型的机器学习系统将被用来检测客户端侧的恶意文件,从而提高该客户端的防病毒保护的有效性。
在又一示例中,客户端和服务器都可以是仅防病毒公司的计算设备,其中,用于检测恶意文件的模型的机器学习系统将被用于文件的自动防病毒分析和防病毒记录的创建,从而提高防病毒公司的工作效率。
准备模块111被设计为:
·根据形成学习选择文件(learning selection of files)的预定规则从文件数据库中选择至少一个文件,之后检测模型机器学习模块132将在分析所选文件的基础上进行检测模型的教导。
·将所选文件发送到行为日志模块112。
在一个示例性方面,至少一个安全文件和一个恶意文件保存在文件数据库中。
例如,文件数据库可以将操作系统Windows的文件保存为安全文件,并且将后门文件、执行对数据的未授权访问和对操作系统的未授权远程控制的应用程序以及计算机作为整体保存为恶意文件。通过用所述文件训练并使用机器学习方法,用于检测恶意文件的模型将能够以高准确度检测具有与上述后门的功能类似功能的恶意文件(准确度越高,用于上述检测模型的教导的文件越多)。
在又一示例性方面,文件数据库还至少保存:
·可疑文件(风险软件)——非恶意但能够执行恶意动作的文件;
·未知文件——其有害性尚未确定并且仍然未知的文件(即,不安全文件、恶意文件、可疑文件等)。
例如,文件数据库可以具有作为可疑文件的远程管理的应用程序文件(例如RAdmin)、归档的应用程序文件、或数据加密的应用程序文件(例如WinZip)等。
在又一示例性方面,文件数据库保存至少以下文件:
·由防病毒网络爬虫收集的文件;
·由用户发送的文件。
所述文件由防病毒专家分析,包括借助于自动文件分析来进行分析,以便之后对这些文件的有害性作出判定。
例如,文件数据库可以保存用户从其计算设备发送到防病毒公司的文件以用于检查这些文件的有害性,在这种情况下,传输的文件可以是安全的或恶意的,并且,所述安全文件和恶意文件的数量之间的分布接近于位于所述用户的计算设备上的所有安全文件和恶意文件的数量之间的分布,即所述安全文件的数量与所述恶意文件的数量之比和位于所述用户的计算设备上的所有安全文件的数量与所有恶意文件的数量之比具有小于以下指定阈值量的不同:
与由用户传输的文件(即,主观上可疑的文件)不同,由被设计为用于搜索可疑和恶意文件的防病毒网络爬虫收集的文件更常被证明是恶意的。
在又一示例性方面,至少一个条件被用作从文件数据库选择文件的标准:
·从文件数据库选择的安全文件和恶意文件之间的分布对应于位于普通用户的计算设备上的安全文件和恶意文件之间的分布;
·从文件数据库选择的安全文件和恶意文件之间的分布对应于借助于防病毒网络爬虫收集的安全文件和恶意文件之间的分布;
·从文件数据库选择的文件的参数对应于位于普通用户的计算设备上的文件的参数;
·所选文件的数量对应于预定值,而文件本身是被随机选择的。
例如,文件数据库包含100000个文件,其中40%是安全文件而60%是恶意文件。从文件数据库中选择15000个文件(文件总数量的15%被保存在文件数据库中),使得所选安全文件和所选恶意文件之间的分布对应于位于普通用户的计算设备上的安全文件和恶意文件之间的分布且分布量为95对5。为此,从文件数据库中随机选择14250个安全文件(安全文件的总数量的35.63%)和750个恶意文件(恶意文件的总数量的1.25%)。
在又一示例中,文件数据库包含1250000个文件,其中95%是安全文件且5%是恶意文件,即保存在文件数据库中的安全文件和恶意文件之间的分布对应于位于普通用户的计算设备上的安全文件和恶意文件之间的分布。在这些文件中,随机选择5000个文件,其中高概率地,约4750个文件被证明是安全文件且约250个文件是恶意文件。
在又一示例性方面,文件参数至少为:
·文件的有害性,其表征文件是否是安全的、恶意的、有潜在危险的、或者在执行该文件时计算系统的行为是否是不确定的,等等;
·在执行文件期间由计算设备执行的命令的数量;
·文件的大小;
·使用文件的应用程序。
例如,从文件数据库中选择是“ActionScript”语言的脚本的、可由应用程序“动画制作(Adobe Flash)”执行的、并且大小不超过5kb的恶意文件。
在又一示例性方面,准备模块111还被设计为:
·根据形成测试选择文件(test selection of files)的预定规则,从文件数据库中选择至少一个其它文件,之后检测模型机器学习模块132将基于对所选文件的分析来执行对经训练的检测模型的验证;
·将所选文件发送到行为日志模块112。
例如,文件数据库包含75000个文件,其中20%是安全文件且80%是恶意文件。首先,从文件数据库中选择12500个文件,其中30%是安全文件且70%是恶意文件,之后检测模型机器学习模块132将基于对所选文件的分析来执行对检测模型的教导,且然后从剩余的62500个文件中选择2500个文件,其中60%是安全文件且40%是恶意文件,此后该检测模型机器学习模块132将基于对所选文件的分析来执行对经训练的模型的检查。以上述方式形成的数据被称为交叉验证数据集合。
行为日志模块112被设计为:
·至少在以下期间拦截至少一个可执行命令:
ο执行接收到的文件,
ο对接收到的文件的执行进行仿真,其中,对所述文件的执行进行仿真包括打开所述文件(例如,由解释器打开脚本);
·为每个被拦截的命令确定描述该命令的至少一个参数;
·基于被拦截的命令和如上所确定的参数形成所获得的文件的行为日志,其中,行为日志构成被拦截的来自文件的命令(以下称为命令)的总和,其中每个命令对应于至少一个如上所确定的且描述该命令的参数(以下称为参数)。
例如,在执行(经由计算机网络收集密码且传输该密码的)恶意文件期间被拦截的命令和为该命令计算的参数可以为如下所示:
CreateFile,‘c:\windows\system32\data.pass’
ReadFile,0x14ea25f7,0xf000
connect,http://stealpass.com
send,0x14ea25f7,0xf000
在一个示例性方面,至少借助于以下完成对来自文件的命令的拦截:
·专用驱动器;
·调试器;
·管理程序。
例如,在执行文件期间拦截命令以及确定所述命令的参数是借助于驱动器完成的,该驱动器通过拼接WinAPI函数的入口点而进行拦截。
在又一示例中,在对文件的工作进行仿真期间拦截命令是由执行所述仿真的仿真器直接完成的,该仿真器确定需要仿真的命令的参数。
在又一示例中,在虚拟机上执行文件期间拦截命令是由管理程序完成的,该管理程序确定需要仿真的命令的参数。
在又一示例性方面,被拦截的来自文件的命令至少是:
·API函数;
·描述预定动作集合的机器指令集合(宏命令)。
例如,恶意程序经常执行对特定文件的搜索并修改它们的属性,为此它们采用一系列命令,诸如:
FindFirstFile,‘c:\windows\system32\*.pass’,0x40afb86a
SetFileAttributes,‘c:\windows\system32\data.pass’
FindNextFile,0x40afb86a
CloseHandle,0x40afb86a,
上述一系列命令也可以由仅单个命令:_change_attributes,‘c:\windows\system32\*.pass’来描述。
在又一示例性方面,每个命令与其唯一标识符匹配。
例如,所有WinAPI函数可以与0x0000至0x8000范围内的数字匹配,其中,每个WinAPI函数对应唯一数字(例如,读入文件(ReadFile)→0x00f0,异步读入文件(ReadFileEx)→0x00f1,连接(connect)→0x03A2)。
在又一示例性方面,描述类似动作的多个命令与单个标识符匹配。
例如,描述从文件读取数据的所有命令(诸如ReadFile、ReadFileEx、ifstream、getline、getchar等)都与标识符_read_data_file(0x70F0)匹配。
行为模式模块121被设计为:
·基于从行为日志中选择的命令和参数形成至少一个行为模式,其中行为日志构成来自文件的可执行命令(以下称为命令)的总和,其中每个命令对应于至少一个描述该命令的参数(以下称为参数),行为模式是至少一个命令和参数的集合(以下称为行为模式的要素),所述参数描述了该集合中的所有命令;
·将如此形成的行为模式发送到卷积函数模块122。
例如,从行为日志中选择以下命令ci和参数pi:
{c1,p1,p2,p3},
{c2,p1,p4},
{c3,p5},
{c2,p5},
{c1,p5,p6},
{c3,p2}。
基于所选命令和参数,形成行为模式,每个行为模式包含一个命令和描述该命令的一个参数:
{c1,p1},{c1,p2},{c1,p3},{c1,p5},{c1,p6},
{c2,p1},{c2,p4},{c2,p5},
{c3,p2},{c3,p5}。
接下来,基于如此形成的模式,形成附加行为模式,每个附加行为模式包含一个参数和可以由该参数描述的所有命令:
{c1,c2,p1},
{c1,c3,p2},
{c1,c2,c3,p5}。
此后,基于如此形成的模式,形成附加行为模式,每个附加行为模式包含多个参数和可以由这些参数同时描述的所有命令:
{c1,c2,p1,p5}。
在一个示例性方面,基于至少通过以下项选择的规则,从行为日志中选择命令和参数:
·连续的每第i个命令和描述它的参数,增量i是预先指定的;
·从前一个所选命令开始预定时间段(例如,每十分之一秒)之后执行的命令,以及描述所述命令的参数;
·在从文件的执行开始的预定时间间隔内执行的命令和描述所述命令的参数;
·来自预定列表的命令和描述所述命令的参数;
·来自预定列表的参数和由这些参数描述的命令;
·当命令参数的数量大于预定阈值时,命令的第一个参数或随机的k个参数。例如,从行为日志中选择用于与硬盘一起工作的所有命令(例如创建文件(CreateFile)、ReadFile、写入文件(WriteFile)、删除文件(DeleteFile)、GetFileAttribute等)以及描述所选命令的所有参数。
在又一示例中,从行为日志中选择每第一千个命令和描述所选命令的所有参数。
在一个示例性方面,由至少两个文件预先形成行为日志,其中一个文件是安全文件而另一个文件是恶意文件。
在又一示例性方面,行为模式的每个要素都与特性相匹配,该特性诸如行为模式的要素的类型。行为模式的要素(命令或参数)的类型至少为:
·“数字范围”(如果行为模式的要素可以被表示为数字),
例如,对于构成connect命令的参数porthtml=80的行为模式的要素,行为模式的所述要素的类型可以是“从0x0000至0xFFFF的数字范围”,
·“字符串”(如果行为模式的要素可以以字符串的形式表示),
例如,对于构成connect命令的行为模式的要素,该行为模式的所述要素的类型可以是“大小小于32个字符的字符串”,
·如果行为模式的要素可以以由预定数据结构描述的数据的形式表示,则行为模式的所述要素的类型可以是“数据结构”,
例如,对于构成find_record命令的参数src=0x336b9a480d490982cdd93e2e49fdeca7的行为模式的要素,该行为模式的该要素的类型可以是“数据结构MD5”。
在又一示例性方面,行为模式还包括作为行为模式的要素的、基于行为模式的所述要素的词法分析使用至少以下形成的令牌:
·用于形成词位的预定规则,
·先前经训练的复发性神经网络。
例如,借助于参数的词法分析
‘c:\windows\system32\data.pass’
基于用于形成词位的规则:
·如果字符串包含文件的路径,则确定文件所在的磁盘;
·如果字符串包含文件的路径,则确定文件所在的文件夹;
·如果字符串包含文件的路径,则确定文件扩展名;
其中,该词位是:
·文件的路径;
·文件所在的文件夹;
·文件名;
·文件的扩展名;
可以形成令牌:
在又一个示例中,借助于参数的词法分析
‘81.19.82.8’,‘81.19.72.38’,‘81.19.14.32’
基于词位形成规则:
·如果参数构成IP地址,则确定描述所述IP地址的位掩码(或所述位掩码的模拟,由元字符表示)(即,对于所有所述IP,等式M∧IP=const的位掩码M为真);
令牌可以形成为:
‘81.19.*.*’。
在又一示例中,从包括数字的所有可用参数形成在预定范围内的数字的令牌:
23,16,7224,6125152186,512,2662162,363627632,737382,52,2625,3732,812,3671,80,3200
并按数字范围完成排序:
从0到999
→{16,23,52,80,512,812},
从1000到9999
→{2625,3200,3671,7224},
从10000
→{737382,2662162,363627632,6125152186}
在又一示例性方面,令牌由行为模式的要素形成,所述行为模式的要素由字符串组成。
例如,行为模式是包含磁盘名称、目录、文件、文件扩展名等的文件的路径。在这种情况下,令牌可以是磁盘的名称和文件扩展名。
C:\Windows\System32\drivers\acpi.sys
→
C:\
*.sys。
卷积函数模块122被设计为:
·从行为模式形成卷积函数,使得该卷积函数对获得的行为模式的结果的反卷积函数将具有大于指定值的与获得的行为模式的相似度,即
r~g-1(g(r))
其中:
ri是行为模式,
g是卷积函数,
g-1是反卷积函数;
·将如此形成的卷积函数发送给检测模型机器学习模块132。
在一个示例性方面,卷积函数模块122还被设计为:
·基于获得的行为模式计算行为模式的特征向量,其中行为模式的特征向量可以表示为该行为模式的要素的哈希和的总和;
·从行为模式的特征向量形成卷积函数,其中卷积函数构成哈希函数,使得计算出的特征向量与计算出的特征向量的哈希函数的结果的反哈希函数的结果之间的相似度大于预定值。
在又一示例性方面,卷积函数由度量学习方法形成,即,使得对于具有大于预定阈值的相似度的行为模式,借助于所述卷积函数获得的各卷积之间的距离小于预定阈值,而对于具有小于预定阈值的相似度的行为模式,借助于所述卷积函数获得的各卷积之间的距离大于预定阈值。
例如,行为模式的特征向量可以计算如下:
·首先创建空的位向量,该空的位向量由100000个要素组成(其中为向量的每个要素保留一个位的信息);
·来自行为模式r的1000个要素被留出用于存储关于命令ci的数据,剩余的99000个要素被留出用于行为模式r的参数pi,其中50000个要素(从要素1001到要素51000)被留出用于字符串参数且25000个要素(从要素51001到要素76000)被留出用于数字参数;
·行为模式r的每个命令ci与从0至999中的特定数字xi匹配,并且在如此创建的向量中设置相应的位
v[xi]=true;
对于行为模式r的每个参数pi,哈希和由下列公式计算:
ο对于字符串:yi=1001+crc32(pi)(mod 50000)
ο对于数字:yi=51001+crc32(pi)(mod 25000)
ο对于其它:yi=76001+crc32(pi)(mod 24000),
并且根据计算出的哈希和,在创建的向量中设置相应的位
v[yi]=true。
所描述的具有如此设置的要素的位向量构成行为模式r的特征向量。
在又一示例性方面,行为模式的特征向量通过以下公式计算:
其中:
b是位置计算系统的基础(例如,对于二进制向量,b=2;对于表示字符串,即字符组的向量,b=8),
ri是行为模式的第i个要素,
h是哈希函数,其中0≤h(ri)<b。
例如,行为模式的特征向量可以计算如下:
·首先创建另一个空的位向量(与前述示例不同),该空的位向量由1000个要素组成(其中为向量的每个要素保留一个位的信息);
·通过以下公式为行为模式r的每个模式要素ri计算哈希和:
并且根据计算出的哈希和,在创建的向量中设置相应的位
v[xi]=true。
在又一示例性方面,行为模式的特征向量构成布隆(Bloom)过滤器。
例如,行为模式的特征向量可以计算如下:
·首先创建另一个空向量(与前述示例不同),该空向量由100000个要素组成;
·使用哈希函数集{hj}通过以下公式为行为模式r的每个模式元素ri计算至少两个哈希和:
xij=hj(ri)
其中:
hj(ri)=crc32(ri),
hj(0)=constj,
并且根据计算出的哈希值,在创建的向量中设置相应的要素
v[xij]=true。
在又一示例性方面,形成的行为模式的特征向量的卷积函数的结果的大小小于所述行为模式的所述特征向量的大小。
例如,特征向量构成包含100000个要素的位向量,且因此具有12500个字节的大小,而所述特征向量的卷积函数的结果构成8个MD5哈希和的集合,且因此具有256个字节的大小,即为特征向量大小的约2%。
在又一示例性方面,特征向量与计算出的特征向量的所述哈希函数的结果的反哈希函数的结果之间的相似度构成0至1范围内的数值,并且通过以下公式计算:
其中:
h(ri)∧gi表示h(ri)与gi同时出现,
{h(ri)}是行为模式的要素的哈希函数的结果的集合,
{gi}是行为模式的要素的哈希函数的结果的反哈希函数的结果的集合,
ri是行为模式的第i个要素,
h是哈希函数,
w是相似度。
例如,计算出的特征向量构成位向量:
“101011100110010010110111011111101000100011001001001001110101101101010001100110110100100010000001011101110011011011”,该特征向量的卷积函数的结果为:“1010011110101110101”,上述获得的结果的反卷积函数的结果为:“101011100100010010110111001111101000100011001001010001110101101101110001100110110100000010000001011101110011011011”,(其中粗体表示与特征向量不同的要素)。因此,特征向量与反卷积函数的结果的相似性为0.92。
在又一示例性方面,使用行为模式的要素作为参数的上述哈希函数取决于行为模式的要素的类型:
例如,为了计算来自行为模式的参数(该参数构成包含文件路径的字符串)的哈希和,我们使用哈希函数CRC32;对于任何其它字符串,使用霍夫曼(Huffman)算法;对于数据集合,使用哈希函数MD5。
在又一示例性方面,行为模式的特征向量的卷积函数的形成由自动编码器完成,其中输入数据是行为模式的特征向量的要素,并且输出数据是具有与输入数据的相似系数大于预定阈值的数据。
检测模型模块131被设计为:
·创建用于检测恶意文件的模型,包括至少:
ο选择检测模型的机器学习方法;
ο初始化教导模型的参数,其中,在检测模型的机器学习开始之前初始化的教导模型的参数被称为超参数;
超参数取决于由准备模块111选择的文件的参数;
·将如此创建的教导模型发送到检测模型机器学习模块132。
例如,当选择检测模型的机器学习方法时,首先决定是否使用人工神经网络或随机森林作为检测模型,且然后如果选择了随机森林,则选择随机森林节点的分离标准;或者如果选择了人工神经网络,则选择人工神经网络的参数的数值优化方法。关于特定机器学习方法的选择的决定是基于该方法在使用预定种类(即,数据结构、行为模式的要素数量、在其上对恶意文件进行搜索的计算设备的性能、计算设备的可用资源等)的输入数据(行为模式)检测恶意文件时的有效性(即,在检测恶意文件时发生的第一种错误和第二种错误的数量)做出的。
在又一示例中,基于至少以下选择检测模型的机器学习方法:
·交叉测试、滑动检查、交叉验证(cross-validation,CV);
·AIC、BIC等标准的数学验证;
·A/B测试、拆分测试;
·堆叠(stacking)。
在又一示例中,在计算设备的性能低的情况下,选择随机森林,否则选择人工神经网络。
在一个示例性方面,针对先前创建的未训练的检测模型(即,模型的参数不能基于对输入数据的分析产生准确度高于预定阈值的输出数据的检测模型)执行机器学习。
在又一示例性方面,检测模型的机器学习方法至少是:
·基于决策树的梯度提升;
·决策树;
·K-最近邻法;
·支持向量机(support vector machine,SVM)。
在又一示例性方面,检测模型模块131还被设计为根据检测模型机器学习模块132的需求创建检测模型,其中,选择特定超参数和机器学习方法,以区别于为前述检测模型选择的超参数和机器学习方法。
检测模型机器学习模块132被设计为教导检测模型,其中使用获得的关于所获得的行为模式的卷积函数来计算检测模型的参数,其中检测模型构成规则的集合,所述规则用于基于至少一个行为模式使用计算出的所述检测模型的参数来计算文件的有害性程度。
例如,利用由准备模块111选择的已知文件集合训练检测模型,其中所述文件集合包含60%的安全文件和40%的恶意文件。
在一个示例性方面,文件的有害性程度构成从0至1的数值,其中0表示所述文件是安全的,1表示文件是恶意的。
在另一示例性方面,选择教导检测模型的方法,该方法确保文件的有害性程度根据基于行为日志的分析形成的行为模式的数量的变化而单调变化。
例如,文件的有害性程度的单调变化指的是,在分析每个后续行为模式时,计算出的有害性程度将不小于先前计算出的有害性程度(例如,在分析第10个行为模式之后,计算出的有害性程度等于0.2;在分析第50个行为模式之后,计算出的有害性程度为0.4;以及在分析第100个行为模式之后,计算出的有害性程度为0.7)。
在又一示例性方面,检测模型机器学习模块132还被设计为:
·针对所获得的、基于对来自测试选择文件的文件的分析而形成的行为日志,对经训练的检测模型执行检查,以便确定来自测试选择文件的文件的有害性的正确判定;
·如果检查结果为否定,则发送请求至少到以下项:
ο准备模块111,以准备与当前用于教导检测模型的文件不同的选择文件;
ο检测模型模块131,以创建与当前检测模型不同的新的检测模型。
经训练的检测模型的检查涉及以下内容。已经基于由准备模块111选择的文件集合来教导所述检测模型,对于准备模块111来说,已知文件是安全的还是恶意的。为了验证用于检测恶意文件的模型已被正确训练,即该检测模型能够检测恶意文件并使安全文件通过,执行对该模型的检查。出于此目的,所述检测模型用于确定来自由准备模块111选择的另一文件集合的文件是否是恶意的,预先知道这些文件是否是恶意的。因此,确定“遗漏”了多少恶意文件以及检测到多少安全文件。如果遗漏的恶意文件和检测到的安全文件的数量大于预定阈值,则认为该检测模型未被正确训练并且该检测模型需要进行重复机器学习(例如,针对另外的训练选择文件,使用与先前的参数值不同的检测模型的参数值等)。
例如,当对经训练的模型执行检查时,在从测试选择文件检测恶意文件时检查第一种错误和第二种错误的数量。如果这种错误的数量大于预定阈值,则选择新的教导选择文件(teaching selection of files)和测试选择文件,并创建新的检测模型。
在又一个示例中,教导选择文件包含10000个文件,其中8500个是恶意的,1500个是安全的。在检测模型被教导之后,针对包含1200个文件(其中350个是恶意的,850个是安全的)的测试选择文件进行了检查。根据执行的检查的结果,350个恶意文件中有15个未通过检测(4%),而850个安全文件中有102个(12%)被错误地认为是恶意的。如果未检测到的恶意文件的数量超过5%或随机检测到的安全文件的数量超过0.1%,则认为经训练的检测模型未被正确训练。
在一个示例性方面,还基于先前形成的系统行为日志和在形成系统的所述行为日志之后被拦截的命令形成系统的行为日志。
例如,在开始执行文件(对于该文件,有必要作出关于该文件的有害性或安全性的判定)之后,被拦截的可执行命令和描述它们的参数被记录在行为日志中。基于对这些命令和参数的分析,计算该文件的有害性程度。如果基于分析结果没有作出关于文件是恶意的还是安全的判定,则可以继续拦截命令。被拦截的命令和描述它们的参数记录在旧行为日志或新行为日志中。在第一种情况下,基于对行为日志中记录的所有命令和参数(即,甚至是先前用于计算有害性程度的那些命令和参数)的分析来计算有害性程度。
有害性模块142被设计为:
·基于从行为日志模块112获得的行为日志和从检测模型机器学习模块132获得的检测模型来计算有害性程度,文件的有害性程度是描述可执行文件的恶意行为的数量特征(例如,在0(该文件只有安全行为)至1(该文件有预定的恶意行为)的范围内);
·将计算出的有害性程度发送给管理模块143。
管理模块143被设计为基于对获得的有害性程度的分析来分配计算机系统的计算资源,以用于确保计算机系统的安全性。
在一个示例性方面,计算机系统的计算资源至少包括:
·可用RAM的容量;
·硬盘上的可用空间容量;
·可以花费在防病毒扫描上的可用处理器时间(处理器时间的份额)(例如,具有更大的仿真深度)。
在另一个示例性方面,对有害性程度的分析在于确定在每个先前的有害性程度计算之后的有害性程度值的变化的动态,并且至少:
·在有害性程度的值增加的情况下,分配附加的计算机系统的资源;
·在有害性程度的值降低的情况下,释放先前分配的计算机系统的资源。
图2示出了用于检测恶意文件的模型的机器学习方法的结构图。
用于检测恶意文件的模型的机器学习方法的结构图包括:步骤211,在该步骤中准备教导选择文件;步骤212,在该步骤中形成行为日志;步骤221,在该步骤中形成行为模式;步骤222,在该步骤中形成卷积函数;步骤231,在该步骤中创建检测模型;步骤232,在该步骤中训练检测模型;步骤241,在该步骤中跟踪计算机系统的行为;步骤242,在该步骤中计算有害性程度;以及步骤243,在该步骤中管理计算机系统的资源。
在步骤211中,准备模块111用于根据预定标准从文件数据库中选择至少一个文件,其中检测模型的教导将在步骤232中基于所选文件完成。
在步骤212中,使用行为日志模块112:
·以至少在以下期间拦截至少一个命令:
ο执行在步骤211中选择的文件,
ο对在步骤211中选择的文件的工作进行仿真;
·以为每个被拦截的命令确定描述该命令的至少一个参数;
·以基于被拦截的命令和确定的参数,形成所获得的文件的行为日志,其中该行为日志表示被拦截的来自文件的命令的集合(以下称为命令),其中每个命令对应于描述该命令的至少一个定义的参数(以下称为参数)。
在步骤221中,行为模式模块121用于基于从步骤212中形成的行为日志中选择的命令和参数来形成至少一个行为模式,其中行为日志表示来自文件的可执行命令组(以下称为命令),其中每个命令对应于描述该命令的至少一个参数(以下称为参数),行为模式是至少一个命令和参数的集合,所述参数描述来自该集合的所有命令。
在步骤222中,卷积函数模块122用于形成在步骤221中形成的行为模式的卷积函数,使得该卷积函数对上述行为模式的结果的反卷积函数将具有大于指定值的与上述行为模式的相似度。
在步骤231中,检测模型模块131用于创建检测模型,对于该检测模型,至少:
·选择检测模型的机器学习方法;
·初始化教导模型的参数,其中在检测模型的机器学习开始之前初始化的教导模型的参数被称为超参数;
该超参数取决于在步骤211中选择的文件的参数。
在步骤232中,检测模型机器学习模块132用于教导在步骤231中创建的检测模型,其中针对在步骤221中形成的行为模式,使用在步骤222中形成的卷积函数计算该检测模型的参数,其中检测模型构成规则组,所述规则组用于基于至少一个行为模式使用计算出的该检测模型的参数来计算文件的有害性程度。
在步骤241中,使用行为日志模块112:
·以拦截由在计算机系统中运行的文件正在执行的至少一个命令;
·以根据被拦截的命令形成系统的行为日志。
在步骤242中,有害性模块142用于基于在步骤241中形成的系统的行为日志和在步骤232中已训练的检测模型来计算有害性程度。
在步骤243中,管理模块143用于基于对在步骤242中计算出的有害性程度的分析来分配计算资源,以用于确保计算机系统的安全性。
图3示出了作为行为模式的数量的函数的有害性程度的变化动态的示例。
作为行为模式的数量的函数的有害性程度的变化动态的示例包括:作为在执行恶意文件期间形成的行为模式的数量的函数的有害性程度的任意变化的动态的曲线图311;作为在执行恶意文件期间形成的行为模式的数量的函数的有害性程度的单调变化的动态的曲线图312;作为在执行安全文件期间形成的行为模式的数量的函数的有害性程度的任意变化的动态的曲线图321;以及作为在执行安全文件期间形成的行为模式的数量的函数的有害性程度的单调变化的动态的曲线图322。
在一个示例性方面,可执行文件的有害性程度采用0(该文件具有绝对安全的行为)至1(该文件具有预定的恶意行为)范围内的值。
曲线图311示出了,作为在执行恶意文件期间形成的行为模式的数量的函数的有害性程度的任意变化的动态。
在开始执行所述文件时,形成的行为模式的数量不大,并且更甚的是,可执行文件的恶意活动可能不存在或最少(例如,发生数据的初始化,对许多文件(包括安全文件)来说这是很自然的),以致计算出的有害性程度与0略有不同,并且不超过预定阈值(以下称为安全标准),超过该预定阈值之后可执行文件的行为不再被认为是安全的(在曲线图311中,该阈值由点划线指定)。
然而,随着时间的推移,可执行文件的恶意活动增加并且有害性程度开始接近1,超过安全标准,而有害性程度可能未达到预定阈值(以下称为有害标准),在超过该预定阈值之后,可执行文件的行为将被认为是恶意的(在曲线图311中,该阈值由短划线指定)。
在增加一段时间之后,恶意活动可能停止并且有害性程度将再次趋向于0(时刻A)。在某个时刻,有害性程度将大于有害标准(时刻B),并且可执行文件的行为将被认为是恶意的,且因此文件本身将被认为是恶意的。
将文件识别为恶意的时刻可能比恶意活动的增长开始晚得多,因为所描述的方法良好地响应了有害性程度的突然增长,这最常发生在可执行文件的持续很久的、明显显现出的恶意活动期间。
如果恶意活动偶然发生(曲线图311的左侧),则计算出的有害性程度可能未达到之后做出关于可执行文件的行为的有害性、并因此可执行文件本身的有害性的判定的值。
在不基于形成的每个行为模式计算有害性程度的情况下(例如,因为计算设备的性能低),可能的情况是将在时刻A(恶意活动开始时)和时刻C(恶意活动结束时)计算有害性程度,但不会在时刻B(恶意活动发生时)计算有害性程度,使得计算出的有害性程度将不超过有害标准,可执行文件的活动将不被认为是恶意的,因此将无法检测到恶意文件。
曲线图312示出了作为在执行恶意文件期间形成的行为模式的数量的函数的有害性程度的单调变化的动态。
在开始执行所述文件时,形成的行为模式的数量不大,并且更甚的是,可执行文件的恶意活动可能不存在或最少(例如,发生数据的初始化,对许多文件(包括安全文件)来说这是很自然的),以致计算出的有害性程度与0略有不同,并且不超过预定阈值(以下称为安全标准),超过该预定阈值之后可执行文件的行为不再是被认为是安全的(在曲线图312中,该阈值由点划线指定)。
然而,随着时间的推移,可执行文件的恶意活动增加并且有害性程度开始接近1,超过安全标准,而有害性程度可能未达到预定阈值(以下称为有害标准),在超过该预定阈值之后,可执行文件的行为将被认为是恶意的(在曲线图312中,该阈值由短划线指定)。
在增加一段时间(时间A-B)之后,恶意活动可能停止(时间B-C),但有害性程度将不下降,而是在可执行文件的任何恶意活动期间仅继续增长。在某个时刻,有害性程度将大于有害标准(时刻D),并且可执行文件的行为将被认为是恶意的,并因此文件本身将被认为是恶意的。
将文件识别为恶意的时刻可以在恶意活动的显现之后立即发生,因为所描述的方法良好地响应了有害性程度的平滑增长,这发生在可执行文件的持续很久的、明显显现的恶意活动期间且发生在频繁、偶发、不太明显的恶意活动期间。
如果恶意活动偶然发生(曲线图312的左侧),则计算出的有害性程度随时间的变化可能达到之后做出关于可执行文件的行为的有害性和可执行文件本身的有害性的判定的值。
在不基于形成的每个行为模式计算有害性程度的情况下(例如,因为计算设备的性能低),可能的情况是将在时刻A(恶意活动开始时)和时刻C(恶意活动结束时)计算有害性程度,但不在时刻B(恶意活动发生时)计算有害性程度;然而,由于有害性程度单调变化,因此计算出的有害性程度的值只增加,且在时刻C,有害性程度将超过有害标准,可执行文件的活动将被认为是恶意的,因此将检测到恶意文件。
曲线图321示出了作为在执行安全文件期间形成的行为模式的数量的函数的有害性程度中的任意变化的动态。
在开始执行所述文件时,形成的行为模式的数量不大,并且更甚的是,对于可执行文件本身没有恶意活动,尽管可能执行“可疑”命令,该“可疑”命令也是在执行恶意文件期间可执行(例如,删除文件、在计算机网络中转移数据等)的,因此计算出的有害性程度与0不同,并且不超过预定阈值(以下称为安全标准),超过该预定阈值之后可执行文件的行为不再被认为是安全的(在曲线图321中,该阈值由点划线指定)。
然而,随着时间的推移,可执行文件的恶意活动由于大量“可疑”命令的执行而增长,并且有害性程度开始接近1,而有害性程度可能未达到预定阈值(以下称有害标准),在超过该预定阈值之后,可执行文件的行为将被认为是恶意的(在曲线图321中,该阈值由短划线指定),但有害性程度可能超过安全标准,使得文件可能不再被认为是安全的并且变得“可疑”。
在增加一段时间之后,恶意活动可能停止并且有害性程度将再次趋向于0(时刻C)。
在不基于形成的每个行为模式计算有害性程度的情况下(例如,因为计算设备的性能低),可能的情况是将在时刻B(当活动最类似于恶意的,即变得“可疑”时)计算有害性程度但不会在时刻A(当“可疑”活动增加时)或在时刻C(当“可疑”活动正在减少时)计算有害性程度,使得计算出的有害性程度将超过安全标准,可执行文件的活动将被认为是“可疑”(不被认为是安全的),因此安全文件将不被认为是安全的。
曲线图322示出了作为在执行安全文件期间形成的行为模式的数量的函数的有害性程度中的单调变化的动态。
在开始执行所述文件时,形成的行为模式的数量不大,并且更甚的是,对于可执行文件本身没有恶意活动,尽管可能执行“可疑”命令,该“可疑”命令也是在执行恶意文件期间可执行(例如,删除文件、在计算机网络中转移数据等)的,因此计算出的有害性程度与0不同,并且不超过预定阈值(以下称为安全标准),超过该预定阈值之后可执行文件的行为不再被认为是安全的(在曲线图322中,该阈值由点划线指定)。
然而,随着时间的推移,可执行文件的恶意活动由于大量“可疑”命令的执行而增长,并且有害性程度开始接近1,而有害性程度可能未达到预定阈值(以下称有害标准),在超过该预定阈值之后,可执行文件的行为将被认为是恶意的(在曲线图322中,该阈值由短划线指定),并且有害性程度也可能不超过安全标准,使得文件继续被认为是安全的。
在增加一段时间(时间A-B)之后,恶意活动可能停止(时间B-C),但有害性程度将不下降,而是在可执行文件的任何恶意活动期间仅继续增长,但不超过安全系数,使得可执行文件的活动将被认为是安全的,因此所述文件将被认为是安全的。
在不基于形成的每个行为模式计算有害性程度的情况下(例如,因为计算设备的性能低),可能的情况是将在时刻B(当活动最类似于恶意的,即变得“可疑”时)计算有害性程度,但不会在时刻A(当“可疑”活动增加时)或在时刻C(当“可疑”活动正在减少时)计算有害性程度;然而,由于有害性程度单调变化,因此计算出的有害性程度的值将只会增加,在时刻A、时刻B、时刻C的有害性程度将不超过安全标准,可执行文件的活动将被认为是安全的,因此安全文件将被认为是安全的。
将文件识别为“可疑的”的时刻可能不在“可疑的”活动的显现之后发生,因为所描述的方法提供了有害性程度的平滑增长,这使得能够避免在有害性程度增长中的尖峰。
图4示出了行为模式的各要素之间的关系图的示例。
行为模式的各要素之间的关系图的示例包括:命令411(透明圆圈),参数412(阴影圆圈),具有一个参数的行为模式421的示例,以及具有一个命令的行为模式422的示例。
在执行文件期间,命令411被拦截并且确定描述命令411的参数412:
CreateFile 0x24e0da54‘.dat’
{c1,p1,p2}
ReadFile 0x24e0da54‘.dat’
{c2,p1,p2}
DeleteFile 0x24e0da54‘.dat’‘c:\’
{c3,p1,p2,p3}
CreateFile 0x708a0b32‘.dat’0x3be06520
{c1,p2,p3,p5}
WriteFile 0x708a0b32
{c4,p3}
WriteFile 0x708a0b32 0x3be06520 0x9902a18d1718b5124728f9 0
{c4,p3,p5,p6,p7}
CopyMemory 0x3be06520 0x9902a18d1718b5124728f9
{c5,p4,p5,p6}
ReadFile 0x9902a18d1718b5124728f9 0
{c2,p6,p7}
基于所述命令411和参数412,形成行为模式421、行为模式422,并确定行为模式421、行为模式422的要素之间的关系。
在第一个步骤中,形成包含一个命令411和描述该命令的一个参数412的模式:
在所示的示例中,已经基于8个被拦截的命令(和描述它们的参数)形成了19个行为模式。
在第二个步骤中,形成包含一个参数412和可以由该参数412描述的所有命令411的模式:
在所示的示例中,还已基于8个被拦截的命令(和描述它们的参数)形成了7个行为模式。
在第三个步骤中,形成包含多个参数412和可以由这些参数412描述的所有命令411的模式:
{c1,c2,c3,p1,p2}{c2,c4,p6,p7}
{c4,c5,p5,p6}
在给出的示例中,还已基于8个被拦截的命令(和描述它们的参数)形成了3个行为模式。
图5示出了通过使用用于检测恶意文件的经训练的模型检测恶意文件的系统的结构图。
通过使用用于检测恶意文件的经训练的模型检测恶意文件的系统的结构图由以下组成:正在被分析的文件501、行为日志模块112、检测模型选择模块520、检测模型数据库521、行为日志分析模块530、有害性模块540、决策模式数据库541和分析模块550。
在一个示例性方面,所述系统还包括正在被执行的文件的行为日志模块112,该行为日志模块112被设计为:
·至少在以下期间拦截至少一个命令:
ο文件501的执行,
ο对文件501的执行进行仿真;
·为每个被拦截的命令确定描述该命令的至少一个参数;
·基于被拦截的命令和确定的参数形成该文件的行为日志,将所述被拦截的命令和描述它们的参数按照从较早被拦截的命令到较晚被拦截的命令的时间顺序输入到所述行为日志中(以下称为:输入行为日志中);
·将形成的行为日志发送到行为日志分析模块530以及发送到检测模型选择模块520。
在又一示例性方面,行为日志是来自文件501的可执行命令(以下称为命令)的集合,其中每个命令对应于描述该命令的至少一个参数(以下称为参数)。
在又一示例性方面,基于对计算设备(使用用于检测恶意文件的经训练的模型的检测恶意文件的系统正在该计算设备上运行)的性能的分析来完成对正在被执行的文件501的命令的拦截以及对被拦截的命令的参数的确定,包括至少:
·确定是否可以分析正在被执行的文件501的有害性(借助于行为日志分析模块530、有害性模块540和分析模块550来执行),直到下一个命令将被拦截的时刻;
·确定分析正在被执行的文件501的有害性是否将导致所述计算设备的计算资源降低到预定阈值以下,计算设备的资源至少是:
ο该计算设备的性能;
ο该计算设备的可用RAM的容量;
ο该计算设备的信息存储介质(诸如硬盘)上的可用空间容量;
ο该计算设备所连接的计算机网络的带宽。
为了提高通过使用用于检测恶意文件的经训练的模型来检测恶意文件的系统的性能,可以有必要分析不包含正在被执行的文件501的所有可执行命令的行为日志,因为用于分析文件501的有害性所执行的整个动作序列花费比正在被执行的文件501的两个连续的被执行的命令之间的间隔更多的时间。
例如,每0.001秒执行正在被执行的文件501的命令(并且因此被拦截),但是分析文件501的有害性花费0.15秒,以致在该时间间隔期间被拦截的所有命令将被忽略,且因此仅每第150个命令进行拦截就足够了。
检测模型选择模块520被设计为:
·基于从正在被执行的文件501的行为日志中选择的命令和参数,从检测模型数据库521中选择至少两个用于检测恶意文件的模型,其中,所述用于检测恶意文件的模型构成用于确定有害性程度的决策规则;
·将所有选择的用于检测恶意文件的模型发送到有害性模块540。
在一个示例性方面,保存在检测模型数据库521中的用于检测恶意文件的模型之前已经通过针对至少一个安全文件和恶意文件的机器学习方法来教导。
用于检测恶意文件的模型在图1-图4中进行了进一步地详细描述。
在又一示例性方面,用于检测的模型的机器学习方法至少是以下方法:
·针对决策树的梯度提升;
·决策树;
·k最近邻(kNN);
·支持向量。
在又一示例性方面,教导检测模型的方法确保文件的有害性程度根据基于对行为日志的分析而形成的行为模式的数量的变化而单调变化。
例如,计算出的文件501的有害性程度可以仅根据基于对该文件501的行为日志的分析而形成的行为模式的数量而单调地增大或不变。在开始执行文件501时,所形成的行为模式的数量是无关紧要的,并且计算出的该文件501的有害性程度与0相差不大;随着时间的推移,形成的模式的数量增加并且计算出的该文件501的有害性程度也增加,或者如果该文件501没有恶意行为,则计算出的有害性程度保持不变;因此,在执行恶意文件501的任何时刻,计算所述文件的有害性程度(或者随着行为日志的任何记录开始形成行为模式),该有害性程度将反映文件501的恶意活动是否存在直到计算出所述有害性程度的时刻。
在又一示例性方面,训练从检测模型数据库521中选择的每个检测恶意文件的模型以用于检测具有特定的、之前确定的特性特征的恶意文件。
例如,保存在检测模型数据库521中的检测模型可以被训练用于检测以下文件:
·具有图形用户界面(GUI)的文件;
·在计算机网络中交换数据的文件;
·加密文件(例如,Trojan-Cryptors家族的恶意文件);
·使用网络漏洞进行其传播的文件(例如,网络蠕虫(Net-Worms)家族的恶意文件)、P2P网络的文件(诸如P2P-蠕虫(P2P-Worms)家族的恶意文件)等。
因此,可以使用多个用于检测恶意文件的经训练的模型来检测恶意文件。例如,在执行期间对用户的计算设备上的数据进行加密,并且将其副本发送到连接到(与执行所述文件的所述用户的计算设备相同的)计算机网络的其它计算设备的恶意文件WannaCry.exe,可以借助于检测模型#1(该模型被训练用于检测利用漏洞的文件)、检测模型#2(该模型被训练用于检测被设计为加密文件的文件)、以及检测模型#3(该模型被训练用于检测包含可以被解释为呈现需求(例如,关于支付形式、资金等)的文本信息的文件)来检测。借助于上述模型计算出的有害性程度可以是不同的,就像计算出的有害性程度超过预定阈值的时刻可以是不同的。例如,使用用于检测恶意文件的模型的结果可以表示在下表中(通过该模型,可以检测恶意文件501):
表#1
在计算出的有害性程度超过0.78的情况下,文件501被认为是恶意的。这里的有害性程度(例如,0.78)表征了针对该文件计算出的有害性程度可以被证明为恶意的(78%)或安全的(22%)的概率。如果借助于多个用于检测恶意文件的模型将文件501识别为恶意的,则文件501为恶意的概率将提高。例如,针对用于呈现表#1中的数据的用于检测恶意文件的模型,可以通过下列公式来计算总有害性程度:
其中:
wtotal为总有害性程度;
wi为借助于模型计算出的有害性程度,n为用于计算总有害性程度的用于检测恶意文件的模型的数量。
因此,获得的总有害性程度((0.999685)显著高于预定阈值(0.78),当计算出的有害性程度超过该阈值时,文件被识别为恶意的。也就是说,使用多个用于检测恶意文件的模型能够显著提高确定恶意文件的准确度以及减少在检测恶意文件时发生的第一种和第二种错误。
在又一示例性中,使用多个用于检测恶意文件的模型允许总有害性程度达到预定阈值(对于该预定阈值,当计算出的有害性程度超过该阈值时,文件被识别为恶意的)远远早于在使用每个用于检测恶意文件的模型自身时。例如,针对用于呈现在表#1中的数据的用于检测恶意文件的模型,如果计算出的有害性程度单调地变化,则可以通过下列公式计算来自行为日志的命令的数量(之后,该文件将被识别为恶意的):
其中:
Idetect为来自行为日志的命令的数量,对该行为日志进行分析之后,将文件识别为恶意的;
Ii为来自行为日志的命令的数量,对该行为日志进行分析之后,借助于模型将文件识别为恶意的;
wi为借助于模型计算出的有害性程度;
n为用于计算来自行为日志的命令的数量的用于检测恶意文件的模型的数量,在对该行为日志进行分析之后,将文件识别为恶意的。
因此,如此获得的来自行为日志的命令的总数量(207)显著少于通过用于检测恶意文件的模型中的一个模型(模型#2)对该行为日志进行分析之后将文件被识别为恶意的、来自行为日志的命令的最初数量(288)。也就是说,使用多个用于检测恶意文件的模型能够显著提高确定恶意文件的速度(即效率)。
在又一示例中,保存在检测模型数据库521中的不同的检测模型可以被训练以用于检测具有多个(不一定是特定的)先前确定的特性特征的恶意文件,即,检测模型#1可以检测具有图形用户界面并在计算机网络中交换数据的文件,而模型#2可以检测在计算机网络中交换数据并借助于网络漏洞在该计算机网络中传播的文件。这两种检测模型都可以通过使用网络漏洞在计算机网络中传播的文件的共同特性特征来检测上述恶意文件WannaCry.exe。
在又一示例性方面,从检测模型数据库521中选择针对文件被训练的用于检测恶意文件的模型,在执行所述文件期间,至少:
i.执行与从正在被执行的文件501的行为日志中选择的命令相同的命令;
ii.使用与从正在被执行的文件501的行为日志中选择的参数相同的参数。
例如,从行为日志中选择以下命令:CreateFileEx、ReadFile、WriteFile、CloseHandle,这些命令用于修改文件,包括文件的加密。从检测模型数据库521中选择被训练用于检测Trojan-Cryptors家族的恶意文件的检测模型。
在又一示例中,从行为日志中选择以下参数:8080、21,这些参数描述了对计算机网络有效的命令(诸如,connect,其中上述参数表示用于连接到电子地址的端口)。从检测模型数据库521中选择被训练用于检测在计算机网络中提供数据交换的文件的检测模型。
行为日志分析模块530被设计为:
·基于从正在被执行的文件501的行为日志中选择的命令和参数形成至少一个行为模式,其中行为模式表示至少一个命令和参数的集合,所述参数描述该集合中的所有命令;
·计算如此形成的所有行为模式的卷积;
·将形成的卷积发送到正在被执行的文件的有害性模块540。
在一个示例性方面,基于预定卷积函数来完成对所形成的行为模式的卷积的计算,使得该卷积函数对所形成的所有行为模式的结果的反卷积函数具有大于给定阈值的与该行为模式的相似度。
在图1、图2中更详细地描述了卷积函数的形成和使用(卷积的计算)。
有害性模块540被设计为:
·借助于每个获得的用于检测恶意文件的模型,基于对所获得的卷积的分析来计算正在被执行的文件501的有害性程度;
·将每个计算出的有害性程度发送给分析模块550。
在一个示例性方面,决策模式表示有害性程度的组合。
例如,基于上述模型#1、模型#2、模型#3计算出的有害性程度的组合可以以集合对{0.95,374}、{0.79,288}、{0.87,302}的形式表示。
在又一示例中,基于上述模型#1、模型#2、模型#3计算出的有害性程度的组合可以表示计算出的有害性程度的中心趋势的估量(例如,算术平均值,在本例中为0.87)。
在又一示例中,有害性程度的组合构成了有害性程度的变化对时间或者对用于计算有害性程度的行为模式的数量的依赖性。
分析模块550被设计为:
·基于获得的有害性程度形成决策模式;
·如果如此形成的决策模式与来自之前基于对恶意文件的分析而形成的决策模式数据库541的至少一个预定的决策模式之间的相似度超过预定阈值,则将正在被执行的文件501识别为恶意的。
在一个示例性方面,决策模式表示从有害性模块540获得的有害性程度的集合。
在又一示例性方面,决策模式表示有害性程度对时间或者对用于计算有害性程度的行为模式的数量的依赖性。
在又一示例性方面,基于对用于训练来自检测模型数据库521的模型的恶意文件的分析,形成来自决策模式数据库541的决策模式。
例如,基于100000个文件(其中75000个是安全文件,25000个是恶意文件),对检测模型进行训练(包括测试),然后将该检测模型保存在检测模型数据库521中。在用于检测恶意文件的模型已经被训练之后,该模型用于形成上述25000个恶意文件中的多个(或全部)恶意文件的决策模式,然后将所述决策模式输入到决策模式数据库541中。也就是说,用于检测恶意文件的模型的机器教导最初是针对样本文件的教导和测试进行的。因此,可以训练用于检测恶意文件的多个模型,多个训练模型中的每个训练模型将被训练以用于检测具有特定的、之前确定的特性特征的恶意文件。在对所有检测模型进行训练之后,确定被训练的用于检测恶意文件的模型中的哪些模型来检测(上述25000个恶意文件的示例中的)特定恶意文件;可以发现,可以借助于来自上述用于检测恶意文件的模型的集合中的用于检测恶意文件的模型的一个集合来检测一个恶意文件,借助于用于检测恶意文件的模型的第二集合来检测另一恶意文件,以及借助于多个用于检测恶意文件的模型来检测第三恶意文件。基于获得的关于哪些用于检测恶意文件的模型可以用于检测恶意文件的数据,形成决策模式。
在又一示例性方面,如果所形成的决策模式与来自决策模式数据库541中的至少一个预定的决策模式之间的相似度超过预定阈值,同时借助于上述用于检测恶意文件的模型计算出的有害性程度不超过预定阈值,则分析模块550还被设计为基于从正在被执行的文件501的行为日志中选择的命令和参数,对来自检测模型数据库521的至少一个检测模型进行再训练。
图6示出了通过使用用于检测恶意文件的经训练的模型来检测恶意文件的方法的结构图。
该通过使用用于检测恶意文件的经训练的模型来检测恶意文件的方法的结构图包括:步骤610,在该步骤中执行正在被分析的文件;步骤620,在该步骤中形成行为日志;步骤630,在该步骤中形成行为模式;步骤640,在该步骤中计算卷积;步骤650,在该步骤中选择检测模型;步骤660,在该步骤中计算有害性程度;步骤670,在该步骤中形成决策模式;步骤680,在该步骤中文件被识别为恶意的;以及步骤690,在该步骤中再训练检测模型。
在步骤610中,行为日志模块112用于至少:
ο执行正在被分析的文件501;
ο对正在被分析的文件501的执行进行仿真。
在步骤620中,行为日志模块112用于形成正在被分析的文件501的行为日志,为此:
·拦截至少一个可执行命令;
·为每个被拦截的命令确定描述该命令的至少一个参数;
·基于被拦截的命令和如此确定的参数,形成该文件501的行为日志。
在步骤630中,行为日志分析模块530用于基于从正在被执行的文件501的行为日志中选择的命令和参数形成至少一个行为模式,其中,该行为模式包括至少一个命令和参数的集合,所述参数描述该集合中的所有命令。
在步骤640中,行为日志分析模块530用于计算在步骤630中形成的所有行为模式的卷积。
在步骤650中,检测模型选择模块520用于基于从正在被执行的文件501的行为日志中选择的命令和参数从检测模型数据库521中选择至少两个用于检测恶意文件的模型,其中,用于检测恶意文件的模型表示用于确定有害性程度的决策规则。
在步骤660中,有害性模块540用于借助于在步骤650中选择的用于检测恶意文件的每个模型,基于对在步骤640中计算出的卷积的分析来计算正在被执行的文件501的有害性程度。
在步骤670中,分析模块550用于基于在步骤660中获得的有害性程度形成决策模式。
在步骤680中,如果在步骤670中形成的决策模式与来自决策模式数据库541的至少一个预定的决策模式之间的相似度超过预定阈值,则分析模块550用于将正在被执行的文件501识别为恶意的。
在步骤690中,如果所形成的决策模式与来自决策模式数据库541的至少一个预定的决策模式之间的相似度超过预定阈值,并且借助于那些用于检测恶意文件的模型计算出的有害性程度不超出预定阈值,则分析模块550用于基于从正在被执行的文件的行为日志中选择的命令和参数,对来自检测模型数据库521的至少一个检测模型进行再训练。
图7是示出根据示例性方面的通用计算机系统的图,在该通用计算机系统上可以实现用于检测恶意文件的系统和方法的各个方面。
如图所示,该计算机系统20(其可以是个人计算机或服务器)包括处理器21、系统存储器22和连接各种系统部件的系统总线23,各种系统部件包括与处理器21相关联的存储器。如本领域的普通技术人员能够领会的,系统总线23可以包括总线存储器或总线存储器控制器、外围总线、以及能够与任何其它总线架构交互的本地总线。系统存储器可以包括永久性存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统(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具有可以存储操作系统35的文件系统36、以及另外的程序应用37、其它程序模块38和程序数据39。计算机系统20的用户可以使用键盘40、鼠标42、或本领域的普通技术人员已知的任何其它输入设备(诸如但不限于麦克风、操纵杆、游戏控制器、扫描仪等)输入命令和信息。这些输入设备通常通过串行端口46插入到计算机系统20中,串行端口46转而连接到系统总线,但是本领域的普通技术人员能够领会,输入设备也可以以其它方式被连接,诸如但不限于经由并行端口、游戏端口、或通用串行总线(USB)连接。监控器47或其它类型的显示设备也可以通过接口(例如视频适配器48)连接到系统总线23。除了监控器47,个人计算机还可以配备有其它的外围输出设备(未示出),例如扬声器、打印机等。
计算机系统20可以使用到一个或多个远程计算机49的网络连接而工作在网络环境中。一个或多个远程计算机49可以为本地计算机工作站或服务器,其包括在描述计算机系统20的性质时所述的元件中的大多数元件或全部元件。其它设备也可以存在于计算机网络中,诸如但不限于路由器、网站、对等设备或其它的网络节点。
网络连接可以形成局域计算机网络(LAN)50和广域计算机网络(WAN)。这些网络用在企业计算机网络和公司内部网络中,并且这些网络通常有权访问因特网。在LAN或WAN网络中,计算机系统20通过网络适配器或网络接口51连接到局域网50。当使用网络时,计算机系统20可以采用调制解调器54或本领域的普通技术人员所熟知的能够与广域计算机网络(诸如因特网)通信的其它模块。可以是内部设备或外部设备的调制解调器54,可以通过串行端口46连接到系统总线23。本领域的普通技术人员能够领会,所述网络连接是使用通信模块建立一个计算机与另一个计算机的连接的许多熟知方式的非限制性示例。
在各个方面中,本文中所描述的系统和方法可以以硬件、软件、固件或其任何组合来实施。如果以软件来实施,则上述方法可以作为一个或多个指令或代码而被存储在非暂时性计算机可读介质上。计算机可读介质包括数据存储器。以示例性而非限制性的方式,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM、闪存或其它类型的电存储介质、磁存储介质或光存储介质、或可用来携带或存储所期望的指令或数据结构形式的程序代码并可以被通用计算机的处理器访问的任何其它介质。
在各个方面中,本发明中所描述的系统和方法可以按照模块来处理。本文中所使用的术语“模块”指的是例如现实世界的设备、部件、或使用硬件(例如通过专用集成电路(ASIC)或现场可编程门阵列(FPGA))实现的部件的布置、或者硬件和软件的组合,诸如通过微处理器系统和实现模块功能的指令集(该指令集在被执行时将微处理器系统转换成专用设备)来实现这样的组合。一个模块还可以被实施为两个模块的组合,其中单独地通过硬件促进某些功能,并且通过硬件和软件的组合促进其它功能。在某些实现方式中,模块的至少一部分(以及在一些情况下,模块的全部)可以在通用计算机(诸如上文在图7中更详细描述的通用计算机)的处理器上执行。因此,每个模块可以以各种合适的配置来实现,而不应受限于本文中所列举的任何特定的实现方式。
为了清楚起见,没有公开各个方面的所有例行特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定实现方式的决定,以便实现开发者的特定目标,并且这些特定目标对于不同的实现方式和不同的开发者将变化。应当理解的是,这种开发努力可能是复杂的且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的例行任务。
此外,应当理解的是,本文中所使用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文中所提出的教导和指导结合相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。
本文中所公开的各个方面包括本文中以说明性方式所引用的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将显而易见的是,在不脱离本文中所公开的发明构思的前提下,相比于上文所述内容而言的更多修改是可行的。
Claims (21)
1.一种通过使用用于检测恶意文件的经训练的模型检测恶意文件的系统,所述系统包括硬件处理器,所述硬件处理器被配置为:
基于从正在被执行的文件的行为日志中选择的命令和参数,形成至少一个行为模式;
计算形成的所有行为模式的卷积;
基于从所述正在被执行的文件的所述行为日志中选择的所述命令和参数,从检测模型数据库中选择至少两个用于检测恶意文件的模型;
基于对所述卷积和所述至少两个用于检测恶意文件的模型的分析,计算正在被执行的文件的有害性程度;
基于所述有害性程度,形成决策模式;
如果形成的所述决策模式与来自之前基于对恶意文件的分析而形成的决策模式数据库的至少一个预定的决策模式之间的相似度超过预定阈值,则将所述正在被执行的文件识别为恶意的。
2.根据权利要求1所述的系统,其中,所述硬件处理器被配置为:
形成正在被执行的文件的所述行为日志,所述行为日志被设计为至少在所述文件的执行期间拦截至少一个命令以及对所述文件的执行进行仿真;
为每个被拦截的命令确定描述所述命令的至少一个参数;以及
基于被拦截的所述命令和确定的所述参数,形成所述文件的行为日志。
3.根据权利要求1所述的系统,其中,从所述检测模型数据库中选择的每个用于检测恶意文件的模型被训练用于检测具有特定的、之前确定的特性特征的恶意文件。
4.根据权利要求1所述的系统,其中,所述硬件处理器还被配置为:
如果形成的所述决策模式与来自所述决策模式数据库的至少一个预定的决策模式之间的相似度超过预定阈值,并且借助于那些用于检测恶意文件的模型计算出的所述有害性程度不超过预定阈值,则基于从所述正在被执行的文件的所述行为日志中选择的所述命令和参数,对来自所述检测模型数据库的至少一个检测模型进行再训练。
5.根据权利要求1所述的系统,其中,所述行为模式包括至少一个命令和参数的集合,所述参数描述该集合中的所有命令。
6.根据权利要求1所述的系统,其中,所述用于检测恶意文件的模型包括用于确定所述有害性程度的决策规则。
7.根据权利要求2所述的系统,其中,所述硬件处理器还被配置为:
通过分析所述行为日志形成所述行为模式。
8.一种通过使用用于检测恶意文件的经训练的模型检测恶意文件的方法,所述方法包括:
基于从正在被执行的文件的行为日志中选择的命令和参数,形成至少一个行为模式;
计算形成的所有行为模式的卷积;
基于从所述正在被执行的文件的所述行为日志中选择的所述命令和参数,从检测模型数据库中选择至少两个用于检测恶意文件的模型;
基于对所述卷积和所述至少两个用于检测恶意文件的模型的分析,计算正在被执行的文件的有害性程度;
基于所述有害性程度,形成决策模式;
如果形成的所述决策模式与来自之前基于对恶意文件的分析而形成的决策模式数据库的至少一个预定的决策模式之间的相似度超过预定阈值,则将所述正在被执行的文件识别为恶意的。
9.根据权利要求8所述的方法,还包括:
形成正在被执行的文件的所述行为日志,所述行为日志被设计为至少在所述文件的执行期间拦截至少一个命令以及对所述文件的执行进行仿真;
为每个被拦截的命令确定描述所述命令的至少一个参数;以及
基于被拦截的所述命令和确定的所述参数,形成所述文件的行为日志。
10.根据权利要求8所述的方法,其中,从所述检测模型数据库中选择的每个用于检测恶意文件的模型被训练用于检测具有特定的、之前确定的特性特征的恶意文件。
11.根据权利要求8所述的方法,还包括:
如果形成的所述决策模式与来自所述决策模式数据库的至少一个预定的决策模式之间的相似度超过预定阈值,并且借助于那些用于检测恶意文件的模型计算出的所述有害性程度不超过预定阈值,则基于从所述正在被执行的文件的所述行为日志中选择的所述命令和参数,对来自所述检测模型数据库的至少一个检测模型进行再训练。
12.根据权利要求8所述的方法,其中,所述行为模式包括至少一个命令和参数的集合,所述参数描述该集合中的所有命令。
13.根据权利要求8所述的方法,其中,所述用于检测恶意文件的模型包括用于确定所述有害性程度的决策规则。
14.根据权利要求9所述的方法,还包括:
通过分析所述行为日志形成所述行为模式。
15.一种非暂时性计算机介质,其上存储有用于通过使用用于检测恶意文件的经训练的模型检测恶意文件的指令,所述指令包括:
基于从正在被执行的文件的行为日志中选择的命令和参数,形成至少一个行为模式;
计算形成的所有行为模式的卷积;
基于从所述正在被执行的文件的所述行为日志中选择的所述命令和参数,从检测模型数据库中选择至少两个用于检测恶意文件的模型;
基于对所述卷积和所述至少两个用于检测恶意文件的模型的分析,计算所述正在被执行的文件的有害性程度;
基于所述有害性程度,形成决策模式;
如果形成的所述决策模式与来自之前基于对恶意文件的分析而形成的决策模式数据库的至少一个预定的决策模式之间的相似度超过预定阈值,则将所述正在被执行的文件识别为恶意的。
16.根据权利要求15所述的介质,其中,所述指令还包括:
形成正在被执行的文件的所述行为日志,所述行为日志被设计为至少在所述文件的执行期间拦截至少一个命令以及对所述文件的执行进行仿真;
为每个被拦截的命令确定描述所述命令的至少一个参数;以及
基于被拦截的所述命令和确定的所述参数,形成所述文件的行为日志。
17.根据权利要求15所述的介质,其中,从所述检测模型数据库中选择的每个用于检测恶意文件的模型被训练用于检测具有特定的、之前确定的特性特征的恶意文件。
18.根据权利要求15所述的介质,其中,所述指令还包括:
如果形成的所述决策模式与来自所述决策模式数据库的至少一个预定的决策模式之间的相似度超过预定阈值,并且借助于那些用于检测恶意文件的模型计算出的所述有害性程度不超过预定阈值,则基于从所述正在被执行的文件的所述行为日志中选择的所述命令和参数,对来自所述检测模型数据库的至少一个检测模型进行再训练。
19.根据权利要求15所述的介质,其中,所述行为模式包括至少一个命令和参数的集合,所述参数描述该集合中的所有命令。
20.根据权利要求15所述的介质,其中,所述用于检测恶意文件的模型包括用于确定所述有害性程度的决策规则。
21.根据权利要求16所述的介质,其中,所述指令还包括:
通过分析所述行为日志形成所述行为模式。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762573970P | 2017-10-18 | 2017-10-18 | |
US62/573,970 | 2017-10-18 | ||
US16/149,263 | 2018-10-02 | ||
US16/149,263 US10878090B2 (en) | 2017-10-18 | 2018-10-02 | System and method of detecting malicious files using a trained machine learning model |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109684836A CN109684836A (zh) | 2019-04-26 |
CN109684836B true CN109684836B (zh) | 2023-03-21 |
Family
ID=63832289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811214984.8A Active CN109684836B (zh) | 2017-10-18 | 2018-10-18 | 使用经训练的机器学习模型检测恶意文件的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10878090B2 (zh) |
EP (1) | EP3474177B1 (zh) |
JP (1) | JP6731988B2 (zh) |
CN (1) | CN109684836B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7092998B2 (ja) * | 2018-04-26 | 2022-06-29 | 富士通株式会社 | 分析プログラム及び分析方法 |
US20200372183A1 (en) * | 2019-05-21 | 2020-11-26 | Hewlett Packard Enterprise Development Lp | Digitally Signing Software Packages With Hash Values |
US11029947B2 (en) * | 2019-08-30 | 2021-06-08 | Accenture Global Solutions Limited | Utilizing artificial intelligence to improve productivity of software development and information technology operations (DevOps) |
EP3798885B1 (en) * | 2019-09-30 | 2023-06-07 | AO Kaspersky Lab | System and method for detection of malicious files |
US11399041B1 (en) | 2019-11-22 | 2022-07-26 | Anvilogic, Inc. | System for determining rules for detecting security threats |
US11055652B1 (en) * | 2019-11-22 | 2021-07-06 | Anvilogic, Inc. | System for sharing detection logic through a cloud-based exchange platform |
CN111159111A (zh) * | 2019-12-13 | 2020-05-15 | 深信服科技股份有限公司 | 一种信息处理方法、设备、系统和计算机可读存储介质 |
JP7413011B2 (ja) * | 2019-12-27 | 2024-01-15 | キヤノンメディカルシステムズ株式会社 | 医用情報処理装置 |
US11290483B1 (en) | 2020-04-07 | 2022-03-29 | Anvilogic, Inc. | Platform for developing high efficacy detection content |
CN111859404B (zh) * | 2020-07-30 | 2023-09-05 | 中国工商银行股份有限公司 | 计算机的系统漏洞探测的方法、装置、电子设备及介质 |
US20220269807A1 (en) * | 2021-02-22 | 2022-08-25 | EMC IP Holding Company LLC | Detecting unauthorized encryptions in data storage systems |
CN116260660B (zh) * | 2023-05-15 | 2023-07-25 | 杭州美创科技股份有限公司 | 网页木马后门识别方法及系统 |
CN116861430B (zh) * | 2023-09-04 | 2023-11-17 | 北京安天网络安全技术有限公司 | 一种恶意文件检测方法、装置、设备及介质 |
CN118036008B (zh) * | 2024-04-15 | 2024-06-21 | 北京大学 | 恶意文件伪装检测方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8726232B1 (en) * | 2005-12-02 | 2014-05-13 | The Math Works, Inc. | Identification of patterns in modeling environments |
EP1879124A1 (en) | 2006-06-15 | 2008-01-16 | Deutsche Telekom AG | Improved method and system for detecting malicious behavioral patterns in a computer, using machine leaning |
US8789172B2 (en) * | 2006-09-18 | 2014-07-22 | The Trustees Of Columbia University In The City Of New York | Methods, media, and systems for detecting attack on a digital processing device |
US8719939B2 (en) * | 2009-12-31 | 2014-05-06 | Mcafee, Inc. | Malware detection via reputation system |
US10742591B2 (en) * | 2011-07-06 | 2020-08-11 | Akamai Technologies Inc. | System for domain reputation scoring |
EP2610776B1 (en) * | 2011-09-16 | 2019-08-21 | Veracode, Inc. | Automated behavioural and static analysis using an instrumented sandbox and machine learning classification for mobile security |
US9349103B2 (en) * | 2012-01-09 | 2016-05-24 | DecisionQ Corporation | Application of machine learned Bayesian networks to detection of anomalies in complex systems |
US9288220B2 (en) | 2013-11-07 | 2016-03-15 | Cyberpoint International Llc | Methods and systems for malware detection |
US10104107B2 (en) * | 2015-05-11 | 2018-10-16 | Qualcomm Incorporated | Methods and systems for behavior-specific actuation for real-time whitelisting |
CN105095755A (zh) | 2015-06-15 | 2015-11-25 | 安一恒通(北京)科技有限公司 | 文件识别方法和装置 |
JP6039768B1 (ja) | 2015-08-12 | 2016-12-07 | 日本電信電話株式会社 | 調整装置、調整方法および調整プログラム |
KR102559199B1 (ko) * | 2015-11-02 | 2023-07-25 | 삼성전자주식회사 | 배터리 관리 방법 및 배터리 관리 장치 |
KR102450834B1 (ko) | 2016-01-04 | 2022-10-05 | 한국전자통신연구원 | 다중 특징벡터를 이용하는 행위기반 악성코드 탐지 장치 및 방법 |
US9928363B2 (en) * | 2016-02-26 | 2018-03-27 | Cylance Inc. | Isolating data for analysis to avoid malicious attacks |
US10318735B2 (en) * | 2016-06-22 | 2019-06-11 | Invincea, Inc. | Methods and apparatus for detecting whether a string of characters represents malicious activity using machine learning |
US10972482B2 (en) * | 2016-07-05 | 2021-04-06 | Webroot Inc. | Automatic inline detection based on static data |
US10652252B2 (en) * | 2016-09-30 | 2020-05-12 | Cylance Inc. | Machine learning classification using Markov modeling |
US10726128B2 (en) * | 2017-07-24 | 2020-07-28 | Crowdstrike, Inc. | Malware detection using local computational models |
US11310245B2 (en) * | 2018-01-22 | 2022-04-19 | T-Mobile Usa, Inc. | Indicator of compromise calculation system |
-
2018
- 2018-10-02 US US16/149,263 patent/US10878090B2/en active Active
- 2018-10-10 EP EP18199531.7A patent/EP3474177B1/en active Active
- 2018-10-16 JP JP2018194846A patent/JP6731988B2/ja active Active
- 2018-10-18 CN CN201811214984.8A patent/CN109684836B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
JP2019091435A (ja) | 2019-06-13 |
CN109684836A (zh) | 2019-04-26 |
EP3474177A1 (en) | 2019-04-24 |
JP6731988B2 (ja) | 2020-07-29 |
US10878090B2 (en) | 2020-12-29 |
US20190114420A1 (en) | 2019-04-18 |
EP3474177B1 (en) | 2020-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684836B (zh) | 使用经训练的机器学习模型检测恶意文件的系统和方法 | |
CN109271780B (zh) | 机器学习恶意软件检测模型的方法、系统和计算机可读介质 | |
RU2739865C2 (ru) | Система и способ обнаружения вредоносного файла | |
US11403396B2 (en) | System and method of allocating computer resources for detection of malicious files | |
CN109684835B (zh) | 使用机器学习来检测恶意文件的系统和方法 | |
RU2679785C1 (ru) | Система и способ классификации объектов | |
JP7405596B2 (ja) | コンピュータシステムのオブジェクト分類のためのシステムおよび方法 | |
CN109684072B (zh) | 基于机器学习模型管理用于检测恶意文件的计算资源的系统和方法 | |
RU2654151C1 (ru) | Система и способ обнаружения вредоносных файлов с использованием обученной модели обнаружения вредоносных файлов | |
RU2673708C1 (ru) | Система и способ машинного обучения модели обнаружения вредоносных файлов |
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 |