CN109271780B - 机器学习恶意软件检测模型的方法、系统和计算机可读介质 - Google Patents

机器学习恶意软件检测模型的方法、系统和计算机可读介质 Download PDF

Info

Publication number
CN109271780B
CN109271780B CN201810732861.7A CN201810732861A CN109271780B CN 109271780 B CN109271780 B CN 109271780B CN 201810732861 A CN201810732861 A CN 201810732861A CN 109271780 B CN109271780 B CN 109271780B
Authority
CN
China
Prior art keywords
file
behavior
detection model
malicious
files
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810732861.7A
Other languages
English (en)
Other versions
CN109271780A (zh
Inventor
亚历山大·S·克里斯提科夫
叶卡捷琳娜·M·洛巴切瓦
阿列克谢·M·罗曼恩科
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kaspersky Lab AO
Original Assignee
Kaspersky Lab AO
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from RU2017125331A external-priority patent/RU2673708C1/ru
Application filed by Kaspersky Lab AO filed Critical Kaspersky Lab AO
Publication of CN109271780A publication Critical patent/CN109271780A/zh
Application granted granted Critical
Publication of CN109271780B publication Critical patent/CN109271780B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Debugging And Monitoring (AREA)
  • Complex Calculations (AREA)

Abstract

本文公开了用于机器学习恶意软件检测模型的方法、系统和计算机可读介质。所述系统从含有多个文件的文件数据库中采样文件,并基于对采样文件的分析对用于检测恶意文件的检测模型进行训练。所述系统基于在执行采样文件期间截获的多个可执行的命令形成行为日志,并基于所述行为日志生成多个行为模式。所述系统基于所述多个行为模式确定卷积函数,并通过在所述多个行为模式上使用所述卷积函数计算用于检测恶意文件的检测模型的多个参数,来训练所述检测模型。可以通过在执行可疑文件期间生成的系统行为日志上使用经训练的所述检测模型,来将经训练的所述检测模型用于检测恶意文件。

Description

机器学习恶意软件检测模型的方法、系统和计算机可读介质
技术领域
本公开涉及杀毒(antivirus)技术。更具体地,本发明涉及用于机器学习恶意软件检测模型的方法、系统和计算机可读介质。
背景技术
最近数十年来计算机技术的快速发展,以及个人计算机、笔记本电脑、平板电脑、智能手机等各种计算装置的广泛分布,已经成为在从网上冲浪到银行转账以及电子文档交通等无数问题和各种活动领域中使用这种装置的强大动力。在计算装置以及在这些装置上运行的软件的数量增长的同时,恶意程序的数量也快速增加了。
目前存在大量的各种恶意程序。其中一些恶意程序从这些装置的用户窃取诸如登录名和密码、银行信息、电子文档等个人机密数据。另一些恶意程序从用户的装置形成所谓僵尸网络(botnet),用于进行诸如拒绝服务 (分布式服务拒绝DDoS)、在其它计算机或计算机网络上暴力破解密码等攻击。还有的恶意程序通过侵入式广告、付费订阅、向收费号码发送短信等方式向用户呈现付费内容。
杀毒程序专用于对抗恶意程序,包括检测恶意程序、防止感染、恢复已被恶意程序感染的计算装置的工作能力。杀毒程序采用诸如静态分析和动态分析等各种技术来检测所有的恶意程序。
静态分析是指:基于构成所分析的程序的文件中包含的数据来分析程序的危害性,包括执行或模拟所分析的程序。在统计分析的过程中,可以使用签名分析,即搜索所分析的程序的具体代码段与含有恶意程序的签名的数据库中的已知代码(签名)的对应关系,还可以使用白名单和黑名单,即在含有恶意程序(黑名单)的校验和的数据库或含有安全程序(白名单) 的校验和的数据库中搜索来自所分析的程序(或其部分)的计算出的校验和。
动态分析是指:基于在执行所分析的程序或模拟所分析的程序的工作的过程中获得的数据来分析程序的危害性。在动态分析的过程中,可以使用启发式分析(heuristicanalysis),包括:模拟所分析的程序的工作;创建模拟日志,所述模拟日志包括与应用程序编程接口(API)函数调用相关的数据,所传输的参数,所分析的程序的代码段等;以及搜索所创建的日志的数据与含有恶意程序的行为签名的数据库中的数据之间的对应关系。还可以使用主动保护,包括:拦截已启动的所分析的程序的API函数调用;创建所分析的程序的行为日志,所述行为日志包含与API函数调用相关的数据,所传输的参数,所分析的程序的代码段等;以及搜索所创建的日志的数据与含有恶意程序的调用的数据库中的数据之间的对应关系。
静态分析和动态分析各有优缺点。静态分析对执行分析的计算装置的资源要求不高,而且,由于不要求执行或模拟所分析的程序,统计分析速度更快,但同时效率也更低。即,静态分析检测到恶意程序的百分比更低,而误报(即经杀毒程序分析,将本为安全的文件断定为恶意)的百分比更高。动态分析使用在执行所分析的程序或模拟所分析的程序的工作的过程中获得的数据,所以速度更慢,并且对执行分析的计算装置的资源要求更高,但同时效率也更高。现代杀毒程序采用包括静态分析和动态分析的元素在内的全面分析。
现代信息安全标准要求对恶意程序(特别是新恶意程序)作出有效回应,因此自动检测恶意程序的手段是主要的关注点。为了对这种手段进行有效操作,经常使用机器学习恶意程序检测模型(即规则的集合,其中所述规则用于基于输入数据的特定集合来决定文件的危害性,所述输入数据描述恶意文件)的各种方法和人工智能元素,不仅允许有效检测熟知的恶意程序(或具有熟知的恶意行为的恶意程序),而且允许有效检测具有未知或少为人知的恶意行为的新恶意程序,还允许有效的适应(学习)以检测新的恶意程序。
尽管已知技术能很好地检测出具有与已知恶意文件的特征属性类似的特定特征属性(即,描述诸如图形界面的存在、数据加密、经计算机网络的数据传输等来自特定文件组的文件的特定特征的数据)的恶意文件,但已知技术不能很好地检测出(尽管行为类似但)具有与已知恶意文件的特征属性不同的特征属性的恶意文件。此外,上述技术没有公开机器学习模型的模型测试、模型再训练、以及依赖于上述测试的结果形成以及再形成特征属性等方面。
本公开使得可以解决机器学习恶意文件检测模型的问题。
发明内容
本文公开用于检测恶意文件的方法和系统,具体公开一种用于机器学习恶意文件检测模型的方法和系统。
根据本公开的示例性方面,提供一种用于机器学习恶意文件检测模型的方法。所述方法包括:从含有多个文件的文件数据库选择第一文件作为训练样本;基于在执行选中的所述第一文件期间截获的多个可执行的命令来生成行为日志;基于所述行为日志生成多个行为模式。所述方法还包括:基于所述多个行为模式确定卷积函数,以使得所述卷积函数的结果的逆卷积函数与所生成的行为模式的相似度大于指定的第一值。所述方法还包括:通过在所述多个行为模式上使用所述卷积函数计算用于检测恶意文件的检测模型的多个参数,来训练所述检测模型;以及在执行第二文件期间生成的系统行为日志上使用经训练的所述检测模型将所述第二文件检测为恶意文件。
在另一个方面中,所述检测模型包括含有多个规则的规则集合。所述多个规则用于使用计算出的所述检测模型的所述多个参数、基于至少一个行为模式计算目标文件的危害度。
在另一个方面中,基于在执行选中的所述第一文件期间截获的多个可执行的命令来生成行为日志进一步包括:至少在执行选中的所述第一文件期间或在模拟执行选中的所述第一文件期间截获至少一个可执行的命令;针对每个截获的命令,确定描述所述每个截获的命令的至少一个参数;以及基于所截获的命令以及相应的参数生成与选中的所述第一文件相关联的所述行为日志。
在另一个方面中,所述多个行为模式中的每个行为模式都包括集合。所述集合含有至少一个命令以及描述所述集合中所有命令的参数。
在另一个方面中,所述卷积函数用于将行为模式的特征矢量计算为所述行为模式的元素的哈希和的总和。所述卷积函数包括哈希函数。所述哈希函数使得计算出的所述特征矢量与计算出的所述特征矢量的所述哈希函数的结果的逆哈希函数的结果的相似度大于所述指定的第一值。
在另一个方面中,所述方法还包括:基于所述行为日志以及所述检测模型计算所述第二文件的危害度。所述第二文件的所述危害度是描述所述第二文件的恶意行为的量化特征。
在另一个方面中,在执行第二文件期间生成的系统行为日志上使用经训练的所述检测模型将所述第二文件检测为恶意文件进一步包括:将所述截获的多个可执行的命令以及所述截获的多个可执行的命令的多个参数记录到所述系统行为日志中;在所述系统行为日志上使用经训练的所述检测模型计算危害系数;以及对应于确定所述危害系数超过第一阈值,确定所述第二文件为恶意文件。
根据本公开的另一个示例性方面,提供一种用于机器学习恶意文件检测模型的系统。所述系统包括处理器。所述处理器用于:从含有多个文件的文件数据库选择第一文件作为训练样本;基于在执行选中的所述第一文件期间截获的多个可执行的命令来生成行为日志;基于所述行为日志生成多个行为模式;基于所述多个行为模式确定卷积函数,以使得所述卷积函数的结果的逆卷积函数与所生成的行为模式的相似度大于指定的第一值;通过在所述多个行为模式上使用所述卷积函数计算用于检测恶意文件的检测模型的多个参数,来训练所述检测模型;以及在执行第二文件期间生成的系统行为日志上使用经训练的所述检测模型将所述第二文件检测为恶意文件。
根据本公开的另一个示例性方面,提供一种计算机可读介质。所述介质包括指令。所述指令包括用于进行本文所公开的任意方法的计算机可执行指令。
上述简化的示例性方面的发明内容用于提供对本公开的基本理解。本发明内容并非所有完整方面的广泛概述,并不旨在识别所有方面的关键元素,也不旨在勾勒本公开的任意或所有方面的保护范围,而仅仅意图以简化的形式呈现一个或更多个方面,作为以下具体实施方式的序曲。为了实现上述内容,本公开的一个或更多个方面包括在权利要求书中描述并示例性指出的特征。
附图说明
附图并入本说明书并构成本说明书的一部分,例示了本公开的一个或更多个示例方面,并与以下具体实施方式共同用于解释本公开的一个或多个示例方面的原理和实施。
图1是根据示例性方面的用于机器学习恶意文件检测模型的系统的结构示意图。
图2是根据示例性方面的用于机器学习恶意文件检测模型的方法的结构示意图。
图3A和图3B示出了根据示例性方面的作为行为模式的数量的函数的危害度的变化的动态的示例。
图4示出了根据示例性方面的行为模式的元素之间的关系的示意图的示例。
图5示出了根据示例性方面的计算出的特征矢量的示例。
图6是根据示例性方面的能够实施所公开的方法和系统的通用计算机系统的框图。
具体实施方式
本文描述用于机器学习恶意文件检测模型的系统、方法和计算机程序产品的示例性方面。本领域的普通技术人员将认识到,以下描述仅是例示性的,并不意图以任何方式进行限制。受益于本公开的本领域技术人员将容易地想到其它方面。以下将具体参考附图中示出的示例性方面的实施。在整个附图和以下描述中将尽可能使用相同的附图标记来指代相同或类似的项。
以下将介绍用于描述本公开的变体方面的多个定义和概念。
恶意文件:指一文件,已知该文件的执行能导致对计算机信息的未经授权的破坏、封堵、修改、复制,或使针对计算机信息的保护手段失去作用。
可执行文件的恶意行为:指含有多个行动的行动组,所述多个行动可能在执行此类文件期间进行,已知所述多个行动能导致对信息的未经授权的破坏、封堵、修改、复制,或使针对计算机信息的保护手段失去作用。
可执行文件的恶意活动:指含有多个行动的行动组,所述多个行动由此类文件依照其恶意行为进行。
普通用户的计算装置:指设想(理想)中的计算装置,所述计算装置与先前所选择的用户组的计算装置执行相同的应用程序,并具有所述先前所选择的用户组的计算装置的普通特征。
可由计算装置执行的命令:指含有多个机器指令或脚本指令的指令集合,所述多个机器指令或脚本指令可由计算装置基于这些指令的参数执行,所述参数称为命令参数或描述所述命令的参数。
词义(lexical)分析(令牌化):指将含有多个字符的输入序列解析为多个已识别组,以在输出端处形成多个识别序列的解析过程。以下将所述已识别组称为词义单元(lexeme),将所述识别序列称为令牌。
令牌:指在词义分析的过程中由词义单元形成的识别序列。
图1是用于机器学习恶意文件检测模型的系统100的结构示意图。所述系统100包括数据训练模块111、行为日志模块112、模式发生器模块121、卷积模块122、检测模型模块131、机器学习模块132、危害性评估模块142、以及资源管理模块143。
在一个方面中,所述系统100具有客户端-服务器架构。所述数据训练模块111、所述行为日志模块112、所述模式发生器模块121、所述卷积模块122、所述检测模型模块131、以及所述机器学习模块132工作在所述服务器侧。行为日志模块141、所述危害性评估模块142以及所述资源管理模块143工作在所述客户端侧。
例如,所述客户端可以是诸如个人计算机、笔记本电脑、智能手机等用户的计算装置。所述服务器可以是杀毒公司的计算装置,例如是多个分布式系统,所述分布式系统含有多个服务器。通过所述分布式系统对文件进行初步收集以及杀毒分析、创建杀毒记录、等等。所述系统100将用于检测所述客户端侧的恶意文件,从而增强所述客户端的杀毒保护的效率。
在又一个示例中,所述客户端和所述服务器二者都可以是所述杀毒公司的计算装置。所述系统100将用于对文件进行自动杀毒分析并创建杀毒记录,从而提高所述杀毒公司的工作效率。
在一个方面中,所述数据训练模块111可以被配置为根据用于生成文件的学习样本的预定的规则从含有多个文件的文件数据库110中采样至少一个文件。然后,所述机器学习模块132将基于对采样文件的分析来对检测模型130进行训练。所述数据训练模块111可以被进一步配置为将所述采样文件发送到所述行为日志模块112。
在所述系统100的一个方面中,所述文件数据库110中至少保存有一个安全文件和一个恶意文件。例如,所述文件数据库110可以保存有作为安全文件的Windows操作系统的文件,并保存有作为恶意文件的、对数据进行未经授权的访问、对操作系统和计算机整体进行远程控制的应用程序、后门文件。通过使用所述文件进行训练并使用机器学习方法,所述恶意文件检测模型将能够准确检测功能与上述后门的功能类似的恶意文件。准确度越高,用于训练上述检测模型的文件越多。
在所述系统的又一方面中,所述文件数据库110还可以保存有可疑文件(风险软件)和未知文件。可疑文件指本身非恶意、但能够进行恶意活动的文件。未知文件指其危害性尚未确定并且仍然未知的文件(即不安全文件、恶意文件、可疑文件等)。例如,所述文件数据库110可以将诸如 RAdmin等远程管理应用文件、归档应用文件或者诸如WinZip等数据加密应用文件存储为可疑文件。
在所述系统的又一方面中,所述文件数据库110可以保存由杀毒网络爬虫收集的文件和/或由用户发送的文件。上述文件可以由杀毒专家进行分析,包括借助自动文件分析手段进行分析,以判决这种文件的危害性。
例如,所述文件数据库可以保存由用户从所述用户的计算装置向所述杀毒公司发送以校验其危害性的文件。所传输的文件可以是安全的或恶意的。所述安全文件的数量和所述恶意文件的数量的分布与所述用户的所述计算装置上的所有安全文件的数量和所有恶意文件的数量的分布相近。所述分布之间的关系可以由下述等式(1)表示。所述安全文件的数量和所述恶意文件的数量的比率与所述用户的所述计算装置上的所有安全文件的数量和所有恶意文件的数量的比率之间的差异小于指定的阈值。
Figure GDA0003534392290000091
与由所述用户传输的文件(即主观上可疑的文件)不同,由设计用于搜索可疑和恶意文件的杀毒网络爬虫收集的所述文件通常被证明是恶意的。
在又一方面中,多个条件可以用作从所述文件数据库110中选择或采样文件的标准。在一些方面中,所述数据训练模块111可以从所述文件数据库110中选择(即,采样)文件,使从所述文件数据库中选择的安全文件和恶意文件的分布对应于普通用户的计算装置上的安全文件和恶意文件的分布。在一些方面中,所述数据训练模块111可以从所述文件数据库110 中选择文件,使从所述文件数据库中选择的安全文件和恶意文件的分布对应于在杀毒网络爬虫的帮助下收集的安全文件和恶意文件的分布。在一些方面中,所述数据训练模块111可以从所述文件数据库110中选择文件,使从所述文件数据库中选择的文件的参数对应于普通用户的计算装置上的文件的参数。在一些方面中,所述数据训练模块111可以从所述文件数据库110中随机选择文件,使所选择的文件的数量对应于预定的值。
例如,所述文件数据库110可以包含100000个文件,其中40%是安全文件,60%是恶意文件。从所述文件数据库110中选择15000个文件(所述文件数据库中保存的文件总量的15%),使所选择的安全文件和恶意文件的分布对应于普通用户的计算装置上的安全文件和恶意文件的分布,并且等于95比5。为此,从所述文件数据库中随机选择14250个安全文件(占安全文件总数的35.63%)和750个恶意文件(占恶意文件总数的1.25%)。
在又一个示例中,所述文件数据库包含125万个文件,其中95%是安全文件,5%是恶意文件,即所述文件数据库中保存的安全文件和恶意文件的分布对应于普通用户的计算装置上的安全文件和恶意文件的分布。从这些文件中随机选择5000个文件,其中约4750个文件被证明是安全文件,约250个文件很可能是恶意文件。
在又一个方面中,(用作采样的标准的)所述文件参数可以包括与文件的危害性有关(即,表征所述文件是否是安全的、恶意的、潜在危险的、或计算机系统在执行所述文件时的行为不确定等)的参数、所述计算装置在执行所述文件时执行的命令的数量、所述文件的大小、利用所述文件的应用程序等。例如,从所述文件数据库中选择的恶意文件为“ActionScript”语言写就的脚本,可以由应用程序“Adobe Flash”执行,并且大小不超过5kb。
在又一个方面中,所述数据训练模块111可以进一步被配置为根据用于生成文件的测试样本的预定的规则从所述文件数据库中采样至少一个其它文件。之后,所述机器学习模块132将基于对采样文件的分析对经训练的检测模型进行验证。然后,所述数据训练模块111可以将采样文件发送到所述行为日志模块112。
例如,所述文件数据库包含75000个文件,其中20%是安全文件,80%是恶意文件。首先,从所述文件数据库中选择12500个文件,其中30%是安全文件,70%是恶意文件。之后,所述机器学习模块132将基于对所选择的文件的分析来训练或教导所述检测模型130,然后从剩余的62500个文件中选择2500个文件,其中60%是安全文件,40%是恶意文件。之后,所述机器学习模块132将基于对所选择的文件的分析来对经训练的检测模型进行验证。通过上述方式制定的数据被称为交叉验证数据集合。
所述行为日志模块112被配置为至少在执行所接收的文件期间和/或在模拟执行所接收的文件期间截获至少一个可执行的命令。模拟执行文件包括打开所述文件(例如,解释器打开脚本)。所述行为日志模块112可以进一步被配置为针对每个截获的命令,确定描述所述每个截获的命令的至少一个参数;以及基于所截获的多个命令以及按照上述方式确定的多个参数生成所接收的文件的行为日志114。注意本公开可以指执行。
所述文件行为日志114构成从文件截获的命令(以下称为命令)的全部。其中每个命令对应于按照上述方式确定并描述所述每个命令的至少一个参数(以下称为参数)。例如,针对收集密码并通过计算机网络传输收集的密码的恶意文件,在执行所述恶意文件期间截获的命令以及针对所述命令计算出的参数可以如下所示:
CreateFile,‘c:\windows\system32\data.pass’
ReadFile,0x14ea25f7,0xf000
connect,http://stealpass.com
send,0x14ea25f7,0xf000
在一个方面中,所述行为日志模块112可以借助于专用驱动程序、调试软件、管理程序或其它实施方式来拦截来自文件的命令。例如,所述行为日志模块112可以使用专用驱动程序,所述专用驱动程序通过拼接 WinAPI函数的入口点来在执行文件期间拦截命令并确定参数。在又一个示例中,由执行模拟的模拟器直接在模拟文件的工作的过程中拦截命令,确定需要模拟的命令的参数。在又一个示例中,所述行为日志模块112可以使用管理程序在虚拟机执行文件期间拦截命令。所述管理程序确定需要模拟的命令的参数。
在一个方面中,从文件截获的命令可以包括一个或多个应用程序编程接口(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可以被配置为基于从所述文件行为日志114中选择的参数和命令来生成至少一个行为模式。所述文件行为日志114构成来自所述文件的可执行的命令(以下称为命令)的全部。其中每个命令对应于描述所述命令的至少一个参数(以下称为参数)。所述至少一个行为模式是集合,所述集合含有至少一个命令以及描述所述集合中所有命令的参数(以下称为所述至少一个行为模式的元素)。所述模式发生器模块121可以被进一步配置为将这样形成的多个行为模式发送给所述卷积模块122。
例如,从所述文件行为日志114中选择如下命令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).
在一个方面中,所述模式发生器模块121可以基于至少如下选择规则从所述文件行为日志114中选择所述命令和参数:每隔i-1个命令选择一个命令、并选择描述所选择的命令的参数,其中增量i是预定的;选择在离先前所选择的命令预定的时长(例如每10秒)之后被执行的命令、描述所选择的命令的参数;选择在自开始执行所述文件后预定的时间间隔处被执行的命令、并选择描述所选择的命令的参数;选择预定的列表中的命令、并选择描述所选择的命令的参数;选择预定的列表中的参数、并选择被所选择的参数描述的命令;当命令参数的数量大于预定的阈值时,选择命令的第一个参数或随机选择命令的k个参数。
例如,从所述文件行为日志114中选择诸如CreateFile、ReadFile、 WriteFile、DeleteFile、GetFileAttribute等工作于硬盘的所有命令,并选择描述所选择的命令的所有参数。在又一示例中,从所述文件行为日志114 中每隔999个命令选择一个命令,并选择描述所选择的命令的所有参数。
在一个变体方面中,预先根据至少两个文件形成所述文件行为日志 114,所述至少两个文件中的一个文件是安全文件而另一个是恶意文件。
在又一变体方面中,为行为模式的每个元素都匹配有诸如所述行为模式的元素的类型等特征。如果所述行为模式的元素能被表达为数量,则所述行为模式的元素的类型(命令或参数)可以是数量范围。例如,针对构成connect命令的参数porthtml=80的行为模式的元素,所述行为模式的所述元素的类型可以是“在0x0000-0xFFFF之间的数字值”。在一些方面中,如果所述行为模式的元素能被表达为字符串(string)的形式,则所述行为模式的元素的类型(命令或参数)可以是“字符串”。例如,针对构成connect 命令的行为模式的元素,所述行为模式的所述元素的类型可以是“大小小于32个字符的字符串”。在一些方面中,如果所述行为模式的元素能被表达为由预定的数据结构描述的数据的形式,则所述行为模式的元素的类型可以是“数据结构”。例如,针对构成find_record命令的参数 src=0x336b9a480d490982cdd93e2e49fdeca7的行为模式的元素,所述行为模式的所述元素的类型可以是“数据结构MD5”。
在又一方面中,所述行为模式还包括作为所述行为模式的元素的令牌。基于至少使用(诸如存储于数据库123中的)用于形成词义单元的预定的规则或先前所训练的循环神经网络(recurrent neural network)对所述行为模式的所述元素进行的词义分析形成所述令牌。例如,借助于针对参数“c:\windows\system32\data.pass”的词义分析,基于如下用于生成词义单元的规则:如果所述字符串包含文件的路径,则确定所述文件所在的硬盘;如果所述字符串包含文件的路径,则确定所述文件所在的文件夹;如果所述字符串包含文件的路径,则确定文件扩展名。在本示例中,所述词义单元可以包括所述文件的路径、所述文件所在的文件夹、所述文件的文件名、所述文件的扩展名。可以根据以上所列的规则形成所述令牌:
“paths to the file”→
‘c:\’,
“folders in which the files are located”→
‘windows’,
‘system32’,
‘windows\system32’,
“extensions of the files”→
‘.pass’.
在又一示例中,借助于针对参数“81.19.82.8”、“81.19.72.38”、“81.19.14.32”的词义分析,基于如下用于生成词义单元的规则:如果所述参数构成互联网协议(IP)地址,则确定描述所述IP地址的位掩码,即,针对所有所述IP、使M∧IP等于常数的位掩码M,或确定由元字符 (metacharacter)表示的所述位掩码的对应物。可以根据所述规则形成所述令牌“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被配置为根据所述行为模式生成卷积函数。在一些方面中,所述卷积模块122可以将这样形成的卷积函数发送给所述机器学习模块132。在一些方面中,所述卷积模块122 可以生成卷积函数,使在获得的所述行为模式上的所述卷积函数的结果的逆卷积函数与获得的所述行为模式的相似度大于指定的值,即,如下式(2) 所示:
r~g-1(g(r)) (2)
其中,ri是所述行为模式,g是所述卷积函数,g-1是所述逆卷积函数。
在一个方面中,所述卷积模块122可以被进一步配置为基于获得的所述行为模式计算行为模式的特征矢量。在一些方面中,所述行为模式的特征矢量可以表示为所述行为模式的元素的哈希和的总和。所述卷积模块122 以被进一步配置为根据所述行为模式的特征矢量形成卷积函数。所述卷积函数可以构成哈希函数,使计算出的所述特征矢量与计算出的所述特征矢量的所述哈希函数的结果的逆哈希函数的结果的相似度大于指定的值。
在另一个方面中,通过度量学习(metric learning)方法(即,学习多个对象上的距离函数的任务)形成所述卷积函数,使借助于相似度大于预定的阈值的行为模式的所述卷积函数获得的卷积之间的距离小于预定的阈值,而借助于相似度小于所述预定的阈值的行为模式的所述卷积函数获得的卷积之间的距离大于所述预定的阈值。
例如,所述卷积模块122可以按照如下方式计算所述行为模式的特征矢量。首先,创建具有100000个元素的空位矢量,为所述矢量的每个元素预留一位信息。接下来,将行为模式r中的1000个元素保留用于存储与所述命令ci相关的数据,剩余的99000个元素留给所述行为模式r中的参数ci。将50000个元素(元素1001至元素51000)留给字符串参数,将25000个元素(元素51001至元素76000)留给数量参数。为所述行为模式r中的每个命令ci匹配0至999的特定数字xi,并且将所创建的矢量中的对应的位设置为:v[xi]=true。针对所述行为模式r中的每个参数pi,通过方程(3)- (5)计算所述哈希和:
针对字符串:yi=1001+crc32(pi)(mod 50000) (3)
针对数量:yi=51001+crc32(pi)(mod 25000) (4)
针对其它:yi=76001+crc32(pi)(mod 24000) (5)
依赖于计算出的所述哈希和,将所创建的矢量中的对应的位设置为: v[yi]=true。具有这样设置的元素的所述位矢量构成所述行为模式r的特征矢量。
在又一方面中,可以通过下述方程(6)计算所述行为模式的特征矢量:
Figure GDA0003534392290000171
其中b是计算的位置系统的基。例如,对于二元矢量b=2,对于表示字符串(即,含有多个字符的字符组)的矢量,b=8。ri是所述行为模式的第i个元素。h是所述哈希方程。其中,0≤h(ri)<b。
例如,可以按照下述方式计算所述行为模式的特征矢量。首先,创建包括1000个元素的(不同于先前的示例的)又一空位矢量,为该矢量的每个元素预留一位信息。接下来,所述卷积模块122通过方程(7)计算所述行为模式r的各模式元素ri的哈希和:
Figure GDA0003534392290000182
并依赖于计算出的所述哈希和,将所创建的矢量中的对应的位设置为: v[xi]=true。
在又一方面中,所述行为模式的特征矢量构成布隆过滤器(Bloom filter)。例如,可以按照如下方式计算所述行为模式的特征矢量。首先,创建包括100000个元素的(不同于先前的示例的)又一空矢量。接下来,通过方程(8)借助于含有多个哈希函数{hj}的集合计算所述行为模式r的各模式元素ri的至少两个哈希和:
xij=hj(ri) (8)
其中,hj(ri)=crc32(ri),hj(0)=constj。并且基于计算出的哈希和,将所创建的矢量中的对应元素设置为v[xij]=true。
在又一方面中,所述行为模式的特征矢量的所制定的卷积函数的结果的大小小于所述行为模式的所述特征矢量的大小。例如,所述特征矢量构成包含100000个元素的位矢量,因此特征数量的大小是12500字节。而所述特征矢量的卷积函数的结果构成含有8个MD5哈希和的集合,因此所述特征矢量的卷积函数的结果的大小是256字节,即,约为所述特征矢量的大小的2%。
在又一方面中,所述特征矢量与计算出的所述特征矢量的所述哈希函数的结果的逆哈希函数的结果的相似度构成范围在0至1之间的数值,并且通过方程(9)计算出该相似度:
Figure GDA0003534392290000181
{h(ri)}∧{gi}∀{h(ri)}={gi}
其中,h(ri)∧gi表示h(ri)与gi的协同(concurrence,同时发生)。 {h(ri)}是所述行为模式的元素的哈希函数的结果的集合。{gi}是所述行为模式的元素的哈希函数的结果的逆哈希函数的结果的集合。ri是所述行为模式的第i个元素。h是所述哈希函数。w是所述相似度。
计算出的特征矢量的示例如图5所示。例如,计算出的所述特征矢量构成所述位矢量502:
1010111001100100101101110111111010001000110010010010011101011 01101010001100110110100100010000001011101110011011011
所述特征矢量的卷积函数的结果504是“1010011110101110101”。获得的所述结果的逆卷积函数的结果506是:
1010111001
Figure GDA0003534392290000192
00100101101110
Figure GDA0003534392290000193
11111010001000110010010
Figure GDA0003534392290000196
0011101011 01101
Figure GDA0003534392290000194
10001100110110100
Figure GDA0003534392290000195
00010000001011101110011011011
其中图5中以粗体以及下划线表示不同于所述特征矢量的元素。因此,所述特征矢量与所述逆卷积函数的结果的相似度是0.92。
再次参考图1,在又一方面中,以所述行为模式的元素作为参数的上述哈希函数可以依赖于所述行为模式的元素的类型:
Figure GDA0003534392290000191
例如,所述行为模式的参数构成包含所述文件的路径的字符串,则为了计算所述行为模式的参数的哈希和,使用哈希函数CRC32。针对任何其它字符串,使用Hoffman算法。针对数据集合,使用哈希函数MD5。
在又一方面中,可以使用自动编码器生成行为模式的特征矢量的卷积函数。其中,输入数据是所述行为模式的所述特征矢量的元素,输出数据是与所述输入数据的相似系数大于预定的阈值的数据。
所述检测模型模块131可以被配置为基于所述数据训练模块111所选择的文件的参数来创建恶意文件检测模型130。为了创建所述检测模型,所述检测模型模块131可以选择用于机器学习所述检测模型130的方法,并且初始化训练模型的参数。在开始机器学习所述检测模型之前就已经初始化的训练模型的参数称为超参数。所述检测模型模块131可以被进一步配置为将所创建的训练模型发送给所述机器学习模块132。
例如,在选择用于机器学习所述检测模型的方法时,所述检测模型模块131首先确定是使用人工神经网络还是随机森林作为所述检测模型。如果选择所述随机森林(又称为随机决定森林),则所述检测模型模块131为所述随机森林的节点分别选择标准。如果选择人工神经网络(也称为人工神经网络,或ANN),则所述检测模型模块131可以选择数字优化所述人工神经网络的参数的方法。在一些方面中,可以使用预定种类的输入数据 (行为模式,即,数据结构、所述行为模式的元素的数目、在其上搜索恶意文件的计算装置的性能、所述计算装置的可用的资源等)基于恶意文件检测方法的有效性(即,在检测恶意文件时发生第一种错误和第二种错误的次数)来决定如何选择具体的用于机器学习的方法。
在又一个示例中,所述检测模型模块131可以至少基于如下方式来选择用于机器学习所述检测模型的方法:交叉校验、滑动校验、交叉验证 (cross-validation,CV);诸如Akaike信息标准(Akaike information criterion, AIC)或Bayesian信息标准(Bayesianinformation criterion,BIC)等标准的数学验证;A/B测试、分裂测试、堆栈。在又一个示例中,在所述计算装置的性能较差时,选择使用随机森林的方法,否则选择使用人工神经网络的方法。
在一个方面中,针对先前创建的未经训练(即,无法以高于预定的阈值的准确度基于针对输入数据、输出数据的分析来产生参数)的检测模型进行机器学习。
在又一方面中,机器学习所述检测模型130的方法可以包括基于决定树的梯度提升(decision tree-based gradient boosting)、决定树、K最近邻方法、支持矢量机器(SVM)或者其它合适的方法。
在又一方面中,所述检测模型模块131被进一步配置为按照所述机器学习模块132的需求创建检测模型130。其中选择的机器学习方法和特定超参数不同于为先前检测模型所选择的机器学习方法和超参数。
根据一个方面,所述机器学习模块132被配置为训练所述恶意文件检测模型130,其中,使用获得的所述行为模式上的获得的所述卷积函数计算出所述检测模型的参数。所述检测模型130可以构成含有多个规则的规则集合。所述多个规则用于使用计算出的所述检测模型的所述多个参数、基于至少一个行为模式计算文件的危害度。在一些方面中,文件的危害度构成0至1之间的数值。0表示所述文件是安全的。1表示所述文件是恶意的。在一个示例中,可以用所述数据训练模块111所选择的已知的文件集合训练所述检测模型130。所述文件集合包含60%的安全文件以及40%的恶意文件。
在又一方面中,选择的训练所述检测模型130的方法确保了文件的危害度依赖于行为模式的数目的变化而单调变化。其中基于对所述行为日志的分析形成所述行为模式。在一些方面中,文件的危害度单调变化表示,一旦分析了每个随后的行为模式,则计算出的所述危害度将不小于先前计算出的危害度。例如,在分析第10个行为模式之后计算出的危害度等于 0.2。在分析第50个行为模式之后,危害度等于0.4。在分析第100个行为模式之后,危害度等于0.7。
在另一个方面中,所述机器学习模块132被进一步配置为在获得的行为日志上校验经训练的所述检测模型130,以确定正确确定了文件的测试样本中的文件的危害性。其中基于对所述文件的测试样本中的文件的分析形成所述行为日志。当校验的结果为负面时,所述机器学习模块132可以被配置为向所述数据训练模块111发送请求,请求准备不同于当前用于训练所述检测模型的样本文件的样本文件。在其它方面中,响应于负面结果,所述机器学习模块132可以向所述检测模型模块131发送请求,请求创建不同于当前检测模型的新的检测模型。
校验经训练的所述检测模型涉及下述过程。基于所述数据训练模块111 所选择的文件集合训练所述检测模型130。其中,已知所述文件集合中的文件是安全的还是恶意的。对所述模型进行校验,以验证已经正确地训练了所述恶意文件检测模型130,即,所述检测模型能够检测恶意文件并使安全文件通过。为此,使用所述检测模型130确定所述数据训练模块111 所选择的另一个文件集合中的文件是否是恶意的。其中,事先已知所述另一个文件集合中的文件是否是恶意的。因此,确定“遗漏”了多少恶意文件,以及检测到了多少安全文件。如果检测到的安全文件和遗漏的恶意文件的数目大于预定的阈值,则所述检测模型被视为是未能经过适当的训练,并且需要(诸如使用所述检测模型的与之前不同的参数值在文件的另一训练样本上,等等)再次针对所述检测模型进行机器学习。
例如,在针对经训练的所述模型进行所述校验时,校验在检测文件的测试样本中的恶意文件时的第一种错误和第二种错误的次数。如果这样的错误的数目大于预定的阈值,则选择文件的新的训练和测试样本,并创建新的检测模型。
在又一个示例中,含有多个文件的训练样本包含10000个文件,其中 8500个文件是恶意文件,1500个文件是安全文件。训练所述检测模型之后,在包含1200个文件(其中350个文件是恶意文件,850个文件是安全文件) 的测试样本上对其进行校验。根据所述校验的结果,所述350个恶意文件中的15个(4%)恶意文件未被检测到,而所述850个安全文件中的102 个(12%)安全文件被错误地认为是恶意的。当未被检测到的恶意文件的数目超过5%或者意外被检测到的安全文件超过0.1%时,经训练的所述检测模型被视为是未能经过适当的训练。
在一个方面中,在检测阶段,所述行为日志模块141可以被配置为至少在执行需要判断其危害性或者安全性的文件期间拦截至少一个可执行的命令。所述行为日志模块141可以被进一步配置为针对每个截获的命令,确定描述所述每个截获的命令的至少一个参数,并基于所截获的多个命令以及这样确定的多个参数生成所接收的文件的系统行为日志144。所述行为日志模块141可以被配置为与上述行为日志模块112类似。即,在学习恶意文件检测模型时,当在初始阶段检测到恶意文件,生成所分析的文件的行为日志。使用行为日志生成工具112生成日志。在学习阶段和所述检测阶段,所述行为日志生成工具都可以是具有相同的功能的相同的工具。在一些方面中,所述行为日志模块141可以是所述行为日志模块112的运行在客户端侧的单独的实例,或者在其它方面中,是同一个实例。
在一个方面中,可以基于在形成所述系统的行为日志后所截获的命令以及先前形成的系统行为日志来生成系统行为日志144。例如,在开始执行需要判断其危害性或者安全性的文件后,所述行为日志模块141可以将截获的可执行的命令及描述所述截获的可执行的命令的参数记录在所述系统行为日志144中。基于对所述命令以及参数的分析,计算所述文件的危害系数。如果未基于所述分析的结果判断所述文件是恶意的还是安全的,则可以继续拦截命令。将截获的可执行的命令及描述所述截获的可执行的命令的参数记录在旧的行为日志中,或者记录在新的行为日志中。在第一种情况下,基于对记录在所述行为日志中的所有命令以及参数(即,包括先前已经用于计算所述危害系数的命令以及参数)的分析来计算所述危害系数。
根据一个方面,所述危害性评估模块142可以被配置为基于从所述行为日志模块141获得的系统行为日志144以及从所述机器学习模块132获得的检测模型130来计算所述危害度。在一些方面中,文件的危害度可以表示为描述所述可执行的文件的恶意行为的(例如在0-1范围内的)量化特征(0:所述文件仅有安全的行为;1:所述文件有预定的恶意行为)。在一些方面中,所述危害性评估模块142可以将计算出的所述危害度发送给所述资源管理模块143。
所述资源管理模块143被配置为基于对获得的所述危害度的分析来分配所述计算机系统的计算资源,以确保所述计算机系统的安全性。在一个方面中,所述计算机系统的计算资源包括空闲随机存取存储器(RAM)容量、硬盘空闲空间容量、能用于(诸如以更深入的模拟进行的)杀毒扫描的空闲处理器时间(处理器时间量子)。
在一些方面中,以下述方式对所述危害度进行分析。每次计算所述危害度之后,确定所述危害度的值的变化的动态。进行资源管理行动。在一些方面中,所述资源管理行动可以包括当所述危害度的值增加时,对所述计算机系统的附加的资源进行分配。在其它方面中,所述资源管理行动包括在所述危害度的值降低时,释放先前分配的所述计算机系统的资源。
图2是用于机器学习恶意文件检测模型的方法200的结构示意图。所述用于机器学习恶意文件检测模型的方法的结构示意图包含:步骤211,准备文件的训练样本;步骤212,形成行为日志;步骤221,形成行为模式,步骤222,形成卷积函数;步骤231,创建检测模型;步骤232,训练所述检测模型;步骤241,监控所述计算机系统的行为;步骤242,计算所述危害度;以及步骤243,管理所述计算机系统的资源。
在步骤211中,所述数据训练模块111根据预定标准从含有多个文件的文件数据库中选择至少一个文件。将在步骤232中基于所选择的文件训练所述检测模型。
在步骤212中,所述行为日志模块112至少在执行在步骤211中选中的文件期间和/或在模拟在步骤211中选中的文件的工作的期间截获至少一个命令。所述行为日志模块112可以进一步针对每个截获的命令,确定描述所述每个截获的命令的至少一个参数,并基于所截获的多个命令以及所确定的多个参数生成所获得的文件的行为日志。所述行为日志表示来自所述文件的含有截获的多个命令的集合(以下称为所述命令)。各命令可以对应于至少一个限定为描述所述命令的参数(以下称为所述参数)。
在步骤221中,所述模式生成器模块121基于从在步骤212中形成的文件行为日志中选择的参数和命令来生成至少一个行为模式。所述文件行为日志表示来自所述文件的可执行的命令的集合(以下称为命令)。其中每个命令对应于描述所述命令的至少一个参数(以下称为参数)。所述至少一个行为模式是如下集合,所述集合含有至少一个命令以及描述所述集合中所有命令的参数。
在步骤222中,所述卷积模块122生成在步骤221中形成的行为模式的卷积函数,使在所述行为模式上的所述卷积函数的结果的逆卷积函数与所述行为模式的相似度大于指定的值。
在步骤231中,所述检测模型模块131创建检测模型130,为所述检测模型选择至少一种用于机器学习所述检测模型的方法,并依赖于在步骤 211中选择的文件的参数来初始化所述训练模型的参数。在开始机器学习所述检测模型之前就已经初始化的训练模型的参数称为超参数。
在步骤232中,所述机器学习模块132训练在步骤231中创建的检测模型。在步骤221中形成的行为模式上使用在步骤222中形成的卷积函数计算所述检测模型的参数。所述检测模型130构成含有多个规则的规则集合。所述多个规则用于使用计算出的所述检测模型的参数、基于至少一个行为模式来计算文件的危害度。
在步骤241中,被配置为监控系统行为的所述行为日志模块141用于拦截运行于所述计算机系统中的文件正在执行的至少一个命令,并且基于截获的命令生成系统行为日志144。在步骤242中,所述危害性评估模块 142基于在步骤241中形成的所述系统的行为日志以及在步骤232中训练的检测模型,计算所述危害度。
在一些方面中,所述系统可以在执行第二文件期间生成的系统行为日志上使用经训练的所述检测模型检测出所述第二文件是恶意文件。例如,所述行为日志模块141可以在执行目标(第二)文件期间,将截获的可执行的命令以及截获的所述命令的参数记录在所述系统行为日志中。所述危害性评估模块142可以在所述系统行为日志上使用经训练的所述检测模型计算与所述第二文件相关联的危害系数。所述危害性评估模块142可以响应于确定所述危害系数超过第一阈值,而确定所述第二文件是恶意文件。
在步骤243中,所述资源管理模块143基于对在步骤242中计算出的危害度的分析来分配计算资源,以确保所述计算机系统的安全性。
图3A和3B示出了根据示例性方面的作为行为模式的数量的函数的危害度的变化的动态的示例。所示示例包括作为在执行恶意文件期间形成的行为模式的数量的函数的危害度的任意变化的动态的图表300,以及作为在执行恶意文件期间形成的行为模式的数量的函数的危害度的单调的变化的动态的图表310。所示示例进一步包括作为在执行安全文件期间形成的行为模式的数量的函数的危害度的任意变化的动态的图表320,以及作为在执行安全文件期间形成的行为模式的数量的函数的危害度的单调的变化的动态的图表330。
在一个方面中,可执行的文件的危害度的取值在0(即,所述文件具有绝对安全的行为)至1(即,所述文件具有预定恶意行为)的范围内。在图3A以及3B的图表中,可执行的文件的危害度被显示为表示文件的执行的某增加的值(即,X轴)的函数。即,X轴可以包括多个点,所述多个点的增加特征描述所分析的文件的操作。例如,可执行的文件的危害度可以被图表化为在执行所述文件期间进行的一系列可执行的命令、操作、或者API函数的函数。在另一个示例中,可执行的文件的危害度可以被图表化为执行时间的函数,其中t=0是开始执行所分析的文件的时间。在又一个示例中,可执行的文件的危害度可以被图表化为在执行所述文件期间使用的可消耗的资源(例如RAM,即便所述RAM被释放仍是这样)的函数。
注意某些上述特征不一定是线性地增加的。例如,如果在X轴上绘制时间值,则相邻的点之间可以有不同的间隔(例如,在一些地方,操作花费更少的时间。在其它地方,则花费更多的时间)。但是,如果X轴包含进行的操作的序号,则相邻操作之间的间隔可以总是相同的(即,1个命令)。因此,在考虑约束条件或执行特定判断时,必需考虑附加的参数。例如,所述系统可以被配置为使用具体的时间间隔(ΔT),或者使用经过的时间间隔(ΔT)阈值以及已经消耗的资源量的阈值的结合等。
如图3A所示,所述图表300例示出作为在执行恶意文件期间形成的行为模式的数量的函数的危害度的任意变化的动态。最初,在执行所述文件时,形成的行为模式的数目不大,并且所述可执行的文件的恶意活动可能不存在或极少。例如,发生对包括安全文件在内的很多的文件来说都是特有的数据初始化。因此,计算出的所述危害度略微不同于0且不超过所述预定的阈值(以下称为安全性标准)。但是,一旦超过所述安全性标准,则可执行的文件的行为则不能再被视为是安全的(在所述图表中,所述阈值表示为虚线312)。
然而,所述可执行的文件的恶意活动随时间增长,并且所述危害度开始接近1,超越所述安全性标准,而所述危害度可能并未达到所述预定的阈值(以下称为危害性标准)。但是,一旦超过所述危害性标准,则可执行的文件的行为将被视为是恶意的(在所述图表中,所述阈值表示为虚线 314)。
经过一段时间的增长,所述恶意活动可能停止,并且所述危害度将再次接近0(点A)。在特定点处,所述危害度将变得大于所述危害性标准(点B),并且所述可执行的文件的行为将被识别为是恶意的。因此所述文件自身将被识别为是恶意的。
将所述文件识别为恶意文件的点的发生可能显著晚于恶意活动增长的开始点,因为所描述的接近很好地响应于所述危害度的剧烈增长。所述剧烈增长通常发生在经久的、清楚显现的所述可执行的文件的恶意活动期间。
当所述恶意活动不定期地发生(图表300的左侧)时,计算出的所述危害度可能并未达到判断所述可执行的文件的行为的危害性、以及所述可执行的文件自身的危害性的值。
当(例如,由于所述计算装置的性能较低而)没有基于形成的每个行为模式来计算所述危害度时,可能的情形是,将在点A(当所述恶意活动开始时)以及点C(当所述恶意活动结束时)计算所述危害度,但是将不会在点B(在发生恶意活动时)计算所述危害度。因此计算出的所述危害度将不会超过危害性标准,所述可执行的文件的活动将不会被识别为是恶意的。因此将检测不到恶意文件。
所述图表310显示作为在执行恶意文件期间形成的行为模式的数量的函数的危害度的单调的变化的动态。
最初,在执行所述文件时,形成的行为模式的数目不大,并且所述可执行的文件的恶意活动可能不存在或极少。例如,发生对包括安全文件在内的很多的文件来说都是特有的数据初始化。因此,计算出的所述危害度略微不同于0且不超过所述预定的阈值(以下称为安全性标准)。但是,一旦超过所述安全性标准,则可执行的文件的行为则不能再被视为是安全的 (在所述图表上,所述阈值表示为虚线312)。
然而,所述可执行的文件的恶意活动进一步随着所述可执行的文件的执行而增长,并且所述危害度开始接近1,超越所述安全性标准,而所述危害度可能并未达到所述预定的阈值(以下称为危害性标准)。但是,一旦超过所述危害性标准,则可执行的文件的行为将被视为是恶意的(在所述图表中,所述阈值表示为虚线314)。
经过一段时间的增长(点A-B),所述恶意活动可能停止(点B-C),但是所述危害度将不会下降,而仅是在所述可执行的文件的任何恶意活动期间继续增长。在特定点处,所述危害度将变得大于所述危害性标准(点 D),并且所述可执行的文件的行为将被识别为是恶意的。因此所述文件自身将被识别为是恶意的。
将所述文件识别为恶意文件的点可能紧随恶意活动的显现而发生,这是因为所描述的接近很好地响应于所述危害度的稳定增长。所述稳定增长发生在经久的、清楚显现的所述可执行的文件的恶意活动期间,以及在频繁的、不定期、更不明显的恶意活动期间发生。
当所述恶意活动不定期地发生(图表310的左侧)时,执行点上计算出的所述危害度可能达到判断所述可执行的文件的行为的危害性以及所述可执行的文件自身的危害性的值。
当(例如,由于所述计算装置的性能较差而)没有基于形成的每个行为模式来计算所述危害度时,可能的情形是,将在点A(当所述恶意活动开始时)以及点C(当所述恶意活动结束时)计算所述危害度,但是将不会在点B(在发生恶意活动时)计算所述危害度。尽管如此,由于所述危害度单调地变化,计算出的危害度将仅增加其值。并且在点C所述危害度将超过危害性标准,所述可执行的文件的活动将被识别为是恶意的。因此所述恶意文件将被毁去。
如图3B所示,所述图表320例示出作为在执行安全文件期间形成的行为模式的数量的函数的危害度的任意变化的动态。
最初,在执行所述文件时,形成的行为模式的数目不是特别大,并且尽管可能执行“可疑”命令,所述可执行的文件却没有恶意活动。在执行恶意文件期间也可以执行所述“可疑”命令(例如,计算机网络中数据的转移、文件的删除等)。因此,计算出的所述危害度不同于0并且不超过所述预定的阈值(以下称为安全性标准)。但是,一旦超过所述安全性标准,则可执行的文件的行为不能再被视为是安全的(在所述图表中,所述阈值表示为虚线322)。
然而,所述可执行的文件的恶意活动由于执行大量“可疑”命令而随时间增长,并且所述危害度开始接近1,而所述危害度可能并未达到所述预定的阈值(以下称为危害性标准)。但是,一旦超过所述危害性标准,则可执行的文件的行为将被视为是恶意的(在所述图表中,所述阈值表示为虚线324)。但是所述危害度可能超过安全性标准,因此所述文件可能不能再被视为是安全的,而是变得“可疑”。
经过一段时间的增长,所述恶意活动可能停止,并且所述危害度将再次接近0(点C)。
当(例如,由于所述计算装置的性能较差而)没有基于形成的每个行为模式来计算所述危害度时,可能的情形是,将在点B(当所述活动最类似于是恶意的,即,变得“可疑”时)计算所述危害度,但不在点A(当所述“可疑”活动增加时)或者点C(当所述“可疑”活动降低时)计算所述危害度。因此计算出的所述危害度将超过安全性标准,所述可执行的文件的活动将被识别为“可疑”(将不会被视为是安全的)。因此所述安全文件将不会被识别为是安全的。
所述图表330显示作为在执行安全文件期间形成的行为模式的数量的函数的危害度的单调的变化的动态。最初,在执行所述文件时,形成的行为模式的数目不大,并且尽管可能执行“可疑”命令,所述可执行的文件却没有恶意活动。在执行恶意文件期间也可以执行所述“可疑”命令(例如,计算机网络中数据的转移、文件的删除等)。因此,计算出的所述危害度不同于0并且不超过所述预定的阈值(以下称为安全性标准)。但是,一旦超过所述安全性标准,则可执行的文件的行为不能再被视为是安全的(在所述图表中,所述阈值表示为虚线322)。
然而,所述可执行的文件的恶意活动由于执行大量“可疑”命令而随时间增长,并且所述危害度开始接近1,而所述危害度可能并未达到所述预定的阈值(以下称为危害性标准)。但是,一旦超过所述危害性标准,则可执行的文件的行为将被视为是恶意的(在所述图表中,所述阈值表示为虚线324)。并且所述危害度可能并未超过安全性标准,因此所述文件将继续被视为是安全的。
经过一段时间的增长(点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的模式:
Figure GDA0003534392290000321
Figure GDA0003534392290000331
在所示示例中,基于8个截获的命令(及描述所述命令的参数)形成 19个行为模式。
在第二个步骤中,形成包含一个参数412以及能够被所述参数412描述的所有命令411的模式:
{c1,c2,c3,p1} {c1,c3,c4,p3}
{c1,c2,c3,p2} {c5,p4}
{c1,c4,c5,p5} {c2,c4,p7}
{c2,c4,c5,p6}
在所示示例中,又基于8个截获的命令(及描述所述命令的参数)形成了七(7)个行为模式。
在第三个步骤中,形成包含多个参数412以及能够被所述参数412描述的所有命令411的模式:
{c1,c2,c3,p1,p2}
{c4,c5,p5,p6}
{c2,c4,p6,p7}
在所给出的示例中,又基于8个截获的命令(及描述所述命令的参数)形成了三(3)个行为模式。如所示,模式可以包括含有多个参数的集合。例如, {c1,c2,c3,p1,p2}是包含参数c1、c2、c3、p1、p2的模式。
图6是根据示例性方面的能够实施用于机器学习恶意文件检测模型的方法和系统的方面的通用计算机系统20的框图。注意所述计算机系统20能够对应于诸如上述系统100。
如所示,所述计算机系统20可以是个人计算机或者服务器,包括中央处理单元21、系统存储器22、连接各种系统部件的系统总线23。所述系统部件包括与所述中央处理单元21关联的存储器。本领域的普通技术人员将理解,所述系统总线23可以包括总线存储器或者总线存储器控制器、外围总线、能够与任何其它总线架构交互的本地总线。所述系统存储器可以包括永久存储器(ROM) 24以及随机存取存储器(RAM)25。基本输入/输出系统(BIOS)26可以存储诸如使用所述ROM 24在装载所述操作系统时的用于在所述计算机系统20的元素之间转移信息的基本过程。
所述计算机系统20还可以包括用于读取以及写入数据的硬盘27、用于在可拆卸磁盘29上进行读写的磁盘驱动器28、用于读取以及写入诸如CD-ROM、 DVD-ROM及其它光学介质等可拆卸光碟31的光学驱动器30。所述硬盘27、所述磁盘驱动器28、所述光学驱动器30分别跨越所述硬盘接口32、所述磁盘接口33、所述光学驱动器接口34连接到所述系统总线23上。所述驱动器以及对应的计算机信息介质是与功率无关的模块,用于存储计算机指令、数据结构、程序模块、所述计算机系统20的其它数据等。
示例性方面包括系统。所述系统使用经由所述控制器55连接到所述系统总线23的可拆卸光碟31、硬盘27、可拆卸磁盘29。本领域的普通技术人员将理解,还可以使用诸如固态驱动器、闪存卡、数字磁盘、随机存取存储器(RAM) 等能够存储计算机可读形式的数据的任何类型的介质56。
所述计算机系统20具有文件系统36,其中可以存储有所述操作系统35、附加的应用程序37、其它程序模块38、程序数据39。所述计算机系统20的用户可以使用键盘40、鼠标42或者诸如但不限于麦克风、操纵杆、游戏控制器、扫描器等本领域的普通技术人员已知的任何其它输入装置来输入命以及信息。这样的输入装置典型地经由串行端口46插入到所述计算机系统20中。所述串行端口则连接到所述系统总线。但是本领域的普通技术人员将理解,也可以以诸如但不限于经由并行端口、游戏端口或者通用串行总线(USB)等其它方式连接输入装置。监视器47或者其它类型的显示装置还可以跨越诸如视频适配器 48等接口连接到所述系统总线23。除了所述监视器47以外,还可以为所述个人计算机配备有诸如扩音器、打印机等其它外围输出装置(未示出)。
可以使用与一个或者更多个远程计算机49的网络连接在网络环境中操作计算机系统20。一个远程计算机(或多个远程计算机)49可以是包括在描述计算机系统20的性质中的大部分或所有所述元素的服务器或者本地计算机工作站。所述计算机网络中还可以存在诸如但不限路由器、网站、对等装置或者其它网络节点等其它装置。
网络连接能够形成局域计算机网络(LAN)50以及广域计算机网络(WAN)。这样的网络用于企业计算机网络以及内部公司网络,一般能够接入互联网。在 LAN或者WAN网络中,所述个人计算机20跨越网络适配器或者网络接口51 连接到所述局域网50。在使用网络时,所述计算机系统20可以使用调制解调器54,或者使用本领域的普通技术人员熟知的能够与诸如互联网等广域计算机网络通信的其它模块。所述调制解调器54可以是内部装置或者外部装置,可以通过串行端口46连接到所述系统总线23。本领域的普通技术人员将理解,所述网络连接只是使用通信模块建立计算机之间的连接的无数熟知方式中的非限制性的示例。
在各种方面中,本文描述的系统以及方法可以用硬件、软件、固件或者其任意组合实现。如果用软件实现,所述方法可以存储为非暂时性计算机可读介质上的一条或多条指令或者代码。计算机可读介质包括数据存储。这样的计算机可读介质能够包括诸如但不限于RAM、只读存储器(ROM)、带电可擦可编程只读存储器(EEPROM)、只读光盘(CD-ROM)、闪存或者其它类型的电、磁或者光学存储介质,或者能够用于携带或者存储指令或者数据结构形式的希望的程序代码、并且能够被通用计算机的处理器接入的任何其它介质。
在各种方面中,本文描述的系统以及方法能够用模块进行探讨。本文使用的术语“模块”指的是现实世界的装置、部件、或者部件布置。所述装置、部件、或者部件布置由诸如特定用途集成电路(ASIC)或现场可编程门阵列 (FPGA)等使用硬件实现,或者由诸如微处理器系统以及指令的集合等实现为硬件以及软件的结合,以实施所述模块的功能。所述指令被执行时,将所述微处理器系统转化为专用装置。模块还可以用二者的结合实现,其中特定功能仅由硬件实现,其它功能由硬件以及软件的结合实现。在特定的实现方式中,模块的至少一部分,以及在某些情况下的整个模块,都可以在(诸如图6中更具体地描述的)通用计算机的处理器上执行。相应地,各模块可以用各种合适的配置实现,并不局限于本文例示的任何具体的实现方式。
为了清楚起见,本文并未公开所述方面的所有例行特征。将理解在研发本文的任何实际实施方式时,必须作出无数实施方式特定的决定,以实现研发者的特定目的。对于不同的实施方式和不同的研发者而言,所述特定目会不同。这样的研发工作可能是复杂而耗时的,但对于知晓本文的本领域的普通技术人员而言仍然是例行的工程。
本文使用的术语用于描述而不旨在限制,应由本领域的普通技术人员根据本文的教导和指导并结合相关领域的普通技术人员的知识进行解释。此外,除非明确说明,本说明书或者权利要求中的术语并不旨在具有罕见或特定的含义。
本文中的各种方面涵盖本文例示的已知的模块的当前以及未来已知的等价形式。此外,尽管显示并描述了方面以及应用,知晓本文的本领域的普通技术人员会清楚,除了上述提及的修改外,还有更多不违背本文公开的发明概念的可能的修改。

Claims (21)

1.一种用于机器学习恶意文件检测模型的方法,其中,所述方法包括:
从含有多个文件的文件数据库选择第一文件作为训练样本;
基于在执行选中的所述第一文件期间截获的多个可执行的命令来生成行为日志;
基于所述行为日志生成多个行为模式;
基于所述多个行为模式确定卷积函数,以使得所述卷积函数的结果的逆卷积函数与所生成的行为模式的相似度大于指定的第一值;
通过在所述多个行为模式上使用所述卷积函数计算用于检测恶意文件的检测模型的多个参数,来训练所述检测模型;以及
在执行第二文件期间生成的系统行为日志上使用经训练的所述检测模型将所述第二文件检测为恶意文件。
2.根据权利要求1所述的方法,其中,所述检测模型包括含有多个规则的规则集合,其中,所述多个规则用于使用计算出的所述检测模型的所述多个参数、基于至少一个行为模式计算目标文件的危害度。
3.根据权利要求1所述的方法,其中,所述基于在执行选中的所述第一文件期间截获的多个可执行的命令来生成行为日志包括:
至少在执行选中的所述第一文件期间或在模拟执行选中的所述第一文件期间截获至少一个可执行的命令;
针对每个截获的命令,确定描述所述每个截获的命令的至少一个参数;以及
基于所截获的命令以及相应的参数生成与选中的所述第一文件相关联的所述行为日志。
4.根据权利要求1所述的方法,其中,所述多个行为模式中的每个行为模式都包括集合,所述集合含有至少一个命令以及描述所述集合中所有命令的参数。
5.根据权利要求1所述的方法,其中,所述卷积函数用于将行为模式的特征矢量计算为所述行为模式的元素的哈希和的总和,其中,所述卷积函数包括哈希函数,以使得计算出的所述特征矢量与计算出的所述特征矢量的所述哈希函数的结果的逆哈希函数的结果的相似度大于所述指定的第一值。
6.根据权利要求1所述的方法,还包括:
基于所述行为日志以及所述检测模型计算所述第二文件的危害度,其中,所述第二文件的危害度是描述所述第二文件的恶意行为的量化特征。
7.根据权利要求1所述的方法,其中,所述在执行第二文件期间生成的系统行为日志上使用经训练的所述检测模型将所述第二文件检测为恶意文件包括:
将截获的多个可执行的命令以及截获的多个可执行的命令的多个参数记录到所述系统行为日志中;
在所述系统行为日志上使用经训练的所述检测模型计算危害系数;以及
对应于确定所述危害系数超过第一阈值,确定所述第二文件为恶意文件。
8.一种用于机器学习恶意文件检测模型的系统,其中,所述系统包括处理器,所述处理器用于:
从含有多个文件的文件数据库选择第一文件作为训练样本;
基于在执行选中的所述第一文件期间截获的多个可执行的命令来生成行为日志;
基于所述行为日志生成多个行为模式;
基于所述多个行为模式确定卷积函数,以使得所述卷积函数的结果的逆卷积函数与所生成的行为模式的相似度大于指定的第一值;
通过在所述多个行为模式上使用所述卷积函数计算用于检测恶意文件的检测模型的多个参数,来训练所述检测模型;以及
在执行第二文件期间生成的系统行为日志上使用经训练的所述检测模型将所述第二文件检测为恶意文件。
9.根据权利要求8所述的系统,其中,所述检测模型包括含有多个规则的规则集合,其中,所述多个规则用于使用计算出的所述检测模型的所述多个参数、基于至少一个行为模式来计算目标文件的危害度。
10.根据权利要求8所述的系统,其中,用于基于在执行选中的所述第一文件期间截获的所述多个可执行的命令来生成所述行为日志的所述处理器进一步用于:
至少在执行选中的所述第一文件期间或在模拟执行选中的所述第一文件期间截获至少一个可执行的命令;
针对每个截获的命令,确定描述所述每个截获的命令的至少一个参数;以及
基于所截获的命令以及相应的参数生成与选中的所述第一文件相关联的所述行为日志。
11.根据权利要求8所述的系统,其中,所述多个行为模式中的每个行为模式都包括集合,所述集合含有至少一个命令以及描述所述集合中所有命令的参数。
12.根据权利要求8所述的系统,其中,所述卷积函数用于将行为模式的特征矢量计算为所述行为模式的元素的哈希和的总和,其中,所述卷积函数包括哈希函数,以使得计算出的所述特征矢量与计算出的所述特征矢量的所述哈希函数的结果的逆哈希函数的结果的相似度大于所述指定的第一值。
13.根据权利要求8所述的系统,其中,所述处理器进一步用于:
基于所述行为日志以及所述检测模型计算所述第二文件的危害度,其中,所述第二文件的危害度是描述所述第二文件的恶意行为的量化特征。
14.根据权利要求8所述的系统,其中,用于在执行所述第二文件期间生成的所述系统行为日志上使用经训练的所述检测模型将所述第二文件检测为恶意文件的所述处理器进一步用于:
将截获的多个可执行的命令以及截获的多个可执行的命令的多个参数记录到所述系统行为日志中;
在所述系统行为日志上使用经训练的所述检测模型计算危害系数;以及
对应于确定所述危害系数超过第一阈值,确定所述第二文件为恶意文件。
15.一种非暂时性计算机可读介质,包括用于机器学习恶意文件检测模型的计算机可执行指令,所述计算机可执行指令包括用于以下操作的指令:
从含有多个文件的文件数据库选择第一文件作为训练样本;
基于在执行选中的所述第一文件期间截获的多个可执行的命令来生成行为日志;
基于所述行为日志生成多个行为模式;
基于所述多个行为模式确定卷积函数,以使得所述卷积函数的结果的逆卷积函数与所生成的行为模式的相似度大于指定的第一值;
通过在所述多个行为模式上使用所述卷积函数计算用于检测恶意文件的检测模型的多个参数,来训练所述检测模型;以及
在执行第二文件期间生成的系统行为日志上使用经训练的所述检测模型将所述第二文件检测为恶意文件。
16.根据权利要求15所述的计算机可读介质,其中,所述检测模型包括含有多个规则的规则集合,其中,所述多个规则用于使用计算出的所述检测模型的所述多个参数、基于至少一个行为模式计算目标文件的危害度。
17.根据权利要求15所述的计算机可读介质,其中,所述基于在执行选中的所述第一文件期间截获的多个可执行的命令来生成行为日志包括:
至少在执行选中的所述第一文件期间或在模拟执行选中的所述第一文件期间截获至少一个可执行的命令;
针对每个截获的命令,确定描述所述每个截获的命令的至少一个参数;以及
基于所截获的命令以及相应的参数生成与选中的所述第一文件相关联的所述行为日志。
18.根据权利要求15所述的计算机可读介质,其中,所述多个行为模式中的每个行为模式都包括集合,所述集合含有至少一个命令以及描述所述集合中所有命令的参数。
19.根据权利要求15所述的计算机可读介质,其中,所述卷积函数用于将行为模式的特征矢量计算为所述行为模式的元素的哈希和的总和,其中,所述卷积函数包括哈希函数,以使得计算出的所述特征矢量与计算出的所述特征矢量的所述哈希函数的结果的逆哈希函数的结果的相似度大于所述指定的第一值。
20.根据权利要求15所述的计算机可读介质,还包括:
基于所述行为日志以及所述检测模型计算所述第二文件的危害度,其中,所述第二文件的危害度是描述所述第二文件的恶意行为的量化特征。
21.根据权利要求15所述的计算机可读介质,其中,所述在执行第二文件期间生成的系统行为日志上使用经训练的所述检测模型将所述第二文件检测为恶意文件包括:
将截获的多个可执行的命令以及截获的多个可执行的命令的多个参数记录到所述系统行为日志中;
在所述系统行为日志上使用经训练的所述检测模型计算危害系数;以及
对应于确定所述危害系数超过第一阈值,确定所述第二文件为恶意文件。
CN201810732861.7A 2017-07-17 2018-07-05 机器学习恶意软件检测模型的方法、系统和计算机可读介质 Active CN109271780B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
RU2017125331 2017-07-17
RU2017125331A RU2673708C1 (ru) 2017-07-17 2017-07-17 Система и способ машинного обучения модели обнаружения вредоносных файлов
US201762573745P 2017-10-18 2017-10-18
US62/573,745 2017-10-18
US15/907,462 2018-02-28
US15/907,462 US10795996B2 (en) 2017-07-17 2018-02-28 System and method of machine learning of malware detection model

Publications (2)

Publication Number Publication Date
CN109271780A CN109271780A (zh) 2019-01-25
CN109271780B true CN109271780B (zh) 2022-05-24

Family

ID=61731633

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810732861.7A Active CN109271780B (zh) 2017-07-17 2018-07-05 机器学习恶意软件检测模型的方法、系统和计算机可读介质

Country Status (4)

Country Link
US (1) US10795996B2 (zh)
EP (1) EP3432186B1 (zh)
JP (1) JP6636096B2 (zh)
CN (1) CN109271780B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2706896C1 (ru) * 2018-06-29 2019-11-21 Акционерное общество "Лаборатория Касперского" Система и способ выявления вредоносных файлов с использованием модели обучения, обученной на одном вредоносном файле
US11023576B2 (en) * 2018-11-28 2021-06-01 International Business Machines Corporation Detecting malicious activity on a computer system
CN110113226B (zh) * 2019-04-16 2021-03-12 新华三信息安全技术有限公司 一种检测设备异常的方法及装置
KR102046748B1 (ko) * 2019-04-25 2019-11-19 숭실대학교산학협력단 트리 부스팅 기반 애플리케이션의 위험도 평가 방법, 이를 수행하기 위한 기록 매체 및 장치
WO2020263389A1 (en) * 2019-06-26 2020-12-30 Hrl Laboratories, Llc System and method fdr detecting backdoor attacks in convolutional neural networks
US11303653B2 (en) * 2019-08-12 2022-04-12 Bank Of America Corporation Network threat detection and information security using machine learning
CN111159111A (zh) * 2019-12-13 2020-05-15 深信服科技股份有限公司 一种信息处理方法、设备、系统和计算机可读存储介质
US11323473B2 (en) 2020-01-31 2022-05-03 Bank Of America Corporation Network threat prevention and information security using machine learning
CN111680145B (zh) * 2020-06-10 2023-08-15 北京百度网讯科技有限公司 知识表示学习方法、装置、设备以及存储介质
US20220156372A1 (en) * 2020-11-13 2022-05-19 Sophos Limited Cybersecurity system evaluation and configuration
CN114553525A (zh) * 2022-02-22 2022-05-27 国网河北省电力有限公司电力科学研究院 基于人工智能的网络安全漏洞挖掘方法及系统
CN114610885B (zh) * 2022-03-09 2022-11-08 江南大学 一种文本分类后门攻击方法、系统及设备
CN116956295B (zh) * 2023-09-19 2024-01-05 杭州海康威视数字技术股份有限公司 基于文件图谱拟合的安全检测方法、装置及设备
CN116956296B (zh) * 2023-09-20 2023-12-01 北京安天网络安全技术有限公司 一种文件的动态检测方法、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106529293A (zh) * 2016-11-09 2017-03-22 东巽科技(北京)有限公司 一种用于恶意软件检测的样本类别判定方法
CN106650453A (zh) * 2016-12-30 2017-05-10 北京启明星辰信息安全技术有限公司 一种检测方法和装置
CN106778266A (zh) * 2016-11-24 2017-05-31 天津大学 一种基于机器学习的安卓恶意软件动态检测方法
CN106874761A (zh) * 2016-12-30 2017-06-20 北京邮电大学 一种安卓系统恶意应用检测方法及系统
CN106897621A (zh) * 2017-03-03 2017-06-27 努比亚技术有限公司 一种恶意文件的检测方法及系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004151863A (ja) 2002-10-29 2004-05-27 Sony Corp 自動ログインシステム、自動ログイン方法、自動ログインプログラム、及び記憶媒体
US7457823B2 (en) 2004-05-02 2008-11-25 Markmonitor Inc. Methods and systems for analyzing data related to possible online fraud
EP1879124A1 (en) 2006-06-15 2008-01-16 Deutsche Telekom AG Improved method and system for detecting malicious behavioral patterns in a computer, using machine leaning
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
JP5904616B2 (ja) 2011-12-16 2016-04-13 インテル・コーポレーション リモートサーバーに対するセキュアなユーザ認証および証明
US9288220B2 (en) 2013-11-07 2016-03-15 Cyberpoint International Llc Methods and systems for malware detection
KR102450834B1 (ko) 2016-01-04 2022-10-05 한국전자통신연구원 다중 특징벡터를 이용하는 행위기반 악성코드 탐지 장치 및 방법
US10796220B2 (en) * 2016-05-24 2020-10-06 Marvell Asia Pte, Ltd. Systems and methods for vectorized FFT for multi-dimensional convolution operations

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106529293A (zh) * 2016-11-09 2017-03-22 东巽科技(北京)有限公司 一种用于恶意软件检测的样本类别判定方法
CN106778266A (zh) * 2016-11-24 2017-05-31 天津大学 一种基于机器学习的安卓恶意软件动态检测方法
CN106650453A (zh) * 2016-12-30 2017-05-10 北京启明星辰信息安全技术有限公司 一种检测方法和装置
CN106874761A (zh) * 2016-12-30 2017-06-20 北京邮电大学 一种安卓系统恶意应用检测方法及系统
CN106897621A (zh) * 2017-03-03 2017-06-27 努比亚技术有限公司 一种恶意文件的检测方法及系统

Also Published As

Publication number Publication date
JP2019057268A (ja) 2019-04-11
EP3432186A1 (en) 2019-01-23
EP3432186B1 (en) 2020-02-05
US20190018960A1 (en) 2019-01-17
US10795996B2 (en) 2020-10-06
JP6636096B2 (ja) 2020-01-29
CN109271780A (zh) 2019-01-25

Similar Documents

Publication Publication Date Title
CN109271780B (zh) 机器学习恶意软件检测模型的方法、系统和计算机可读介质
CN109684836B (zh) 使用经训练的机器学习模型检测恶意文件的系统和方法
RU2679785C1 (ru) Система и способ классификации объектов
US11403396B2 (en) System and method of allocating computer resources for detection of malicious files
CN109684835B (zh) 使用机器学习来检测恶意文件的系统和方法
RU2739865C2 (ru) Система и способ обнаружения вредоносного файла
RU2654151C1 (ru) Система и способ обнаружения вредоносных файлов с использованием обученной модели обнаружения вредоносных файлов
CN109684072B (zh) 基于机器学习模型管理用于检测恶意文件的计算资源的系统和方法
CN111382430A (zh) 用于对计算机系统的对象进行分类的系统和方法
RU2624552C2 (ru) Способ обнаружения вредоносных файлов, исполняемых с помощью стековой виртуальной машины
RU2673708C1 (ru) Система и способ машинного обучения модели обнаружения вредоносных файлов

Legal Events

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