CN113961919B - 恶意软件检测方法和装置 - Google Patents

恶意软件检测方法和装置 Download PDF

Info

Publication number
CN113961919B
CN113961919B CN202011542065.0A CN202011542065A CN113961919B CN 113961919 B CN113961919 B CN 113961919B CN 202011542065 A CN202011542065 A CN 202011542065A CN 113961919 B CN113961919 B CN 113961919B
Authority
CN
China
Prior art keywords
file
type
feature
executable
identification
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
CN202011542065.0A
Other languages
English (en)
Other versions
CN113961919A (zh
Inventor
赵毅强
王志刚
刘恒
白子潘
齐向东
吴云坤
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.)
Qianxin Technology Group Co Ltd
Secworld Information Technology Beijing Co Ltd
Original Assignee
Qianxin Technology Group Co Ltd
Secworld Information Technology Beijing Co Ltd
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 Qianxin Technology Group Co Ltd, Secworld Information Technology Beijing Co Ltd filed Critical Qianxin Technology Group Co Ltd
Priority to CN202011542065.0A priority Critical patent/CN113961919B/zh
Publication of CN113961919A publication Critical patent/CN113961919A/zh
Application granted granted Critical
Publication of CN113961919B publication Critical patent/CN113961919B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Stored Programmes (AREA)

Abstract

本公开提供了一种恶意软件检测方法,包括:获取待检测软件的可执行文件;对所述可执行文件进行基于构建手段特征的文件类型识别,以确定所述可执行文件所属的目标文件类型;利用针对所述目标文件类型的预设恶意软件检测模型,识别所述待检测软件是否为恶意软件。本公开还提供了一种恶意软件检测装置、一种电子设备以及一种计算机可读存储介质。

Description

恶意软件检测方法和装置
技术领域
本公开涉及网络安全领域,特别是涉及一种恶意软件检测方法、一种恶意软件检测装置、一种电子设备、一种计算机可读存储介质以及一种计算机程序产品。
背景技术
随着计算机技术的迅速发展,网络安全问题得到日益广泛的关注。恶意软件检测是实际防护业务的重要内容之一,恶意软件检测精度和检测效率影响网络安全质量。
在实现本公开技术构思过程中,发明人发现相关技术多采用机器学习模型直接分析PE(Portable Executable,可移植可执行)文件并实施检测,该种恶意软件检测方式存在检测结果不稳定、检测效率低的缺陷。
发明内容
本公开的一个方面提供了一种恶意软件检测方法,包括:获取待检测软件的可执行文件;对所述可执行文件进行基于构建手段特征的文件类型识别,以确定所述可执行文件所属的目标文件类型;利用针对所述目标文件类型的预设恶意软件检测模型,识别所述待检测软件是否为恶意软件。
可选地,所述对所述可执行文件进行基于构建手段特征的文件类型识别,以确定所述可执行文件所属的目标文件类型,包括:对所述可执行文件进行基于固定位置的特征识别处理,得到用于指示所述构建手段特征的第一识别结果;基于所述第一识别结果,确定所述目标文件类型。
可选地,所述对所述可执行文件进行基于固定位置的特征识别处理,得到用于指示所述构建手段特征的第一识别结果,包括:解析所述可执行文件的文件头以实现定位预设固定字段;利用与自解压类型关联的预设识别库中针对所述固定字段的特征序列,进行针对所述可执行文件的特征匹配操作,得到所述第一识别结果,其中,所述第一识别结果指示所述可执行文件的自解压类型;所述基于所述第一识别结果,确定所述目标文件类型,包括:将所述第一识别结果指示的所述自解压类型,作为所述目标文件类型。
可选地,所述对所述可执行文件进行基于固定位置的特征识别处理,得到用于指示所述构建手段特征的第一识别结果,还包括:解析所述可执行文件的文件头以实现定位文件入口点;利用与加壳类型关联的预设识别库中针对所述文件入口点的特征序列,进行针对所述可执行文件的特征匹配操作,得到所述第一识别结果,其中,所述第一识别结果指示所述可执行文件的加壳类型;所述基于所述第一识别结果,确定所述目标文件类型,包括:将所述第一识别结果指示的所述加壳类型,作为所述目标文件类型。
可选地,所述对所述可执行文件进行基于构建手段特征的文件类型识别,以确定所述可执行文件所属的目标文件类型,还包括:对所述可执行文件进行基于固定特征的识别处理,得到用于指示所述构建手段特征的第二识别结果;基于所述第二识别结果,确定所述目标文件类型。
可选地,所述对所述可执行文件进行基于固定特征的识别处理,得到用于指示所述构建手段特征的第二识别结果,包括:利用与编译器类型关联的预设固定特征,进行针对所述可执行文件的特征匹配操作,得到第二识别结果,其中,所述第二识别结果指示所述可执行文件的编译器类型;所述基于所述第二识别结果,确定所述目标文件类型,包括:将所述第二识别结果指示的所述编译器类型,作为所述目标文件类型。
可选地,所述恶意软件检测模型的训练方法,包括:获取具有安全性标识的多个可执行样本文件,其中,各所述可执行样本文件的安全性标识为恶意标识或良性标识;对各所述可执行样本文件进行基于构建手段特征的文件类型划分,以确定所述多个可执行样本文件所属的至少一个文件类型;基于确定出的所述至少一个文件类型,利用与各所述文件类型关联的可执行样本文件进行模型训练,得到与各所述文件类型关联的恶意软件检测模型。
本公开的另一方面提供了一种恶意软件检测装置,包括:获取模块,用于获取待检测软件的可执行文件;第一处理模块,用于对所述可执行文件进行基于构建手段特征的文件类型识别,以确定所述可执行文件所属的目标文件类型;第二处理模块,用于利用针对所述目标文件类型的预设恶意软件检测模型,识别所述待检测软件是否为恶意软件。
可选地,所述第一处理模块包括:第一处理子模块,用于对所述可执行文件进行基于固定位置的特征识别处理,得到用于指示所述构建手段特征的第一识别结果;第二处理子模块,用于基于所述第一识别结果,确定所述目标文件类型。
可选地,所述第一处理子模块包括:第一处理单元,用于解析所述可执行文件的文件头以实现定位预设固定字段;第二处理单元,用于利用与自解压类型关联的预设识别库中针对所述固定字段的特征序列,进行针对所述可执行文件的特征匹配操作,得到所述第一识别结果,其中,所述第一识别结果指示所述可执行文件的自解压类型;所述第二处理子模块包括:第三处理单元,用于将所述第一识别结果指示的所述自解压类型,作为所述目标文件类型。
可选地,所述第一处理子模块还包括:第四处理单元,用于解析所述可执行文件的文件头以实现定位文件入口点;第五处理单元,用于利用与加壳类型关联的预设识别库中针对所述文件入口点的特征序列,进行针对所述可执行文件的特征匹配操作,得到所述第一识别结果,其中,所述第一识别结果指示所述可执行文件的加壳类型;所述第二处理子模块包括:第六处理单元,用于将所述第一识别结果指示的所述加壳类型,作为所述目标文件类型。
可选地,所述第一处理模块还包括:第三处理子模块,用于对所述可执行文件进行基于固定特征的识别处理,得到用于指示所述构建手段特征的第二识别结果;第四处理子模块,用于基于所述第二识别结果,确定所述目标文件类型。
可选地,所述第三处理子模块包括:第七处理单元,用于具体用于利用与编译器类型关联的预设固定特征,进行针对所述可执行文件的特征匹配操作,得到第二识别结果,其中,所述第二识别结果指示所述可执行文件的编译器类型;所述第四处理子模块包括:第八处理单元,用于将所述第二识别结果指示的所述编译器类型,作为所述目标文件类型。
本公开的另一方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本公开实施例的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现本公开实施例的的方法。
本公开的另一方面提供了一种计算机程序产品,包括计算机可读指令,其中,所述计算机可读指令被执行时用于执行本公开实施例的的方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的恶意软件检测方法和装置的系统架构;
图2示意性示出了根据本公开实施例的一种恶意软件检测方法的流程图;
图3A示意性示出了相关技术中的恶意软件检测过程的示意图;
图3B示意性示出了本公开实施例的恶意软件检测过程的示意图;
图4示意性示出了根据本公开实施例的一种文件类型识别方法的示意图;
图5示意性示出了根据本公开实施例的另一文件类型识别方法的示意图;
图6示意性示出了根据本公开实施例的文件类型识别过程的示意图;
图7示意性示出了根据本公开实施例的恶意软件检测装置的框图;以及
图8示意性示出了根据本公开实施例的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性地,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
本公开的实施例提供了一种恶意软件检测方法以及能够应用该方法的检测装置,该方法例如可以包括如下操作。首先,获取待检测软件的可执行文件,对可执行文件进行基于构建手段特征的文件类型识别,以确定可执行文件所属的目标文件类型,然后利用针对目标文件类型的预设恶意软件检测模型,识别待检测软件是否为恶意软件。
图1示意性示出了根据本公开实施例的恶意软件检测方法和装置的系统架构。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该系统架构100包括:至少一个终端(图中示出了多个,如终端101、102、103)、网络104和服务器105。网络104用于在终端(如终端101、102、103)和服务器105之间提供通信链路,网络104可以包括各种连接类型,例如包括无线通信链路、有线通信链路、光纤电缆等。终端可以包括桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理、网络侧设备等安装有软件的电子设备。
在执行本公开实施例的恶意软件检测方法时,获取终端(如终端101、102、103)中待检测软件的可执行文件,对可执行文件进行基于构建手段特征的文件类型识别,以确定可执行文件所属的目标文件类型,然后从服务器105中获取针对目标文件类型的已训练恶意软件检测模型,并利用恶意软件检测模型,识别待检测软件是否为恶意软件。
需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他系统架构。
以下将结合附图和具体实施例详细阐述本公开。
图2示意性示出了根据本公开实施例的一种恶意软件检测方法的流程图。
如图2所示,该方法200可以包括操作S210~S230。
在操作S210,获取待检测软件的可执行文件。
在本实施例中,具体地,获取待检测软件的可执行文件,可执行文件为可由终端操作系统加载执行的文件,在不同操作系统下的可执行文件的表现形式可能不同。示例性地,可以获取待检测软件的PE文件,PE文件例如可以包括exe、dll、ocx、sys、com等文件。
在开发过程中,工程师会因开发需求及自身偏好,使用不同语言的编译器生成不同PE文件,而已有的PE文件又可通过压缩技术或加壳技术成为新的PE文件。因此,不同PE文件可能对应不同构建方法,即不同PE文件可能具有不同构建手段特征。不同PE文件的构建手段特征的区别可能在于构建时所采用的压缩技术类型不同,或者所采用的加壳技术类型不同,或者所使用的编译器类型不同。
接下来,在操作S220,对可执行文件进行基于构建手段特征的文件类型识别,以确定可执行文件所属的目标文件类型。
在本实施例中,具体地,在获取待检测软件的可执行文件后,对可执行文件进行基于构建手段特征的文件类型识别,通过识别可执行文件的构建手段特征,对可执行文件进行基于构建手段的文件类型划分。相同文件类型的可执行文件具有相同的构建手段特征,不同文件类型的可执行文件对应不同构建手段特征。
在进行恶意软件识别时,通常确定软件特征与恶意/非恶意语义之间的映射关系,其中,软件特征包括待检测软件的静态属性特征和动态行为特征。具有不同构建手段特征的可执行文件的表现形式不同,但其所形成的软件特征可能相同。因此,对可执行文件进行基于构建手段特征的文件类型识别,得到用于表征文件构建手段的类型识别结果。识别结果中的相同文件类型对应相同构建手段,相同文件类型的可执行文件具有相同的表现形式。当相同文件类型的不同可执行文件所形成的软件特征不同时,即可排除可执行文件的构建手段对软件特征的影响。
接下来,在操作S230,利用针对目标文件类型的预设恶意软件检测模型,识别待检测软件是否为恶意软件。
在本公开实施例中,具体地,在确定出可执行文件所属的目标文件类型后,利用与目标文件类型关联的已训练恶意软件检测模型,进行针对待检测软件的识别操作,以确定待检测软件是否为恶意软件。恶意软件检测模型与单一文件类型相对应,在针对待检测软件恶意与否识别时,恶意软件检测模型会将软件恶意与否归因至与可执行文件的构建手段无关的其他信息,这有效减少了软件恶意与否检测中的干扰因素。
恶意软件检测模型可以是支持向量机模型,也可以是神经网络模型或者其他模型。恶意软件检测模型的训练方法,包括:获取具有安全性标识的多个可执行样本文件,其中,各可执行样本文件的安全性标识为恶意标识或良性标识;对各可执行样本文件进行基于构建手段特征的文件类型划分,以确定上述多个可执行样本文件所属的至少一个文件类型;基于确定出的至少一个文件类型,利用与各文件类型关联的可执行样本文件进行模型训练,得到与各文件类型关联的恶意软件检测模型。
可执行样本文件可以包括exe类型样本文件、dll类型样本文件、apk类型样本文件等,可执行样本文件的安全性标识包括恶意标识和良性标识。其中,恶意可执行样本文件可以通过病毒资源共享网站获取,良性可执行样本文件可以通过获取网络资料方式获得。如果恶意可执行样本文件数量过少,可以通过上采样/下采样方式扩充样本文件数量,以实现获取足够样本文件参与进行模型训练。
对可执行样本文件进行基于构建手段特征的文件类型划分,实现将可执行样本文件划分至不同文件类型,其中,相同文件类型的可执行样本文件具有相同的构建手段特征,不同文件类型的可执行样本文件具有不同的构建手段特征,构建手段特征描述可执行样本文件的构建方法,具体可以指示可执行样本文件的压缩类型、加壳类型和编译器类型等。
将多个可执行样本文件划分为至少一个文件类型,利用与各文件类型关联的可执行样本文件进行模型训练,得到与各文件类型关联的恶意软件检测模型。即,利用具有相同构建手段特征的可执行样本文件,同时结合可执行样本文件的安全性标识进行模型训练,得到与各文件类型关联的恶意软件检测模型。训练得到的恶意软件检测模型同样用于检测关联文件类型的可执行文件恶意与否,该种设计有利于减少恶意软件检测的干扰因素,有利于提升恶意软件识别结果的稳定性,同时还有利于改善恶意软件检测的检测效率。
通过本实施例,获取待检测软件的可执行文件;对可执行文件进行基于构建手段特征的文件类型识别,以确定可执行文件所属的目标文件类型;利用针对目标文件类型的预设恶意软件检测模型,识别待检测软件是否为恶意软件。在识别待检测软件恶意与否之前,对待检测软件的可执行文件进行基于构建手段特征的文件类型识别,确定可执行文件所属的目标文件类型,以及利用与目标文件类型关联的预设恶意软件检测模型,识别待检测软件是否为恶意软件。通过将软件恶意与否归因至与可执行文件的构建手段无关的其他因素,去除待检测软件恶意与否与可执行文件的构建手段之间的耦合关系,有效减少了恶意软件检测的干扰因素,有利于提升恶意软件识别结果的稳定性,和改善恶意软件识别精度和识别效率。
图3A示意性示出了相关技术中的恶意软件检测过程的示意图,如图3A所示,在该检测过程中,获取待检测软件的可执行文件,利用检测引擎检测可执行文件与恶意语义间是否存在映射关系,是则确定待检测软件为恶意软件。其中,检测引擎可采用已训练的恶意软件检测模型实现,恶意软件检测模型为利用训练数据训练得到的,训练数据为具有安全性标识的样本可执行文件,其中,安全性标识包括恶意标识和良性标识。
图3B示意性示出了本公开实施例的恶意软件检测过程的示意图,如图3B所示,在该检测过程中,获取待检测软件的可执行文件,对可执行文件进行基于构建手段特征的文件类型识别,以确定可执行文件所属的目标文件类型。利用与目标文件类型关联的检测引擎,检测可执行文件与恶意语义间是否存在映射关系,是则确定待检测软件为恶意软件。其中,检测引擎可采用已训练的恶意软件检测模型实现。
在恶意软件检测模型的训练过程中,获取具有安全性标识的训练数据,训练数据为样本可执行文件,安全性标识包括恶意标识和良性标识。对训练数据进行基于构建手段特征的文件类型划分,实现将训练数据划分至n个文件类型,得到训练数据1、训练数据2、...训练数据n,其中,各文件类型对应的训练数据具有相同的构建手段特征。分别利用训练数据1、训练数据2、...训练数据n进行模型训练,得到对应的检测模型1、检测模型2、...检测模型n。
在恶意软件检测阶段,根据待检测软件的可执行文件所属的目标文件类型,如图3B所示,选用与目标文件类型关联的检测模型2进行软件恶意与否识别。该种设计可以去除软件恶意与否与可执行文件的构建手段间的映射关系,通过减少恶意软件检测过程中的干扰因素,有效改善了恶意软件识别结果的稳定性和准确性。
图4示意性示出了根据本公开实施例的一种文件类型识别方法的示意图,如图4所示,方法400例如可以包括操作S410~S420。
在操作S410,对可执行文件进行基于固定位置的特征识别处理,得到用于指示构建手段特征的第一识别结果。
在本实施例中,具体地,对可执行文件进行基于固定位置的特征识别处理,固定位置为可执行文件的完整数据长度中的预设固定字段,不同可执行文件在相同固定位置可能具有不同特征序列。利用可执行文件基于固定位置的特征序列,确定与可执行文件关联的构建手段特征,进而根据可执行文件的构建手段特征确定可执行文件所属的目标文件类型。
在对可执行文件进行基于固定位置的特征识别处理,得到用于指示构建手段特征的第一识别结果时,具体地,解析可执行文件的文件头以实现定位预设固定字段;利用与自解压类型关联的预设识别库中针对固定字段的特征序列,进行针对可执行文件的特征匹配操作,得到第一识别结果,其中,第一识别结果指示可执行文件的自解压类型。
自解压文件为利用压缩工具处理得到的可执行文件,该类型文件内置有自解压程序,因此,可以不必借助压缩工具进行解压,而是通过双击方式执行解压缩,自解压文件通常具有.exe的扩展名。应用软件的可执行文件通常包括执行代码段(通常以.text或code命名)、数据段(通常以.data、.rdata或.bss命名)、资源段(通常以.rsrc命名)、导出表(通常以.edata命名)、导入表(通常以.idata命名)、调试信息段(通常以.debug命名)。可执行文件以64字节DOS头开始,其后是DOS Stub数据,DOS Stub数据为链接器链接执行文件时加入的自定义数据。DOS Stub数据之后为可执行文件的文件头,文件头包括签名字段(Signature字段)、文件头字段(FileHeader字段)和可选头字段(OptionalHeader字段),签名字段指示可执行文件头标识,文件头字段指示可执行文件的物理层意义和文件属性,可选头字段指示可执行文件更多文件属性,例如指示可执行文件的程序执行入口RVA、文件中表的对齐值、映像校验和等信息。
解析可执行文件的文件头以实现定位预设固定字段,固定字段具体可以是可执行文件的附加段或资源段。根据与不同自解压类型关联的特征指令库,即利用与自解压类型关联的预设识别库,进行基于固定字段的特征匹配操作,得到第一识别结果。具体地,将与自解压类型关联的识别库中针对固定字段的特征序列,与可执行文件针对固定字段的特征序列进行匹配,根据匹配结果确定可执行文件的自解压类型。
此外,还可以解析可执行文件的文件头以实现定位文件入口点;利用与加壳类型关联的预设识别库中针对文件入口点的特征序列,进行针对可执行文件的特征匹配操作,得到第一识别结果,其中,第一识别结果指示可执行文件的加壳类型。定位可执行文件的文件入口点的方法可采用现有技术实现,本实施例在此不做赘述。可选地,可以在可执行文件不是自解压类型,或者无法确定可执行文件的自解压类型的情况下,执行确定可执行文件的加壳类型的操作。
由加壳工具执行针对可执行文件的加壳操作,加壳工具以可执行文件为输入,通过对可执行文件进行压缩、加密或其他转换处理,输出一个新的可执行文件。对可执行文件进行加壳的目的常在于缩小软件程序大小,保护软件程序免于被识别或免于被逆向工程分析,例如保护软件程序对抗反汇编、反调试和反虚拟化等。针对可执行文件执行的加壳操作类型可以包括压缩类型与加密类型,压缩类型的加壳操作旨在减小应用软件大小,加密类型的加壳操作则可以提供种类多样侧重各异的不同功能。
解析可执行文件的文件头以实现定位文件入口点,根据与不同加壳类型关联的特征指令库,即利用与加壳类型关联的预设识别库,进行基于文件入口点的特征匹配操作,得到第一识别结果。具体地,将与加壳类型关联的识别库中针对文件入口点的特征序列,与可执行文件在文件入口点处的特征序列进行匹配,根据匹配结果确定可执行文件的加壳类型。
接下来,在操作S420,基于第一识别结果,确定可执行文件所属的目标文件类型。
在本实施例中,具体地,第一识别结果指示可执行文件的构建手段特征,具体指示可执行文件的自解压类型或加壳类型。基于第一识别结果指示的构建手段特征,将可执行文件划分至与该构建手段特征关联的目标文件分类中。
图5示意性示出了根据本公开实施例的另一文件类型识别方法的示意图,如图5所示,方法500例如可以包括操作S510~S520。
在操作S510,对可执行文件进行基于固定特征的识别处理,得到用于指示构建手段特征的第二识别结果。
在本实施例中,具体地,利用与编译器类型关联的预设固定特征,进行针对可执行文件的特征匹配操作,得到第二识别结果,其中,第二识别结果指示可执行文件的编译器类型。编译器分类方式具有多样性,不同编译器分类方式所依据的分类标准不同。常见的编译器分类方式包括按照生成代码所运行的系统平台划分,该种分类方式下的编译器类型可以包括本地编译器、交叉编译器等。常见的编译器分类方式还包括按照编译器所使用的操作语言划分,该种分类方式下的编译器类型可以包括Visual C++、Borland C++、GNU C++、Intel C++等类型。
不同编译器类型对应不同固定特征,利用与不同编译器类型关联的预设固定特征,进行针对可执行文件的特征匹配操作,判断可执行文件中是否包含与某编译器类型关联的固定特征,是则将该编译器类型确定为构建可执行文件时所使用的编译器类型,以此得到第二识别结果。
接下来,在操作S520,基于第二识别结果,确定可执行文件所属的目标文件类型。
在本实施例中,具体地,第二识别结果指示可执行文件的构建手段特征,具体指示可执行文件的编译器类型。基于第二识别结果指示的构建手段特征,将可执行文件划分至针对该构建手段特征的目标文件分类中。可选地,可以在无法确定可执行文件的加壳类型的情况下,执行确定可执行文件的编译器类型的操作。
图6示意性示出了根据本公开实施例的文件类型识别过程的示意图,如图6所示,该识别过程可以包括操作S601~S611。
在操作S601,获取待检测软件的PE文件;
在操作S602,进行针对PE文件的自解压类型识别;
在操作S603,判断是否能够识别PE文件的自解压类型,是则执行操作S604,否则执行操作S605;
在操作S604,对PE文件进行自解压类型命名;
在操作S605,进行针对PE文件的加壳类型识别;
在操作S606,判断是否能够识别PE文件的加壳类型,是则执行操作S607,否则执行操作S608;
在操作S607,对PE文件进行加壳类型命名;
在操作S608,进行针对PE文件的编译器类型识别;
在操作S609,判断是否能够识别PE文件的编译器类型,是则执行操作S610,否则执行操作S611;
在操作S610,对PE文件进行编译器类型命名;
在操作S611,对PE文件进行其他类型命名。
在实际网络安全应用中,可以基于任意一种或任意几种构建手段特征,进行针对可执行文件的文件类型划分,基于任意几种构建手段特征进行文件类型划分的划分顺序可以任意调换,本公开对此不做限定。
图7示意性示出了根据本公开实施例的恶意软件检测装置的框图。
如图7所示,该装置700可以包括获取模块701、第一处理模块702和第二处理模块703。
具体地,获取模块701,用于获取待检测软件的可执行文件;第一处理模块702,用于对可执行文件进行基于构建手段特征的文件类型识别,以确定可执行文件所属的目标文件类型;第二处理模块703,用于利用针对目标文件类型的预设恶意软件检测模型,识别待检测软件是否为恶意软件。
通过本实施例,获取待检测软件的可执行文件;对可执行文件进行基于构建手段特征的文件类型识别,以确定可执行文件所属的目标文件类型;利用针对目标文件类型的预设恶意软件检测模型,识别待检测软件是否为恶意软件。在识别待检测软件恶意与否之前,对待检测软件的可执行文件进行基于构建手段特征的文件类型识别,确定可执行文件所属的目标文件类型,以及利用与目标文件类型关联的预设恶意软件检测模型,识别待检测软件是否为恶意软件。通过将软件恶意与否归因至与可执行文件的构建手段无关的其他因素,去除待检测软件恶意与否与可执行文件的构建手段之间的耦合关系,有效减少了恶意软件检测的干扰因素,有利于提升恶意软件识别结果的稳定性,和改善恶意软件识别精度和识别效率。
作为一种可选的实施例,第一处理模块包括:第一处理子模块,用于对可执行文件进行基于固定位置的特征识别处理,得到用于指示构建手段特征的第一识别结果;第二处理子模块,用于基于第一识别结果,确定目标文件类型。
作为一种可选的实施例,第一处理子模块包括:第一处理单元,用于解析可执行文件的文件头以实现定位预设固定字段;第二处理单元,用于利用与自解压类型关联的预设识别库中针对固定字段的特征序列,进行针对可执行文件的特征匹配操作,得到第一识别结果,其中,第一识别结果指示可执行文件的自解压类型;第二处理子模块包括:第三处理单元,用于将第一识别结果指示的自解压类型,作为目标文件类型。
作为一种可选的实施例,第一处理子模块还包括:第四处理单元,用于解析可执行文件的文件头以实现定位文件入口点;第五处理单元,用于利用与加壳类型关联的预设识别库中针对文件入口点的特征序列,进行针对可执行文件的特征匹配操作,得到第一识别结果,其中,第一识别结果指示可执行文件的加壳类型;第二处理子模块包括:第六处理单元,用于将第一识别结果指示的加壳类型,作为目标文件类型。
作为一种可选的实施例,第一处理模块还包括:第三处理子模块,用于对可执行文件进行基于固定特征的识别处理,得到用于指示构建手段特征的第二识别结果;第四处理子模块,用于基于第二识别结果,确定目标文件类型。
作为一种可选的实施例,第三处理子模块包括:第七处理单元,用于利用与编译器类型关联的预设固定特征,进行针对可执行文件的特征匹配操作,得到第二识别结果,其中,第二识别结果指示可执行文件的编译器类型;第四处理子模块包括:第八处理单元,用于将第二识别结果指示的编译器类型,作为目标文件类型。
需要说明的是,在本公开实施例中,装置部分的实施例方式与方法部分的实施例方式对应类似,并且所达到的技术效果也对应类似,在此不再赘述。
根据本公开的实施例的模块中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者根据本公开实施例的模块中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获取模块701、第一处理模块702和第二处理模块703中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块701、第一处理模块702和第二处理模块703中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块701、第一处理模块702和第二处理模块703中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的电子设备的框图。图8示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800包括处理器810、计算机可读存储介质820。该电子设备800可以执行根据本公开实施例的方法。
具体地,处理器810例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器810还可以包括用于缓存用途的板载存储器。处理器810可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理模块或者是多个处理模块。
计算机可读存储介质820,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质820可以包括计算机程序821,该计算机程序821可以包括代码/计算机可执行指令,其在由处理器810执行时使得处理器810执行根据本公开实施例的方法或其任何变形。
计算机程序821可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序821中的代码可以包括一个或多个程序模块,例如包括821A、模块821B、......。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器810执行时,使得处理器810可以执行根据本公开实施例的方法或其任何变形。
根据本公开的实施例,获取模块701、第一处理模块702和第二处理模块703中的至少一个可以实现为参考图8描述的计算机程序模块,其在被处理器810执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
本公开还提供了一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行本公开实施例所提供的方法的程序代码,当计算机程序产品在电子设备上运行时,该程序代码用于使电子设备实现本公开实施例所提供的恶意软件检测方法。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java、C++、python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

Claims (9)

1.一种恶意软件检测方法,包括:
获取待检测软件的可执行文件;
对所述可执行文件进行基于构建手段特征的文件类型识别,以确定所述可执行文件所属的目标文件类型;
利用针对所述目标文件类型的预设恶意软件检测模型,识别所述待检测软件是否为恶意软件,
所述对所述可执行文件进行基于构建手段特征的文件类型识别,以确定所述可执行文件所属的目标文件类型,包括:
对所述可执行文件进行基于固定位置和/或固定特征的特征识别处理,得到用于指示所述构建手段特征的特征识别结果;
基于所述特征识别结果,确定所述目标文件类型,
其中,基于所述固定位置的特征识别处理包括针对所述可执行文件的文件头或文件入口点的预设特征识别,基于所述固定特征的特征识别处理包括针对与编译器类型关联的预设特征识别。
2.根据权利要求1所述的方法,其中,所述对所述可执行文件进行基于固定位置的特征识别处理,得到用于指示所述构建手段特征的特征识别结果,包括:
解析所述可执行文件的文件头以实现定位预设固定字段;
利用与自解压类型关联的预设识别库中针对所述固定字段的特征序列,进行针对所述可执行文件的特征匹配操作,得到所述特征识别结果,其中,所述特征识别结果指示所述可执行文件的自解压类型;
所述基于所述特征识别结果,确定所述目标文件类型,包括:
将所述特征识别结果指示的所述自解压类型,作为所述目标文件类型。
3.根据权利要求1所述的方法,其中,所述对所述可执行文件进行基于固定位置的特征识别处理,得到用于指示所述构建手段特征的特征识别结果,包括:
解析所述可执行文件的文件头以实现定位文件入口点;
利用与加壳类型关联的预设识别库中针对所述文件入口点的特征序列,进行针对所述可执行文件的特征匹配操作,得到所述特征识别结果,其中,所述特征识别结果指示所述可执行文件的加壳类型;
所述基于所述特征识别结果,确定所述目标文件类型,包括:
将所述特征识别结果指示的所述加壳类型,作为所述目标文件类型。
4.根据权利要求1所述的方法,其中,所述对所述可执行文件进行基于固定特征的识别处理,得到用于指示所述构建手段特征的特征识别结果,包括:
利用与编译器类型关联的预设固定特征,进行针对所述可执行文件的特征匹配操作,得到特征识别结果,其中,所述特征识别结果指示所述可执行文件的编译器类型;
所述基于所述特征识别结果,确定所述目标文件类型,包括:
将所述特征识别结果指示的所述编译器类型,作为所述目标文件类型。
5.根据权利要求1至4中任一项所述的方法,其中,所述恶意软件检测模型的训练方法,包括:
获取具有安全性标识的多个可执行样本文件,其中,各所述可执行样本文件的安全性标识为恶意标识或良性标识;
对各所述可执行样本文件进行基于构建手段特征的文件类型划分,以确定所述多个可执行样本文件所属的至少一个文件类型;
基于确定出的所述至少一个文件类型,利用与各所述文件类型关联的可执行样本文件进行模型训练,得到与各所述文件类型关联的恶意软件检测模型。
6.一种恶意软件检测装置,包括:
获取模块,用于获取待检测软件的可执行文件;
第一处理模块,用于对所述可执行文件进行基于构建手段特征的文件类型识别,以确定所述可执行文件所属的目标文件类型;
第二处理模块,用于利用针对所述目标文件类型的预设恶意软件检测模型,识别所述待检测软件是否为恶意软件,
所述第一处理模块包括第一处理子模块,用于:
对所述可执行文件进行基于固定位置和/或固定特征的特征识别处理,得到用于指示所述构建手段特征的特征识别结果;
基于所述特征识别结果,确定所述目标文件类型,
其中,基于所述固定位置的特征识别处理包括针对所述可执行文件的文件头或文件入口点的预设特征识别,基于所述固定特征的特征识别处理包括针对与编译器类型关联的预设特征识别。
7.一种电子设备,包括:
一个或多个处理器,以及存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至5中任一项所述的方法。
8.一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1至5中任一项所述的方法。
9.一种计算机程序产品,包括计算机可读指令,其中,所述计算机可读指令被执行时用于执行根据权利要求1至5中任一项所述的方法。
CN202011542065.0A 2020-12-23 2020-12-23 恶意软件检测方法和装置 Active CN113961919B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011542065.0A CN113961919B (zh) 2020-12-23 2020-12-23 恶意软件检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011542065.0A CN113961919B (zh) 2020-12-23 2020-12-23 恶意软件检测方法和装置

Publications (2)

Publication Number Publication Date
CN113961919A CN113961919A (zh) 2022-01-21
CN113961919B true CN113961919B (zh) 2023-01-31

Family

ID=79459168

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011542065.0A Active CN113961919B (zh) 2020-12-23 2020-12-23 恶意软件检测方法和装置

Country Status (1)

Country Link
CN (1) CN113961919B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114489787B (zh) * 2022-04-06 2022-07-01 奇安信科技集团股份有限公司 软件成分分析方法、装置、电子设备及存储介质
CN116821902B (zh) * 2023-05-04 2024-02-06 湖北省电子信息产品质量监督检验院 一种基于机器学习的恶意应用检测方法、装置及设备
CN116881913B (zh) * 2023-09-04 2023-11-24 北京安天网络安全技术有限公司 一种阶段式恶意文件检测方法、装置、设备及介质
CN116956295B (zh) * 2023-09-19 2024-01-05 杭州海康威视数字技术股份有限公司 基于文件图谱拟合的安全检测方法、装置及设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170068816A1 (en) * 2015-09-04 2017-03-09 University Of Delaware Malware analysis and detection using graph-based characterization and machine learning
CN106845227B (zh) * 2016-12-27 2019-09-13 哈尔滨安天科技股份有限公司 一种基于ragel状态机的恶意脚本检测方法及系统
CN111382428A (zh) * 2018-12-29 2020-07-07 北京奇虎科技有限公司 恶意软件识别模型训练方法、恶意软件识别方法及装置
CN110210226A (zh) * 2019-06-06 2019-09-06 深信服科技股份有限公司 一种恶意文件检测方法、系统、设备及计算机存储介质

Also Published As

Publication number Publication date
CN113961919A (zh) 2022-01-21

Similar Documents

Publication Publication Date Title
CN113961919B (zh) 恶意软件检测方法和装置
US11687645B2 (en) Security control method and computer system
US8850581B2 (en) Identification of malware detection signature candidate code
US20150229673A1 (en) Apparatus and method for diagnosing malicious applications
US10474479B1 (en) Preventing framework conflicts for multi-OS applications
US9733927B2 (en) Detection of software or hardware incompatibilities in software packages
KR20170068814A (ko) 악성 모바일 앱 감지 장치 및 방법
JP2019053729A (ja) スマートコントラクトのテスト方法及びテスト装置
CN109271789B (zh) 恶意进程检测方法、装置、电子设备及存储介质
US20130096908A1 (en) Employing native routines instead of emulated routines in an application being emulated
US20160011951A1 (en) Techniques for web service black box testing
KR102011725B1 (ko) 악성코드 검출을 위한 화이트리스트 구축 방법 및 이를 수행하기 위한 기록매체 및 장치
CN113312618A (zh) 程序漏洞检测方法、装置、电子设备及介质
CN111427782B (zh) 安卓动态链接库的运行方法、装置、设备及存储介质
US10275595B2 (en) System and method for characterizing malware
US20140137083A1 (en) Instrumenting computer program code by merging template and target code methods
US20230141948A1 (en) Analysis and Testing of Embedded Code
US11983090B2 (en) Setting breakpoints for source code segments enclosed by macros
CN112379967B (zh) 模拟器检测方法、装置、设备及介质
CN114936368A (zh) 一种Java内存木马检测方法、终端设备及存储介质
CN109977669B (zh) 病毒识别方法、装置和计算机设备
US11940870B2 (en) Method and device for automatically detecting potential failures in mobile applications
US11356853B1 (en) Detection of malicious mobile apps
KR20180003226A (ko) 어플리케이션 패키지를 제공하는 방법 및 시스템, 그리고 어플리케이션을 실행하는 방법 및 시스템
CN115421738A (zh) 版本部署方法、装置、电子设备和存储介质

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
CB02 Change of applicant information

Address after: 100044 2nd floor, building 1, yard 26, Xizhimenwai South Road, Xicheng District, Beijing

Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd.

Applicant after: Qianxin Technology Group Co.,Ltd.

Address before: 100097 No. 202, 203, 205, 206, 207, 208, 2nd floor, block D, No. 51, Kunming Hunan Road, Haidian District, Beijing

Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc.

Applicant before: Qianxin Technology Group Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant