CN112041815B - 恶意软件检测 - Google Patents

恶意软件检测 Download PDF

Info

Publication number
CN112041815B
CN112041815B CN201980028650.8A CN201980028650A CN112041815B CN 112041815 B CN112041815 B CN 112041815B CN 201980028650 A CN201980028650 A CN 201980028650A CN 112041815 B CN112041815 B CN 112041815B
Authority
CN
China
Prior art keywords
overlay
executable
received
model
executable file
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
CN201980028650.8A
Other languages
English (en)
Other versions
CN112041815A (zh
Inventor
A·芬克尔施泰因
E·梅纳赫姆
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN112041815A publication Critical patent/CN112041815A/zh
Application granted granted Critical
Publication of CN112041815B publication Critical patent/CN112041815B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/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/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Image Analysis (AREA)

Abstract

一种用于在计算机***中识别恶意软件的计算机实现的方法包括:接收标记为恶意或良性的多个可执行文件,使用从与所述多个接收的标记的可执行文件中的每个相关联的覆盖中提取的属性来训练机器学习模型,接收未标记的可执行文件,使用所述训练的机器学习模型基于从与所接收的未标记的可执行文件相关联的覆盖中提取的属性来确定所接收的未标记的可执行文件是恶意的或良性的,以及当确定所接收的未标记的可执行文件是恶意的时,传输将所接收的未标记的可执行文件识别为恶意的信息。

Description

恶意软件检测
技术领域
本发明涉及用于通过对可执行文件的覆盖执行静态分析来检测恶意可执行文件的技术。
背景技术
恶意文件(恶意软件)对私人用户和组织造成很大的风险。近年来,随着恶意软件样本数量的增长以及恶意软件伪装技术的不断改进,检测恶意软件的任务已经成为一个主要问题。
当前恶意可执行程序使用多种多样的技术来规避反病毒***(AV)的检测。这些技术,例如代码打包、多态性、元形态、加密等,通常“原地”执行,即对恶意文件的在文件开始执行时加载到存储器的部分执行。检测这种恶意代码的现有机制以高效率和概率执行,从而使得这种攻击更难以成功。因此,恶意软件已经发展到试图在执行文件时未加载到存储器的文件部分中隐藏恶意有效载荷,即,在不期望恶意有效载荷的地方。在将其“良性”内容加载到存储器之后,此类恶意软件将从其它源加载其恶意内容,因此逃避现有防御机制。执行这种难以捉摸的技术的最流行的技术之一是通过将恶意有效载荷作为文件的覆盖来附加。
可执行文件的覆盖可以被定义为对文件的添加,该添加不在其头部声明。因此,在文件中没有关于覆盖的存在或内容的信息。当执行文件时,不将覆盖加载到存储器中。然而,通过简单的编程,可以进行“良性”运行过程以读取覆盖的恶意内容并且在运行时将其加载到计算机的主存储器中。这种代码加载过程固有地不同于常规文件执行,使得现有的现代AV的检测机制可能不会检测到诸如恶意的动作。此外,向现有的良性代码添加覆盖是相对容易的,因为覆盖可以被附加到任何可执行文件而不破坏其电子签名机制。签名机制使得能够验证“有问题的”可执行文件“创建者的起源或名称。
尽管该覆盖可能被恶意软件作者使用,但仅仅是覆盖本身并不能“定罪”文件。在良性软件中存在可执行文件的覆盖的合法使用。例如,当需要将数据添加到程序而不添加额外文件时,这可能是有用的。因此,现有技术没有充分地解决检测可执行文件的覆盖中存在的恶意内容的问题。
需要用于检测可执行文件的覆盖中存在的恶意软件的技术。
发明内容
本***和方法的实施例可以基于可执行文件的覆盖来检测恶意可执行文件,这提供了对当前技术的改进。在实施例中,可以通过提取文件的覆盖(如果存在的话)、分析覆盖、以及使用分析来确定关于覆盖的不同属性,来分析可疑可执行文件。这些属性(可能具有文件的其它属性)可被传递到分类器,该分类器将决定该文件是恶意的还是良性的。
例如,在一个实施例中,用于识别计算机***中的恶意软件的计算机实现的方法可以包括:接收标记为恶意或良性的多个可执行文件,使用从与所述多个接收的标记的可执行文件中的每个相关联的覆盖中提取的属性来训练机器学习模型,接收未标记的可执行文件,使用所述训练的机器学习模型基于从与所接收的未标记的可执行文件相关联的覆盖中提取的属性来确定所接收的未标记的可执行文件是恶意的或良性的,以及当确定所接收的未标记的可执行文件是恶意的时,传输将所接收的未标记的可执行文件识别为恶意的信息。
在实施例中,所提取的属性包含选自包括基本覆盖属性、所述可执行文件、所述覆盖或两者的数据块的统计内容属性、深度内容属性和其它属性的群组的至少一个属性,所述基本覆盖属性包含所述覆盖的存在、所述覆盖的大小和所述覆盖的所述大小与所述可执行文件的大小之间的比率中的至少一者,所述深度内容属性表征所述覆盖的内容,包含在所述覆盖中发现的URL、域和IP地址的声誉、在所述覆盖的二进制代码中发现的签名或指纹,和所述覆盖的可读内容的文本分析中的至少一者,所述其它属性基于已被修改或适用于覆盖分析的文件分析技术,这些技术包含所述覆盖的N元语法。机器学习模型可以包括选自包括监督学习模型的组的至少一个模型,所述监督学习模型包括分类器模型、神经网络模型、贝叶斯模型、决策树模型、支持向量机模型和包括聚类模型和神经网络模型的非监督学习模型。可以通过静态分析从所述覆盖提取所述属性并且当所述可执行文件和覆盖未被执行时检查它们。所接收的可执行文件可以是从包括web浏览器、电子邮件消息和文件***中的至少一个的源接收的。所述覆盖可以是便携式可执行文件,并且所述确定是通过与对所接收的可执行文件的其它部分的任何分析分开地分析所述覆盖来执行的。
在一个实施例中,一种用于在计算机***中识别恶意软件的***可以包括处理器、可由处理器访问的存储器、以及存储在存储器中并且可由处理器执行以执行以下操作的计算机程序指令:接收标记为恶意或良性的多个可执行文件,使用从与所述多个接收的标记的可执行文件中的每个相关联的覆盖中提取的属性来训练机器学习模型,接收未标记的可执行文件,使用所述训练的机器学习模型基于从与所接收的未标记的可执行文件相关联的覆盖中提取的属性来确定所接收的未标记的可执行文件是恶意的或良性的,以及当确定所接收的未标记的可执行文件是恶意的时,传输将所接收的未标记的可执行文件识别为恶意的信息。
在一个实施例中,一种用于在计算机***中识别恶意软件的计算机程序产品可以包括非暂时性计算机可读存储装置,所述非暂时性计算机可读存储装置具有随其体现的程序指令,所述程序指令可由计算机执行以使所述计算机执行一种方法,所述方法包括:接收标记为恶意或良性的多个可执行文件,使用从与所述多个接收的标记的可执行文件中的每个相关联的覆盖中提取的属性来训练机器学习模型,接收未标记的可执行文件,使用所述训练的机器学习模型基于从与所接收的未标记的可执行文件相关联的覆盖中提取的属性来确定所接收的未标记的可执行文件是恶意的或良性的,以及当确定所接收的未标记的可执行文件是恶意的时,传输将所接收的未标记的可执行文件识别为恶意的信息。
附图说明
通过参考附图,可以最好地理解本发明的关于其结构和操作的细节,在附图中,相同的附图标记和名称表示相同的元件。
图1示出了其中可以实现本***和方法的技术的***的示例性框图。
图2是训练阶段过程的实施例的示例性流程图。
图3是操作阶段过程的实施例的示例性流程图。
图4是可由图2和3所示的过程提取的属性的类别的示例性示图。
图5是其中可以实现在此描述的实施例中涉及的过程的计算机***的示例性框图。
具体实施方式
本***和方法的实施例可检测存在于可执行文件的覆盖中的恶意内容,这提供了对当前技术的改进。在实施例中,可以通过提取文件的覆盖(如果存在的话)、分析覆盖、以及使用分析来确定关于覆盖的不同属性,来分析可疑可执行文件。这些属性(可能具有文件的其它属性)可被传递到分类器,该分类器将决定该文件是恶意的还是良性的。
本***和方法的实施例使用基于监督机器学习的自动静态分析。恶意软件检测机制与可执行文件的其它部分分离地分析便携式可执行文件(PE)文件的覆盖。提取可移植-可执行覆盖(即,特征)的属性集,基于这些提取的特征来训练机器学习算法,并且区分良性和恶意软件。
图1示出了可以实现本***和方法的技术的***100的示例性框图,在该示例中,***100包括计算机***102和网络104。通常,计算机***102可以使用一个或多个编程的通用计算机***来实现,诸如个人计算机、智能电话、平板或平板计算机、工作站、服务器***、小型计算机或大型计算机等。网络104通常是因特网,但可以是任何标准或专用、或公共或专用网络。通常,计算机***102 是连接到因特网并由用户操作的***,但是可以使用连接到任何类型的网络的任何类型的计算机***。通常,计算机***102可以例如经由web浏览器、电子邮件服务、文件***等从网络104接收可执行文件106。这样的可执行文件可以包括覆盖108或与其相关联。例如,可执行文件106在被接收时可以包括在文件的头部或其他元数据中未以其他方式引用的覆盖108部分。同样,可执行文件106在被接收时可以不包括覆盖108部分,但是可以从网络104或其他存储设备获得覆盖108,并且可以使得覆盖108被加载到存储器。恶意软件检测***110可以分析可执行文件106和覆盖108,以确定可执行文件106 和/或覆盖108是恶意软件的可能性。
在实施例中,本恶意软件检测技术可以包括两个工作阶段:训练阶段和操作或在线阶段。训练阶段可以包括在标记的恶意和良性文件的语料库上训练分类模型以生成训练的分类器模型112。训练阶段可以在操作阶段之前执行。在操作阶段中,可疑便携式可执行文件的样本可以到达计算机***102,并且经训练的分类器模型112可以用于将样本分类为良性或恶意。
图2示出了本技术中涉及的训练阶段过程200的实施例的示例性流程图,训练阶段过程200可以从202开始,其中训练阶段过程200可以接收已经被标记为恶意或良性的可执行文件。在204,可以分析所接收的可执行文件,并且可以提取或检索任何覆盖部分。在206,可以分析所提取或检索的覆盖以确定可能存在的属性。在实施例中,可以执行静态分析,即,当可执行文件和相关联的覆盖未被执行时,检查它们。在208,可以从覆盖中提取相关的确定的属性。在210 处,机器学习模型可以被训练以使用所提取的属性和标签来识别恶意示例,并且将这样的恶意示例与良性示例区分开。通常,机器学习模型可以是分类器模型,但是可以使用任何机器学习模型。例如,可以使用其它监督学习模型,诸如一些类型的神经网络模型、贝叶斯模型、决策树模型、支持向量机等。同样,尽管可能存在已标记数据,或者另选地,如果存在未标记数据,则可使用无监督学习模型,诸如聚类模型、某些类型的神经网络等。在实施例中,在212,可以提取其他或附加属性并用于训练210机器学习模型。
图3示出了本技术中涉及的操作阶段过程300的示例性流程图。训练阶段过程300可以从302开始,其中操作阶段过程300可以接收将被确定为恶意或良性的可执行文件。在304,可以分析所接收的可执行文件,并且可以提取或检索任何覆盖部分。在306,可以分析所提取或检索的覆盖以确定可能存在的属性。在实施例中,可以执行静态分析,即,当可执行文件和相关联的覆盖未被执行时,检查它们。在308,可以从覆盖中提取相关的确定的属性。在310,机器学***以用于该确定。通常,机器学***。在实施例中,在314,机器学习模型可以提取其他或附加属性并且将其用于分类 310。
图4示出了可以提取的属性400的类别的示例,在该示例中,所示的覆盖属性类别可以包括基本覆盖属性402、统计内容属性 404、深度内容属性406以及与文件分析技术的调整相关的属性。基本覆盖属性404可以包括关于覆盖的简单属性,诸如覆盖的存在(布尔值或真/假值)、覆盖的大小与整个文件的大小之间的比率等。统计内容特性404可以包括将覆盖作为数据块(例如,字节、千字节等)对待,并且对这些块应用统计测量。例如,覆盖的字节分布和覆盖的香农熵可以用于字节块。
深度内容属性406可以表征覆盖的内容。更具体地说,这些属性可反映覆盖封装的内容的类型和关于此内容类型的信息。通常,深度内容属性可以是基于在覆盖中找到的特定数据而生成的覆盖的内容的表征。例如,可以生成在覆盖中找到的URL、域和IP地址的信誉、在二进制代码中找到的签名/指纹、以及可读内容的文本分析。另外,诸如字节n元语法分析等用于提取恶意软件检测的属性的其它技术可被应用于覆盖。文件分析技术408的调整可以包括基于已经被修改或适于覆盖分析的文件分析技术的属性。例如,文件中的“良性”和“恶意”N元语法的术语-频率可被调整为通过以下来进行覆盖分析:1)为所述覆盖内容创建“良性”和“恶意”N元语法的新存储库;以及2)仅针对覆盖本身而非针对整个文件计算术语-频率的属性。例如,n元语法可以是来自给定文本样本的n个二进制项的连续序列,诸如字节、操作码、汇编指令、***调用等。任何其它这样的技术可以被修改或适于重叠分析。示例可以包括交叉/相对熵属性、图像处理属性等。
图5示出了可以实现在此描述的实施例所涉及的过程的计算机***502的示例性框图,计算机***502可以使用一个或多个编程的通用计算机***来实现,例如嵌入式处理器、片上***、个人计算机、工作站、服务器***以及小型计算机或大型计算机,或者在分布式、联网计算环境中实现。计算机***502可以包括一个或多个处理器(CPU)502A-502N、输入/输出电路504、网络适配器506和存储器508。CPU502A-502N执行程序指令以便执行本通信***和方法的功能。通常,CPU502A-502N是一个或多个微处理器,例如处理器 INTELCORE。图5示出了其中计算机***502被实现为单个多处理器计算机***的实施例,其中多个处理器502A-502N共享诸如存储器 508、输入/输出电路504和网络适配器506等***资源。然而,本通信***和方法还包括其中计算机***502被实现为多个联网计算机***的实施例,这些联网计算机***可以是单处理器计算机***、多处理器计算机***、或其混合。
输入/输出电路504提供向计算机***502输入数据或从计算机***502输出数据的能力。例如,输入/输出电路可以包括诸如键盘、鼠标、触摸板、轨迹球、扫描仪、模数转换器等的输入设备,诸如视频适配器、监视器、打印机等的输出设备,以及诸如调制解调器等的输入/输出设备。网络适配器506将设备500与网络510接口。网络510可以是任何公共或专有LAN或WAN,包括但不限于因特网。
存储器508存储由CPU 502执行的程序指令和由其使用和处理的数据,以执行计算机***502的功能。存储器508可以包括例如电子存储器设备,诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、闪存等,以及机电存储器,诸如磁盘驱动器、磁带驱动器、光盘驱动器等,其可以使用集成驱动电子(IDE)接口,或者其变型或增强,诸如增强IDE(EIDE)或超直接存储器存取(UDMA),或者基于小型计算机***接口(SCSI)的接口,或者其变型或增强,诸如快速SCSI、宽SCSI、快速和宽SCSI等,串行或高级技术附件(SATA),或者其变型或增强,或者光纤通道仲裁环路(FC-AL)接口。
存储器508的内容可以根据计算机***502被编程以执行的功能而变化。在图5所示的示例中,示出了代表用于描述上述过程的实施例的例程和数据的示例性存储器内容。然而,本领域技术人员将认识到,这些例程以及与这些例程相关的存储器内容可以不包括在一个***或设备上,而是可以基于公知的工程考虑而分布在多个***或设备之间。本通信***和方法可以包括任何和所有这样的布置。
在图5所示的示例中,存储器508可以包括覆盖提取例程 512、属性分析和提取例程514、模型训练例程516、覆盖分类例程518、决策例程520、模型数据522和操作***524。覆盖提取例程512可以包括软件例程,以分析所接收的可执行文件,并且提取或检索任何相关联的覆盖部分。属性分析和提取例程514可以包括软件例程,用于分析所提取或检索的覆盖以确定可能存在的属性,并且从覆盖中提取相关的所确定的属性。模型训练例程516可以包括软件例程,用于训练机器学***。模型数据522可以包括定义机器学习模型的结构的数据以及实现经训练的机器学习模型的数据。操作***520可以提供整体***功能。
如图5所示,本通信***和方法可以包括在提供多处理器、多任务、多进程和/或多线程计算的一个或多个***上的实现,以及在仅提供单处理器、单线程计算的***上的实现。多处理器计算涉及使用多于一个处理器来执行计算。多任务计算涉及使用多于一个操作***任务来执行计算。任务是操作***概念,其指的是正被执行的程序和操作***所使用的簿记信息的组合。无论何时执行程序,操作***都为其创建新任务。该任务类似于程序的信封,因为它用任务号来标识该程序并向其附加其它簿记信息。许多操作***,包括Linux、OS/2 和Windows,能够同时运行许多任务,并且被称为多任务操作***。多任务是操作***同时执行多于一个可执行程序的能力。每个可执行程序在其自己的地址空间中运行,这意味着可执行程序无法共享其存储器中的任何一个。这具有优点,因为任何程序不可能损坏在***上运行的任何其它程序的执行。然而,除了通过操作***(或通过读取存储在文件***上的文件)之外,程序无法交换任何信息。多进程计算类似于多任务计算,因为术语任务和进程经常可互换地使用,尽管一些操作***在两者之间进行区分。
本发明可以是任何可能的技术细节集成水平的***、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。
计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如“C”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
在此参考根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/ 或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的***、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的***来实现。
尽管已经描述了本发明的具体实施例,但是本领域技术人员将理解,存在与所描述的实施例等同的其它实施例。因此,应当理解,本发明不受具体示出的实施例的限制,而仅由所附权利要求的范围限制。

Claims (18)

1.一种用于在计算机***中识别恶意软件的计算机实现的方法,包括:
接收标记为恶意或良性的多个可执行文件,其中所述多个可执行文件中的至少一些不包括覆盖部分但是从网络或存储设备获得覆盖;
使用从与所述多个接收的标记的可执行文件中的每个相关联的覆盖中提取的属性来训练机器学习模型;
接收未标记的可执行文件,所述可执行文件包括在所述可执行文件的头部或其他元数据中未引用的覆盖部分;
使用所述训练的机器学习模型基于从与所接收的未标记的可执行文件相关联的覆盖中提取的属性来确定所接收的未标记的可执行文件是恶意的或良性的;以及
当确定所接收的未标记的可执行文件是恶意的时,传输将所接收的未标记的可执行文件识别为恶意的信息。
2.如权利要求1所述的方法,其中所提取的属性包含选自包括基本覆盖属性、所述可执行文件、所述覆盖或两者的数据块的统计内容属性、深度内容属性和其它属性的群组的至少一个属性,所述基本覆盖属性包含所述覆盖的存在、所述覆盖的大小和所述覆盖的所述大小与所述可执行文件的大小之间的比率中的至少一者,所述深度内容属性表征所述覆盖的内容,包含在所述覆盖中发现的URL、域和IP地址的声誉、在所述覆盖的二进制代码中发现的签名或指纹,和所述覆盖的可读内容的文本分析中的至少一者,所述其它属性基于已被修改或适用于覆盖分析的文件分析技术,这些技术包含所述覆盖的N元语法。
3.如权利要求1所述的方法,其中所述机器学习模型包括选自包括监督学习模型的组的至少一个模型,所述监督学习模型包括分类器模型、神经网络模型、贝叶斯模型、决策树模型、支持向量机模型和包括聚类模型和神经网络模型的非监督学习模型。
4.如权利要求1所述的方法,其中通过静态分析从所述覆盖提取所述属性,其中当所述可执行文件和覆盖未被执行时检查它们。
5.如权利要求1所述的方法,其中所接收的可执行文件是从包括web浏览器、电子邮件消息和文件***中的至少一个的源接收的。
6.如权利要求1所述的方法,其中所述覆盖是便携式可执行文件,并且所述确定是通过与对所接收的可执行文件的其它部分的任何分析分开地分析所述覆盖来执行的。
7.一种用于识别计算机***中的恶意软件的***,所述***包括处理器、可由所述处理器访问的存储器、以及存储在所述存储器中并且可由所述处理器执行以执行以下操作的计算机程序指令:
接收标记为恶意或良性的多个可执行文件,其中所述多个可执行文件中的至少一些不包括覆盖部分但是从网络或存储设备获得覆盖;
使用从与所述多个接收的标记的可执行文件中的每个相关联的覆盖中提取的属性来训练机器学习模型;
接收未标记的可执行文件,所述可执行文件包括在所述可执行文件的头部或其他元数据中未引用的覆盖部分;
使用所述训练的机器学习模型基于从与所接收的未标记的可执行文件相关联的覆盖中提取的属性来确定所接收的未标记的可执行文件是恶意的或良性的;以及
当确定所接收的未标记的可执行文件是恶意的时,传输将所接收的未标记的可执行文件识别为恶意的信息。
8.如权利要求7所述的***,其中所提取的属性包含选自包括基本覆盖属性、所述可执行文件、所述覆盖或两者的数据块的统计内容属性、深度内容属性和其它属性的群组的至少一个属性,所述基本覆盖属性包含所述覆盖的存在、所述覆盖的大小和所述覆盖的所述大小与所述可执行文件的大小之间的比率中的至少一者,所述深度内容属性表征所述覆盖的内容,包含在所述覆盖中发现的URL、域和IP地址的声誉、在所述覆盖的二进制代码中发现的签名或指纹,和所述覆盖的可读内容的文本分析中的至少一者,所述其它属性基于已被修改或适用于覆盖分析的文件分析技术,这些技术包含所述覆盖的N元语法。
9.如权利要求7所述的***,其中所述机器学习模型包括选自包括监督学习模型的组的至少一个模型,所述监督学习模型包括分类器模型、神经网络模型、贝叶斯模型、决策树模型、支持向量机模型和包括聚类模型和神经网络模型的非监督学习模型。
10.如权利要求7所述的***,其中通过静态分析从所述覆盖提取所述属性,其中当所述可执行文件和覆盖未被执行时检查它们。
11.如权利要求7所述的***,其中所接收的可执行文件是从包括web浏览器、电子邮件消息和文件***中的至少一个的源接收的。
12.如权利要求7所述的***,其中所述覆盖是便携式可执行文件,并且所述确定是通过与对所接收的可执行文件的其它部分的任何分析分开地分析所述覆盖来执行的。
13.一种用于在计算机***中识别恶意软件的计算机程序产品,所述计算机程序产品包括非暂时性计算机可读存储装置,所述非暂时性计算机可读存储装置具有随其体现的程序指令,所述程序指令可由计算机执行以使所述计算机执行包括以下步骤的方法:
接收标记为恶意或良性的多个可执行文件,其中所述多个可执行文件中的至少一些不包括覆盖部分但是从网络或存储设备获得覆盖;
使用从与所述多个接收的标记的可执行文件中的每个相关联的覆盖中提取的属性来训练机器学习模型;
接收未标记的可执行文件,所述可执行文件包括在所述可执行文件的头部或其他元数据中未引用的覆盖部分;
使用所述训练的机器学习模型基于从与所接收的未标记的可执行文件相关联的覆盖中提取的属性来确定所接收的未标记的可执行文件是恶意的或良性的;以及
当确定所接收的未标记的可执行文件是恶意的时,传输将所接收的未标记的可执行文件识别为恶意的信息。
14.如权利要求13所述的计算机程序产品,其中所提取的属性包含选自包括基本覆盖属性、所述可执行文件、所述覆盖或两者的数据块的统计内容属性、深度内容属性和其它属性的群组的至少一个属性,所述基本覆盖属性包含所述覆盖的存在、所述覆盖的大小和所述覆盖的所述大小与所述可执行文件的大小之间的比率中的至少一者,所述深度内容属性表征所述覆盖的内容,包含在所述覆盖中发现的URL、域和IP地址的声誉、在所述覆盖的二进制代码中发现的签名或指纹,和所述覆盖的可读内容的文本分析中的至少一者,所述其它属性基于已被修改或适用于覆盖分析的文件分析技术,这些技术包含所述覆盖的N元语法。
15.如权利要求13所述的计算机程序产品,其中所述机器学习模型包括选自包括监督学习模型和非监督学习模型的组的至少一个模型,所述监督学习模型包括分类器模型、神经网络模型、贝叶斯模型、决策树模型、支持向量机模型和包括聚类模型和神经网络模型的非监督学习模型。
16.如权利要求13所述的计算机程序产品,其中通过静态分析从所述覆盖提取所述属性,其中当所述可执行文件和覆盖未被执行时检查它们。
17.如权利要求13所述的计算机程序产品,其中所接收的可执行文件是从包括web浏览器、电子邮件消息和文件***中的至少一个的源接收的。
18.如权利要求13所述的计算机程序产品,其中所述覆盖是便携式可执行文件,并且所述确定是通过与对所接收的可执行文件的其它部分的任何分析分开地分析所述覆盖来执行的。
CN201980028650.8A 2018-05-15 2019-04-24 恶意软件检测 Active CN112041815B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/979,496 2018-05-15
US15/979,496 US10846403B2 (en) 2018-05-15 2018-05-15 Detecting malicious executable files by performing static analysis on executable files' overlay
PCT/IB2019/053379 WO2019220241A1 (en) 2018-05-15 2019-04-24 Malware detection

Publications (2)

Publication Number Publication Date
CN112041815A CN112041815A (zh) 2020-12-04
CN112041815B true CN112041815B (zh) 2024-06-11

Family

ID=68533620

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980028650.8A Active CN112041815B (zh) 2018-05-15 2019-04-24 恶意软件检测

Country Status (6)

Country Link
US (1) US10846403B2 (zh)
JP (1) JP7300804B2 (zh)
CN (1) CN112041815B (zh)
DE (1) DE112019001121B4 (zh)
GB (1) GB2586195A (zh)
WO (1) WO2019220241A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11636208B2 (en) * 2019-07-19 2023-04-25 Palo Alto Networks, Inc. Generating models for performing inline malware detection
US11374946B2 (en) * 2019-07-19 2022-06-28 Palo Alto Networks, Inc. Inline malware detection
CN110917626A (zh) * 2019-11-29 2020-03-27 武汉极意网络科技有限公司 基于机器学习的游戏盗量监督方法和装置
US11550911B2 (en) 2020-01-31 2023-01-10 Palo Alto Networks, Inc. Multi-representational learning models for static analysis of source code
US11615184B2 (en) 2020-01-31 2023-03-28 Palo Alto Networks, Inc. Building multi-representational learning models for static analysis of source code
CN111444507B (zh) * 2020-06-15 2020-11-03 鹏城实验室 加壳软件是否误报的判定方法、装置、设备及存储介质
CN113837210A (zh) * 2020-06-23 2021-12-24 腾讯科技(深圳)有限公司 小程序分类方法、装置、设备及计算机可读存储介质
US11743286B2 (en) * 2021-01-29 2023-08-29 Palo Alto Networks, Inc. Combination rule mining for malware signature generation
CN113516162A (zh) * 2021-04-26 2021-10-19 湖南大学 一种基于OCSVM和K-means算法的工控***流量异常检测方法与***
CN115080974B (zh) * 2022-08-17 2022-11-08 杭州安恒信息技术股份有限公司 一种恶意pe文件检测方法、装置、设备及介质
CN116305172B (zh) * 2023-05-23 2023-08-04 北京安天网络安全技术有限公司 OneNote文档的检测方法、装置、介质及设备
US12013945B1 (en) 2023-10-27 2024-06-18 Morgan Stanley Services Group Inc. Fraudulent overlay detection in electronic documents

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101753570A (zh) * 2008-12-18 2010-06-23 赛门铁克公司 用于检测恶意软件的方法和***
JP2016206950A (ja) * 2015-04-22 2016-12-08 日本電信電話株式会社 マルウェア判定のための精査教師データ出力装置、マルウェア判定システム、マルウェア判定方法およびマルウェア判定のための精査教師データ出力プログラム
US9613210B1 (en) * 2013-07-30 2017-04-04 Palo Alto Networks, Inc. Evaluating malware in a virtual machine using dynamic patching

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7487544B2 (en) 2001-07-30 2009-02-03 The Trustees Of Columbia University In The City Of New York System and methods for detection of new malicious executables
US8479174B2 (en) * 2006-04-05 2013-07-02 Prevx Limited Method, computer program and computer for analyzing an executable computer file
US8341744B1 (en) * 2006-12-29 2012-12-25 Symantec Corporation Real-time behavioral blocking of overlay-type identity stealers
US20100146589A1 (en) * 2007-12-21 2010-06-10 Drivesentry Inc. System and method to secure a computer system by selective control of write access to a data storage medium
IL191744A0 (en) 2008-05-27 2009-02-11 Yuval Elovici Unknown malcode detection using classifiers with optimal training sets
US8356354B2 (en) 2009-11-23 2013-01-15 Kaspersky Lab, Zao Silent-mode signature testing in anti-malware processing
RU2487405C1 (ru) * 2011-11-24 2013-07-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ для исправления антивирусных записей
US9292688B2 (en) 2012-09-26 2016-03-22 Northrop Grumman Systems Corporation System and method for automated machine-learning, zero-day malware detection
RU2635271C2 (ru) * 2015-03-31 2017-11-09 Закрытое акционерное общество "Лаборатория Касперского" Способ категоризации сборок и зависимых образов
US10599844B2 (en) 2015-05-12 2020-03-24 Webroot, Inc. Automatic threat detection of executable files based on static data analysis
US9367686B1 (en) * 2015-07-21 2016-06-14 AO Kaspersky Lab System and method for antivirus checking of native images of software assemblies
WO2017126786A1 (ko) 2016-01-19 2017-07-27 삼성전자 주식회사 악성 코드 분석을 위한 전자 장치 및 이의 방법
RU2625053C1 (ru) * 2016-07-29 2017-07-11 Акционерное общество "Лаборатория Касперского" Устранение ложных срабатываний антивирусных записей
EP3635603A4 (en) * 2017-05-30 2021-03-03 Cyemptive Technologies, Inc. REAL TIME DETECTION AND PROTECTION AGAINST MALWARE AND STEGANOGRAPHY IN ONE CORE MODE
CN107992745A (zh) * 2017-11-29 2018-05-04 暨南大学 一种基于安卓平台的界面劫持应对方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101753570A (zh) * 2008-12-18 2010-06-23 赛门铁克公司 用于检测恶意软件的方法和***
US9613210B1 (en) * 2013-07-30 2017-04-04 Palo Alto Networks, Inc. Evaluating malware in a virtual machine using dynamic patching
JP2016206950A (ja) * 2015-04-22 2016-12-08 日本電信電話株式会社 マルウェア判定のための精査教師データ出力装置、マルウェア判定システム、マルウェア判定方法およびマルウェア判定のための精査教師データ出力プログラム

Also Published As

Publication number Publication date
JP2021523434A (ja) 2021-09-02
WO2019220241A1 (en) 2019-11-21
GB202018989D0 (en) 2021-01-13
US20190354682A1 (en) 2019-11-21
US10846403B2 (en) 2020-11-24
DE112019001121T5 (de) 2020-11-19
CN112041815A (zh) 2020-12-04
DE112019001121B4 (de) 2022-08-04
GB2586195A (en) 2021-02-10
JP7300804B2 (ja) 2023-06-30

Similar Documents

Publication Publication Date Title
CN112041815B (zh) 恶意软件检测
US10956477B1 (en) System and method for detecting malicious scripts through natural language processing modeling
RU2614557C2 (ru) Система и способ обнаружения вредоносных файлов на мобильных устройствах
US11188650B2 (en) Detection of malware using feature hashing
US9083729B1 (en) Systems and methods for determining that uniform resource locators are malicious
Nissim et al. Detection of malicious PDF files and directions for enhancements: A state-of-the art survey
US8561193B1 (en) Systems and methods for analyzing malware
Gao et al. Malware classification for the cloud via semi-supervised transfer learning
US8631498B1 (en) Techniques for identifying potential malware domain names
Mehtab et al. AdDroid: rule-based machine learning framework for android malware analysis
US11025649B1 (en) Systems and methods for malware classification
US11580222B2 (en) Automated malware analysis that automatically clusters sandbox reports of similar malware samples
US10621343B1 (en) Generic and static detection of malware installation packages
US11295013B2 (en) Dimensionality reduction based on functionality
JP5715693B2 (ja) マルウェア検出に使用するカスタマイズされた信頼帯を作成するシステム及び方法
US20140150101A1 (en) Method for recognizing malicious file
US11580220B2 (en) Methods and apparatus for unknown sample classification using agglomerative clustering
US11916937B2 (en) System and method for information gain for malware detection
US11574054B2 (en) System, method and apparatus for malicious software detection
Carlin et al. Dynamic analysis of malware using run-time opcodes
US10678917B1 (en) Systems and methods for evaluating unfamiliar executables
Agrawal et al. Android malware detection using machine learning
CN110866257A (zh) 木马检测方法及装置、电子设备、存储介质
CN112231696B (zh) 恶意样本的识别方法、装置、计算设备以及介质
US9646157B1 (en) Systems and methods for identifying repackaged files

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