CN111382434B - 用于检测恶意文件的系统和方法 - Google Patents
用于检测恶意文件的系统和方法 Download PDFInfo
- Publication number
- CN111382434B CN111382434B CN201910599029.9A CN201910599029A CN111382434B CN 111382434 B CN111382434 B CN 111382434B CN 201910599029 A CN201910599029 A CN 201910599029A CN 111382434 B CN111382434 B CN 111382434B
- Authority
- CN
- China
- Prior art keywords
- file
- malicious
- files
- degree
- level
- 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
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/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- 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
- 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/52—Monitoring 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
- G06N5/025—Extracting rules from data
-
- 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
-
- 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/033—Test or assess software
-
- 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
-
- 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/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2101—Auditing as a secondary aspect
-
- 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
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Computational Linguistics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及用于检测恶意文件的系统和方法。示例性方法包括:基于文件的执行的行为数据形成特征向量;使用经训练的用于计算参数的模型基于所述特征向量来计算参数,其中,所述参数包括:i)恶意程度,该恶意程度为所述文件可能为恶意的概率,以及ii)极限安全程度,该极限安全程度为所述文件肯定会被证明为安全的概率,其中,相继计算出的程度的集合由预定的时间法则描述;在所述恶意程度和极限安全程度满足预定标准时,判定所述文件为恶意的,其中,该标准为用于根据建立的所述恶意程度与所述极限安全程度之间的相关性对所述文件进行分类的规则。
Description
技术领域
本发明涉及防病毒技术,并且更具体地涉及用于检测恶意文件的系统和方法。
背景技术
在过去的十年中,计算机技术的快速发展以及各种计算设备(个人计算机、笔记本电脑、平板电脑、智能手机等)的广泛使用,已经成为在不同的活动领域和大量的任务(从因特网网上冲浪到银行转账以及电子文档业务)中使用这些设备的强大促进因素。随着计算设备数量的增长以及这些设备上运行的软件的量的增加,恶意程序的数量也在快速增长。
目前存在大量种类繁多的恶意程序。一些恶意程序从用户设备中窃取个人数据和机密数据(例如登录名和密码、银行详细信息、电子文档)。其它恶意程序从用户设备形成所谓的僵尸网络,以用于诸如分布式拒绝服务(Distributed Denial of Service,DDoS)的攻击或者用于通过对其它计算机或计算机网络的暴力破解方法对密码进行破译。还有一些恶意程序通过侵入式广告、付费订阅、向收费号码发送短信(SMS)等向用户推荐付费内容。
被称为防病毒处理的特殊程序用于对抗恶意程序,所述防病毒处理包括检测恶意程序、预防感染、以及恢复受恶意程序感染的计算设备的工作能力。防病毒程序采用各种技术来检测各种恶意程序,诸如:
·静态分析-基于构成正在被分析的程序的文件中包含的数据,分析程序的恶意性,不包括启动或仿真正在被分析的程序的工作,其中,在静态分析期间,可以使用:
ο签名分析-从恶意程序的签名数据库中搜索正在被分析的程序的特定代码段与已知代码(签名)的对应关系;
ο白名单和黑名单-在恶意程序(黑名单)的校验和数据库或安全程序(白名单)的校验和数据库中搜索从正在被分析的程序(或其部分)计算出的校验和;
·动态分析-基于在执行或仿真正在被分析的程序的工作的过程中所获取的数据,对程序的恶意性进行分析,其中,在动态分析期间,可以使用:
ο启发式分析-仿真正在被分析的程序的工作、创建仿真日志(包含关于API函数调用的数据、传输的参数、正在被分析的程序的代码段等)、以及搜索创建的日志数据与来自恶意程序行为签名数据库中的数据之间的对应关系;
ο主动保护-拦截正在被分析的已启动程序的API函数的调用、创建正在被分析的程序的行为的日志(包含关于API函数调用的数据、传输的参数、正在被分析的程序的代码段等)、以及搜索创建的日志数据与来自恶意程序调用数据库中的数据之间的对应关系。
静态分析和动态分析都有其优点和缺点。静态分析对正在进行分析的计算设备的资源要求较低,并且由于静态分析不需要执行或仿真正在被分析的程序,所以静态分析更快,但同时有效性较低,即,静态分析分析具有较低的恶意程序检测百分比和较高的错误警报百分比(即,当分析的文件是安全的时候,通过防病毒程序确定该分析的文件是恶意的)。动态分析,由于其使用在执行或仿真正在被分析的程序的工作期间获取的数据,所以更慢并且对正在执行分析的计算设备的资源要求较高,但同时也更有效。现代防病毒程序采用包括静态分析和动态分析两者的要素的综合分析。
由于现代信息安全标准要求对恶意程序(特别是新恶意程序)进行操作性响应,因此自动检测恶意程序的方法成为关注的主要焦点。为了有效的操作这种方法,经常使用人工智能要素和利用用于检测恶意程序的模型(即,用于基于描述恶意文件的特定输入数据集做出关于文件的恶意性的判定的规则集)的各种机器学习的方法,从而不仅能够有效的检测已知的恶意程序或具有已知恶意行为的恶意程序,而且能够有效地检测具有未知的或很少研究的恶意行为的新的恶意程序,以及有效的适应(学习)以检测新的恶意程序。
尽管已知的技术很好地处理了具有与已知恶意文件的特性特征类似的特性属性(即,描述来自特定文件组的文件的特定特征的数据,诸如图形界面的存在、数据加密、通过计算机网络的数据传输等)的恶意文件的检测,但是已知的技术无法处理具有与已知恶意文件的特性特征不同的特性特征的恶意文件(尽管有类似的行为)的检测,此外,上述技术没有公开通过作为测试的模型进行的机器学习和模型的再训练、以及特性特征的形成和再形成(取决于上述测试的结果)的这些方面。
本发明使得能够解决检测恶意文件的问题。
发明内容
本发明被设计为用于文件的防病毒扫描。
本发明的很多示例性技术结果之一在于提高针对恶意性来扫描文件的质量。
本发明的又一示例性技术结果在于减少用于针对恶意性来执行文件的扫描的计算资源。
借助于用于检测恶意文件的方法、系统和计算机程序产品来实现这些结果。
一种示例性方法包括:在计算机系统内的文件的执行期间监控所述文件;基于在所述文件的执行期间的行为数据形成特征向量,其中,所述特征向量的特征表征所述行为数据,以及所述特征向量表示所述行为数据的以数字集合的形式的卷积;使用经训练的用于计算参数的模型基于所述特征向量计算参数,其中,所述参数包括:i)恶意程度,该恶意程度为所述文件可能为恶意的概率,以及ii)极限安全程度(limit degree of safety),该极限安全程度为所述文件肯定会被证明为安全的概率,其中,相继计算出的程度的聚合(aggregate)由预定的时间法则描述;以及在所述恶意程度和所述极限安全程度满足预定标准时,判定所述文件为恶意的,其中,该标准为用于根据建立的所述恶意程度与所述极限安全程度之间的相关性对所述文件进行分类的规则。
在另一方面中,所述用于计算参数的模型是通过在至少一个安全文件和一个恶意文件上执行机器学习方法进行训练的。
在另一方面中,所述机器学习方法为如下中的一者:关于决策树的梯度提升、决策树、k-最近邻法、和支持向量法。
在另一方面中,所述行为数据至少包括:所述文件正在执行的命令、正在被传送到这些命令的属性以及正在被返回的值、由正在执行的所述文件正在修改的RAM区域上的数据、或者所述文件的静态参数。
在另一方面中,所述方法还包括:基于所述恶意程度计算所述极限安全程度,并且其中,所述极限安全程度是在启动所述文件时基于对所述文件的静态参数的分析所计算的。
在另一方面中,所述经训练的用于计算参数的模型为用于计算所述文件的所述恶意程度和所述文件的所述极限安全程度的规则的集合,所述规则取决于所述行为数据。
在另一方面中,所述时间法则在本质上是单调的。
在另一方面中,所述恶意程度与所述极限安全程度之间的相关性至少为:与所述恶意程度和恶意边界条件之间的距离的预定阈值的差异、与界定在给定的时间间隔内且在所述恶意程度和所述恶意边界条件之间的区域的预定阈值的差异、或者与描述所述恶意程度的曲线和所述恶意边界条件根据时间的相互增加的速率的预定值的差异。
在另一方面中,还基于对计算出的所述恶意程度和极限安全程度的分析对所述用于计算参数的模型进行再训练,使得描述所述恶意程度和所述极限安全程度的所述时间法则的变化意味着基于这些法则获得的值之间的相关性趋于最大值。
在另一方面中,对所述用于计算参数的模型进行再训练,使得在使用该模型时,之后形成的标准将至少确保:确定所述恶意程度和所述极限安全程度的准确性大于使用未经训练的用于计算参数的模型的准确性、利用的计算资源少于使用未经训练的用于计算参数的模型利用的资源。
在另一方面中,提供了一种用于检测恶意文件的系统,所述系统包括:硬件处理器,所述硬件处理器被配置为在计算机系统内的文件的执行期间监控所述文件;基于在所述文件的执行期间的行为数据形成特征向量,其中,所述特征向量的特征表征所述行为数据,以及其中,所述特征向量表示所述行为数据的以数字集合的形式的卷积;使用经训练的用于计算参数的模型基于所述特征向量计算参数,其中,所述参数包括:i)恶意程度,该恶意程度为所述文件可能为恶意的概率,以及ii)极限安全程度,该极限安全程度为所述文件肯定会被证明为安全的概率,其中,相继计算出的程度的聚合由预定的时间法则描述;以及在所述恶意程度和所述极限安全程度满足预定标准时,判定所述文件为恶意的,其中,该标准为用于根据建立的所述恶意程度与所述极限安全程度之间的相关性对所述文件进行分类的规则。
在又一方面中,可以提供一种非暂时性计算机可读介质,所述非暂时性计算机可读介质上包含有用于执行上文以及本文的公开内容中描述的方法和系统的指令。
以上对本发明的示例性方面的简化概述用于提供对本发明的基本理解。本概述不是对所有预期方面的广泛概述,并且既不旨在确定所有方面的关键或重要要素,也不描绘本发明的任何或全部方面的范围。为了实现前述内容,本发明的一个或更多个方面包括权利要求中所描述和特别指出的特征。
附图说明
并入本说明书中并构成本说明书的一部分的附图示出了本发明的一个或多个示例性方面,以及连同详细的描述一起用来阐述这些示例性方面的原理和实现方式。
图1示出了根据本发明的示例性方面的通过用于检测恶意文件的模型进行机器学习的系统的结构图。
图2示出了根据本发明的示例性方面的通过用于检测恶意文件的模型进行机器学习的方法的结构图。
图3示出了根据本发明的示例性方面的恶意程度根据行为模式的数量的变化动态的示例。
图4示出了根据本发明的示例性方面的行为模式的要素之间的关系图的示例。
图5示出了根据本发明的示例性方面的使用经训练的用于检测恶意文件的模型检测恶意文件的系统的结构图。
图6示出了根据本发明的示例性方面的使用经训练的用于检测恶意文件的模型检测恶意文件的方法的结构图。
图7示出了根据本发明的示例性方面的用于检测恶意文件的系统的结构图。
图8示出了根据本发明的示例性方面的用于检测恶意文件的方法的结构图。
图9示出了根据本发明的示例性方面的恶意程度和极限安全程度根据行为模式的数量的变化动态的示例。
图10示出了根据本发明的示例性方面的通用计算机系统(个人计算机或服务器)的示例。
具体实施方式
本文中在用于文件的防病毒扫描的系统、方法和计算机程序产品的背景下描述示例性方面。本领域的普通技术人员将认识到,以下描述仅仅是示例性的,而不旨在以任何方式进行限制。其它方面将很容易将其自身暗示给了解本发明的优点的本领域的技术人员。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同或类似的项目。
贯穿本发明的变型方面的描述中使用如下的定义和概念。
恶意文件-已知其执行能够导致计算机信息的未经授权的破坏、阻断、修改、复制,或者导致计算机信息的保护方法失效的文件。
正在执行的文件的恶意行为-可以在执行该文件期间执行并且已知能够导致计算机信息的未经授权的破坏、阻断、修改、复制,或者导致计算机信息的保护方法失效的一组动作。
正在执行的文件的恶意活动-由该文件根据其恶意行为执行的一组动作。
普通用户的计算设备-具有预先选择的一组用户的计算设备的普通特性的假设(理论)计算设备,在该假设(理论)计算设备上执行与这些用户的计算设备上相同的应用程序。
可由计算设备执行的命令-可由计算设备基于指令的参数(称为命令参数或描述该命令的参数)执行的那些机器指令集合或脚本的指令集合。
词法分析(令牌化)-将输入的字符序列解析为被识别的组(以下称为:词位(lexeme))以便在输出处形成识别序列(以下称为:令牌(token))的分析过程。
令牌(Token)-在词法分析过程中由词法形成的识别序列。
图1示出了通过用于检测恶意文件的模型进行机器学习的系统的结构图。
用于机器学习的系统的结构图包括训练选择准备模块(raining selectionspreparation module)111、行为日志形成模块112、行为模式形成模块121、卷积函数形成模块122、检测模型创建模块131、检测模型机器学习模块132、恶意程度计算模块142、以及资源管理模块143。
在所述系统的一个变型方面中,上述通过用于检测的模型进行机器学习的系统为客户端-服务器架构,其中,训练选择准备模块111、行为日志形成模块112、行为模式形成模块121、卷积函数形成模块122、检测模型创建模块131以及检测模型机器学习模块132在服务器侧工作,而行为模式形成模块121、恶意程度计算模块142以及资源管理模块143在客户端侧工作。
例如,客户端可以是用户的计算设备,诸如个人计算机、笔记本电脑、智能手机等,并且服务器可以是防病毒公司的计算设备,诸如服务器的分布式系统,通过该服务器的分布式系统,除了其它一切之外,还完成了文件的初步收集和防病毒分析、防病毒记录的创建等,其中,用于检测恶意文件的模型的机器学习系统将被用来检测客户端侧的恶意文件,从而提高该客户端的防病毒保护的有效性。
在又一示例中,客户端和服务器都可以是仅防病毒公司的计算设备,其中,通过用于检测恶意文件的模型进行机器学习的系统将用于文件的自动防病毒分析以及防病毒记录的创建,从而提高防病毒公司的工作效率。
训练选择准备模块111被设计为:
·根据形成训练选择文件(a training selection of files)的预定规则从文件数据库中选择至少一个文件,之后检测模型机器学习模块132将基于所选择的文件的分析来执行检测模型的训练;
·将所选择的文件发送到行为日志形成模块112。
在所述系统的一个变型方面中,将至少一个安全文件和一个恶意文件保存在文件数据库中。
例如,文件数据库中的安全文件可以是Windows操作系统的文件,并且恶意文件可以是后门程序文件、作为整体的执行对数据的未授权访问和对操作系统的未授权远程控制的应用程序以及计算机。此外,使用机器学习的方法针对上述文件训练的用于检测恶意文件的模型将能够以高准确度(用于训练上述模型(该模型用于进行检测)的文件越多,则检测的准确度越高)检测具有与上述后门程序的功能类似功能的恶意文件。
在所述系统的又一变型方面中,文件数据库还至少保存:
·可疑文件(风险软件)-非恶意但能够执行恶意动作的文件;
·未知文件-其恶意性尚未确定并且仍未知的且另外保存在文件数据库中的文件(即,不安全文件、恶意文件、可疑文件等)。
例如,文件数据库中的可疑文件可以为用于远程管理(诸如RAdmin)、归档、或数据加密(诸如WinZip)等的应用程序文件。
在所述系统的又一变型方面中,文件数据库至少保存如下文件:
·由防病毒网络爬虫(web crawlers)收集的文件;
·由用户发送的文件。
此外,上述文件由防病毒专家进行分析,包括借助于自动分析文件的方法进行分析,以便之后对所述文件的恶意性作出判定。
例如,可以将用户从其计算设备发送到用于检查其恶意性的防病毒公司的文件保存在文件数据库中,在这种情况下发送的文件可能是安全的或者恶意的,并且所述安全文件和恶意文件的数量之间的分布接近于位于所述用户的计算设备上的所有安全文件和所有恶意文件的数量之间的分布,即,所述安全文件的数量和所述恶意文件的数量之比与位于所述用户的计算设备上的所有安全文件的数量和所有恶意文件的数量之比相差的量小于指定阈值,即:
与用户发送的文件(即,主观上可疑的文件)不同,由被设计为用于搜索可疑和恶意文件的防病毒网络爬虫收集的文件更常被证明是恶意的。
在所述系统的又一变型方面中,使用如下条件中的至少一者作为从文件数据库中选择文件的标准:
·从文件数据库中选择的安全文件和恶意文件之间的分布对应于位于普通用户的计算设备上的安全文件和恶意文件之间的分布;
·从文件数据库中选择的安全文件和恶意文件之间的分布对应于借助于防病毒网络爬虫收集的安全文件和恶意文件之间的分布;
·从文件数据库中选择的文件的参数对应于位于普通用户的计算设备上的文件的参数;
·所选择的文件的数量对应于预定值,而文件本身是随机选择的。
例如,文件数据库包含100000个文件,其中40%为安全文件,60%为恶意文件。从文件数据库中选择15000个文件(文件总数量的15%被保存在文件数据库中),使得所选择的安全文件和恶意文件之间的分布对应于位于普通用户的计算设备上的安全文件和恶意文件之间的分布且分布量为95对5。为此,从文件数据库中随机选择14250个安全文件(安全文件总数量的36.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地址的位掩码(或所述位掩码的模拟,由元字符表示)(即,这样的位掩码M:对于该位掩码M,针对所有那些IP,等式M^IP=(const)为真);
令牌可以形成为:
‘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字节的大小,而所述特征向量的卷积函数的结果构成八个MD5哈希和的集合,且因此具有256字节的大小,即为特征向量大小的约2%。
在所述系统的又一变型方面中,特征向量的相似度和所计算的特征向量的所述散列函数的结果的逆散列函数的结果构成0到1范围内的数值,并且通过如下公式计算:
其中:
h(ri)^gi表示h(ri)与gi的一致性。
以及
{h(ri)}为行为模式的要素的散列函数的结果的集合;
{gi}为行为模式的要素的散列函数的逆散列函数的结果的集合;
ri为行为模式的第i个要素;
h为散列函数;
w为相似度。
例如,计算出的特征向量构成位向量:
101011100110010010110111011111101000100011001001001001110101101101010001100110110100100010000001011101110011011011;
该特征向量的卷积函数的结果为:
1010011110101110101;
以及上述获得的结果的逆卷积函数的结果为:
101011100100010010110111001111101000100011001001010001110101101101110001100110110100000010000001011101110011011011
(其中,粗体和下划线表示与特征向量不同的要素)。因此,特征向量与逆卷积函数的结果的相似度为0.92。
在所述系统的又一变型方面中,上述使用行为模式的要素作为参数的散列函数取决于行为模式的要素的类型:
h(ri)=hri(ri)。
例如,为了从构成包含文件路径的字符串的行为模式计算参数的散列和,使用散列函数CRC32;对于任何其它字符串,使用霍夫曼算法(Hoffman algorithm);对于数据集合,使用散列函数MD5。
在所述系统的又一变型方面中,行为模式的特征向量的卷积函数的形成通过自动编码器执行,其中,输入数据为行为模式的所述特征向量的要素,并且输出数据为具有与输入数据的相似系数大于预定值的数据。
检测模型创建模块131被设计为:
·创建用于检测恶意文件的模型,包括至少根据由训练选择准备模块111选择的文件的参数:
ο选择检测模型的机器学习方法;
ο初始化训练模型的参数,其中,在检测模型的机器学习开始之前初始化的训练模型的参数被称为超参数;
·将如此创建的训练模型发送到检测模型机器学习模块132。
例如,当选择检测模型的机器学习方法时,首先决定是否使用人工神经网络(artificial neural net)或随机森林(random forest)作为检测模型,那么如果选择了随机森林,则选择用于随机森林的节点的分离标准;或者如果选择了人工神经网络,则选择人工神经网络的参数的数值优化的方法。此外,关于特定机器学习方法的选择的决定是基于该方法在使用预定种类(即,数据结构、行为模式的要素数量、其上正在进行恶意文件搜索的计算设备的性能、计算设备的可用资源等)的输入数据(行为模式)检测恶意文件时的有效性(即,在检测恶意文件时发生的第一种错误和第二种错误的数量)做出的。
在又一示例中,至少基于如下选择检测模型的机器学习方法:
·交叉测试、滑动检查、交叉验证(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选择的另一文件集合中的文件是否是恶意的,事先知道这些文件是否是恶意的。因此,确定有多少恶意文件被“遗漏”以及检测到多少安全文件。如果遗漏的恶意文件和检测到的安全文件的数量大于预定阈值,则认为该检测模型未被正确训练并且该检测模型需要进行重复机器学习(例如,针对另外的训练选择文件,使用与先前的参数值不同的检测模型的参数值等)。
例如,当对经训练的模型执行检查时,在从测试选择文件检测恶意文件时检查第一种错误和第二种错误的数量。如果这种错误的数量大于预定阈值,则选择新的训练选择文件和测试选择文件,并创建新的检测模型。
在又一示例中,训练选择文件包含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,在步骤211中准备训练选择文件;步骤212,在步骤212中形成行为日志;步骤221,在步骤221中形成行为模式;步骤222,在步骤222中形成卷积函数;步骤231,在步骤231中创建检测模型;步骤232,在步骤232中训练检测模型;步骤241,在步骤241中跟踪计算机系统的行为;步骤242,在步骤242中计算恶意程度;以及步骤243,在步骤243中管理计算机系统的资源。
在步骤211中,训练选择准备模块111用于根据预定标准从文件数据库中选择至少一个文件,其中,检测模型的训练将基于所选择的文件在步骤232中执行。
在步骤212中,行为日志形成模块112用于:
·至少在如下期间拦截至少一个命令:
ο执行在步骤211中所选择的文件;
ο仿真在步骤211中所选择的文件的工作;
·针对每个拦截的命令确定至少一个描述该命令的参数;
·基于拦截的命令和确定的参数形成获得的文件的行为日志,其中,行为日志表示来自文件的拦截命令(以下称为命令)的集合,其中,每个命令对应于描述该命令的至少一个定义的参数(以下称为参数)。
在步骤221中,行为模式形成模块121用于基于从在步骤212中形成的行为日志中所选择的命令和参数形成至少一个行为模式,其中,行为日志表示来自文件的可执行命令(以下称为命令)的集合,其中,每个命令对应于描述该命令的至少一个参数(以下称为参数),行为模式为至少一个命令和描述所述集合中的所有命令的参数的集合。
在步骤222中,卷积函数形成模块122用于形成在步骤221中形成的行为模式的卷积函数,使得对该行为模式执行的该卷积函数的结果的逆卷积函数将具有大于指定值的与上述行为模式的相似度。
在步骤231中,检测模型创建模块131用于创建检测模型,对于该检测模型,至少根据在步骤211中选择的文件的参数:
·选择检测模型的机器学习方法;
·初始化训练模型的参数,其中,在检测模型的机器学习开始之前初始化的训练模型的参数被称为超参数。
在步骤232中,检测模型机器学习模块132用于训练在步骤231中创建的检测模型,其中,使用在步骤222中形成的卷积函数计算该检测模型的参数,针对在步骤221中形成的行为模式执行该卷积函数,其中,检测模型构成一组规则,该组规则用于基于至少一个行为模式使用计算出的该检测模型的参数来计算文件的恶意程度。
在步骤241中,行为跟踪模块141用于:
·拦截由计算机系统中运行的文件正在执行的至少一个命令;
·基于拦截的命令形成系统的行为日志。
在步骤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),恶意程度变得大于恶意标准,则正在执行的文件的行为将被识别为恶意的,从而文件本身被识别为恶意的。
此外,将文件识别为恶意的时刻可以在恶意活动显现后立即发生,因为所描述的方法很好的响应了恶意程度的平滑增长,这发生在正在执行的文件的持续很久的、明显显现的恶意活动期间以及频繁偶发性的不太明显的恶意活动期间。
在恶意活动偶然发生的情况下(曲线图311的左侧),计算出的恶意程度随着时间的推移可能达到以下这样的值:在该值之后,做出关于正在执行的文件的行为的恶意性和正在执行的文件本身的恶意性的判定。
在不基于形成的各个行为模式计算恶意程度的情况下(例如,因为计算设备的性能不高),可能的情形是将在时刻A(恶意活动开始时)和时刻C(恶意活动结束时)计算恶意程度,但是不会在时刻B(恶意活动发生时)计算恶意程度,尽管如此,由于恶意程度单调变化,因此计算出的恶意程度的值只会增加,并且在时刻D,恶意程度将超过恶意标准,因此正在执行的文件的活动将会被识别为恶意的,从而将检测到恶意文件。
曲线图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并确定描述这些命令的参数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并确定行为模式的要素之间的关系。
在第一步骤中,形成包含一个命令411和描述该命令的一个参数412的模式:
{c1,p1}
{c1,p2}
{c1,p3}
{c1,p5}
{c2,p1}
{c2,p2}
{c2,p6}
{c2,p7}
{c3,p1}
{c3,p2}
{c3,p3}
{c4,p3}
{c4,p5}
{c4,p6}
{c4,p7}
{c5,p4}
{c5,p5}
{c5,p6}
在示出的示例中,已经基于8个拦截的命令(以及描述这些命令的参数)形成了19种行为模式。
在第二步骤中,形成包含一个参数412以及可由该参数描述的所有命令411的模式:
{c1,c2,c3,p1}
{c1,c2,c3,p2}
{c1,c4,c5,p5}
{c2,c4,c5,p6}
{c1,c3,c4,p3}
{c5,p4}
{c2,c4,p7}
在示出的示例中,还基于8个拦截的命令(以及描述这些命令的参数)形成了7种行为模式。
在第三步骤中,形成包含多个参数412以及可由这些参数412描述的所有命令411的模式:
{c1,c2,c3,p1,p2}
{c4,c5,p5,p6}
{c2,c4,p6,p7}
在示出的示例中,还基于8个拦截的命令(以及描述这些命令的参数)形成了3种行为模式。
图5示出了使用经训练的用于检测恶意文件的模型检测恶意文件的系统的结构图。
使用经训练的用于检测恶意文件的模型检测恶意文件的系统的结构图包含正在分析的文件501、行为日志形成模块112、检测模型选择模块520、检测模型数据库521、行为日志分析模块530、恶意程度计算模块540、决策模板数据库541以及分析模块550。
在所述系统的一个变型方面中,所述系统还包含正在执行的文件的行为日志形成模块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-最近邻法;
ο支持向量机。
在所述系统的又一变型方面中,训练检测模型的方法确保了文件的恶意程度根据基于对行为日志的分析形成的行为模式的数量的变化而单调变化。
例如,计算出的文件501的恶意程度可以根据基于对该文件501的行为日志的分析而形成的行为模式的数量仅单调增加或不变。在开始执行文件501时,所形成的行为日志的数量很少,并且计算出的该文件501的恶意程度与0相差不大;随着时间的推移,所形成的模式的数量增加,并且计算出的该文件501的恶意程度也增加,或者如果该文件501没有恶意活动,则计算出的恶意程度保持不变;因此,每当在恶意文件501的执行期间(或从行为日志的任何记录开始形成行为模式)计算文件的恶意程度时,该恶意程度将反映直到计算所述恶意程度的时刻文件501的恶意活动是否已经发生。
在所述系统的又一变型方面中,训练从检测模型数据库521中选择的用于检测恶意文件的每个模型以检测具有预定的独特特性特征的恶意文件。
例如,保存在检测模型数据库521中的检测模型可以被训练以用于检测如下文件:
·具有GUI(图形用户界面)的文件;
·在计算机网络中交换数据的文件;
·加密文件的文件(诸如“特洛伊木马加密(Trojan-Cryptors)”家族的恶意文件);
·用于传播网络漏洞(诸如“网络蠕虫(Net-Worms)”家族的恶意文件)、P2P网络(诸如“P2P蠕虫(P2P-Worms)”家族的恶意文件)等的文件。
因此,可以使用多个经训练的用于检测恶意文件的模型来检测恶意文件。例如,可以借助于检测模型#1、检测模型#2以及检测模型#3来检测恶意文件“WannaCry.exe”,该恶意文件在其执行期间加密用户计算设备上的数据,并将其自身的副本发送到其它计算设备,该其它计算设备与正在执行该恶意文件的用户计算设备连接到同一计算机网络,其中,检测模型#1被训练用于检测利用漏洞的文件、检测模型2被训练用于检测旨在加密文件的文件以及检测模型#3被训练用于检测包含可随着需求的提出进行解释的文本信息的文件(例如,关于付款方式、金额等)。此外,借助于这些模型计算的恶意程度以及计算出恶意程度超过预定阈值的时刻可以彼此不同。例如,使用用于检测恶意文件的模型的结果可以表示在下表中(借助该模型,成功地检测恶意文件501):
表#1
检测模型 | 最大恶意程度 | 来自行为日志的命令数量 |
模型#1 | 0.95 | 374 |
模型#2 | 0.79 | 288 |
模型#3 | 0.87 | 302 |
如果计算出的恶意程度大于0.78,则文件501被识别为恶意的。此外,恶意程度(诸如0.78)表征已经针对其计算恶意程度的文件可以被证明为恶意(78%)或安全(22%)的概率。如果使用多个用于检测恶意文件的模型将文件501识别为恶意的,则文件501将被证明是恶意的概率更高。例如,对于其数据呈现在表#1中的用于检测恶意文件的模型,可以通过下列公式计算总恶意程度:
其中:
wtotal为总恶意程度;
wi为使用模型i计算出的恶意程度;
n为用来计算总恶意程度的用于检测恶意文件的模型的数量。
因此,获得的总恶意程度(0.999685)显著高于预定阈值(0.78),当计算出的文件的恶意程度超过该阈值时,该文件被识别为恶意的。也就是说,使用多个用于检测恶意文件的模型允许大幅度地提高确定恶意文件的准确度,并且在检测恶意文件期间发生的第一种错误和第二种错误更少。
在又一示例中,使用多个用于检测恶意文件的模型允许总恶意程度达到预定阈值(针对该预定阈值,当计算出的文件的恶意程度超过该阈值时,文件被识别为恶意的)远远早于单独地使用每个用于检测恶意文件的模型时。例如,对于其数据呈现在表#1中的用于检测恶意文件的模型,假定计算出的恶意程度单调变化,则可以通过下列公式计算来自行为日志的命令的数量(之后,文件将被识别为恶意的):
其中:
Idetect为来自行为日志的命令的数量,在分析该数量的命令之后,文件被识别为恶意的;
Ii为来自行为日志中命令的数量,在使用模型i分析该数量的命令,文件被识别为恶意的;
wi为使用模型i计算出的恶意程度;
n 为用来计算来自行为日志的命令的数量的用于检测恶意文件的模型的数量,在分析该数量的命令之后,文件被识别为恶意的。
因此,获得的来自行为日志的命令的总数量(207)远远低于通过用于检测恶意文件的模型之一(模型#2)对该行为日志进行分析之后将文件被识别为恶意的、来自行为日志的命令的最初数量(288)。也就是说,使用多个用于检测恶意文件的模型使得能够显著提高确定恶意文件的速度(即效率)。
在又一示例中,保存在检测模型数据库521中的不同检测模型可以被训练以检测具有多个(不一定是特定的)预定特性特征的恶意文件,即检测模型#1可以检测具有图形用户界面并在计算机网络中交换数据的文件,而模型#2可以检测在计算机网络中交换数据并使用网络漏洞在该计算机网络中传播的文件。由于文件的使用网络漏洞在计算机网络中传播的共同的特性特征,这两种检测模型都可以检测上述恶意文件“WannaCry.exe”。
在所述系统的又一变型方面中,从检测模型数据库521中选择针对以下这样的文件进行训练的用于检测恶意文件的模型:在执行所述文件期间,至少:
·执行与从正在执行的文件501的行为日志中选择的命令相同的命令;
·使用与从正在执行的文件501的行为日志中选择的参数相同的参数。
例如,从行为日志中选择命令“CreateFileEx”、“ReadFile”、“WriteFile”、以及“CloseHandle”,这些命令用于修改文件,包括对文件加密。从检测模型数据库521中选择在检测“Trojan-Cryptors”家族的恶意文件时所使用的经训练的检测模型。
在又一示例中,从行为日志中选择参数“8080”和参数“21”,这些参数描述了对计算机网络有效的命令(例如,connect,其中,上述参数为到电子地址的连接端口)。从检测模型数据库521中选择用于检测(确保了计算机网络中的数据交换的)文件的经训练的检测模型。
行为日志分析模块530被设计为:
·基于从正在执行的文件501的行为日志中选择的命令和参数,形成至少一个行为模式,其中,行为模式是至少一个命令以及参数的集合,所述参数描述该集合中的所有命令;
·计算形成的所有行为模式的卷积;
·将形成的卷积发送到正在执行的文件的恶意程度计算模块540。
在所述系统的一个变型方面中,所形成的行为模式的卷积的计算是基于预定的卷积函数的,使得对所有形成的行为模式执行该卷积函数的结果的逆卷积函数具有大于预定阈值的与该行为模式的相似度。
卷积函数的形成和使用(卷积的计算)在图1和图2中进行了更相关地描述。
恶意程度计算模块540被设计为:
·借助于每个获得的用于检测恶意文件的模型,基于对获得的卷积的分析计算正在执行的文件501的恶意程度;
·将计算出的各个恶意程度发送到分析模块550。
在所述系统的一个变型方面中,决策模板是恶意程度的组合。
例如,基于上述模型#1、模型#2、模型#3计算出的恶意程度的组合可以表示为对(pair){0.95,374}、{0.79,288}、{0.87,302}的聚合(aggregate)。
在又一示例中,基于上述模型#1、模型#2、模型#3计算出的恶意程度的组合可以表示计算出的恶意程度的中心趋势的度量(诸如算术平均值,在给出的情况中为0.87)。
在又一示例中,恶意程度的组合表示恶意程度根据时间或用于计算恶意程度的行为模式的数量的变化。
分析模块550被设计为:
·基于获得的恶意程度形成决策模板;
·如果形成的决策模板与来自决策模板数据库541中的至少一个预定决策模板之间的相似程度超过预定阈值,则将正在执行的文件501识别为恶意的,其中,决策模板数据库541是先前基于对恶意文件的分析形成的。
在所述系统的一个变型方面中,决策模板为从恶意程度计算模块540获得的恶意程度的聚合。
在所述系统的又一变型方面中,决策模板为根据时间或用于计算该恶意程度的行为模式的数量的恶意程度。
在所述系统的又一变型方面中,来自决策模板数据库541中的决策模板是基于对恶意文件的分析形成的,所述恶意文件之前被用于训练来自检测模型数据库521的模型。
例如,基于100000个文件,其中75000个为安全文件,25000个为恶意文件,训练(包括测试)检测模型,然后将检测模型保存在检测模型数据库521中。在已经训练了用于检测恶意文件的模型之后,这些检测模型用于形成针对上述25000个恶意文件的一些(或全部)恶意文件的决策模板,然后将这些决策模板输入到决策模板数据库541中。也就是说,用于检测恶意文件的模型的机器学习首先针对文件的学习和测试样本执行。因此,可以训练多个用于检测恶意文件的模型,每个模型将被训练用于检测具有唯一预定特性特征的恶意文件。在已经训练了所有的检测模型之后,确定经训练的用于检测恶意文件的模型中的哪些模型来检测特定的恶意文件(在上述示例中,所述的25000个恶意文件);可以发现,可以使用一个用于检测恶意文件的模型的集合检测到一个恶意文件,使用另一个用于检测恶意文件的模型的集合检测到另一恶意文件,使用来自上述用于检测恶意文件的模型的集合的多个用于检测恶意文件的模型检测到第三个恶意文件。决策模板是基于获得的关于哪些用于检测恶意文件的模型可以用于检测哪些恶意文件的数据所形成的。
在所述系统的又一变型方面中,分析模块550还被设计为在形成的决策模板与来自决策模板的数据库541中的至少一个预定决策模板之间的相似程度超过预定阈值、而借助于上述用于检测恶意文件的模型计算出的恶意程度不超过预定阈值的情况下,基于从正在执行的文件501的行为日志中选择的命令和参数,再训练来自检测模型数据库521中的至少一个检测模型。
图6示出了使用经训练的用于检测恶意的模型检测恶意文件的方法的结构图。
使用经训练的用于检测恶意文件的模型检测恶意文件的方法的结构图包括:步骤610,在步骤610中执行正在被分析的文件;步骤620,在步骤620中形成行为日志;步骤630,在步骤630中形成行为模式;步骤640,在步骤640中计算卷积;步骤650,在步骤650中选择检测模型;步骤660,在步骤660中计算恶意程度;步骤670,在步骤670中形成决策模板;步骤680,在步骤680中将文件识别为恶意的;以及步骤690,在步骤690中再训练检测模型。
在步骤610中,行为日志形成模块112用于至少:
ο执行正在分析的文件501;或者
ο仿真正在分析的文件501的执行;
在步骤620中,行为日志形成模块112用于针对正在分析的文件501形成行为日志,为此:
ο拦截正在执行的至少一个命令;
ο针对每个拦截的命令确定至少一个描述该命令的参数;
ο基于拦截的命令和如此确定的参数形成所述文件501的行为日志。
在步骤630中,行为日志分析模块530用于基于从正在执行的文件501的行为日志中选择的命令和参数形成至少一个行为模式,所述行为模式为至少一个命令以及参数的集合,所述参数描述该集合中的所有命令。
在步骤640中,行为日志分析模块530用于计算在步骤630中形成的所有行为模式的卷积。
在步骤650中,检测模型选择模块520用于基于从正在执行的文件501的行为日志中选择的命令和参数,从检测模型数据库521中选择至少两个用于检测恶意文件的检测模型,所述用于检测恶意文件的模型为用于确定恶意程度的决策规则。
在步骤660中,恶意程度计算模块用于借助于在步骤650中选择的各个用于检测恶意文件的模型、基于对在步骤640中计算出的卷积的分析,计算正在执行的文件501的恶意程度。
在步骤670中,分析模块550用于基于在步骤660中获得的恶意程度形成决策模板。
在步骤680中,分析模块550用于当在步骤670中形成的决策模板与来自决策模型数据库541中的至少一个预定决策模板之间的相似度超过预定阈值的情况下,将正在执行的文件501识别为恶意的。
在步骤690中,分析模块550用于在形成的决策模板与来自决策模板数据库541中的至少一个预定决策模板之间的相似度超过预定阈值、而借助于上述用于检测恶意文件的模型计算出的恶意程度不超过预定阈值的情况下,基于从正在执行的文件的行为日志中选择的命令和参数,再训练来自检测模型数据库521的至少一个检测模型。
图7示出了用于检测恶意文件的系统的示例。
该用于检测恶意文件的系统的结构图包括正在被分析的文件501、文件分析模块112、检测模型数据库521、数据收集模块710、关于文件501的行为的数据711、参数计算模块720、参数计算模型721、分析模块730、标准形成模型731、以及参数校正模块740。
对文件分析模块112、文件501、检测模型数据库521以及分析模块730(作为分析模块550的变型方面)的更详细的描述在图1、图2、图5和图6中公开。
数据收集模块710被设计为基于由文件分析模块112收集的关于文件501的执行行为的数据711,形成表征该行为的特征向量,其中,该特征向量为收集的数据711的卷积,其形成为数字的聚合。
在图1中的行为模式形成模块121的工作的描述中示出了所收集的数据的卷积的形成的示例。
在所述系统的一个变型方面中,关于文件501的执行行为的数据711至少包括:
ο包含在正在执行的文件501中的命令或可在文件501的执行过程中解释的命令、正在被传送到这些命令的属性,以及正在被返回的值;
ο可以在文件501的执行期间被修改的RAM区域上的数据;
ο文件501的静态参数。
例如,命令可以是计算机处理器的指令(或指令组)或WinAPI函数或来自第三方动态库的函数。
在又一示例中,文件501可以包含原始数据,该原始数据在执行文件501的过程中解释为处理器命令(或某个进程的命令,如在dll库的情况下)和/或被传送到命令的参数。在特定情况下,这种数据可以是可移植的代码。
在又一示例中,RAM区域的数据可以为:
ο这些存储区域的卷积(例如,使用模糊散列);
ο这些存储区域的词法分析的结果,在此基础上,从存储区域中提取词位,并收集关于其使用的统计数据(例如,使用频率、权重特性、与其它词位的关系等);
ο这些存储区域的静态参数(诸如大小、所有者(进程)、使用权等)。
文件501的静态参数是表征文件(识别文件)并且在执行、分析或修改该文件501的过程中保持不变的参数,或者表征文件501直到其执行时刻的参数。
在特定实例中,文件501的静态参数可以包含关于其执行或行为的特性的信息(即,使得可以预测文件501的执行结果)。
在又一示例中,文件的静态参数为文件的大小、文件的创建或修改的时间、文件的所有者、获得文件的来源(电子地址或IP地址)等。
在所述系统的又一变型方面中,从各种源(输入数据通道)收集关于文件501的执行行为的数据711,各种源至少包括:
ο由正在分析的文件501执行的命令的日志;
ο由操作系统或在操作系统的控制下正在执行的应用(除正在分析的文件501之外)执行的命令的日志;
ο通过计算机网络获得的数据。
参数计算模块720被设计为基于由数据收集模块710形成的特征向量并使用经训练的参数计算模型721来计算恶意程度和极限安全程度,所述恶意程度为表征文件501可能被证明为恶意的概率的数值,所述极限安全程度为表征在满足取决于恶意程度和极限安全程度(参见图9)的预定条件时,该文件501肯定会被证明为安全的概率的数值,相继计算出的所述程度的聚合由预定的时间法则描述。
在所述系统的一个变型方面中,对于输入数据的每个通道(输入数据源或来自输出数据源的通过预定标准进行过滤的数据),创建用于提取特征(长度为N的实数向量)的系统:
ο如果给定的通道涉及信息(例如,正在执行的解包文件的日志或序列)的连续获取,则另外创建用于将输入序列的特征聚合成单个向量的系统;
ο创建用于将来自给定通道的特征转换为长度为K的新向量的系统。此外,该向量中的值可以仅在处理输入序列的新要素时单调增加。
在所述系统的又一变型方面中,用于提取、聚合以及转换特征的系统可以取决于用于训练的参数,该用于训练的参数将在训练整个模型的步骤中稍后进行如下调整:
ο将来自所有激活通道的长度为K的向量单调聚合为1个固定长度的向量(例如,最大值是逐要素取的)。
ο将聚合的单调递增的向量转换为1个实数,该实数表征正在研究的进程的可疑性质(例如,通过添加该向量的要素或通过根据预定算法对向量的要素执行动作(诸如通过计算该向量的范数)来转换该向量)。
在所述系统的另一变型方面中,参数计算模型721先前已经通过针对至少一个安全文件和一个恶意文件的机器学习的方法进行了训练。
在所述系统的另一变型方面中,参数计算模型721的机器学习的方法至少为如下方法:
ο基于决策树的梯度提升;
ο决策树;
οk-最近邻法;
ο支持向量。
在所述系统的又一变型方面中,至少所计算的恶意程度或极限安全程度分别取决于在启动文件501时基于对文件501的静态数据的分析所计算出的恶意程度和极限安全程度。
例如,可以通过如下公式计算恶意程度和极限安全程度:
ω=ω0+ω(t)
其中:
ω,分别为恶意程度和极限安全程度;
ω0,为不取决于文件501的执行参数而取决于外部条件(操作系统的工作参数等)的恶意程度和极限安全程度的起始值;
ω(t),分别为用于计算恶意程度和极限安全程度的时间法则。
此外,所述时间法则可以取决于彼此,即取决于先前计算出的恶意程度和极限安全程度:
在图9中更详细的公开了上面描述的系统的变型方面。
在所述系统的另一变型方面中,经训练的参数计算模型721是用于计算文件的恶意程度和文件的极限安全程度的规则的集合,该规则取决于找到的关于文件501的执行行为的数据711。
在所述系统的又一变型方面中,描述相继计算出的恶意程度的组以及相继计算出的极限限制安全程度的组的时间法则本质上是单调的。
例如,恶意程度根据时间的曲线可以通过单调递增函数(诸如f(x)=ax+b)来描述。
在所述系统的又一变型方面中,描述相继计算出的恶意程度的组以及相继计算出的极限安全程度的组的时间法则具有分段单调的性质,即这些时间法则在指定的时间间隔内具有单调的性质。
通常在正在描述的系统的工作期间,不可以(由于计算资源、计算时间以及对最小性能的要求的限制等)不断地(连续地或者以给定的周期)确定恶意程度,因此,可以在可计算的时间间隔(不是预定的时间间隔,而是可以在文件501的执行过程中进行计算的时间间隔)上计算恶意程度和极限安全程度。这种计算还基于某些预定的时间法则,针对该时间法则在文件的执行过程中计算出了输入参数,即,可以写入长达文件的计算时间:
tn=τ(tn-1)。
此外,计算恶意程度和极限安全程度的时间可以取决于先前计算出的恶意程度和极限安全程度:
例如,当启动文件501时,对于前10秒,该文件的恶意程度单调增加,在第10秒之后,该文件的恶意程度减半,然后开始再次单调增加。
分析模块730被设计为在收集的关于文件501的执行行为的数据711满足用于确定恶意性的预定标准(其基于由参数计算模块720所计算的恶意程度和极限安全程度所形成)的情况下,做出关于检测到恶意文件501的判定,其中,该标准是用于根据已建立的恶意程度和极限安全程度之间的相关性进行文件分类的规则(由标准形成模型731提供)。
在所述系统的一个变形方面中,恶意程度和极限安全程度之间的相关性至少为:
ο与恶意程度和恶意边界条件之间的距离的预定阈值的差异;
ο与界定在给定时间间隔内且在描述恶意程度和极限安全程度的曲线之间的区域的预定阈值的差异;
ο与描述恶意程度的曲线和恶意边界条件根据时间的相互增加的速率的预定值的差异。
例如,所描述的相关性的最典型的实例在图9中示出。
参数校正模块740被设计为基于对计算出的恶意程度和极限安全程度的分析(参见图9)再训练参数计算模型721,因此,描述恶意程度和极限安全程度的时间法则的变化使得基于这些时间法则获得的值之间的相关性趋于最大值。
在所述系统的一个变型方面中,参数计算模型721被再训练,以便在使用该模型时,之后形成的标准至少确保:
ο确定恶意程度和极限安全程度的准确性大于使用未经训练的参数计算模型时的准确性;
ο利用的计算资源少于使用未经训练的参数计算模型时利用的计算资源。
例如,在再训练(或进一步训练)之后,恶意程度的曲线的值和极限安全程度的曲线的值之间的相关因子变得更大(趋向于1)。
因此,在参数计算模型721的不断再训练下,发生第一种错误和第二种错误(误报)的概率不断减小。此外,使用上面提出的各种再训练标准确保了具有经再训练的模型721的用于检测恶意文件的系统在开始时(在再训练的初始阶段)具有非常高的第一种错误和第二种错误的减少率,因此利用参数计算模型721的很少的再训练迭代,用于检测恶意文件的系统的有效性大幅增加,趋向于100%。
图8示出了用于检测恶意文件的方法的示例。
用于检测恶意文件的方法的结构图包含:步骤810,在步骤810中形成特征向量;步骤820,在步骤820中计算参数;步骤830,在步骤830中做出关于检测到恶意文件的判定;以及步骤840,在步骤840中再训练参数计算模型。
在步骤810中,基于收集的关于文件501的执行行为的数据711形成表征文件的执行行为的特征向量,所述特征向量是所收集的数据的以数字聚合的形式的卷积。
在步骤820中,基于如此形成的特征向量并使用经训练的参数计算模型721来计算恶意程度和极限安全程度,所述恶意程度为表征该文件501可能被证明为恶意的概率的数值,所述极限安全程度为表征该文件501将肯定会被证明为安全的概率的数值,其中,所述相继计算出的程度的组由预定的时间法则进行描述。
对于正在分析的文件501的执行的不同的相继时间间隔执行步骤810-步骤820。
在步骤830中,在收集的关于文件501的执行行为的数据711满足用于确定恶意性的预定标准(参见图9)的情况下,做出关于检测到恶意文件501的判定,所述用于确定恶意性的预定标准是基于在步骤820中计算出的恶意程度和极限安全程度形成的,所述标准是用于根据建立的恶意程度和极限安全程度之间的相关性对文件进行分类的规则。
在步骤840中,还基于对计算出的恶意程度和极限安全程度的分析再训练参数计算模型721,因此描述恶意程度和极限安全程度的时间法则的变化导致基于这些法则获得的值之间的相关性趋于最大值。
图9示出了恶意程度和极限安全程度根据行为模式的数量的变化的动态的示例。
在911中示出了这样的情况,其中观察到正在分析的文件501的恶意程度随着时间的推移(本质上随着所形成的行为模式的数量的增加)而增大。此外,同样观察到极限安全程度的增大(图3中示出的恶意标准的一般情况)。
如果文件501的恶意程度开始超过文件501的极限安全程度(911的点B),则做出关于检测到恶意文件501的判定。
在文件501的执行期间以及在作为整体分析操作系统的状况时都登记了“可疑”活动的情况下,观察到这种情况。因此,实现了发生第一种错误的概率的降低。即使在系统的工作中登记了可疑活动(即活动尚不能视为恶意的,但也已经无法被认为是安全的活动,例如存档打包以及随后删除初始文件),在计算文件501的恶意程度时以如下方式考虑该活动,使得关于检测恶意文件的肯定判决的给出不是大部分基于系统工作中的可疑活动而是在文件501的执行期间的可疑活动,即文件501的执行活动对将文件501识别为恶意的最终判定的贡献应该大于系统活动的贡献。
例如,当用户在计算机上执行数据存档时,可能会观察到类似的情况,导致从硬盘重复读取数据并随后重命名或删除文件,对于普通用户(诸如办公室工作人员)的系统这可能会被视为恶意加密程序工作的可疑活动,因为(基于从用户获得的统计数据)这类活动对于这些用户而言很少被观察到甚至根本不会被观察到。
例如,标准防病毒应用可以在分析用户计算机上的软件活动期间发出特定应用表现“可疑”(即该应用的行为不符合防病毒应用的预定规则)的警告(不采取任何有效的措施)。但是所描述的系统并不按照预定规则操作,而是动态地评估活动中的变化,从而恶意的但未知的文件501在检测该文件时被识别为恶意的。
在又一示例中,执行文件501时的活动的变化可以是计算网络中数据传输的结果,这取决于传输数据的特性(频率、数量等),所述特性可以指示恶意活动正在发生(例如,远程管理(后门)恶意程序正在运行)。这类活动持续的时间越长,被识别为恶意的可能性就越高,因为这类活动与用户计算机上通常的网络活动显著不同。
在912中,示出了这样的情况,其中观察到随着时间的推移正在分析的文件501的恶意程度的增加和极限安全程度的降低。
如果文件501的恶意程度开始超过文件501的极限安全程度(912的点B),则做出关于检测到恶意文件501的判定。
在如下情况下观察到这种情况,该情况与911中描述的情况相反,即在分析操作系统的状况期间没有观察到“可疑”活动。因此,实现了发生第二种错误(忽略恶意文件)的概率的降低。如果特别是在文件的执行期间的其它行为或操作系统作为整体看起来不“可疑”,则可疑活动会“更强烈”地影响关于检测恶意文件的肯定判决的给出。
例如,在用户计算机上的远程管理恶意程序的工作期间可以观察到这种情况,所述远程管理恶意程序导致恶意活动只是偶然出现,也就是说,应该更加“密切地(closely)”分析每一个后续偶然出现的恶意活动,即在该标准之后,将被认为是恶意的活动应该不断减少。但是,如果受信任的应用开始在用户的计算机上执行,其行为可能被认为是可疑的,但由于该应用被信任(即先前已检查恶意性),则不被视为是可疑的,然后可以增加极限安全程度,这将防止将合法文件的行为识别为恶意行为,并且仅仅推迟检测恶意文件的恶意行为。
在913中,示出了这样的情况,其中观察到正在分析的文件501的恶意程度随着时间的推移而增大,该增大不是从零标记开始,而是从某个计算值开始,因此将比在一开始的情况更早达到恶意标准,或者将达到该恶意标准而在一开始的情况下不会达到该恶意标准。
如果文件501的恶意程度与文件501的极限安全程度之间的差异变得小于预定阈值(913的点B),则做出关于检测到恶意文件501的判定。此外,在特定情况下,只有在文件501的恶意程度与文件501的极限安全程度之间的差异先前变得小于另一预定阈值时(913的点A)才能做出检测到恶意文件501的判定(其中913的点A和913的点B之间的这种差异能够增加)。
例如,在执行从未知来源获得或通过“可疑”方法(诸如从进程的存储器向磁盘写入数据)在计算机上形成的文件501的执行期间,恶意程度最初可能比通过更不“可疑”的方法获得的文件的恶意程度更高。
在914中示出了类似于在911中示出的情况的情况,唯一的区别在于描述恶意程度和极限安全程度的曲线具有多个连续的交叉点。在这种情况下,做出将文件501识别为恶意的判定不是因为这些曲线交叉的事实,而是因为交叉点的数量超过预定阈值或者因为由这些曲线切出的区域超过了预定阈值。
这些图有助于提高检测恶意文件的有效性,并且减少检测恶意文件501时的第一种错误和第二种错误。
计算出的恶意程度和极限安全程度之间的相关性的描述以及将文件501识别为恶意的判定可以通过如下数学或算法形式来表示:
/>
图10为示出根据示例性方面的其上可实施检测恶意文件的系统和方法的各方面的计算机系统20的框图。应当注意,计算机系统20可以对应于前文所描述的系统100的任何部件。计算机系统20可以为多个计算设备的形式、或为单一计算设备的形式,例如:台式电脑、笔记本电脑、手提电脑、移动计算设备、智能手机、平板电脑、服务器、大型机、嵌入式设备和其它形式的计算设备。
如图所示,计算机系统20包括中央处理单元(Central Processing Unit,CPU)21、系统存储器22和连接各种系统部件的系统总线23,各种系统部件包括与中央处理单元21相关联的存储器。系统总线23可以包括总线存储器或总线存储器控制器、外围总线、以及能够与任何其它的总线架构交互的本地总线。总线的示例可以包括PCI、ISA、串行总线(PCI-Express)、超传输TM(HyperTransportTM)、无限带宽TM(InfiniBandTM)、串行ATA、I2C、和其它合适的互连。中央处理单元21(也称为处理器)可以包括单组或多组具有单核或多核的处理器。处理器21可以执行实现本发明的技术的一种或多种计算机可执行代码。系统存储器22可以为用于存储本文中所使用的数据和/或由处理器21可执行的计算机程序的任何存储器。系统存储器22可以包括易失性存储器(诸如随机存取存储器(Random Access Memory,RAM)25)和非易失性存储器(诸如只读存储器(Read-Only Memory,ROM)24、闪存等)或其任何组合。基本输入/输出系统(Basic Input/Output System,BIOS)26可以存储用于在计算机系统20的元件之间传输信息的基本程序,例如在使用ROM 24加载操作系统时的那些基本程序。
计算机系统20可以包括一个或多个存储设备,诸如一个或多个可移除存储设备27、一个或多个不可移除存储设备28、或其组合。所述一个或多个可移除存储设备27和一个或多个不可移除存储设备28借助存储器接口32连接到系统总线23。在一个方面中,存储设备和相应的计算机可读存储介质为用于存储计算机系统20的计算机指令、数据结构、程序模块、和其它数据的电源独立的模块。系统存储器22、可移除存储设备27和不可移除存储设备28可以使用各种各样的计算机可读存储介质。计算机可读存储介质的示例包括:机器存储器,诸如缓存、SRAM、DRAM、零电容RAM、双晶体管RAM、eDRAM、EDO RAM、DDR RAM、EEPROM、NRAM、RRAM、SONOS、PRAM;闪存或其它存储技术,诸如在固态驱动器(Solid State Drive,SSD)或闪盘驱动器中;磁带盒、磁带、和磁盘存储器,诸如在硬盘驱动器或软盘驱动器中;光学存储器,诸如在光盘(CD-ROM)或数字通用光盘(Digital Versatile Disk,DVD)中;以及可用于存储期望数据且可被计算机系统20访问的任何其它介质。
计算机系统20的系统存储器22、可移除存储设备27和不可移除存储设备28可以用于存储操作系统35、附加程序应用37、其它程序模块38和程序数据39。计算机系统20可以包括用于传送来自输入设备40的数据的外围接口46,该输入设备40诸如键盘、鼠标、光笔、游戏控制器、语音输入设备、触点输入设备、或其它外围设备,诸如借助一个或多个I/O端口的打印机或扫描仪,该一个或多个I/O端口诸如串行端口、并行端口、通用串行总线(Universal Serial Bus,USB)、或其它外围接口。显示设备47(诸如一个或多个监控器、投影仪或集成显示器)也可以通过输出接口48(诸如视频适配器)连接到系统总线23。除了显示设备47之外,计算机系统20还可以装配有其它外围输出设备(未示出),诸如扬声器和其它视听设备。
计算机系统20可以使用与一个或多个远程计算机49的网络连接而工作在网络环境中。所述一个或多个远程计算机49可以为本地计算机工作站或服务器,其包括前面在描述计算机系统20的性质时所述的元件中的大多数元件或全部元件。其它设备也可以存在于计算机网络中,诸如但不限于路由器、网站、对等设备或其它的网络节点。计算机系统20可以包括用于借助一个或多个网络而与远程计算机49通信的一个或多个网络接口51或网络适配器,该一个或多个网络诸如局域计算机网络(Local-Area computer Network,LAN)50、广域计算机网络(Wide-Area computer Network,WAN)、内联网、和因特网。网络接口51的示例可以包括以太网接口、帧中继接口、同步光纤网(SONET)接口、和无线接口。
本发明的各个方面可以为系统、方法和/或计算机程序产品。计算机程序产品可以包括一种或多种计算机可读存储介质,该计算机可读存储介质上具有用于使处理器执行本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以为有形设备,该有形设备可以保持且存储指令或数据结构的形式的程序代码,该程序代码可以被计算设备的处理器(诸如计算机系统20)访问。计算机可读存储介质可以为电子存储设备、磁性存储设备、光学存储设备、电磁存储设备、半导体存储设备、或其任何合适组合。通过示例方式,这类计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦可编程只读存储器(EEPROM)、便携式光盘只读存储器(CD-ROM)、数字通用光盘(DVD)、闪存、硬盘、便携式电脑磁盘、记忆棒、软盘、或甚至机械编码设备,诸如在其上记录有指令的凹槽中的打孔卡或凸起结构。如在本文中所使用的,计算机可读存储介质不应被视为暂时性信号本身,暂时性信号诸如无线电波或其它自由传播的电磁波、通过波导或传输介质传播的电磁波、或通过电线传输的电信号。
可以将本文中所描述的计算机可读程序指令从计算机可读存储介质下载到各个计算设备、或借助网络(例如,因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。该网络可以包括铜传输线缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。在每个计算设备中的网络接口从网络接收计算机可读程序指令并转发该计算机可读程序指令,用以存储在各个计算设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以为汇编指令、指令集架构(Instruction-Set-Architecture,ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种编程语言(包括面向对象的编程语言和传统程序化编程语言)的任何组合编写的源代码或目标代码。计算机可读程序指令可以作为独立的软件包完全地在用户的计算机上、部分地在用户的计算机上、部分地在用户的计算机上且部分地在远程计算机上、或完全地在远程计算机或服务器上执行。在后一种场景中,远程计算机可以通过任何类型的网络(包括LAN或WAN)连接到用户的计算机,或可以(例如通过因特网)进行与外部计算机的连接。在本发明的一些方面中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(FPGA)、或可编程门阵列(Programmable Logic Array,PLA))可以通过利用计算机可读程序指令的状态信息使该电子电路个性化而执行计算机可读程序指令,从而执行本发明的各个方面。
在各个方面中,本发明中所描述的系统和方法可以按照模块来处理。本文中所使用的术语“模块”指的是例如现实世界的设备、部件、或使用硬件(例如通过专用集成电路(ASIC)或FPGA)实现的部件的布置,或者指的是硬件和软件的组合,例如通过微处理器系统和实现模块功能的指令集(该指令集在被执行时将微处理器系统转换成专用设备)来实现这样的组合。一个模块还可以被实施为两个模块的组合,其中单独地通过硬件促进某些功能,并且通过硬件和软件的组合促进其它功能。在某些实现方式中,模块的至少一部分(以及在一些情况下,模块的全部)可以在计算机系统(诸如上文在图10中更详细描述的计算机系统)的处理器上运行。因此,每个模块可以以各种适合的配置来实现,而不应受限于本文中所例示的任何特定的实现方式。
为了清楚起见,本文中没有公开各个方面的所有例程特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当理解的是,这种开发努力会是复杂的且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的例行任务。
此外,应当理解的是,本文中所使用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文中所提出的教导和指导结合(一个或多个)相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。
本文中所公开的各个方面包括本文中以说明性方式所引用的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将显而易见的是,在不脱离本文中所公开的发明构思的前提下,相比于上文所提及的内容而言的更多修改是可行的。
Claims (20)
1.一种用于检测恶意文件的方法,包括:
在计算机系统内的文件的执行期间监控所述文件;
基于在所述文件的执行期间的行为数据形成特征向量,其中,所述特征向量的特征表征所述行为数据,以及所述特征向量表示所述行为数据的以数字集合的形式的卷积;
使用经训练的用于计算参数的模型基于所述特征向量来计算参数,其中,所述参数包括:i)恶意程度,所述恶意程度为所述文件可能为恶意的概率,以及ii)极限安全程度,所述极限安全程度为所述文件肯定会被证明为安全的概率,其中,相继计算出的程度的聚合由预定的时间法则描述,所述预定的时间法则取决于先前计算出的恶意程度和极限安全程度;以及
在所述恶意程度和所述极限安全程度满足预定标准时,判定所述文件为恶意的,其中,所述标准为用于根据建立的所述恶意程度与所述极限安全程度之间的相关性对所述文件进行分类的规则。
2.如权利要求1所述的方法,其中,所述用于计算参数的模型是通过针对至少一个安全文件和一个恶意文件执行机器学习方法进行训练的。
3.如权利要求2所述的方法,其中,所述机器学习方法为如下中的一者:基于决策树的梯度提升、决策树、k-最近邻法、和支持向量法。
4.如权利要求1所述的方法,其中,所述行为数据至少包括:由所述文件正在执行的命令、正在被传送到这些命令的属性以及正在被返回的值、由正在执行的所述文件正在修改的RAM区域上的数据、或者所述文件的静态参数。
5.如权利要求1所述的方法,其中,基于所述恶意程度计算所述极限安全程度,以及所述极限安全程度是在启动所述文件时基于对所述文件的静态参数的分析所计算的。
6.如权利要求1所述的方法,其中,所述经训练的用于计算参数的模型为用于计算所述文件的所述恶意程度和所述文件的所述极限安全程度的一组规则,所述规则取决于所述行为数据。
7.如权利要求1所述的方法,其中,所述时间法则在本质上是单调的。
8.如权利要求1所述的方法,其中,所述恶意程度与所述极限安全程度之间的相关性至少为:与所述恶意程度和恶意边界条件之间的距离的预定阈值的差异、与界定在给定的时间间隔内且在所述恶意程度和所述恶意边界条件之间的区域的预定阈值的差异、或者与描述所述恶意程度的曲线和所述恶意边界条件根据时间的相互增加的速率的预定值的差异。
9.如权利要求1所述的方法,其中,还基于对计算出的所述恶意程度和所述极限安全程度的分析对所述用于计算参数的模型进行再训练,使得描述所述恶意程度以及所述极限安全程度的所述时间法则的变化意味着基于这些法则获得的值之间的相关性趋于最大值。
10.如权利要求1所述的方法,其中,对所述用于计算参数的模型进行再训练,使得在使用该模型时,之后形成的标准将至少确保:确定所述恶意程度和所述极限安全程度的准确性大于使用未经训练的用于计算参数的模型时的准确性以及利用的计算资源少于使用未经训练的用于计算参数的模型时利用的计算资源。
11.一种用于检测恶意文件的系统,包括:
硬件处理器,所述硬件处理器被配置为:
在计算机系统内的文件的执行期间监控所述文件;
基于在所述文件的执行期间的行为数据形成特征向量,其中,所述特征向量的特征表征所述行为数据,以及所述特征向量表示所述行为数据的以数字集合的形式的卷积;
使用经训练的用于计算参数的模型基于所述特征向量来计算参数,其中,所述参数包括:i)恶意程度,所述恶意程度为所述文件可能为恶意的概率,以及ii)极限安全程度,所述极限安全程度为所述文件肯定会被证明为安全的概率,其中,相继计算出的程度的聚合由预定的时间法则描述,所述预定的时间法则取决于先前计算出的恶意程度和极限安全程度;以及
在所述恶意程度和所述极限安全程度满足预定标准时,判定所述文件为恶意的,其中,所述标准为用于根据建立的所述恶意程度与所述极限安全程度之间的相关性对所述文件进行分类的规则。
12.如权利要求11所述的系统,其中,所述用于计算参数的模型是通过针对至少一个安全文件和一个恶意文件执行机器学习方法进行训练的。
13.如权利要求12所述的系统,其中,所述机器学习方法为如下中的一者:基于决策树的梯度提升、决策树、k-最近邻法、和支持向量法。
14.如权利要求11所述的系统,其中,所述行为数据至少包括:由所述文件正在执行的命令、正在被传送到这些命令的属性以及正在被返回的值、由正在执行的所述文件正在修改的RAM区域上的数据、或者所述文件的静态参数。
15.如权利要求11所述的系统,其中,基于所述恶意程度计算所述极限安全程度,以及所述极限安全程度是在启动所述文件时基于对所述文件的静态参数的分析所计算的。
16.如权利要求11所述的系统,其中,所述经训练的用于计算参数的模型为用于计算所述文件的所述恶意程度和所述文件的所述极限安全程度的一组规则,所述规则取决于所述行为数据。
17.如权利要求11所述的系统,其中,所述恶意程度与所述极限安全程度之间的相关性至少为:与所述恶意程度和恶意边界条件之间的距离的预定阈值的差异、与界定在给定的时间间隔内且在所述恶意程度和所述恶意边界条件之间的区域的预定阈值的差异、或者与描述所述恶意程度的曲线和所述恶意边界条件根据时间的相互增加的速率的预定值的差异。
18.如权利要求11所述的系统,其中,还基于对计算出的所述恶意程度和所述极限安全程度的分析对所述用于计算参数的模型进行再训练,使得描述所述恶意程度以及所述极限安全程度的所述时间法则的变化意味着基于这些法则获得的值之间的相关性趋于最大值。
19.如权利要求11所述的系统,其中,对所述用于计算参数的模型进行再训练,使得在使用该模型时,之后形成的标准将至少确保:确定所述恶意程度和所述极限安全程度的准确性大于使用未经训练的用于计算参数的模型时的准确性以及利用的计算资源少于使用未经训练的用于计算参数的模型时利用的计算资源。
20.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质上存储有用于检测恶意文件的指令,所述指令包括用于以下操作的指令:
在计算机系统内的文件的执行期间监控所述文件;
基于在所述文件的执行期间的行为数据形成特征向量,其中,所述特征向量的特征表征所述行为数据,以及所述特征向量表示所述行为数据的以数字集合的形式的卷积;
使用经训练的用于计算参数的模型基于所述特征向量来计算参数,其中,所述参数包括:i)恶意程度,所述恶意程度为所述文件可能为恶意的概率,以及ii)极限安全程度,所述极限安全程度为所述文件肯定会被证明为安全的概率,其中,相继计算出的程度的聚合由预定的时间法则描述,所述预定的时间法则取决于先前计算出的恶意程度和极限安全程度;以及
在所述恶意程度和所述极限安全程度满足预定标准时,判定所述文件为恶意的,其中,所述标准为用于根据建立的所述恶意程度与所述极限安全程度之间的相关性对所述文件进行分类的规则。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2018147233A RU2739865C2 (ru) | 2018-12-28 | 2018-12-28 | Система и способ обнаружения вредоносного файла |
RU2018147233 | 2018-12-28 | ||
US16/414,907 US11176250B2 (en) | 2018-12-28 | 2019-05-17 | System and method for detection of a malicious file |
US16/414,907 | 2019-05-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111382434A CN111382434A (zh) | 2020-07-07 |
CN111382434B true CN111382434B (zh) | 2023-08-01 |
Family
ID=71121832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910599029.9A Active CN111382434B (zh) | 2018-12-28 | 2019-07-04 | 用于检测恶意文件的系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (4) | US11599630B2 (zh) |
EP (1) | EP3674947B1 (zh) |
JP (1) | JP7023259B2 (zh) |
CN (1) | CN111382434B (zh) |
RU (1) | RU2739865C2 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11023576B2 (en) * | 2018-11-28 | 2021-06-01 | International Business Machines Corporation | Detecting malicious activity on a computer system |
US11200318B2 (en) * | 2018-12-28 | 2021-12-14 | Mcafee, Llc | Methods and apparatus to detect adversarial malware |
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) |
US20210185080A1 (en) * | 2019-12-11 | 2021-06-17 | At&T Intellectual Property I, L.P. | Social engineering attack prevention |
US11834060B2 (en) * | 2020-03-31 | 2023-12-05 | Denso International America, Inc. | System and method for managing vehicle subscriptions |
KR20230037661A (ko) * | 2020-07-17 | 2023-03-16 | 그램 랩스 인코포레이티드 | 컨테이너화된 애플리케이션의 배치를 최적화하기 위한 시스템, 방법 및 서버 |
CN113010888B (zh) * | 2021-03-02 | 2022-04-19 | 电子科技大学 | 一种基于关键神经元的神经网络后门攻击防御方法 |
CN113221109B (zh) * | 2021-03-30 | 2022-06-28 | 浙江工业大学 | 一种基于生成对抗网络的恶意文件智能分析方法 |
CN116910755A (zh) * | 2023-09-13 | 2023-10-20 | 北京安天网络安全技术有限公司 | 一种文件检测方法 |
CN116956296B (zh) * | 2023-09-20 | 2023-12-01 | 北京安天网络安全技术有限公司 | 一种文件的动态检测方法、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542198A (zh) * | 2010-12-03 | 2012-07-04 | 微软公司 | 预测减轻恶意软件威胁 |
CN106557696A (zh) * | 2015-09-30 | 2017-04-05 | 卡巴斯基实验室股份制公司 | 用于检测恶意数据加密程序的系统和方法 |
Family Cites Families (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8984636B2 (en) * | 2005-07-29 | 2015-03-17 | Bit9, Inc. | Content extractor and analysis system |
US8161548B1 (en) * | 2005-08-15 | 2012-04-17 | Trend Micro, Inc. | Malware detection using pattern classification |
US8032714B2 (en) * | 2007-09-28 | 2011-10-04 | Aggregate Knowledge Inc. | Methods and systems for caching data using behavioral event correlations |
US8060857B2 (en) * | 2009-01-31 | 2011-11-15 | Ted J. Biggerstaff | Automated partitioning of a computation for parallel or other high capability architecture |
US8719935B2 (en) * | 2010-01-08 | 2014-05-06 | Microsoft Corporation | Mitigating false positives in malware detection |
US8413244B1 (en) * | 2010-11-11 | 2013-04-02 | Symantec Corporation | Using temporal attributes to detect malware |
US9349006B2 (en) * | 2010-11-29 | 2016-05-24 | Beijing Qihoo Technology Company Limited | Method and device for program identification based on machine learning |
US9672355B2 (en) * | 2011-09-16 | 2017-06-06 | Veracode, Inc. | Automated behavioral and static analysis using an instrumented sandbox and machine learning classification for mobile security |
US8584235B2 (en) * | 2011-11-02 | 2013-11-12 | Bitdefender IPR Management Ltd. | Fuzzy whitelisting anti-malware systems and methods |
US9245120B2 (en) * | 2012-07-13 | 2016-01-26 | Cisco Technologies, Inc. | Method and apparatus for retroactively detecting malicious or otherwise undesirable software as well as clean software through intelligent rescanning |
US9292688B2 (en) * | 2012-09-26 | 2016-03-22 | Northrop Grumman Systems Corporation | System and method for automated machine-learning, zero-day malware detection |
US11126720B2 (en) * | 2012-09-26 | 2021-09-21 | Bluvector, Inc. | System and method for automated machine-learning, zero-day malware detection |
RU2530210C2 (ru) * | 2012-12-25 | 2014-10-10 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ выявления вредоносных программ, препятствующих штатному взаимодействию пользователя с интерфейсом операционной системы |
US9501645B2 (en) * | 2013-03-15 | 2016-11-22 | Rudolf H. Hendel | System and method for the protection of computers and computer networks against cyber threats |
US9996694B2 (en) * | 2013-03-18 | 2018-06-12 | The Trustees Of Columbia University In The City Of New York | Unsupervised detection of anomalous processes using hardware features |
US10025929B2 (en) * | 2013-03-18 | 2018-07-17 | The Trustees Of Columbia University In The City Of New York | Detection of anomalous program execution using hardware-based micro-architectural data |
US9448859B2 (en) * | 2013-09-17 | 2016-09-20 | Qualcomm Incorporated | Exploiting hot application programming interfaces (APIs) and action patterns for efficient storage of API logs on mobile devices for behavioral analysis |
US9288220B2 (en) * | 2013-11-07 | 2016-03-15 | Cyberpoint International Llc | Methods and systems for malware detection |
US10181033B2 (en) * | 2013-12-30 | 2019-01-15 | Nokia Technologies Oy | Method and apparatus for malware detection |
US10225280B2 (en) * | 2014-02-24 | 2019-03-05 | Cyphort Inc. | System and method for verifying and detecting malware |
US9690933B1 (en) * | 2014-12-22 | 2017-06-27 | Fireeye, Inc. | Framework for classifying an object as malicious with machine learning for deploying updated predictive models |
US9646159B2 (en) * | 2015-03-31 | 2017-05-09 | Juniper Networks, Inc. | Multi-file malware analysis |
US9699205B2 (en) * | 2015-08-31 | 2017-07-04 | Splunk Inc. | Network security system |
TWI547823B (zh) * | 2015-09-25 | 2016-09-01 | 緯創資通股份有限公司 | 惡意程式碼分析方法與系統、資料處理裝置及電子裝置 |
CN105205396A (zh) * | 2015-10-15 | 2015-12-30 | 上海交通大学 | 一种基于深度学习的安卓恶意代码检测系统及其方法 |
US9928363B2 (en) * | 2016-02-26 | 2018-03-27 | Cylance Inc. | Isolating data for analysis to avoid malicious attacks |
US10339305B2 (en) * | 2016-02-26 | 2019-07-02 | Cylance Inc. | Sub-execution environment controller |
RU2628923C1 (ru) * | 2016-05-20 | 2017-08-22 | Акционерное общество "Лаборатория Касперского" | Система и способ распределения файлов между виртуальными машинами, входящими в распределённую систему виртуальных машин, для выполнения антивирусной проверки |
US10270788B2 (en) * | 2016-06-06 | 2019-04-23 | Netskope, Inc. | Machine learning based anomaly detection |
US10972482B2 (en) * | 2016-07-05 | 2021-04-06 | Webroot Inc. | Automatic inline detection based on static data |
US20180150742A1 (en) * | 2016-11-28 | 2018-05-31 | Microsoft Technology Licensing, Llc. | Source code bug prediction |
CN106778241B (zh) * | 2016-11-28 | 2020-12-25 | 东软集团股份有限公司 | 恶意文件的识别方法及装置 |
US11146578B2 (en) * | 2016-12-16 | 2021-10-12 | Patternex, Inc. | Method and system for employing graph analysis for detecting malicious activity in time evolving networks |
US10645107B2 (en) * | 2017-01-23 | 2020-05-05 | Cyphort Inc. | System and method for detecting and classifying malware |
CN106790292A (zh) * | 2017-03-13 | 2017-05-31 | 摩贝(上海)生物科技有限公司 | 基于行为特征匹配和分析的web应用层攻击检测与防御方法 |
US10917419B2 (en) * | 2017-05-05 | 2021-02-09 | Servicenow, Inc. | Systems and methods for anomaly detection |
US10089467B1 (en) * | 2017-05-23 | 2018-10-02 | Malwarebytes Inc. | Static anomaly-based detection of malware files |
US20200184072A1 (en) * | 2017-06-23 | 2020-06-11 | Nec Corporation | Analysis device, log analysis method, and recording medium |
US10560487B2 (en) * | 2017-07-26 | 2020-02-11 | International Business Machines Corporation | Intrusion detection and mitigation in data processing |
RU2659737C1 (ru) * | 2017-08-10 | 2018-07-03 | Акционерное общество "Лаборатория Касперского" | Система и способ управления вычислительными ресурсами для обнаружения вредоносных файлов |
RU2654151C1 (ru) | 2017-08-10 | 2018-05-16 | Акционерное общество "Лаборатория Касперского" | Система и способ обнаружения вредоносных файлов с использованием обученной модели обнаружения вредоносных файлов |
US11182695B1 (en) * | 2017-08-18 | 2021-11-23 | Groupon, Inc. | Method, apparatus, and computer program product for machine learning model lifecycle management |
KR102339239B1 (ko) * | 2017-10-13 | 2021-12-14 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 클라우드-디바이스 협업적 실시간 사용자 사용 및 성능 비정상 검출을 위한 시스템 및 방법 |
JP6731981B2 (ja) * | 2017-10-18 | 2020-07-29 | エーオー カスペルスキー ラボAO Kaspersky Lab | 機械学習モデルに基づいた悪意のあるファイルの検出のための計算資源を管理するシステムおよび方法 |
US11568301B1 (en) * | 2018-01-31 | 2023-01-31 | Trend Micro Incorporated | Context-aware machine learning system |
CN108629183B (zh) * | 2018-05-14 | 2021-07-20 | 南开大学 | 基于可信度概率区间的多模型恶意代码检测方法 |
US11574051B2 (en) * | 2018-08-02 | 2023-02-07 | Fortinet, Inc. | Malware identification using multiple artificial neural networks |
US10826932B2 (en) * | 2018-08-22 | 2020-11-03 | General Electric Company | Situation awareness and dynamic ensemble forecasting of abnormal behavior in cyber-physical system |
RU2724710C1 (ru) * | 2018-12-28 | 2020-06-25 | Акционерное общество "Лаборатория Касперского" | Система и способ классификации объектов вычислительной системы |
-
2018
- 2018-12-28 RU RU2018147233A patent/RU2739865C2/ru active
-
2019
- 2019-05-17 US US16/414,868 patent/US11599630B2/en active Active
- 2019-05-17 US US16/414,907 patent/US11176250B2/en active Active
- 2019-05-17 US US16/414,832 patent/US11227048B2/en active Active
- 2019-06-20 EP EP19181469.8A patent/EP3674947B1/en active Active
- 2019-07-04 CN CN201910599029.9A patent/CN111382434B/zh active Active
- 2019-07-29 JP JP2019138879A patent/JP7023259B2/ja active Active
-
2021
- 2021-10-12 US US17/499,413 patent/US11880455B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542198A (zh) * | 2010-12-03 | 2012-07-04 | 微软公司 | 预测减轻恶意软件威胁 |
CN106557696A (zh) * | 2015-09-30 | 2017-04-05 | 卡巴斯基实验室股份制公司 | 用于检测恶意数据加密程序的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
US11880455B2 (en) | 2024-01-23 |
US20200210576A1 (en) | 2020-07-02 |
US20220043910A1 (en) | 2022-02-10 |
CN111382434A (zh) | 2020-07-07 |
US11227048B2 (en) | 2022-01-18 |
RU2018147233A (ru) | 2020-06-29 |
JP7023259B2 (ja) | 2022-02-21 |
JP2020115320A (ja) | 2020-07-30 |
US11599630B2 (en) | 2023-03-07 |
EP3674947A1 (en) | 2020-07-01 |
US11176250B2 (en) | 2021-11-16 |
US20200210567A1 (en) | 2020-07-02 |
EP3674947B1 (en) | 2022-06-22 |
US20200210577A1 (en) | 2020-07-02 |
RU2739865C2 (ru) | 2020-12-29 |
RU2018147233A3 (zh) | 2020-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111382430B (zh) | 用于对计算机系统的对象进行分类的系统和方法 | |
CN111382434B (zh) | 用于检测恶意文件的系统和方法 | |
RU2679785C1 (ru) | Система и способ классификации объектов | |
CN109684836B (zh) | 使用经训练的机器学习模型检测恶意文件的系统和方法 | |
US11403396B2 (en) | System and method of allocating computer resources for detection of malicious files | |
JP6636096B2 (ja) | マルウェア検出モデルの機械学習のシステムおよび方法 | |
CN109684835B (zh) | 使用机器学习来检测恶意文件的系统和方法 | |
CN107066883B (zh) | 用于阻断脚本执行的系统和方法 | |
CN109684072B (zh) | 基于机器学习模型管理用于检测恶意文件的计算资源的系统和方法 | |
JP7264631B2 (ja) | コンピュータシステムにおける不正行為を検出するためのシステム及び方法 | |
CN109948335B (zh) | 用于检测计算机系统中的恶意活动的系统和方法 | |
JP2020109611A (ja) | コンピュータシステム内の悪意のあるアクティビティの源を検出するシステムおよび方法 | |
EP3674948B1 (en) | System and method for classification of objects of a computer system |
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 |