CN111382430B - 用于对计算机系统的对象进行分类的系统和方法 - Google Patents
用于对计算机系统的对象进行分类的系统和方法 Download PDFInfo
- Publication number
- CN111382430B CN111382430B CN201911200597.3A CN201911200597A CN111382430B CN 111382430 B CN111382430 B CN 111382430B CN 201911200597 A CN201911200597 A CN 201911200597A CN 111382430 B CN111382430 B CN 111382430B
- Authority
- CN
- China
- Prior art keywords
- degree
- difference
- file
- similarity
- malicious
- 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
- 238000000034 method Methods 0.000 title claims abstract description 74
- 239000013598 vector Substances 0.000 claims abstract description 80
- 238000004458 analytical method Methods 0.000 claims description 90
- 230000008859 change Effects 0.000 claims description 45
- 230000003068 static effect Effects 0.000 claims description 19
- 238000013480 data collection Methods 0.000 claims description 4
- 230000006399 behavior Effects 0.000 description 216
- 238000001514 detection method Methods 0.000 description 127
- 230000006870 function Effects 0.000 description 68
- 230000000694 effects Effects 0.000 description 63
- 238000010801 machine learning Methods 0.000 description 41
- 238000004364 calculation method Methods 0.000 description 38
- 238000003860 storage Methods 0.000 description 34
- 230000003542 behavioural effect Effects 0.000 description 32
- 230000002155 anti-virotic effect Effects 0.000 description 22
- 230000015572 biosynthetic process Effects 0.000 description 20
- 230000002776 aggregation Effects 0.000 description 16
- 238000004220 aggregation Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 238000012549 training Methods 0.000 description 15
- 230000009471 action Effects 0.000 description 14
- 238000012360 testing method Methods 0.000 description 12
- 238000009826 distribution Methods 0.000 description 11
- 238000002360 preparation method Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000003066 decision tree Methods 0.000 description 8
- 238000012706 support-vector machine Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 7
- 238000004088 simulation Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000013515 script Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 230000007423 decrease Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000007637 random forest analysis Methods 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 230000001627 detrimental effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000001902 propagating effect Effects 0.000 description 4
- 230000004931 aggregating effect Effects 0.000 description 3
- 238000002790 cross-validation Methods 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000007261 regionalization Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 208000015181 infectious disease Diseases 0.000 description 1
- 230000005923 long-lasting effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 229920000747 poly(lactic acid) Polymers 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
- G06F18/2148—Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24133—Distances to prototypes
- G06F18/24137—Distances to cluster centroïds
- G06F18/2414—Smoothing the distance, e.g. radial basis function networks [RBFN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24147—Distances to closest patterns, e.g. nearest neighbour classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- 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
- 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/561—Virus type analysis
-
- 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
- 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
- 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
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of 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/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
- G06N20/00—Machine learning
- G06N20/10—Machine learning using kernel methods, e.g. support vector machines [SVM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Medical Informatics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及用于对计算机系统的对象进行分类的系统和方法。在本发明中描述了用于对恶意对象进行分类的系统和方法。在一个示例性方面,所述方法包括:采集描述计算机系统的对象的状态的数据;形成特征向量;基于所述特征向量计算相似程度;计算极限差异程度,该极限差异程度表征正在被分类的所述对象将肯定属于另一类别的概率的数值;基于所述相似程度和所述极限差异程度形成用于确定所述对象的类别的标准;当所述数据满足所述标准时,确定所述对象属于所确定的类别,其中,所述数据是在由数据采集规则所定义的时间段内采集的;以及当确定所述对象属于指定的类别时,判决所述对象为恶意的。
Description
技术领域
本发明涉及数据分析技术,更具体地涉及用于对计算机系统的对象进行分类的系统和方法。
背景技术
在过去的十年中,计算机技术的快速发展以及不同类型的计算设备(个人计算机、笔记本电脑、平板电脑、智能手机等)的广泛使用,已经极大地影响了这些设备在不同的活动领域中针对大量的任务(从因特网网上冲浪到银行转账以及电子文档业务)的使用。随着计算设备数量的增长以及这些设备上运行的软件的增加,恶意程序的数量也在快速增长。
目前存在大量种类繁多的恶意程序。一些恶意程序从用户设备窃取个人数据和机密数据(例如登录名和密码、银行详细信息、电子文档)。其它恶意程序从用户设备形成“僵尸网络”,以用于诸如分布式拒绝服务(Distributed Denial of Service,DDoS)的攻击或者用于通过对其它计算机或计算机网络的暴力破解对密码进行破译。还有一些恶意程序通过侵入式广告、付费订阅、向收费号码发送短信(SMS)等向用户推荐付费内容。
被称为防病毒程序的专用程序用于处理恶意程序,所述处理包括检测恶意程序、预防感染、以及对受恶意程序感染的计算设备的工作能力进行恢复。防病毒程序采用各种技术来检测各种恶意程序,诸如:
a)静态分析-基于构成正在被分析的程序的文件中包含的数据,分析程序的有害性,包括运行或仿真正在被分析的程序,从而在静态分析期间,可以使用:
b)签名分析-从恶意程序的签名数据库中搜索正在被分析的程序的特定代码段与已知代码签名的对应关系;
c)白名单和黑名单-在恶意程序(黑名单)的校验和数据库或安全程序(白名单)的校验和数据库中搜索计算出的正在被分析的程序(或其部分)的校验和;
d)动态分析-基于在执行或仿真正在被分析的程序的过程中所获取的数据,对程序的有害性进行分析,从而在动态分析期间,可以使用:
e)启发式分析-仿真正在被分析的程序、创建仿真日志(包含关于API函数调用的数据、传输的参数、正在被分析的程序的代码段等)、以及搜索创建的日志的数据与来自恶意程序行为签名数据库中的数据之间的对应关系;
f)主动保护-拦截正在被分析的已启动程序的API函数的调用、创建正在被分析的程序的行为的日志(包含关于API函数调用的数据、传输的参数、正在被分析的程序的代码段等)、以及搜索创建的日志的数据与来自恶意程序调用数据库中的数据之间的对应关系。
静态分析和动态分析都有其优点和缺点。静态分析对正在进行分析的计算设备的资源要求较低。此外,由于静态分析不需要执行或仿真正在被分析的程序,所以静态分析更快,但同时与动态分析相比有效性较低。换言之,与动态分析相比,静态分析分析比动态分析通常具有较低的恶意程序检测百分比和较高的错误警报百分比(即,即使被分析的文件是安全的,通过防病毒程序作出的结论是,该分析的文件是恶意的)。动态分析由于其使用在执行或仿真正在被分析的程序期间获取的数据而是缓慢的,并且动态分析对正在执行分析的计算设备的资源要求较高,但也更有效。现代防病毒程序采用包括静态分析和动态分析两者的要素的综合分析。
由于现代计算机安全标准要求对恶意程序(特别是新恶意程序)进行操作性响应,因此自动检测恶意程序是关注的主要焦点。为了有效的操作这种自动检测,经常使用人工智能要素和各种模型的机器学习方法来检测恶意程序(即,用于基于描述恶意文件的特定输入数据集做出关于文件的有害性的判定的规则集)。这不仅能够有效地检测已知的恶意程序或具有公知恶意行为的恶意程序,而且能够有效地检测具有未知的或很少研究的恶意行为的新的恶意程序,以及有效的适应(学习)以检测新的恶意程序。
本发明使得能够解决检测恶意文件的问题。
发明内容
本发明旨在对计算机系统的对象进行分类以便确定对象是否为恶意的。
本发明的一个技术结果包括通过使用对计算机系统的对象所属的类别的两级评估来提高对计算机系统的对象进行分类的准确度。
一种用于检测计算机系统上的恶意对象的示例性方法,包括采集描述所述计算机系统的对象的状态的数据;形成表征所述对象的所述状态的特征向量;基于形成的所述特征向量计算相似程度,其中,所述相似程度为表征正在被分类的所述对象可能属于给定类别的概率的数值;计算极限差异程度,所述极限差异程度为表征正在被分类的所述对象将肯定属于另一类别的概率的数值;基于所述相似程度和所述极限差异程度形成用于确定所述对象的类别的标准;当所述数据满足所述标准时,确定所述对象属于所确定的类别,其中,所述数据是在由数据采集规则所定义的时间段内采集的;以及当确定所述对象属于指定的类别时,判决所述对象为恶意的。
在一个方面中,所述标准为用于根据建立的所述相似程度和所述极限差异程度之间的相关性对所述对象进行分类的规则。
在一个方面中,所述相似程度和所述极限差异程度之间的相关性为以下中的一者或多者:所述相似程度和所述极限差异程度之间的距离与预定阈值的差异;所述相似程度和所述极限差异程度之间的在给定时间间隔内界定的面积与预定阈值的差异;以及描述所述相似程度的变化的曲线和描述所述极限差异程度的变化的曲线的相互增长的速率与预定值的差异。
在一个方面中,所述特征向量为所采集的数据的以一组数字的形式组织的卷积。
在一个方面中,所述数据采集规则为如下中的一者:所述对象的不同状态之间的时间间隔满足预定值、以及导致所述对象的状态改变的所述计算机系统的参数的变化满足给定值。
在一个方面中,所述极限差异程度是根据所述相似程度计算出的,并且,所述极限差异程度是在如下项之一中计算出的:所述极限差异程度是在创建所述对象的时刻计算出的、所述极限差异程度是在所述对象的状态第一次变化的时刻计算出的、以及所述极限差异程度是基于对所述对象的静态参数的分析计算出的。
在一个方面中,如果在由所述数据采集规则定义的时间段内已经计算出至少两个相似程度和至少两个极限差异程度,则通过预定的时间法则来描述连续计算出的相似程度和连续计算出的极限差异程度的集合。
在一个方面中,描述连续计算出的相似程度和连续计算出的极限差异程度的所述时间法则是单调的。
本文描述的一种示例性系统,包括硬件处理器,所述硬件处理器被配置为:采集描述所述计算机系统的对象的状态的数据;形成表征所述对象的所述状态的特征向量;基于形成的所述特征向量计算相似程度,其中,所述相似程度为表征正在被分类的所述对象可能属于给定类别的概率的数值;计算极限差异程度,所述极限差异程度为表征正在被分类的所述对象将肯定属于另一类别的概率的数值;基于所述相似程度和所述极限差异程度形成用于确定所述对象的类别的标准;当所述数据满足所述标准时,确定所述对象属于所确定的类别,其中,所述数据是在由数据采集规则所定义的时间段内采集的;以及当确定所述对象属于指定的类别时,判决所述对象为恶意的。
以上对示例性方面的简化概述用于提供对本发明的基本理解。本概述不是对所有预期方面的广泛概述,并且既不旨在确定所有方面的关键或重要要素,也不描绘本发明的任何或全部方面的范围。本概述的唯一目的是以简化的形式示出一个或多个方面,作为随后的本发明的更详细描述的前奏。为了实现前述内容,本发明的一个或更多个方面包括权利要求中所描述和示例性指出的特征。
附图说明
图1为根据本发明的示例性方面的用于检测恶意文件的模型进行机器学习的系统100的结构图。
图2为根据本发明的示例性方面的用于检测恶意文件的模型进行机器学习的方法的流程图。
图3示出了根据本发明的示例性方面的有害程度根据行为模式的数量的变化动态的示例。
图4示出了根据本发明的示例性方面的行为模式的要素之间的关系图的示例。
图5为根据本发明的示例性方面的使用经训练的检测恶意文件的模型检测恶意文件的系统的结构图。
图6为根据本发明的示例性方面的使用经训练的检测恶意文件的模型检测恶意文件的方法的流程图。
图7为根据本发明的示例性方面的用于检测恶意文件的系统的结构图。
图8为根据本发明的示例性方面的用于检测恶意文件的方法的流程图。
图9示出了根据本发明的示例性方面的有害程度和极限安全程度根据行为模式的数量的变化动态的示例。
图10为根据本发明的示例性方面的用于对计算机系统的对象进行分类的系统的结构图。
图11为根据本发明的示例性方面的用于对计算机系统的对象进行分类的方法的流程图。
图12示出了根据本发明的示例性方面的通用计算机系统(个人计算机或服务器)的示例。
具体实施方式
根据本发明的各示例性方面,所公开的系统和方法涉及将计算机系统上的对象分类为恶意的或安全的。本文中在用于将计算机系统上的对象分类为恶意或安全的系统、方法和计算机程序产品的背景下描述示例性方面。本领域的普通技术人员将认识到,以下描述仅仅是示例性的,而不旨在以任何方式进行限制。其它方面将很容易将其自身暗示给了解本发明的优点的本领域的技术人员。现在将详细地参考如附图中所示的示例性方面的实现方式。贯穿附图和以下描述将尽可能地使用相同的附图标记来指代相同或类似的项目。
贯穿本发明,使用如下定义来描述各个方面。
恶意文件-已知其执行会导致计算机信息的未经授权的破坏、阻断、修改或复制,或者导致计算机信息保护系统失效的文件。
可执行文件的恶意行为-可以在执行该文件期间执行并且已知能够导致计算机信息的未经授权的破坏、阻断、修改或复制,或者导致计算机信息保护系统失效的一组动作。
可执行文件的恶意活动-由该文件根据其恶意行为执行的一组动作。
普通用户的计算设备-具有先前选择的一组用户的计算设备的普通特性的假设(理论)计算设备,在该假设(理论)计算设备上执行与这些用户的计算设备上相同的应用程序。
可由计算设备执行的命令-可由计算设备基于指令的参数(称为命令参数或描述该命令的参数)执行的那些机器指令集合或脚本的指令集合。
词法分析(令牌化)-将输入的字符序列解析为被识别的组(以下称为:词位(lexeme))以便在输出处形成识别序列(以下称为:令牌(token))的分析过程。
令牌(Token)-在词法分析过程中由词位形成的识别序列。
图1为根据本发明的示例性方面的用于检测恶意文件的模型进行机器学习的系统的结构图。
用于机器学习的系统100的结构图包括训练选择准备模块(training selectionpreparation module)111、行为日志形成模块112、行为模式形成模块121、卷积函数形成模块122、检测模型创建模块131以及检测模型机器学习模块132。
在一个变型方面中,系统100具有客户端-服务器架构,其中,训练选择准备模块111、行为日志形成模块112、行为模式形成模块121、卷积函数形成模块122、检测模型创建模块131以及检测模型机器学习模块132在服务器侧工作,而行为模式形成模块121在客户端侧工作。
例如,客户端可以是用户的计算设备,诸如个人计算机、笔记本电脑、智能手机等。服务器可以是防病毒公司的计算设备,诸如服务器的分布式系统,该服务器的分布式系统至少执行文件的初步收集和防病毒分析、防病毒记录的创建等。系统100在一些方面中用于检测客户端侧的恶意文件,从而提高该客户端的防病毒保护的有效性。
在又一示例中,客户端和服务器都可以是仅防病毒公司的计算设备,其中,系统100可以用于文件的自动防病毒分析以及防病毒记录的创建,从而提高防病毒公司的工作效率。
在示例性方面中,训练选择准备模块111被配置为:
· 根据形成学习选择文件(a learning selection of files)的预定学习规则从文件数据库113中选择至少一个文件,之后检测模型机器学习模块132将基于对所选择的文件的分析来执行检测模型的教导;
· 将所选择的文件发送到行为日志形成模块112。
在系统100的一个变型方面中,将至少一个安全文件和一个恶意文件保存在文件数据库113中。
例如,文件数据库113可以将Windows操作系统的文件作为安全文件保存,并且将后门程序文件、对数据执行未授权访问以及对操作系统和整个计算机进行未授权远程控制的应用程序作为恶意文件保存。通过利用上述文件进行训练以及使用机器学习的方法,用于检测恶意文件的模型将能够以高准确度(用于教导上述检测模型的文件越多,则检测的准确度越高)检测具有与上述后门程序的功能类似功能的恶意文件。
在所述系统的又一变型方面中,文件数据库113还至少保存:
可疑文件(风险软件)-非恶意但能够执行恶意动作的文件。
未知文件-其有害性尚未确定并且仍未知的文件(即,不安全文件、恶意文件、可疑文件等)。
例如,文件数据库113可以具有作为可疑文件的、用于远程管理的应用程序(诸如RAdmin)、用于归档的应用程序、或用于数据加密的应用程序(诸如WinZip)等的文件。
在所述系统的又一变型方面中,文件数据库113至少保存如下文件:
· 由防病毒网络爬虫(web crawlers)收集的文件;
· 由用户发送的文件。
· 上述文件由防病毒专家进行分析,包括借助于自动分析文件的工具进行分析,以便之后对所述文件的有害性作出判定。
例如,文件数据库113可以存储用户从其计算设备发送到用于检查其有害性的防病毒公司的文件。发送的文件可以是安全的或者恶意的,并且所述安全文件和恶意文件的数量之间的分布接近于位于所述用户的计算设备上的所有安全文件和所有恶意文件的数量之间的分布,即,所述安全文件的数量和所述恶意文件的数量之比与位于所述用户的计算设备上的所有安全文件的数量和所有恶意文件的数量之比相差的量小于指定阈值,即:
与用户发送的文件(即,主观上可疑的文件)不同,由被设计为用于搜索可疑文件和恶意文件的防病毒网络爬虫收集的文件更常被证明是恶意的。
在系统100的又一变型方面中,使用如下条件中的至少一者作为从文件数据库113中选择文件的标准:
· 从文件数据库113中选择的安全文件和恶意文件之间的分布对应于位于普通用户的计算设备上的安全文件和恶意文件之间的分布;
· 从文件数据库113中选择的安全文件和恶意文件之间的分布对应于借助于防病毒网络爬虫收集的安全文件和恶意文件之间的分布;
· 从文件数据库113中选择的文件的参数对应于位于普通用户的计算设备上的文件的参数;
· 所选择的文件的数量对应于预定值,而文件本身是随机选择的。
例如,文件数据库113包含100000个文件,其中40%为安全文件,60%为恶意文件。从文件数据库113中选择15000个文件(被保存在文件数据库113中的文件总数量的15%),使得所选择的安全文件和恶意文件之间的分布对应于位于普通用户的计算设备上的安全文件和恶意文件之间的分布,且分布量为每5个恶意文件有95个安全文件。为此,从文件数据库113中随机选择14250个安全文件(安全文件总数量的35.63%)和750个恶意文件(恶意文件总数量的1.25%)。
在又一示例中,文件数据库113包含1250000个文件,其中95%为安全文件,5%为恶意文件。因此保存在文件数据库113中的安全文件和恶意文件之间的分布对应于位于普通用户的计算设备上的安全文件和恶意文件之间的分布。在这些文件中,随机选择5000个文件,其中有很高的概率大约4750个文件被证明是安全文件,大约250个文件被证明是恶意文件。
在所述系统的又一变型方面中,文件参数至少为:
· 文件的有害性,其表征文件是否为安全的、恶意的、潜在危险的、或者在执行文件时计算机系统的行为是否是不确定的,等等;
· 计算设备在执行文件期间执行的命令数量;
· 文件的大小;
· 使用文件的应用程序。
例如,从文件数据库113中选择包含“ActionScript”语言的脚本、可由应用程序“动画制作(Adobe Flash)”执行、并且大小不超过5kb的文件作为恶意文件。
在所述系统的又一变型方面中,训练选择准备模块111还被设计为:
· 根据形成测试选择文件(test selection of files)的预定规则,从文件数据库113中选择至少一个其它文件,之后检测模型机器学习模块132将基于对所选择的文件的分析来执行经训练的检测模型的验证;
· 将所选择的文件发送到行为日志形成模块112。
在另一示例中,文件数据库113可以包含75000个文件,其中20%为安全文件,80%为恶意文件。首先,从文件数据库113中选择12500个文件,其中30%为安全文件,70%为恶意文件,随后检测模型机器学习模块132基于对所选择的文件的分析来教导检测模型133。在该步骤之后,从剩余的62500个文件中选择2500个文件,其中60%为安全文件,40%为恶意文件,之后,检测模型机器学习模块132将基于对所选择的文件的分析来检查经训练的检测模型133。以上述方式形成的数据称为交叉验证数据集。
在一个方面中,行为日志形成模块112被配置为:
· 至少在如下期间拦截至少一个可执行命令:
o 执行接收到的文件;
o 仿真接收到的文件的执行,其中,仿真文件的执行包括打开上述文件(例如,通过解释器打开脚本);
· 针对每个拦截的命令确定至少一个描述该命令的参数;
· 基于拦截的命令和如此确定的参数形成获取的文件的行为日志115,其中,行为日志构成文件的被拦截命令(以下称为命令)的总和,其中,每个命令至少对应于如此确定和描述该命令的一个参数(下文中称为参数)。
例如,以下是在执行(通过计算机网络收集密码并进行密码传输的)恶意文件期间拦截的命令的示例,以及针对所述命令计算出的参数:
· CreateFile,‘c:\windows\system32\data.pass’
· ReadFile,0x14ea25f7,0xf000
· connect,http://stealpass.com
· send,0x14ea25f7,0xf000
· 在系统100的一个变型方面中,从文件拦截命令至少借助于以下来完成:
· 专用驱动程序;
· 调试器;
· 管理程序。
例如,在文件的执行期间拦截命令以及确定该命令的参数是使用驱动程序来执行的,该驱动程序利用通过拼接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’
基于用于形成词位的规则:
· 如果字符串包含文件的路径,则确定文件所在的磁盘;
· 如果字符串包含文件的路径,则确定文件所在的文件夹;
· 如果字符串包含文件的路径,则确定文件扩展名。
其中,词位为:
· 文件的路径;
· 文件所在的文件夹;
· 文件名;
· 文件的扩展名;
可以如下形成令牌:
· “文件的路径”→
· ‘c:\’;
· “文件所在的文件夹”→
· ‘windows’;
· ‘system32’;
· ‘windows\system32’;
· “文件的扩展名”→
· ‘.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
o →{16,23,52,80,512,812};
· 从1000到9999
o →{2625,3200,3671,7224};
· 从10000起
o →{737382,2662162,363627632,6125152186}
在所述系统的又一变型方面中,令牌由包括字符串的行为模式的要素形成。
例如,行为模式是包含磁盘名称、目录、文件、文件扩展名等的文件的路径。在这种情况下,令牌可以为磁盘的名称和文件扩展名。
C:\Windows\System32\drivers\acpi.sys
· →
o C:\
o *.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,以及上述获得的结果的逆卷积函数的结果为:1010111001000100101101110011111010001000110010010100011101011011011100011 00110110100000010000001011101110011011011(其中,下划线表示与特征向量不同的要素)。因此,特征向量与逆卷积函数的结果的相似度为0.92。
在所述系统的又一变型方面中,上述使用行为模式的要素作为参数的散列函数取决于行为模式的要素的类型:
例如,为了从构成包含文件路径的字符串的行为模式计算参数的散列和,使用散列函数CRC32;对于任何其它字符串,使用霍夫曼算法(Huffman algorithm);对于数据集合,使用散列函数MD5。
在所述系统的又一变型方面中,行为模式的特征向量的卷积函数的形成通过自动编码器执行,其中,输入数据为行为模式的该特征向量的要素,并且输出数据为与输入数据的相似度系数大于预定阈值的数据。
在一个方面中,检测模型创建模块131被配置为:
· 创建用于恶意文件的检测模型,至少包括:
(1)选择检测模型的机器学习方法:
· 初始化教导模型的参数,其中,在检测模型的机器学习开始之前初始化的教导模型的参数被称为超参数;
· 取决于由训练选择准备模块111选择的文件的参数;
· 将如此创建的教导模型发送到检测模型机器学习模块132。
例如,当选择检测模型的机器学习方法时,首先决定是应该使用人工神经网络(artificial neural net)还是随机森林(random forest)作为检测模型,然后,如果选择了随机森林,则选择用于随机森林的节点的分离标准;或者如果选择了人工神经网络,则选择人工神经网络的参数的数值优化的方法。关于特定机器学习方法的选择的决定是基于该方法在使用预定种类(即,数据结构、行为模式的要素数量、其上进行恶意文件搜索的计算设备的性能、计算设备的可用资源等)的输入数据(行为模式)检测恶意文件时的有效性(即,在检测恶意文件时发生的第一种错误和第二种错误的数量)做出的。
在又一示例中,基于如下中的一者或多者来选择检测模型的机器学习方法:
· 交叉测试、滑动检查、交叉验证(cross-validation,CV);
· AIC、BIC等标准的数学验证;
· A/B测试、拆分测试;
· 堆叠(stacking)。
在又一示例中,在计算设备性能低的情况下,选择随机森林,否则选择人工神经网络。
在所述系统的一个变型方面中,针对先前创建的未训练的检测模型(即,这样的检测模型:在对输入数据分析的基础上,该检测模型的参数不能产生准确度高于预定阈值的输出数据)执行机器学习。
在所述系统的又一变型方面中,检测模型的机器学习方法至少为:
· 基于决策树的梯度提升;
· 决策树法;
· k-最近邻(K-nearest neighbor,KNN)法;
· 支持向量机(support vector machine,SVM)法。
在所述系统的又一变型方面中,检测模型创建模块131还被设计为根据检测模型机器学习模块132的要求创建检测模型133,其中,选择特定超参数和机器学习方法,以区别于为先前检测模型选择的超参数和机器学习方法。
检测模型机器学习模块132被配置为教导检测模型,其中,使用获得的关于所获得的行为模式的卷积函数来计算检测模型的参数,其中,检测模型构成规则集合,所述规则用于基于至少一个行为模式使用计算出的该检测模型的参数来计算文件的有害程度。
例如,利用由训练选择准备模块111选择的已知文件的集合训练检测模型,其中,所述文件的集合包含60%的安全文件和40%的恶意文件。
在所述系统的一个变型方面中,文件的有害程度构成从0到1的数值,其中,0表示文件是安全的,1表示文件是恶意的。
在所述系统的又一变型方面中,选择教导检测模型的方法,该方法确保文件的有害程度根据基于对行为日志的分析形成的行为模式的数量的变化而单调变化。
例如,文件的有害程度的单调变化意味着,在分析每个后续行为模式时,计算出的有害程度将不小于先前计算出的有害程度(例如,在分析第10个行为模式之后,计算出的有害程度等于0.2;在分析第50个行为模式之后,计算出的有害性程度为0.4;以及在分析第100个行为模式之后,计算出的有害程度为0.7)。
在所述系统的又一变型方面中,检测模型机器学习模块132还被配置为:
· 针对所获得的、在对来自测试选择文件的文件进行分析的基础上形成行为日志,对经训练的检测模型执行检查(例如,验证),以便确定来自测试选择文件的文件的有害性的判定的正确性;
· 在检查结果为否定的情况下,向以下项中的一者或多者发送请求:
o 训练选择准备模块111,以准备与检测模型的教导所使用的当前文件不同的选择文件;
o 检测模型创建模块131,以创建不同于当前检测模型的新的检测模型。
经训练的检测模型如下地验证。检测模型133已经基于由训练选择准备模块111选择的文件的集合进行教导。先前已经知晓文件的该集合是安全的还是恶意的。为了验证检测模型133已被正确训练(即检测模型133能够检测恶意文件并使安全文件通过),对所述模型进行验证。为此,所述检测模型用于确定来自训练选择准备模块111选择的另一文件集合中的文件是否是恶意的,这些文件的恶意性是事先知道的。在将检测模型应用于新的文件集合之后,系统100确定有多少恶意文件被“遗漏”以及检测到多少安全文件。如果遗漏的恶意文件和检测到的安全文件的数量大于预定阈值,则认为检测模型133未被正确训练并且该检测模型必须使用机器学习再训练(例如,针对另外的训练选择文件,使用与先前的检测模型的参数值不同的参数值等)。
例如,当对经训练的模型执行验证时,在从测试选择文件检测恶意文件时系统100验证第一种错误和第二种错误的数量。如果这样的错误的数量大于预定阈值,则选择新的教导选择文件和测试选择文件,并创建新的检测模型。
在又一示例中,教导选择文件包含10000个文件,其中8500个文件为恶意的,1500个文件为安全的。在教导检测模型之后,系统对包含1200个文件的测试选择文件进行了验证,其中350个文件为恶意的,850个文件为安全的。根据验证的结果,350个恶意文件中有15个恶意文件未能检测到(4%),而850个安全文件中有102个被错误地视为恶意的(12%)。根据一个示例性方面,如果未检测到的恶意文件的数量超过5%或意外检测到的安全文件的数量超过0.1%,则认为经训练的检测模型未被正确训练。
在所述系统的一个变型方面中,系统100的行为日志115还基于先前形成的系统行为日志以及在形成所述系统行为日志之后拦截的命令形成。
例如,在开始执行文件之后(对于该文件,需要对该文件的有害性或安全性做出判决)之后,将拦截的可执行命令以及描述这些可执行命令的参数记录在行为日志115中。基于对这些命令和参数的分析,通过系统100计算该文件的有害程度。如果基于分析结果,未做出关于文件被识别为恶意的或安全的判定,则系统100继续拦截命令。将拦截的命令和描述这些命令的参数记录在旧行为日志或新行为日志中。在第一种情况下,基于对行为日志中记录的所有命令和参数(即,甚至是先前用于计算有害程度的那些命令和参数)的分析来计算有害程度。
在一个方面中,系统100被配置为:
· 基于从行为日志形成模块112获得的行为日志以及从检测模型机器学习模块132获得的检测模型计算有害程度,文件的有害程度为描述可执行文件的恶意行为的可量化的特征(例如,在0(该文件只有安全行为)至1(该文件有预定的恶意行为)的范围内);和/或
· 发送计算出的有害程度以确定资源分配。
在一个方面中,系统100还被设计为基于对所获得的有害程度的分析来分配计算机系统的计算资源,以用于确保计算机系统的安全性。
在系统100的一个变型方面中,计算机系统的计算资源至少包括:
· 空闲RAM的容量;
· 硬盘上的空闲空间的容量;和/或
· 可以在防病毒扫描上花费的空闲处理器时间(处理器时间的份额)(例如,具有更大的仿真深度)。
在所述系统的又一变型方面中,对有害程度的分析在于确定在每次先前的有害程度计算之后有害程度值的变化动态,以及至少:
· 在有害程度的值增加的情况下分配计算机系统的额外资源;和/或
· 在有害程度的值降低的情况下,释放先前分配的计算机系统的资源。
图2示出了根据本发明的示例性方面的用于检测恶意文件的模型的机器学习的方法200的流程图。
用于检测恶意文件的模型的机器学习的方法200的流程图包括:步骤211,在步骤211中准备教导选择文件;步骤212,在步骤212中形成行为日志;步骤221,在步骤221中形成行为模式;步骤222,在步骤222中形成卷积函数;步骤231,在步骤231中创建检测模型;步骤232,在步骤232中训练检测模型;步骤241,在步骤241中跟踪计算机系统的行为;步骤242,在步骤242中计算有害程度;以及步骤243,在步骤243中管理计算机系统的资源。
在步骤211中,训练选择准备模块111用于根据预定标准从文件数据库113中选择至少一个文件,其中,检测模型的教导将基于所选择的文件在步骤232中完成。
在步骤212中,行为日志形成模块112用于:
· 至少在如下期间拦截至少一个命令:
· 执行在步骤211中所选择的文件,
· 仿真在步骤211中所选择的文件的工作;
· 针对每个拦截的命令确定至少一个描述该命令的参数;
· 基于拦截的命令和确定的参数形成获得的文件的行为日志,其中,行为日志表示来自文件的拦截命令(以下称为命令)的集合,其中,每个命令对应于描述该命令的至少一个定义的参数(以下称为参数)。
在步骤221中,行为模式形成模块121基于从在步骤212中形成的行为日志中所选择的命令和参数形成至少一个行为模式。行为日志115表示来自文件的一组可执行命令(以下称为命令),其中,每个命令对应于描述该命令的至少一个参数(以下称为参数)。在一个方面中,行为模式为至少一个命令和这种参数的集合,所述参数描述所述集合中的所有命令。
在步骤222中,卷积函数形成模块122形成在步骤221中形成的行为模式的卷积函数,使得对该行为模式执行的该卷积函数的结果的逆卷积函数将具有大于指定值的与上述行为模式的相似程度。
在步骤231中,检测模型创建模块131创建检测模型,该检测模型包括如下中的一者或多者:
· 选择检测模型的机器学习方法;
· 初始化教导模型的参数,其中,在检测模型的机器学习开始之前初始化的教导模型的参数被称为超参数;
· 取决于在步骤211中选择的文件的参数。
在步骤232中,检测模型机器学习模块132教导在步骤231中创建的检测模型。使用在步骤222中形成的卷积函数计算该检测模型的参数,针对在步骤221中形成的行为模式执行该卷积函数。检测模型构成一组规则,该组规则用于基于至少一个行为模式使用计算出的该检测模型的参数来计算文件的有害程度。
在步骤241中,行为日志形成模块112:
· 拦截由计算机系统中运行的文件正在执行的至少一个命令;
· 基于拦截的命令形成系统的行为日志。
在步骤242中,基于在步骤241中形成的系统的行为日志和在步骤232中训练的检测模型计算出有害程度。
在步骤243中,基于对在步骤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(恶意活动正在发生时)计算有害程度,尽管如此,由于有害程度单调变化,因此计算出的有害程度的值将只会增加,并且在时刻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的模式:
在示出的示例中,已经基于8个拦截的命令(以及描述这些命令的参数)形成了18种行为模式。
在第二步骤中,形成包含一个参数412以及可由该参数412描述的所有命令411的模式:
在示出的示例中,还基于8个拦截的命令(以及描述这些命令的参数)形成了7种行为模式。
在第三步骤中,形成包含多个参数412以及可由这些参数412描述的所有命令411的模式:
· {c1,c2,c3,p1,p2} ·{c2,c4,p6,p7}
· {c4,c5,p5,p6}
在示出的示例中,还基于8个拦截的命令(以及描述这些命令的参数)形成了3种行为模式。
图5示出了根据本发明的示例性方面的使用经训练的检测恶意文件的模型检测恶意文件的系统的结构图。
使用经训练的检测恶意文件的模型检测恶意文件的系统500的结构图包含正在分析的文件501、行为日志形成模块112、检测模型选择模块520、检测模型数据库521、行为日志分析模块530、有害模块540、决策模板数据库541以及分析模块550。
在所述系统的一个变型方面中,所述系统还包含正在执行的文件的行为日志形成模块112,所述行为日志形成模块112被配置为:
· 至少在如下期间拦截至少一个命令:
a)执行文件501;和/或
b)仿真文件501的执行;
· 针对每个拦截的命令确定至少一个描述该命令的参数;
· 基于拦截的命令和确定的参数形成该文件的行为日志,其中,按照从最早拦截的命令到最新拦截的命令的时间顺序,将拦截的命令和描述这些命令的参数记录在行为日志中(以下称为写入行为日志);
· 将形成的行为日志发送到行为日志分析模块530和检测模型选择模块520。
在系统500的又一变型方面中,行为日志为文件501的可执行命令(以下称为命令)的集合,其中每个命令对应于描述该命令的至少一个参数(以下称为参数)。
在所述系统的又一变型方面中,拦截正在执行的文件501的命令以及确定拦截的命令的参数是基于对计算设备(在该计算设备上正在运行使用经训练的检测恶意文件的模型来检测恶意文件的系统)的性能的分析来执行的,至少包括:
· 确定是否可以对正在执行的文件501进行有害性分析(借助于行为日志分析模块530、有害模块540以及分析模块550执行该分析),直到拦截到下一个命令的时刻;
· 确定对正在执行的文件501进行有害性分析是否会导致该计算设备的计算资源降低到低于预定阈值,计算设备的资源至少是:
o 该计算设备的性能;
o 该计算设备的空闲RAM的容量;
o 该计算设备的信息存储介质(诸如硬盘)上的空闲空间的容量;
o 该计算设备所连接的计算机网络的带宽。
为了提高使用经训练的检测恶意文件的模型检测恶意文件的系统的性能,可能有必要分析不包含正在执行的文件501的所有可执行命令的行为日志,因为所执行的用于分析文件501的有害性的整个动作序列所花费的时间比正在执行的文件501的两个连续的被执行命令之间的间隔更长。
例如,每0.001秒执行(并且因此拦截)正在执行的文件501的命令,但是分析文件501的有害性花费0.15秒,因此将忽略在上述时间间隔期间拦截的所有命令,从而只拦截每第150个命令就足够了。
在一个方面中,检测模型选择模块520被配置为:
· 基于从正在执行的文件501的行为日志中选择的命令和参数,从检测模型数据库521中选择至少两个检测恶意文件的模型,检测恶意文件的模型为确定有害程度的决策规则;
· 将选择的所有检测恶意文件的模型发送到有害模块540。
在所述系统的一个变型方面中,保存在检测模型数据库521中的检测恶意文件的模型先前已经针对至少一个安全文件和至少一个恶意文件通过机器学习方法进行了训练。
检测恶意文件的模型在图1至图4中进行了更详细地描述。
在系统500的又一变型方面中,检测模型的机器学习方法至少是如下方法:
· 基于决策树的梯度提升;
· 决策树法;
· k-最近邻法(kNN)法;
· 支持向量机(SVM)法。
在所述系统的又一变型方面中,教导检测模型的方法确保了文件的有害程度根据基于对行为日志的分析形成的行为模式的数量的变化而单调变化。
例如,计算出的文件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中,有害模块540借助于在步骤650中选择的各个用于恶意文件的检测模型、基于对在步骤640中计算出的卷积的分析,计算正在执行的文件501的有害程度。
在步骤670中,分析模块550基于在步骤660中获得的有害程度形成决策模板。
在步骤680中,分析模块550当在步骤670中形成的决策模板与来自决策模板数据库541中的至少一个预定决策模板之间的相似程度超过预定阈值的情况下,将正在执行的文件501识别为恶意的。
在步骤690中,分析模块550用于在形成的决策模板与来自决策模板数据库541中的至少一个预定决策模板之间的相似程度超过预定阈值、而借助于这些用于恶意文件的检测模型计算出的有害程度不超过预定阈值的情况下,基于从正在执行的文件的行为日志中选择的命令和参数,再训练来自检测模型数据库521的至少一个检测模型。
图7示出了根据本发明的示例性方面的用于检测恶意文件的系统的示例。
该用于检测恶意文件的系统的结构图包括正在被分析的文件501、行为日志分析模块112、检测模型数据库521、数据采集模块710、关于文件的行为的数据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可能被证明为恶意的概率的数值,所述极限安全程度为表征在满足预定条件时,该文件501将肯定会被证明为安全的概率的数值。根据有害程度和极限安全程度(参见图9),通过预定的时间法则描述相继计算出的所述程度的聚合。
在所述系统的一个变型方面中,对于输入数据的每个通道(输入数据源或来自输出数据源的通过预定标准进行过滤的数据),创建用于提取特征(长度为N的实数向量)的系统:
· 如果给定的通道涉及信息(例如,解包的可执行文件的日志或序列)的连续获取,则另外创建用于将输入序列的特征聚合为单个向量的系统;
· 创建用于将来自给定通道的特征转换为长度为K的新向量的系统。该向量中的值可以仅在处理输入序列的新要素时单调增加。
在所述系统的又一变型方面中,用于提取、聚合以及转换特征的系统可以取决于用于教导的参数,该用于教导的参数将在训练整个模型的步骤中稍后进行如下调整:
· 将来自所有激活通道的长度为K的向量单调聚合为1个固定长度的向量(例如,最大值是逐要素取的);和/或
· 将聚合的单调递增的向量转换为1个实数,该实数表征正在研究的进程的可疑性(例如,通过添加该向量的要素或通过预定算法对向量的要素执行动作(诸如通过计算该向量的范数)来转换该向量)。
在所述系统的另一变型方面中,参数计算模型721先前已经通过针对至少一个安全文件和至少一个恶意文件的机器学习方法进行了训练。
在所述系统的另一变型方面中,参数计算模型721的机器学习方法至少为如下方法:
· 基于决策树的梯度提升;
· 决策树法;
· k-最近邻(kNN)法;
· 支持向量(SVM)法。
在所述系统的又一变型方面中,至少所计算的有害程度或极限安全程度分别取决于在启动文件501时基于对文件501的静态数据的分析所计算出的有害程度和极限安全程度。
例如,可以通过如下公式计算有害程度和极限安全程度:
ω=ω0+ω(t)
其中:
所述时间法则可以取决于彼此,即取决于先前计算出的有害程度和极限安全程度:
在图9中更详细的公开了上述系统的变型方面。
在所述系统的另一变型方面中,经训练的参数计算模型721是用于计算文件的有害程度和文件的极限安全程度的规则的聚合,所述规则取决于确定的关于文件501的执行行为的数据711。
在所述系统的又一变型方面中,描述相继计算出的有害程度的聚合以及相继计算出的极限限制安全程度的聚合的时间法则本质上是单调的。
例如,有害程度根据时间变化的曲线可以通过单调递增函数(诸如f(x)=ax+b)来描述。
在所述系统的又一变型方面中,描述相继计算出的有害程度的聚合以及相继计算出的极限安全程度的聚合的时间法则具有分段单调的性质,即这些时间法则在指定的时间间隔内具有单调的性质。
通常在正在描述的系统的操作期间,不可以(由于计算资源的限制、计算时间以及存在对最小性能的要求等)不断地(连续地或者以给定的周期性)确定有害程度。因此,可以在可计算的时间间隔(不是预定的时间间隔,而是可以在文件501的执行过程中进行计算的时间间隔)中计算有害程度和极限安全程度。这种计算还基于某些预定的时间法则,针对该预定的时间法则在文件的执行过程中计算出了输入参数,即,可以写入长达计算文件的时间:
tn=τ(tn-1)。
计算有害程度和极限安全程度的时间可以取决于先前计算出的有害程度和极限安全程度:
例如,当启动文件501时,对于前10秒,该文件的有害程度单调增加,在第10秒之后,该文件的有害程度减半,然后开始再次单调增加。
分析模块730在收集的关于文件501的执行行为的数据711满足用于发现有害性的预定标准的情况下,做出关于检测到恶意文件501的判定,所述预定标准基于由参数计算模块720所计算的有害程度和极限安全程度形成。在一个方面中,该标准(由标准形成模型731提供)是用于根据已建立的有害程度和极限安全程度之间的相关性进行文件分类的规则。
在所述系统的一个变形方面中,有害程度和极限安全程度之间的相关性至少为:
· 与有害程度和有害边界条件之间的距离的预定阈值的差异;
· 与界定在给定时间间隔内且在描述有害程度和极限安全程度的曲线之间的面积的预定阈值的差异;
· 与描述有害程度的变化的曲线和有害边界条件根据时间的相互增加的速率的预定值的差异。
例如,所描述的相关性的最典型的实例在图9中示出。
参数校正模块740被设计为基于对计算出的有害程度和极限安全程度的分析(参见图9)再训练参数计算模型721。一旦模型721被再训练,则描述有害程度和极限安全程度的时间法则的变化使得使用这些时间法则获得的值之间的相关性趋于最大值。
在所述系统的一个变型方面中,参数计算模型721被再训练,使得在使用该模型时,之后形成的标准至少确保:
· 确定有害程度和极限安全程度的准确性大于使用未经训练的用于计算参数的模型时的准确性;
· 利用的计算资源少于使用未经训练的用于计算参数的模型时利用的计算资源。
例如,在再训练(或进一步训练)之后,有害程度的曲线的值和极限安全程度的曲线的值之间的相关因子变得更大(趋向于1)。
因此,在参数计算模型721的不断再训练下,发生第一种错误和第二种错误(误报)的概率不断减小。使用上面提出的不同的再训练标准确保了具有经再训练的模型721的用于检测恶意文件的系统在开始时(在再训练的初始阶段)具有非常高的第一种错误和第二种错误的减少率,因此利用参数计算模型721的很少的再训练迭代,用于检测恶意文件的系统的有效性大幅上升,趋向于100%。
图8示出了根据本发明的示例性方面的用于检测恶意文件的方法的示例。
用于检测恶意文件的方法的流程图包括:步骤810,在步骤810中形成特征向量;步骤820,在步骤820中计算参数;步骤830,在步骤830中做出关于检测到恶意文件的判定;以及步骤840,在步骤840中再训练参数计算模型。
在步骤810中,基于收集的关于文件501的执行行为的数据711形成表征文件501的执行行为的特征向量,所述特征向量是所收集的数据的以数字聚合的形式的卷积。
在步骤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中描述的情况相反)下,观察到这种情形。因此,实现了发生第二种错误(忽略恶意文件)的概率的降低。如果特别是在文件的执行期间的其它行为或操作系统作为整体看起来不“可疑”,则可疑活动会“更强烈”地影响关于检测到恶意文件的肯定判决的作出。
例如,在用户计算机上的远程管理的恶意程序的操作期间可以观察到这种情形。恶意活动只是偶然出现,例如每一个后续偶然出现的恶意活动可以被更加“密切地”分析。换言之,在其之后,活动将被认为是恶意的标准应该不断降低。但是,如果受信任的应用程序开始在用户的计算机上执行,其行为可能被认为是可疑的,但由于该应用程序被信任(即先前已检查有害性),则不被视为是可疑的,则可以增大极限安全程度。这将防止将合法文件的行为识别为恶意行为,并且仅仅推迟检测恶意文件的恶意行为。
曲线图913示出了这样的情形,其中观察到被分析的文件501的有害程度随着时间的推移而增大。该增大不是从零标记开始,而是从某个计算值开始,因此将比在初始情况更早达到有害标准,或者将达到该有害标准而在所述初始情况下不会达到该有害标准。
如果文件501的有害程度与文件501的极限安全程度之间的差异变得小于预定阈值(913的点B),则作出关于检测到恶意文件501的判定。在特定情况下,只有在文件501的有害程度与文件501的极限安全程度之间的差异变得小于另一预定阈值时(913的点A)才能做出检测到恶意文件501的判定(并且这种差异在913的点A和913的点B之间可能已经增大)。
例如,在执行从未知来源获得或通过“可疑”方法(诸如从进程的存储器向磁盘写入数据)在计算机上形成的文件501期间,有害程度可能最初将其自身呈现为比通过更不“可疑”的方法获得的文件的有害程度更高。
在曲线图914中示出的情况类似于在曲线图911中示出的情况,唯一的区别在于描述有害程度的曲线和描述极限安全程度的曲线具有多个连续的交叉点。在这种情况下,做出将文件501识别为恶意的判定将不是因为这些曲线交叉的事实,而是因为交叉点的数量超过预定阈值或者因为由这些曲线切出的区域超过了预定阈值。
这些曲线图将有助于提高检测恶意文件的有效性,并且减少检测恶意文件501时的第一种错误和第二种错误。
计算出的有害程度和计算出的极限安全程度之间的相关性的描述以及判决文件501为恶意的判定可以通过如下数学或算法形式来表示:
图10示出了根据本发明的示例性方面的用于对计算机系统的对象进行分类的系统的结构图。
用于对计算机系统的对象进行分类的系统的结构图包括计算机系统的对象1001、采集模块1010、关于计算机系统的对象的数据1011、卷积形成模块1020、特征向量1021、相似程度计算模块1030、参数计算模型1022、分析模块1040、参数校正模块1050以及标准形成模型1051。
采集模块1010被设计为采集描述计算机系统的对象1001(以下称为对象)的数据1011。
在所述系统的一个变型方面中,所述计算机系统至少为:
· 个人计算机;
· 笔记本电脑;
· 平板电脑;
· 智能手机;
· 控制器;
· 服务器;
· 数据存储装置。
在所述系统的另一变型方面中,计算机系统的对象1001至少为:
· 文件;
· 进程;
· 线程;
· 同步对象;
· 应用程序;
· 归档案卷(包含其它文件的文件);
· 数据库记录。
在所述系统的又一变型方面中,描述对象1001的数据至少为:
· 识别对象1001的数据(诸如文件名或从文件计算出的散列);
· 描述该对象1001与其它对象1001之间的逻辑关系和功能关系的数据(例如,哪些文件包含在归档案卷中,生成哪些与之相关的线程等);
· 描述该对象1001与其它对象1001的差异的数据(诸如文件大小、可执行文件的类型、使用对象的方法等);
· 对象1001的类型。
描述对象1001的数据(或表征对象1001的参数)已经在图1、图2以及图5至图8中进行了进一步详细的描述。
例如,计算机系统可以为用户的个人计算机,计算机系统的对象1001可以为文件。对该个人计算机的文件的分类在于确定哪些文件是恶意的以及确定哪些文件是安全的(执行防病毒扫描)。
在又一变型方面中,根据由指定的采集规则建立的条件,采集并分析描述对象1001的数据。因此,在由分析模块1040执行分析之前,可以采集关于对象1001的多种状态(通常是不同的)的数据。这进而导致提高了对象1001的分类的准确度并且使在所述分类期间可能出现的第一种错误和第二种错误更少。
在所述系统的又一变型方面中,分析关于对象1001的数据可以与采集关于对象1001的数据并行进行,因此这两个分析结果可以在一定程度上基于共同数据。这进而导致提高了对象1001的分类的准确度且使在所述分类期间可能出现得第一种错误和第二种错误更少,并且还提高了分类的执行速度,以及还在这样的分类期间减少了计算资源的使用。
在所述系统的又一变型方面中,对象1001的状态为参数和属性(这些参数和属性可以从采集的表征对象1001的数据中识别出)的集合,所述参数和属性至少:
· 将对象1001与其它对象清楚地识别开;
· 清楚地识别一组具有相同或类似的参数或属性的对象1001;
· 将对象1001与具有给定的相似程度的其它对象区分开。
在所述系统的又一变型方面中,采集规则至少为:
· 对象1001的不同状态之间的时间间隔满足给定值;
· 描述对象1001的状态的参数的变化间隔满足给定值;
· 导致对象1001的状态变化的计算机系统的参数的变化间隔满足给定值。
代替系统在时间上的状态变化(如上文第1项所示),可以使用系统的如下状态变化,该状态变化允许对象1001或计算机系统的第二选择的参数动态地变化。在这种情况下,在单调空间中分析对象1001,其中,指定的参数是独立的量(该空间的基础),而时间是取决于那些参数的量。
例如,每100ms确定对象1001的状态(即,对象1001的两个状态之间的时间间隔是100ms)。
在又一示例中,在这些对象的大小(或对象1001中包含的数据容量)发生1kB的变化(即,描述对象1001的状态参数变化)之后,确定对象1001的状态。
在又一示例中,在所使用的存储器或数据存储装置(例如,硬盘)的容量发生1MB的变化(即,计算机系统的参数变化)之后,确定对象1001的状态。
在所述系统的又一变型方面中,关于对象1001的数据1011的采集是通过借助于嵌入在计算机设备中的驱动程序或其它软件拦截计算机设备上的数据1011(关于对象1001的数据、或被传输到对象1001或从对象1001传输的数据)来完成的。
例如,为了获得关于个人计算机上的文件1001的数据,使用了驱动程序,该驱动程序拦截了用于利用那些文件1001工作的应用程序对WinAPI函数的调用。
卷积形成模块1020基于由采集模块1010采集的关于对象1001的状态的数据形成特征向量1021,该特征向量1021表征对象1001的状态。
在所述系统的一个变型方面中,特征向量1021表示采集的数据1011的以一组数字的形式组织的卷积。
特征向量1021的形成在图1和图2中进行了进一步详细的描述。
在所述系统的又一变型方面中,特征向量1021包含至少一个散列和,该至少一个散列和是至少从如下的采集数据1011计算的:
· 给定类型的采集数据(例如,仅从表征与对象1001有关的事件的数据来计算散列和);
· 给定值范围的采集数据(例如,仅从大小介于4096kB和10240kB之间的文件来计算散列和)。
例如,可以将采集的关于对象1001的所有数据(该数据为包含其它文件(所述文件将在用户的计算机上)的安装程序包和安装指令(脚本等))分成2类:可执行文件、以及脚本和辅助数据。对于可执行文件,计算散列和MD5;对于脚本,计算CRC32;并且还对每个类中这些对象的数量进行计数。总散列和是计算出的散列和与计数出的对象数量的聚合。
在所述系统的又一变型方面中,先前通过机器学习方法针对至少两个属于不同类别的对象1001训练了参数计算模型1022。
在所述系统的又一变型方面中,用于参数计算模型1022的机器学习方法至少为:
· 基于决策树的梯度提升;
· 决策树法;
· k-最近邻(kNN)法;
· 支持向量机(SVM)法。
在所述系统的又一变型方面中,经训练的参数计算模型1022是用于根据针对对象1001的状态变化动态所确定的数据来计算对象1001的相似程度和对象1001的极限差异程度的聚合。
在所述系统的又一变型方面中,计算机系统的对象1001的类别至少为如下类别:
· 计算机系统的对象的安全性;
· 计算机系统的恶意对象;
· 计算机系统的可疑对象;
· 计算机系统的安全对象;
· 使用计算机系统的对象的优先级(即,计算机系统的哪个对象将被更早地使用以及早了多少时间,或者哪些计算资源(诸如内存)将被分配给计算机系统的哪个对象);
· 计算机系统的对象的性能。
例如,当分析用户的个人计算机上的文件1001时,执行防病毒扫描,其目的是将所有正在分析的文件1001分成两类:恶意文件和安全文件。这些类别中的每个文件可以与某种相似程度匹配(即,文件1001应该属于所述类别之一的概率)。这类示例在图1至图9中进行了更紧密地描述。
在又一示例中,这些类别可能不是各种单独的实体(如上面给出的示例中),而是单个实体,但是处于不同的范围内,诸如:可以将计算机系统的对象的计算资源(RAM)的分配优先级评估为从0%到100%的数值且可以形成4个类别——1:从0%到25%,2:26%到50%,3:51%到75%,4:76%到100%。在给定的示例中,在计算机系统的对象中从1GB的池中分配了RAM,优先级最低(0%)的对象分配了1MB的RAM,优先级最高(100%)的对象分配了100MB,其它对象则分配了相应的比例。
相似程度计算模块1030基于由卷积形成模块1020形成的特征向量1021并使用经训练的参数计算模型1022来计算相似程度和极限差异程度,其中,相似程度表示表征正在被分类的对象1001可能属于给定类别的概率的数值,极限差异程度表示表征正在被分类的对象1001将肯定属于另一指定类别的概率的数值。该相似程度和该极限差异程度是源自对象的不同分类方法的、描述对象1001的独立特征。这种方法的优点在于每种分类方法(或比较方法)都有其自己的准度度,并且总是存在发生第一种错误和第二种错误的概率。当使用多种独立的方法时,该概率将根据概率论定律降低。根据选择的方法(通过使用选择的方法获得的相似程度或差异程度彼此相关多少),第一种错误和第二种错误的发生的组合概率将变化(降低)。因此,了解了系统“稳定性”的标准,即了解了系统工作(在本例中为分类)可接受的最大错误级别,就可以选择相应的方法来获得相似程度或差异程度。
在所述系统的一个变型方面中,如果在由指定的采集规则定义的时间段内,已经计算出至少两个相似程度和至少两个极限差异程度,则根据预定的时间法则描述连续计算出的相似程度的聚合和连续计算出的极限差异程度的聚合。
在所述系统的又一变型方面中,基于关于一个对象1001的至少两个状态的数据,针对该一个对象1001计算多个相似程度和多个极限差异程度。
在所述系统的又一变型方面中,关于对象1001的状态的数据至少包括:
· 计算机系统对对象1001执行的动作;
· 由对象1001在计算机系统上执行的动作;
· 其改变导致对象1001的状态改变的计算机系统的参数;
· 对象1001的静态参数(对象1001的、在对象1001的状态发生变化时不变的参数,例如保存在归档案卷中的文件的大小或可执行文件的名称)。
例如,如果对象1001为可执行文件,则该可执行文件在操作系统上执行的命令可以为WinAPI函数的调用。
在又一示例中,如果对象1001为数据库中的记录,则通过利用该记录上的数据库工作的所执行的命令可以是SQL查询命令。
在所述系统的又一变型方面中,至少极限差异程度根据相似程度计算,以及相应地,极限差异程度至少如下来计算:
· 在创建对象1001的时刻计算该极限差异程度;
· 在对象1001的状态第一次变化的时刻计算该极限差异程度;
· 基于对对象1001的静态参数的分析计算该极限差异程度。
例如,如果在文件开始执行时,与该文件的恶意对象类别的相似程度为0.0,但是随着时间的推移,与该文件的恶意对象类别的相似程度上升到0.4,则在该文件创建时已经将与由该文件创建的文件的恶意对象的相似程度指定为0.4,并且该相似程度在文件的工作过程中会增大。该过程在图7至图9中进行了进一步详细的描述。
在所述系统的又一变型方面中,描述连续计算出的相似程度的聚合和连续计算出的极限差异程度的聚合的时间法则在本质上是单调的。
例如,正在被分析的文件1001的相似程度(或在分析文件有害性时的有害程度)的变化可以只增大,而极限差异程度(在分析文件有害性时的极限安全程度)可以只减小。因此,一旦被分析的文件“可疑动作”的总和超过建立的限制,则该被分析的文件迟早将被识别为恶意的。
在所述系统的又一变型方面中,至少通过如下确定相似程度:
· 使用Hirchberg算法(Hirchberg algorithm);
· 通过Damerau–Levenshtein距离(Damerau–Levenshtein distance);
· 通过Jensen-Shannon距离(Jensen-Shannon distance);
· 通过Hamming距离(Hamming distance);
· 使用Jaro–Winkler相似性算法(Jaro–Winkler similarity algorithm)。
例如,可以根据哪种对象1001被分析,来使用上述确定相似程度的方法。如果对象1001为文本文件,则将使用Hirchberg算法;如果对象为词位,则将使用Hamming距离。
分析模块1040被设计为在直到启动给定的收集规则的时间为止所收集的关于对象1001的状态的数据满足用于确定类别的给定标准的情况下,作出关于对象1001是否属于给定类别的判定。该标准是基于由相似程度计算模块1030计算出的相似程度和极限差异程度形成的。该标准是用于通过建立的相似程度和极限差异程度之间的相关性对对象进行分类的规则。
在所述系统的一个变型方面中,在已经借助于采集模块1010、卷积形成模块1020以及相似程度计算模块1030采集并处理了表征对象1001的数据之后,分析模块1040开始工作。这一事实是借助于数据采集规则(即,何时停止采集关于对象1001的数据并开始对该数据进行分析的规则)来确定的。
在图7至图9中进一步详细描述了该分析。
在所述系统的一个变型方面中,相似程度与极限差异程度之间的相关性至少为:
· 相似程度和极限差异程度之间的距离与预定阈值的差异;
· 相似程度和极限差异程度之间的在给定时间间隔内的界定的面积与预定阈值的差异;
· 描述相似程度的变化的曲线和描述极限差异程度的变化的曲线的相互增长的速率与预定阈值的差异。
在图7至图9中更详细地描述了相关性。
参数校正模块1050被设计为基于对计算出的相似程度和计算出的极限差异程度的分析来再训练参数计算模型1022,因此,描述相似程度和时间差异度的时间法则的变化将导致基于那些法则获得的值之间的相关性趋于最大值。
在所述系统的一个变型方面中,再训练参数计算模型1022使得在使用该模型1022时,随后形成的标准将至少确保:
确定相似程度和极限差异程度的准确度大于使用未经训练的参数计算模型1022时的准确度;
对计算资源的利用低于使用未经训练的参数计算模型时对计算资源的利用。
在图1、图2、图5和图6中进一步详细描述了机器学习的技术。即使上面已经针对计算机系统的对象1001的分类描述了参数计算模型1022的教导,同时附图示出了检测恶意文件的模型,但是这些技术在算法上是相似的,并且恶意文件的检测是参数计算模型的特定实例,因为在这种情况下,将文件分为两类:“安全文件”和“恶意文件”。
图11示出了用于对计算机系统的对象进行分类的方法的流程图。
用于对计算机系统的对象进行分类的方法的流程图包含:步骤1110,在步骤1110中,采集关于计算机系统的对象的数据;步骤1120,在步骤1120中,形成特征向量;步骤1130,在步骤1130中,计算相似程度;步骤1140,在步骤1140中,对计算机系统的对象进行分类;以及步骤1150,在步骤1150中,再训练参数计算模型。
在步骤1110中,采集描述计算机系统的对象1001(以下称为对象)的状态的数据1011。
在步骤1120中,基于采集的关于对象1001的状态的数据1011,形成表征对象1001的状态的特征向量1021。
在步骤1130中,基于形成的特征向量1021并使用经训练的参数计算模型1022来计算相似程度和极限差异程度,其中,相似程度表示表征正在被分类的对象1001可能属于给定类别的概率的数值,极限差异程度表示表征正在被分类的对象1001将肯定属于另一指定类别的概率的数值。
在步骤1140中,如果在指定规则(该指定规则针对步骤1110-步骤1130中的采集)所定义的时间段内采集的关于对象1001的状态的数据1011满足用于确定类别的指定标准,则作出对象1001属于指定类别的判定,其中,用于确定类别的所述指定标准是基于在先前步骤中计算出的相似程度和极限差异程度而形成的,所述标准是用于根据建立的相似程度和极限差异程度之间的相关性对对象1101进行分类的规则。
在步骤1150中,基于对计算出的相似程度和计算出的极限差异程度的分析,再训练参数计算模型1022,因此描述相似程度和极限差异程度的时间法则的变化将导致基于这些法则获得的值之间的相关性趋于最大值。
图12为示出根据示例性方面的在其上可实施计算机系统的对象分类的系统和方法的各方面的计算机系统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 SerialBus,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)实现的部件的布置,或者指的是硬件和软件的组合,例如通过微处理器系统和实现模块功能的指令集(该指令集在被执行时将微处理器系统转换成专用设备)来实现这样的组合。一个模块还可以被实施为两个模块的组合,其中单独地通过硬件促进某些功能,并且通过硬件和软件的组合促进其它功能。在某些实现方式中,模块的至少一部分(以及在一些情况下,模块的全部)可以在计算机系统(诸如上文在图12中更详细描述的计算机系统)的处理器上运行。因此,每个模块可以以各种适合的配置来实现,而不应受限于本文中所例示的任何特定的实现方式。
为了清楚起见,本文中没有公开各个方面的所有例行特征。应当领会的是,在本发明的任何实际的实现方式的开发中,必须做出许多特定实现方式的决定,以便实现开发者的特定目标,并且这些特定目标将对于不同的实现方式和不同的开发者变化。应当理解的是,这种开发努力会是复杂的且费时的,但对于了解本发明的优点的本领域的普通技术人员来说仍然是工程的例行任务。
此外,应当理解的是,本文中所使用的措辞或术语出于描述而非限制的目的,从而本说明书的术语或措辞应当由本领域技术人员根据本文中所提出的教导和指导结合(一个或多个)相关领域技术人员的知识来解释。此外,不旨在将本说明书或权利要求中的任何术语归于不常见的或特定的含义,除非明确如此阐述。
本文中所公开的各个方面包括本文中以说明性方式所引用的已知模块的现在和未来已知的等同物。此外,尽管已经示出并描述了各个方面和应用,但是对于了解本发明的优点的本领域技术人员将显而易见的是,在不脱离本文中所公开的发明构思的前提下,相比于上文所提及的内容而言的更多修改是可行的。
Claims (20)
1.一种用于检测计算机系统上的恶意对象的方法,包括:
采集描述所述计算机系统的对象的状态的数据;
形成表征所述对象的所述状态的特征向量;
基于形成的所述特征向量计算相似程度,其中,所述相似程度为表征正在被分类的所述对象可能属于给定类别的概率的数值;
计算极限差异程度,所述极限差异程度为表征正在被分类的所述对象将肯定属于另一类别的概率的数值,所述极限差异程度表征在满足预定条件时,所述对象肯定会被证明为安全的概率;
基于所述相似程度和所述极限差异程度形成用于确定所述对象的类别的标准;
当所述数据满足所述标准时,确定所述对象属于所确定的类别,其中,所述数据是在由数据采集规则所定义的时间段内采集的;以及
当确定所述对象属于指定的类别时,判决所述对象为恶意的。
2.如权利要求1所述的方法,其中,所述标准为用于根据建立的所述相似程度和所述极限差异程度之间的相关性对所述对象进行分类的规则。
3.如权利要求2所述的方法,其中,所述相似程度和所述极限差异程度之间的相关性为以下中的一者或多者:所述相似程度和所述极限差异程度之间的距离与预定阈值的差异;所述相似程度和所述极限差异程度之间的在给定时间间隔内界定的面积与预定阈值的差异;以及描述所述相似程度的变化的曲线和描述所述极限差异程度的变化的曲线的相互增长的速率与预定值的差异。
4.如权利要求1所述的方法,其中,所述特征向量为采集的所述数据的以一组数字的形式组织的卷积。
5.如权利要求1所述的方法,其中,所述数据采集规则为如下中的一者:所述对象的不同状态之间的时间间隔满足预定值、以及导致所述对象的状态改变的所述计算机系统的参数的变化满足给定值。
6.如权利要求1所述的方法,其中,所述极限差异程度是根据所述相似程度计算出的,且所述极限差异程度是在如下项之一中计算出的:所述极限差异程度是在创建所述对象的时刻计算出的、所述极限差异程度是在所述对象的状态第一次变化的时刻计算出的、以及所述极限差异程度是基于对所述对象的静态参数的分析计算出的。
7.如权利要求1所述的方法,其中,如果在由所述数据采集规则定义的时间段内已经计算出至少两个相似程度和至少两个极限差异程度,则通过预定的时间法则来描述连续计算出的相似程度的集合和连续计算出的极限差异程度的集合。
8.如权利要求7所述的方法,其中,描述所述连续计算出的相似程度和所述连续计算出的极限差异程度的所述时间法则是单调的。
9.一种用于检测计算机系统上的恶意对象的系统,包括:
硬件处理器,所述硬件处理器被配置为:
采集描述所述计算机系统的对象的状态的数据;
形成表征所述对象的所述状态的特征向量;
基于形成的所述特征向量计算相似程度,其中,所述相似程度为表征正在被分类的所述对象可能属于给定类别的概率的数值;
计算极限差异程度,所述极限差异程度为表征正在被分类的所述对象将肯定属于另一类别的概率的数值,所述极限差异程度表征在满足预定条件时,所述对象肯定会被证明为安全的概率;
基于所述相似程度和所述极限差异程度形成用于确定所述对象的类别的标准;
当所述数据满足所述标准时,确定所述对象属于所确定的类别,其中,所述数据是在由数据采集规则所定义的时间段内采集的;以及
当确定所述对象属于指定的类别时,判决所述对象为恶意的。
10.如权利要求9所述的系统,其中,所述标准为用于根据建立的所述相似程度和所述极限差异程度之间的相关性对所述对象进行分类的规则。
11.如权利要求10所述的系统,其中,所述相似程度和所述极限差异程度之间的相关性为以下中的一者或多者:所述相似程度和所述极限差异程度之间的距离与预定阈值的差异;所述相似程度和所述极限差异程度之间的在给定时间间隔内界定的面积与预定阈值的差异;以及描述所述相似程度的变化的曲线和描述所述极限差异程度的变化的曲线的相互增长的速率与预定值的差异。
12.如权利要求9所述的系统,其中,所述特征向量为采集的所述数据的以一组数字的形式组织的卷积。
13.如权利要求9所述的系统,其中,所述数据采集规则为如下中的一者:所述对象的不同状态之间的时间间隔满足预定值、以及导致所述对象的状态改变的所述计算机系统的参数的变化满足给定值。
14.如权利要求9所述的系统,其中,所述极限差异程度是根据所述相似程度计算出的,且所述极限差异程度是在如下项之一中计算出的:所述极限差异程度是在创建所述对象的时刻计算出的、所述极限差异程度是在所述对象的状态第一次变化的时刻计算出的、以及所述极限差异程度是基于对所述对象的静态参数的分析计算出的。
15.如权利要求9所述的系统,其中,如果在由所述数据采集规则定义的时间段内已经计算出至少两个相似程度和至少两个极限差异程度,则通过预定的时间法则来描述连续计算出的相似程度的集合和连续计算出的极限差异程度的集合。
16.如权利要求15所述的系统,其中,描述所述连续计算出的相似程度和所述连续计算出的极限差异程度的所述时间法则是单调的。
17.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质上存储有用于检测计算机系统上的恶意对象的指令,所述指令包括用于以下操作的指令:
采集描述所述计算机系统的对象的状态的数据;
形成表征所述对象的所述状态的特征向量;
基于形成的所述特征向量计算相似程度,其中,所述相似程度为表征正在被分类的所述对象可能属于给定类别的概率的数值;
计算极限差异程度,所述极限差异程度为表征正在被分类的所述对象将肯定属于另一类别的概率的数值,所述极限差异程度表征在满足预定条件时,所述对象肯定会被证明为安全的概率;
基于所述相似程度和所述极限差异程度形成用于确定所述对象的类别的标准;
当所述数据满足所述标准时,确定所述对象属于所确定的类别,其中,所述数据是在由数据采集规则所定义的时间段内采集的;以及
当确定所述对象属于指定的类别时,判决所述对象为恶意的。
18.如权利要求17所述的非暂时性计算机可读介质,其中,所述标准为用于根据建立的所述相似程度和所述极限差异程度之间的相关性对所述对象进行分类的规则。
19.如权利要求18所述的非暂时性计算机可读介质,其中,所述相似程度和所述极限差异程度之间的相关性为以下中的一者或多者:所述相似程度和所述极限差异程度之间的距离与预定阈值的差异;所述相似程度和所述极限差异程度之间的在给定时间间隔内界定的面积与预定阈值的差异;以及描述所述相似程度的变化的曲线和描述所述极限差异程度的变化的曲线的相互增长的速率与预定值的差异。
20.如权利要求17所述的非暂时性计算机可读介质,其中,所述特征向量为采集的所述数据的以一组数字的形式组织的卷积。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2018147230 | 2018-12-28 | ||
RU2018147230A RU2724710C1 (ru) | 2018-12-28 | 2018-12-28 | Система и способ классификации объектов вычислительной системы |
US16/452,734 US11188649B2 (en) | 2018-12-28 | 2019-06-26 | System and method for classification of objects of a computer system |
US16/452,734 | 2019-06-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111382430A CN111382430A (zh) | 2020-07-07 |
CN111382430B true CN111382430B (zh) | 2023-06-30 |
Family
ID=71122200
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911200597.3A Active CN111382430B (zh) | 2018-12-28 | 2019-11-29 | 用于对计算机系统的对象进行分类的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11188649B2 (zh) |
JP (1) | JP7405596B2 (zh) |
CN (1) | CN111382430B (zh) |
RU (1) | RU2724710C1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11340603B2 (en) * | 2019-04-11 | 2022-05-24 | Raytheon Company | Behavior monitoring using convolutional data modeling |
US11321462B2 (en) | 2018-04-10 | 2022-05-03 | Raytheon Company | Device behavior anomaly detection |
US11436537B2 (en) | 2018-03-09 | 2022-09-06 | Raytheon Company | Machine learning technique selection and improvement |
US11507847B2 (en) | 2019-07-25 | 2022-11-22 | Raytheon Company | Gene expression programming |
US11381599B2 (en) | 2018-04-10 | 2022-07-05 | Raytheon Company | Cyber chaff using spatial voting |
RU2739865C2 (ru) * | 2018-12-28 | 2020-12-29 | Акционерное общество "Лаборатория Касперского" | Система и способ обнаружения вредоносного файла |
US11200318B2 (en) * | 2018-12-28 | 2021-12-14 | Mcafee, Llc | Methods and apparatus to detect adversarial malware |
US11341235B2 (en) | 2019-02-21 | 2022-05-24 | Raytheon Company | Anomaly detection with adaptive auto grouping |
US20210200955A1 (en) * | 2019-12-31 | 2021-07-01 | Paypal, Inc. | Sentiment analysis for fraud detection |
US11886586B1 (en) * | 2020-03-06 | 2024-01-30 | Trend Micro, Inc. | Malware families identification based upon hierarchical clustering |
US12093396B2 (en) * | 2020-07-16 | 2024-09-17 | Bank Of America Corporation | System and method for associating a common vulnerability and exposures (CVE) with a computing device and applying a security patch |
CN112052875B (zh) * | 2020-07-30 | 2024-08-20 | 华控清交信息科技(北京)有限公司 | 一种训练树模型的方法、装置和用于训练树模型的装置 |
CN112288025B (zh) * | 2020-11-03 | 2024-04-30 | 中国平安财产保险股份有限公司 | 基于树结构的异常案件识别方法、装置、设备及存储介质 |
CN112560063A (zh) * | 2020-12-21 | 2021-03-26 | 中建安装集团有限公司 | 一种用于bim族库平台的加密方法 |
US11822459B2 (en) * | 2021-05-25 | 2023-11-21 | Oracle International Corporation | Automated function category detection |
EP4396712A1 (en) * | 2021-09-01 | 2024-07-10 | B.G. Negev Technologies and Applications Ltd., at Ben-Gurion University | Systems and methods for detecting unknown portable executables malware |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459537A (zh) * | 2008-12-20 | 2009-06-17 | 中国科学技术大学 | 基于多层次多角度分析的网络安全态势感知系统及方法 |
CN101604363A (zh) * | 2009-07-10 | 2009-12-16 | 珠海金山软件股份有限公司 | 基于文件指令频度的计算机恶意程序分类系统及分类方法 |
CN101996292A (zh) * | 2010-12-10 | 2011-03-30 | 北京理工大学 | 一种基于序列聚类的软件安全特性分析方法 |
CN103617393A (zh) * | 2013-11-28 | 2014-03-05 | 北京邮电大学 | 一种基于支持向量机的移动互联网恶意应用软件检测方法 |
EP3136249A1 (en) * | 2014-06-06 | 2017-03-01 | Nippon Telegraph and Telephone Corporation | Log analysis device, attack detection device, attack detection method and program |
CN107153789A (zh) * | 2017-04-24 | 2017-09-12 | 西安电子科技大学 | 利用随机森林分类器实时检测安卓恶意软件的方法 |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9781148B2 (en) * | 2008-10-21 | 2017-10-03 | Lookout, Inc. | Methods and systems for sharing risk responses between collections of mobile communications devices |
US8799190B2 (en) * | 2011-06-17 | 2014-08-05 | Microsoft Corporation | Graph-based malware classification based on file relationships |
RU114538U1 (ru) * | 2011-10-17 | 2012-03-27 | Константин Сергеевич Артемьев | Система вероятностного антивирусного анализа объектов |
CN102495978B (zh) * | 2011-11-09 | 2015-03-04 | 南京邮电大学 | 开放计算环境下任务执行体与执行点可信指数计算方法 |
US9021589B2 (en) * | 2012-06-05 | 2015-04-28 | Los Alamos National Security, Llc | Integrating multiple data sources for malware classification |
US11126720B2 (en) * | 2012-09-26 | 2021-09-21 | Bluvector, Inc. | System and method for automated machine-learning, zero-day malware detection |
RU2541120C2 (ru) * | 2013-06-06 | 2015-02-10 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ обнаружения вредоносных исполняемых файлов на основании сходства ресурсов исполняемых файлов |
US10062008B2 (en) * | 2013-06-13 | 2018-08-28 | Sicpa Holding Sa | Image based object classification |
US9628507B2 (en) * | 2013-09-30 | 2017-04-18 | Fireeye, Inc. | Advanced persistent threat (APT) detection center |
US9288220B2 (en) * | 2013-11-07 | 2016-03-15 | Cyberpoint International Llc | Methods and systems for malware detection |
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 |
US20160191550A1 (en) * | 2014-12-29 | 2016-06-30 | Fireeye, Inc. | Microvisor-based malware detection endpoint architecture |
US10708296B2 (en) * | 2015-03-16 | 2020-07-07 | Threattrack Security, Inc. | Malware detection based on training using automatic feature pruning with anomaly detection of execution graphs |
US10104107B2 (en) | 2015-05-11 | 2018-10-16 | Qualcomm Incorporated | Methods and systems for behavior-specific actuation for real-time whitelisting |
RU2614557C2 (ru) * | 2015-06-30 | 2017-03-28 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ обнаружения вредоносных файлов на мобильных устройствах |
EP3113065B1 (en) * | 2015-06-30 | 2017-07-05 | Kaspersky Lab AO | System and method of detecting malicious files on mobile devices |
US20170024663A1 (en) * | 2015-07-24 | 2017-01-26 | Ebay Inc. | Category recommendation using statistical language modeling and a gradient boosting machine |
US10176321B2 (en) * | 2015-09-22 | 2019-01-08 | Fireeye, Inc. | Leveraging behavior-based rules for malware family classification |
US10284575B2 (en) * | 2015-11-10 | 2019-05-07 | Fireeye, Inc. | Launcher for setting analysis environment variations for malware detection |
US10685112B2 (en) * | 2016-05-05 | 2020-06-16 | Cylance Inc. | Machine learning model for malware dynamic analysis |
RU2634181C1 (ru) * | 2016-06-02 | 2017-10-24 | Акционерное общество "Лаборатория Касперского" | Система и способ обнаружения вредоносных компьютерных систем |
EP3252645B1 (en) | 2016-06-02 | 2019-06-26 | AO Kaspersky Lab | System and method of detecting malicious computer systems |
US10372910B2 (en) * | 2016-06-20 | 2019-08-06 | Jask Labs Inc. | Method for predicting and characterizing cyber attacks |
WO2017223294A1 (en) * | 2016-06-22 | 2017-12-28 | Invincea, Inc. | Methods and apparatus for detecting whether a string of characters represents malicious activity using machine learning |
US10372909B2 (en) * | 2016-08-19 | 2019-08-06 | Hewlett Packard Enterprise Development Lp | Determining whether process is infected with malware |
US10503901B2 (en) * | 2016-09-01 | 2019-12-10 | Cylance Inc. | Training a machine learning model for container file analysis |
US10565513B2 (en) * | 2016-09-19 | 2020-02-18 | Applied Materials, Inc. | Time-series fault detection, fault classification, and transition analysis using a K-nearest-neighbor and logistic regression approach |
US10652252B2 (en) * | 2016-09-30 | 2020-05-12 | Cylance Inc. | Machine learning classification using Markov modeling |
US10826934B2 (en) * | 2017-01-10 | 2020-11-03 | Crowdstrike, Inc. | Validation-based determination of computational models |
CN108319853B (zh) * | 2017-01-18 | 2021-01-15 | 腾讯科技(深圳)有限公司 | 病毒特征码处理方法及装置 |
US10534909B2 (en) * | 2017-03-02 | 2020-01-14 | Fortinet, Inc. | Multi-tiered sandbox based network threat detection |
US11080596B1 (en) * | 2017-06-14 | 2021-08-03 | Amazon Technologies, Inc. | Prediction filtering using intermediate model representations |
US10726128B2 (en) * | 2017-07-24 | 2020-07-28 | Crowdstrike, Inc. | Malware detection using local computational models |
RU2654151C1 (ru) | 2017-08-10 | 2018-05-16 | Акционерное общество "Лаборатория Касперского" | Система и способ обнаружения вредоносных файлов с использованием обученной модели обнаружения вредоносных файлов |
US11108809B2 (en) * | 2017-10-27 | 2021-08-31 | Fireeye, Inc. | System and method for analyzing binary code for malware classification using artificial neural network techniques |
US20190156024A1 (en) * | 2017-11-20 | 2019-05-23 | Somansa Co., Ltd. | Method and apparatus for automatically classifying malignant code on basis of malignant behavior information |
US10915631B2 (en) * | 2017-12-28 | 2021-02-09 | Intel Corporation | Deep learning on execution trace data for exploit detection |
US10963566B2 (en) * | 2018-01-25 | 2021-03-30 | Microsoft Technology Licensing, Llc | Malware sequence detection |
CN108304584A (zh) * | 2018-03-06 | 2018-07-20 | 百度在线网络技术(北京)有限公司 | 非法页面检测方法、装置、入侵检测系统及存储介质 |
US10956568B2 (en) * | 2018-04-30 | 2021-03-23 | Mcafee, Llc | Model development and application to identify and halt malware |
US11204998B2 (en) * | 2018-08-07 | 2021-12-21 | Mcafee, Llc | Detection and mitigation of fileless security threats |
US11062024B2 (en) * | 2018-11-15 | 2021-07-13 | Crowdstrike, Inc. | Computer-security event security-violation detection |
-
2018
- 2018-12-28 RU RU2018147230A patent/RU2724710C1/ru active
-
2019
- 2019-06-26 US US16/452,734 patent/US11188649B2/en active Active
- 2019-07-02 US US16/459,718 patent/US11036858B2/en active Active
- 2019-11-29 CN CN201911200597.3A patent/CN111382430B/zh active Active
- 2019-12-17 JP JP2019227463A patent/JP7405596B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459537A (zh) * | 2008-12-20 | 2009-06-17 | 中国科学技术大学 | 基于多层次多角度分析的网络安全态势感知系统及方法 |
CN101604363A (zh) * | 2009-07-10 | 2009-12-16 | 珠海金山软件股份有限公司 | 基于文件指令频度的计算机恶意程序分类系统及分类方法 |
CN101996292A (zh) * | 2010-12-10 | 2011-03-30 | 北京理工大学 | 一种基于序列聚类的软件安全特性分析方法 |
CN103617393A (zh) * | 2013-11-28 | 2014-03-05 | 北京邮电大学 | 一种基于支持向量机的移动互联网恶意应用软件检测方法 |
EP3136249A1 (en) * | 2014-06-06 | 2017-03-01 | Nippon Telegraph and Telephone Corporation | Log analysis device, attack detection device, attack detection method and program |
CN107153789A (zh) * | 2017-04-24 | 2017-09-12 | 西安电子科技大学 | 利用随机森林分类器实时检测安卓恶意软件的方法 |
Also Published As
Publication number | Publication date |
---|---|
JP7405596B2 (ja) | 2023-12-26 |
US11036858B2 (en) | 2021-06-15 |
CN111382430A (zh) | 2020-07-07 |
US11188649B2 (en) | 2021-11-30 |
US20200210573A1 (en) | 2020-07-02 |
JP2020115328A (ja) | 2020-07-30 |
US20200210570A1 (en) | 2020-07-02 |
RU2724710C1 (ru) | 2020-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111382430B (zh) | 用于对计算机系统的对象进行分类的系统和方法 | |
CN111382434B (zh) | 用于检测恶意文件的系统和方法 | |
CN109684835B (zh) | 使用机器学习来检测恶意文件的系统和方法 | |
CN109684836B (zh) | 使用经训练的机器学习模型检测恶意文件的系统和方法 | |
US11403396B2 (en) | System and method of allocating computer resources for detection of malicious files | |
RU2679785C1 (ru) | Система и способ классификации объектов | |
JP6636096B2 (ja) | マルウェア検出モデルの機械学習のシステムおよび方法 | |
CN109684072B (zh) | 基于机器学习模型管理用于检测恶意文件的计算资源的系统和方法 | |
JP7264631B2 (ja) | コンピュータシステムにおける不正行為を検出するためのシステム及び方法 | |
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 |