CN112926054B - 一种恶意文件的检测方法、装置、设备及存储介质 - Google Patents

一种恶意文件的检测方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112926054B
CN112926054B CN202110199207.6A CN202110199207A CN112926054B CN 112926054 B CN112926054 B CN 112926054B CN 202110199207 A CN202110199207 A CN 202110199207A CN 112926054 B CN112926054 B CN 112926054B
Authority
CN
China
Prior art keywords
file
detected
malicious
normal
characteristic
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
CN202110199207.6A
Other languages
English (en)
Other versions
CN112926054A (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.)
Asiainfo Technologies (chengdu) Inc
Original Assignee
Asiainfo Technologies (chengdu) Inc
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 Asiainfo Technologies (chengdu) Inc filed Critical Asiainfo Technologies (chengdu) Inc
Priority to CN202110199207.6A priority Critical patent/CN112926054B/zh
Publication of CN112926054A publication Critical patent/CN112926054A/zh
Application granted granted Critical
Publication of CN112926054B publication Critical patent/CN112926054B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

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

Abstract

本申请公开了一种恶意文件的检测方法、装置、设备及存储介质,涉及网络安全技术领域,能够准确的确定出待检测文件是否为恶意文件。该恶意文件的检测方法包括:获取待检测文件;基于待检测文件,确定待检测文件的特征值;根据待检测文件的特征值,确定待检测文件的文件类型;在确定待检测文件的文件类型不是目标文件类型的情况下,利用机器学习算法,确定待检测文件的文件类型;目标文件类型包括正常文件或恶意文件中的至少一种。本申请提供的方法,通过将根据特征值确定文件类型的方式以及利用机器学习算法确定文件类型的方式相结合,来确定待检测文件的文件类型,从而能够准确的确定出待检测文件是否为恶意文件。

Description

一种恶意文件的检测方法、装置、设备及存储介质
技术领域
本申请涉及网络安全技术领域,尤其涉及一种恶意文件的检测方法、装置、设备及存储介质。
背景技术
攻击者通常会基于超文本预处理器(hypertext preprocessor,PHP)的恶意文件(例如Webshell文件)攻击Web网站。为了保证Web网站的数据的安全性,避免被Web网站的攻击,需要对该恶意文件进行检测,因此,需要一种能够准确检测出恶意文件的方法。
发明内容
本申请提供了一种恶意文件的检测方法、装置、设备及存储介质,能够准确的检测出恶意文件。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供了一种恶意文件的检测方法,该方法包括:获取待检测文件;基于该待检测文件,确定该待检测文件的特征值;根据该待检测文件的特征值,确定该待检测文件的文件类型;在确定上述待检测文件的文件类型不是目标文件类型的情况下,利用机器学习算法,确定上述待检测文件的文件类型;上述目标文件类型包括正常文件或恶意文件中的至少一种。
本申请提供的恶意文件的检测方法,先根据待检测文件的特征值,确定待检测文件的文件类型,在根据待检测文件的特征值确定待检测文件的文件类型不是目标文件类型时,即根据待检测文件的特征值不能确定出待检测文件的文件类型时,利用机器学习算法确定待检测文件的文件类型。本申请的方案通过将根据待检测文件的特征值确定待检测文件的文件类型的方式以及利用机器学习算法确定待检测文件的文件类型的方式相结合,来确定待检测文件的文件类型,从而能够准确的确定出待检测文件是否为恶意文件。
结合第一方面,在一种可能的实现方式中,上述待检测文件的特征值包括上述待检测文件的静态特征值或上述待检测文件的抽象语法树特征值中的至少一种。
基于本方案,可以能够根据待检测文件的静态特征值或待检测文件的抽象语法树特征值,确定待检测文件的文件类型,由于根据特征值能够快速的确定待检测文件是否为恶意文件,从而缩短恶意文件的检测时间,且待检测文件的抽象语法树特征值不容易改变,从而通过将待检测文件的抽象语法树特征值与正常文件的抽象语法树特征值进行比对,来确定待检测文件是否为正常文件,能够提高检测正常文件的准确性。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述根据待检测文件的特征值,确定待检测文件的文件类型包括:将上述待检测文件的特征值与第一预设特征库中的多个第一基准值进行比对,确定上述待检测文件的文件类型。
基于本方案,可以将待检测文件的特征值与第一预设特征库中的多个第一基准值进行比对,能够确定待检测文件的文件类型,由于根据特征值能够快速的确定待检测文件是否为恶意文件,从而缩短恶意文件的检测时间。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述第一基准值包括正常文件的基准值或恶意文件的基准值中的至少一种;该正常文件的基准值包括该正常文件的静态特征对应的基准值或该正常文件的抽象语法树特征对应的基准值中的至少一种;上述恶意文件的基准值包括该恶意文件的静态特征对应的基准值或该恶意文件的抽象语法树特征对应的基准值中的至少一种。
基于本方案,可以确定出待检测文件是否为已知的正常文件,也可以确定出待检测文件是否为已知的恶意文件,从而可以提高检测恶意文件的准确率。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述在待检测文件的文件类型的为正常文件的情况下,该方法还包括:将上述待检测文件的特征值与第二预设特征库中的多个第二基准值进行比对;该第二基准值为历史检测文件的基准值,该历史检测文件为恶意文件,且利用机器学习算法确定的历史检测文件的文件类型为正常文件;在确定上述待检测文件的特征值与上述第二基准值相同的情况下,将上述待检测文件的文件类型更改为恶意文件;在确定上述待检测文件的特征值与多个上述第二基准值均不相同的情况下,确定上述待检测文件的文件类型为正常文件。
基于本申请的方案,在利用机器学习算法,确定出待检测文件的文件类型为正常文件之后,还可以根据待检测文件的特征值与历史检测文件(即利用机器学习算法得到的文件类型错误的文件)的基准值,确定机器学习算法得到的待检测文件的文件类型是否准确,从而能够提高检测出恶意文件的准确性。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述第二基准值包括上述历史检测文件的静态特征对应的基准值或上述历史检测文件的抽象语法树特征对应的基准值中的至少一种。
基于本方案,可以根据历史检测文件的静态特征对应的基准值或历史检测文件的抽象语法树特征对应的基准值,确定待检测文件的文件类型,由于根据特征值能够快速的确定待检测文件是否为恶意文件,从而缩短恶意文件的检测时间,且待检测文件的抽象语法树特征值不容易改变,从而通过将待检测文件的抽象语法树特征值与正常文件的抽象语法树特征值进行比对,来确定待检测文件是否为正常文件,能够提高检测正常文件的准确性。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述在待检测文件的文件类型的为恶意文件的情况下,该方法还包括:将上述待检测文件的特征值与第三预设特征库中的多个第三基准值进行比对;该第三基准值为历史检测文件的基准值,该历史检测文件为正常文件,且利用机器学习算法确定的历史检测文件的文件类型为恶意文件;在确定上述待检测文件的特征值与上述第三基准值相同的情况下,将上述待检测文件的文件类型更改为正常文件;在确定上述待检测文件的特征值与多个上述第三基准值均不相同的情况下,确定上述待检测文件的文件类型为恶意文件。
基于本申请的方案,在利用机器学习算法,确定出待检测文件的文件类型为恶意文件之后,还可以根据待检测文件的特征值与历史检测文件(即利用机器学习算法得到的文件类型错误的文件)的基准值,确定机器学习算法得到的待检测文件的文件类型是否准确,从而能够提高检测出恶意文件的准确性。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,上述第三基准值包括上述历史检测文件的静态特征对应的基准值或上述历史检测文件的抽象语法树特征对应的基准值中的至少一种。
基于本方案,可以根据历史检测文件的静态特征对应的基准值或历史检测文件的抽象语法树特征对应的基准值,确定待检测文件的文件类型,由于根据特征值能够快速的确定待检测文件是否为恶意文件,从而缩短恶意文件的检测时间,且待检测文件的抽象语法树特征值不容易改变,从而通过将待检测文件的抽象语法树特征值与恶意文件的抽象语法树特征值进行比对,来确定待检测文件是否为恶意文件,能够提高检测恶意文件的准确性。
第二方面,本申请提供了一种恶意文件的检测装置,该装置包括:获取单元,用于获取待检测文件;确定单元,用于基于上述获取单元获取的上述待检测文件,确定上述待检测文件的特征值;上述确定单元,还用于根据上述待检测文件的特征值,确定上述待检测文件的文件类型;上述确定单元,还用于在确定上述待检测文件的文件类型不是目标文件类型的情况下,利用机器学习算法,确定上述待检测文件的文件类型;上述目标文件类型包括正常文件或恶意文件中的至少一种。
第三方面,本申请提供一种恶意文件的检测设备,该恶意文件的检测设备包括存储器和处理器。存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,该恶意文件的检测设备执行如第一方面及其任一种可能的设计方式所述的恶意文件的检测方法。
第四方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当所述计算机可读存储介质在恶意文件的检测设备上运行时,使得该恶意文件的检测设备执行如第一方面及其任一种可能的设计方式所述的恶意文件的检测方法。
第五方面,本申请提供一种计算机程序产品,该计算机程序产品包括计算机指令,当所述计算机指令在恶意文件的检测设备上运行时,使得所述恶意文件的检测设备执行如第一方面及其任一种可能的设计方式所述的恶意文件的检测方法。
本申请中第二方面到第五方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第二方面到第五方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式中的有益效果分析,此处不再赘述。
本申请的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中恶意文件的检测方法的流程示意图一;
图2为现有技术中恶意文件的检测方法的流程示意图二;
图3为本申请实施例提供的恶意文件的检测方法的流程示意图一;
图4为本申请实施例提供的机器学习算法的训练方法的流程示意图;
图5为本申请实施例提供的恶意文件的检测方法的流程示意图二;
图6为本申请实施例提供的恶意文件的检测方法的流程示意图三;
图7为本申请实施例提供的恶意文件的检测装置的硬件结构示意图;
图8为本申请实施例提供的恶意文件的检测装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
为了便于理解本申请实施例,这里先对本申请实施例涉及到的相关术语进行描述。
PHP,即超文本预处理器,是英文Hypertext Preprocessor的递归缩写,是一种通用的动态脚本语言。该语言目前广泛的用于Web网站。PHP是在服务器端执行的脚本语言,尤其适用于Web网站开发并可嵌入超文本标记语言(hyper text markup language,HTML)中。PHP语言的主要目标是允许Web开发人员快速编写动态网页。
Webshell是一种基于Web页面的恶意脚本文件,该文件可以被攻击者上传至Web网站,攻击者通过执行该文件使得其可以非法远程访问与控制该Web网站。
抽象语法树(abstract syntax tree,AST)是源代码语法结构的一种抽象表示,以树状的形式表现编程语言的语法结构。
PHP语言由于其易用性与泛用性,被很多网站所使用。因此,基于PHP语言的Webshell文件被大量用于对PHP语言的网站的攻击与渗透中。因此,需要对Webshell文件进行检测,识别出Webshell文件,从而对Webshell文件采取相关措施,防止Webshell文件对Web网站进行攻击。
目前,对基于PHP语言的Webshell文件(即待测PHP文件)的检测是通过静态检测的方式进行,静态检测可以在基于PHP语言的Webshell文件出现的第一时间即对其进行检测,在实际运用中具有较好的预警价值。
静态检测包括静态特征检测和机器学习算法检测两种方式。
静态特征检测的原理是先确定待测PHP文件的静态特征值(例如待测PHP文件的熵、哈希值或关键字);然后将待测PHP文件的静态特征值与恶意文件静态特征库中的静态特征值进行匹配,恶意文件静态特征库中包括已知的恶意文件的静态特征值;根据匹配结果确定待测PHP文件是否为恶意文件。
如图1所示,静态特征检测的步骤包括:1、输入待测PHP文件;2、计算待测PHP文件的静态特征值;3、将待测PHP文件的静态特征值与恶意文件静态特征库的静态特征值进行匹配,即确定恶意文件静态特征库中是否存在静态特征值与待测PHP文件的静态特征值相同;4、待测PHP文件的静态特征值与恶意文件静态特征库的静态特征值进行匹配成功,则待测P HP文件为恶意文件;5、待测PHP文件的静态特征值与恶意文件静态特征库的静态特征值进行匹配不成功,则待测PHP文件为正常文件。
机器学习模型检测的原理是先确定待测PHP文件的AST。然后根据待测PHP文件的AST,确定待测PHP文件的AST特征(例如待测PHP文件的函数名、特定函数出现次数、符号名以及字符串长度占比等),然后根据AST特征和机器机器学习模型确定待检测文件是否为恶意文件。
如图2所示,机器学习算法检测的步骤包括:1、输入待测PHP文件;2、生成待测PHP文件的AST,并提取待测PHP文件的AST特征;3、将待测PHP文件的AST特征生成特征向量;4、将待测PHP文件的AST特征向量输入机器学习算法;5、机器学习算法输出待测PHP的检测结果,即待测PHP文件为正常文件,或者待测PHP文件为恶意文件(即Webshell文件)。
然而,由于PHP语言的动态特性,待测PHP文件的静态特征值容易修改。例如在待测PHP文件静态特征为哈希值时,可以在待测PHP文件中加入空格,则待测PHP文件的哈希值即发生改变,待测PHP文件本身并没有发生改变,而恶意文件静态特征库中的静态特征值并没有修改之后的待测PHP文件对应的哈希值,此时,如果待测PHP文件是恶意文件的话,根据静态特征检测的结果却是正常文件。因此,基于PHP语言的Webshell文件很容易通过混淆来规避已有的恶意文件静态特征库,从而使得静态特征检测的结果错误。因此静态特征检测的准确性较低。
而机器学习算法检测的方式依赖于提取的待测PHP文件的AST特征,然而有的AST特征既可以是恶意文件中的特征,也可以是正常文件中的特征,因此,机器学习算法检测的检测结果容易出现错误,即将正常文件判断为Webshell文件。同样,对于很多高度混淆或仅有一句话待测PHP文件,基于机器学习算法检测的方法很有可能会遇到提取不到指定特征的问题,从而导致在实际情况下检测能力的降低。因此机器学习算法检测的准确性也较低。
综上,现有技术中检测恶意文件时准确性较低。
针对上述问题,本申请提供了一种恶意文件的检测方法,通过将根据待检测文件的特征值确定待检测文件的文件类型的方式以及利用机器学习算法确定待检测文件的文件类型的方式相结合,来确定待检测文件的文件类型,从而能够准确的确定出待检测文件是否为恶意文件。
本申请实施例提供的恶意文件的检测方法的执行主体为恶意文件的检测装置(后续简称为:检测装置)。
可选的,本申请实施例中的检测装置可以为服务器,例如Web网站的服务器。
下面对本申请实施例提供的恶意文件的检测方法进行描述。
如图3所示,该恶意文件的检测方法包括:
S301、检测装置获取待检测文件。
可选的,待检测文件可以为PHP文件,也可以为基于其他脚本语言的文件。
PHP文件可以为基于PHP语言的正常文件,也可以为基于PHP语言的恶意文件,例如基于PHP语言的Webshell文件。
S302、基于待检测文件,检测装置确定待检测文件的特征值。
待检测文件的特征值包括待检测文件的静态特征值或待检测文件的抽象语法树特征值中的至少一种。
待检测文件的特征值包括待检测文件的抽象语法树特征值时,由于待检测文件的抽象语法树特征值是待检测文件的源代码语法结构的一种抽象表示,因此,待检测文件的抽象语法树特征值不容易改变,从而通过将待检测文件的抽象语法树特征值与恶意文件的抽象语法树特征值进行比对,来确定待检测文件是否为恶意文件,能够提高检测恶意文件的准确性。
在待检测文件的特征值包括待检测文件的静态特征值时,检测装置通过对待检测文件进行计算,从而得到待检测文件的静态特征值。
在待检测文件的特征值包括抽象语法树特征值时,检测装置在确定待检测文件的特征值之前,检测装置可以先生成待检测文件的抽象语法树,然后根据待检测文件的抽象语法树,确定待检测文件的抽象语法树特征值。
可选的,待检测文件的静态特征值包括待检测文件的熵、待检测文件的哈希值或待检测文件的关键字中的至少一个。
可选的,待检测文件的抽象语法树特征值包括待检测文件的函数名、待检测文件的函数的出现次数、待检测文件的函数的相对位置、待检测文件的函数的特殊字串符、待检测文件的函数的特殊字串符出现次数、待检测文件的函数的特殊字串符的位置或待检测文件的函数的特别符号名中的至少一个。
S303、检测装置根据待检测文件的特征值,确定待检测文件的文件类型。
待检测文件的文件类型包括正常文件和恶意文件。
检测装置根据待检测文件的特征值,确定待检测文件的文件类型可以为检测装置将待检测文件的特征值与第一预设特征库中的多个第一基准值进行比对,确定待检测文件的文件类型。
第一基准值包括正常文件的基准值或恶意文件的基准值中的至少一种。正常文件的基准值即已知的正常文件的特征对应的特征值。恶意文件的基准值即为已知的恶意文件的特征对应的特征值。
示例性的,在第一基准值包括正常文件的基准值以及恶意文件的基准值时,即第一预设特征库包括已知的正常文件的特征对应的特征值以及已知的恶意文件的特征对应的特征值。通过将待检测文件的特征值与正常文件的特征对应的特征值比对,以及将待检测文件的特征值与恶意文件的特征对应的特征值比对。可以确定出待检测文件是否为已知的正常文件,也可以确定出待检测文件是否为已知的恶意文件,从而可以提高检测恶意文件的准确率。
由于在第一基准值包括正常文件的基准值以及恶意文件的基准值时,既确定出待检测文件是否为已知的正常文件,也可以确定出待检测文件是否为已知的恶意文件,因此,第一基准值包括正常文件的基准值以及恶意文件的基准值,能够提高检测恶意文件的准确率,并且由于根据特征值能够快速的确定待检测文件是否为恶意文件,从而缩短恶意文件的检测时间。
正常文件的基准值包括正常文件的静态特征对应的基准值或正常文件的抽象语法树特征对应的基准值中的至少一种。正常文件的静态特征对应的基准值即正常文件的静态特征值,正常文件的抽象语法树特征对应的基准值即正常文件的抽象语法树特征值。
正常文件的静态特征对应的基准值包括正常文件的熵、正常文件的哈希值或正常文件的关键字中的至少一个。
正常文件的抽象语法树特征对应的基准值包括正常文件的函数名、正常文件的函数的出现次数、正常文件的函数的相对位置、正常文件的函数的特殊字串符、正常文件的函数的特殊字串符出现次数、正常文件的函数的特殊字串符的位置或正常文件的函数的特别符号名中的至少一个。
示例性的,在第一基准值包括正常文件的抽象语法树特征对应的基准值时,若待检测文件的特征值包括抽象语法树特征值时,检测装置将待检测文件的静态特征值与第一预设库中的多个第一基准值进行比对,即确定待检测文件的抽象语法树特征值与多个第一基准值是否匹配,在多个第一基准值中存在与待检测文件的抽象语法树特征值相同的第一基准值时,确定待检测文件的抽象语法树特征值与多个第一基准值匹配成功,则确定待检测文件的文件类型为正常文件。
在第一预设特征库包括正常文件的抽象语法树特征对应的基准值时,由于待检测文件的抽象语法树特征值是待检测文件的源代码语法结构的一种抽象表示,因此,待检测文件的抽象语法树特征值不容易改变,从而通过将待检测文件的抽象语法树特征值与正常文件的抽象语法树特征值进行比对,来确定待检测文件是否为正常文件,能够提高检测正常文件的准确性。
在多个第一基准值中不存在与待检测文件的抽象语法树特征值相同的第一基准值时,继续执行步骤S304。
示例性的,在第一基准值包括正常文件的静态特征对应的基准值以及正常文件的抽象语法树特征对应的基准值时,若待检测文件的特征值包括待检测文件的静态特征值以及待检测文件的抽象语法树特征值。检测装置将待检测文件的静态特征值与第一预设库中的多个第一基准值进行比对,即确定待检测文件的静态特征值与正常文件的静态特征值是否匹配,以及确定待检测文件的抽象语法树特征值与正常文件的抽象语法树特征值是否匹配。
在确定待检测文件的静态特征值与正常文件的静态特征对应的基准值匹配,或者确定待检测文件的抽象语法树特征值与正常文件的抽象语法树特征对应的基准值匹配时,确定待检测文件的文件类型为正常文件。
在多个第一基准值中不存在与待检测文件的静态特征值相同的第一基准值且不存在与待检测文件的抽象语法树特征值相同的第一基准值时,继续执行步骤S304。
在第一预设特征库包括正常文件的静态特征对应的基准值以及正常文件的抽象语法树特征对应的基准值时,通过待测文件的静态特征值以及抽象语法树特征值,来确定待检测文件是否为正常文件,能够提高检测恶意文件的准确率。
可选的,检测装置可以先确定待检测文件的静态特征值与正常文件的静态特征值是否匹配,也可以先确定待检测文件的抽象语法树特征值与正常文件的抽象语法树特征值是否匹配,本申请对此顺序并不进行限定。
恶意文件的基准值包括恶意文件的静态特征对应的基准值或恶意文件的抽象语法树特征对应的基准值中的至少一种。恶意文件的静态特征对应的基准值即恶意文件的静态特征值,恶意文件的抽象语法树特征对应的基准值即恶意文件的抽象语法树特征值。
恶意文件的静态特征对应的基准值包括恶意文件的熵、恶意文件的哈希值或恶意文件的关键字中的至少一个。
恶意文件的抽象语法树特征对应的基准值包括恶意文件的函数名、恶意文件的函数的出现次数、恶意文件的函数的相对位置、恶意文件的函数的特殊字串符、恶意文件的函数的特殊字串符出现次数、恶意文件的函数的特殊字串符的位置或恶意文件的函数的特别符号名中的至少一个。
示例性的,在第一基准值包括恶意文件的抽象语法树特征对应的基准值时,若待检测文件的特征值包括抽象语法树特征值时,检测装置将待检测文件的静态特征值与第一预设库中的多个第一基准值进行比对,即确定待检测文件的抽象语法树特征值与多个第一基准值是否匹配,在多个第一基准值中存在与待检测文件的抽象语法树特征值相同的第一基准值时,确定待检测文件的抽象语法树特征值与多个第一基准值匹配成功,则确定待检测文件的文件类型为恶意文件。
在第一预设特征库包括恶意文件的抽象语法树特征值时,由于待检测文件的抽象语法树特征值是待检测文件的源代码语法结构的一种抽象表示,因此,待检测文件的抽象语法树特征值不容易改变,从而通过将待检测文件的抽象语法树特征值与恶意文件的抽象语法树特征值进行比对,来确定待检测文件是否为恶意文件,能够提高检测恶意文件的准确性。
在多个第一基准值中不存在与待检测文件的抽象语法树特征值相同的第一基准值时,继续执行步骤S304。
示例性的,在第一基准值包括恶意文件的静态特征对应的基准值以及恶意文件的抽象语法树特征对应的基准值时,若待检测文件的特征值包括待检测文件的静态特征值以及待检测文件的抽象语法树特征值。检测装置将待检测文件的静态特征值与第一预设库中的多个第一基准值进行比对,即确定待检测文件的静态特征值与恶意文件的静态特征对应的基准值是否匹配,以及确定待检测文件的抽象语法树特征值与正常文件的抽象语法树特征对应的基准值是否匹配。
在确定待检测文件的静态特征值与正常文件的静态特征对应的基准值匹配,或者确定待检测文件的抽象语法树特征值与正常文件的抽象语法树特征对应的基准值匹配时,确定待检测文件的文件类型为恶意文件。
在多个第一基准值中不存在与待检测文件的静态特征值相同的第一基准值且不存在与待检测文件的抽象语法树特征值相同的第一基准值时,继续执行步骤S304。
在第一预设特征库包括恶意文件的静态特征对应的基准值以及正常文件的抽象语法树特征对应的基准值时,通过待测文件的静态特征值以及抽象语法树特征值,来确定待检测文件是否为恶意文件,能够提高检测恶意文件的准确率。
可选的,检测装置可以先确定待检测文件的静态特征值与恶意文件的静态特征值是否匹配,也可以先确定待检测文件的抽象语法树特征值与恶意文件的抽象语法树特征值是否匹配,本申请对此顺序并不进行限定。
本申请通过先检测装置根据待检测文件的特征值,确定待检测文件的文件类型,可以将已知的正常文件或已知的恶意文件检测出来,对于根据待检测文件的特征值不能确定出待检测文件的文件类型,之后再通过机器学习算法进行检测,能够避免大量已知的正常文件或恶意文件对机器学习算法的引擎造成干扰,且能够提高恶意文件的检测效率,并缩短恶意文件的检测时间。
S304、在确定待检测文件的文件类型不是目标文件类型的情况下,利用机器学习算法,检测装置确定待检测文件的文件类型。
目标文件类型包括正常文件或恶意文件中的至少一种。
确定待检测文件的文件类型不是目标文件类型,即根据待检测文件的特征值,不能确定出待检测文件的文件类型。
示例性的,在第一预设特征库中的第一基准值包括正常文件的抽象语法树特征对应的基准值,待检测文件的特征值包括抽象语法树特征时,若待检测文件的特征值为抽象语法树特征值与正常文件的抽象语法树特征对应的基准值不相同,则检测装置根据待检测文件的特征值,不能确定出待检测文件的文件类型,即检测装置确定待检测文件的文件类型不是目标文件类型。
示例性的,在第一预设特征库中的第一基准值包括正常文件的静态特征对应的基准值、正常文件的抽象语法树特征对应的基准值、恶意文件的静态特征对应的基准值或正常文件的抽象语法树特征对应的基准值,待检测文件的特征值包括静态特征值和抽象语法树特征值时,若待检测文件的特征值为抽象语法树特征值与正常文件的抽象语法树特征对应的基准值以及恶意文件的抽象语法树特征对应的基准值均不相同,且待检测文件的静态特征值与正常文件的静态特征对应的基准值以及恶意文件的静态特征对应的基准值均不相同,则检测装置根据待检测文件的特征值,不能确定出待检测文件的文件类型,即检测装置确定待检测文件的文件类型不是目标文件类型。
一种可实现的方式,在待检测文件的特征值中包括待检测文件的抽象语法树特征值时,检测装置根据待检测文件的抽象语法树特征值生成抽象语法树特征值向量,将生成抽象语法树特征值向量输入到机器学习算法中,机器学习算法的输出即为待检测文件的文件类型。
另一种可实现的方式,在待检测文件的特征值中不包括待检测文件的抽象语法树特征值时,检测装置根据待检测文件,生成待检测文件的抽象语法树,根据待检测文件的抽象语法树确定待检测文件的抽象语法树特征值,根据待检测文件的抽象语法树特征值生成抽象语法树特征值向量,将生成抽象语法树特征值向量输入到机器学习算法中,机器学习算法的输出即为待检测文件的文件类型。
机器学习算法可以通过训练得到。
如图4所示,机器学习算法的训练方法包括S401-S406。
S401、获取恶意文件样本和正常文件样本。
恶意文件样本可以为多个,正常文件样本也可以为多个。
S402、基于恶意文件样本和正常文件样本,分别生成恶意文件样本的抽象语法树和正常文件样本的抽象语法树。
S403、基于恶意文件样本的抽象语法树和正常文件样本的抽象语法树,分别提取恶意文件样本的抽象语法树特征值集合和正常文件样本的抽象语法树特征值集合。
S404、对恶意文件样本的抽象语法树特征值集合和正常文件样本的抽象语法树特征值集合分别进行删选,得到恶意文件样本的有效特征集合和正常文件样本的有效特征集合。
对恶意文件样本的抽象语法树特征值集合中出现频率小于预设阈值的特征值删除,得到恶意文件样本的有效特征集合。例如,预设阈值为N,特征值为函数名,将出现频率小于N的函数名剔除频率低于N的函数名,从而得到恶意文件样本的有效特征值集合。
对正常文件样本的抽象语法树特征值集合中出现频率小于预设阈值的特征值删除,得到正常文件样本的有效特征集合。例如,预设阈值为N,特征值为函数名,将出现频率小于N的函数名剔除频率低于N的函数名,从而得到正常文件样本的有效特征值集合。
S405、将恶意文件样本的有效特征值集合和正常文件样本的有效特征值集合相减,得到最终的特征值集合。
恶意文件样本的有效特征值集合和正常文件样本的有效特征值集合相减,即将只存在于恶意文件样本的有效特征值集合中的特征值或者只存在于正常文件样本的有效特征值集合中的特征值删除,保留既存在于恶意文件样本的有效特征值集合中又存在于正常文件样本的有效特征值集合中的特征值,从而得到最终的特征值集合。
S406、将最终的特征值集合输入机器学习算法中进行训练,得到机器学习算法。
本申请提供的恶意文件的检测方法,先根据待检测文件的特征值,确定待检测文件的文件类型,在根据待检测文件的特征值确定待检测文件的文件类型不是目标文件类型时,即根据待检测文件的特征值不能确定出待检测文件的文件类型时,利用机器学习算法确定待检测文件的文件类型。本申请的方案通过将根据待检测文件的特征值确定待检测文件的文件类型的方式以及利用机器学习算法确定待检测文件的文件类型的方式相结合,来确定待检测文件的文件类型,从而能够准确的确定出待检测文件是否为恶意文件。
可选的,结合图3,如图5所示,在上述S304中确定的待检测文件的文件类型为正常文件时,本申请提供的恶意文件的检测方法还包括S305-S307。
S305、检测装置将待检测文件的特征值与第二预设特征库中的多个第二基准值进行比对。
第二基准值为历史检测文件的基准值,即第二基准值为历史检测文件的特征对应的特征值。
历史检测文件为恶意文件,且利用机器学习算法确定的历史检测文件的文件类型为正常文件。即历史检测文件是利用机器学习算法得到的文件类型错误的文件。
第二基准值包括历史检测文件的静态特征对应的基准值或历史检测文件的抽象语法树特征对应的基准值中的至少一种。
示例性的,在第二基准值包括历史检测文件的静态特征对应的基准值以及历史检测文件的抽象语法树特征时,检测装置将待检测文件的特征值与第二预设特征库中的多个第二基准值进行比对,即将待检测文件的特征值与历史检测文件的静态特征对应的基准值进行比对,以及将待检测文件的特征值与历史检测文件的抽象语法树特征进行比对。
本申请的方案,在利用机器学习算法,确定出待检测文件的文件类型为正常文件之后,还根据待检测文件的特征值与历史检测文件(即利用机器学习算法得到的文件类型错误的文件)的基准值,确定机器学习算法得到的待检测文件的文件类型是否准确,从而能够提高检测出恶意文件的准确性。
S306、在确定待检测文件的特征值与第二基准值相同的情况下,检测装置将待检测文件的文件类型更改为恶意文件。
待检测文件的特征值与第二基准值相同,即待检测文件的文件类型与历史文件的文件类型不相同,历史检测文件的文件类型为恶意文件,而S304中确定的待检测文件的文件类型为正常文件,因此,需要将待检测文件的文件类型更改为恶意文件。
示例性的,第二基准值包括历史检测文件的静态特征对应的基准值以及历史检测文件的抽象语法树特征,待检测文件的特征值包括待检测文件的静态特征值以及待检测文件的抽象语法树特征值,在待检测文件的静态特征值与历史检测文件的静态特征对应的基准值相同,或者待检测文件的抽象语法树特征值与历史检测文件的抽象语法树特征对应的基准值相同,则确定待检测文件的特征值与第二基准值相同。
S307、在确定待检测文件的特征值与多个第二基准值均不相同的情况下,检测装置确定待检测文件的文件类型为正常文件。
待检测文件的特征值与多个第二基准值均不相同,即待检测文件的文件类型与历史文件的文件类型相同,历史检测文件的文件类型为恶意文件,而S304中确定的待检测文件的文件类型为正常文件,因此,待检测文件的文件类型为正常文件。
示例性的,第二基准值包括历史检测文件的静态特征对应的基准值以及历史检测文件的抽象语法树特征,待检测文件的特征值包括待检测文件的静态特征值以及待检测文件的抽象语法树特征值,在待检测文件的静态特征值与多个历史检测文件的静态特征对应的基准值均不相同,且待检测文件的抽象语法树特征值与历史检测文件的抽象语法树特征对应的基准值均不相同时,则确定待检测文件的特征值与多个第二基准值均不相同。
本申请的方案,在利用机器学习算法,确定出待检测文件的文件类型之后,还根据待检测文件的特征值与历史检测文件(即利用机器学习算法得到的文件类型错误的文件)的基准值,确定机器学习算法得到的待检测文件的文件类型是否准确,从而能够提高检测出恶意文件的准确性。
可选的,结合图3,如图6所示,在上述S304中确定的待检测文件的文件类型为恶意文件时,本申请提供的恶意文件的检测方法还包括S308-S310。
S308、检测装置将待检测文件的特征值与第三预设特征库中的多个第三基准值进行比对。
第三基准值为历史检测文件的基准值,即第三基准值为历史检测文件的特征对应的特征值。
历史检测文件为正常文件,且利用机器学习算法确定的历史检测文件的文件类型为恶意文件。即历史检测文件是利用机器学习算法得到的文件类型错误的文件。
第三基准值包括历史检测文件的静态特征对应的基准值或历史检测文件的抽象语法树特征对应的基准值中的至少一种。
示例性的,在第三基准值包括历史检测文件的静态特征对应的基准值以及历史检测文件的抽象语法树特征时,检测装置将待检测文件的特征值与第二预设特征库中的多个第三基准值进行比对,即将待检测文件的特征值与历史检测文件的静态特征对应的基准值进行比对,以及将待检测文件的特征值与历史检测文件的抽象语法树特征进行比对。
S309、在确定待检测文件的特征值与第三基准值相同的情况下,检测装置将待检测文件的文件类型更改为正常文件。
待检测文件的特征值与第三基准值相同,即待检测文件的文件类型与历史文件的文件类型不相同,历史检测文件的文件类型为正常文件,而S304中确定的待检测文件的文件类型为恶意文件,因此,需要将待检测文件的文件类型更改为正常文件。
示例性的,第三基准值包括历史检测文件的静态特征对应的基准值以及历史检测文件的抽象语法树特征,待检测文件的特征值包括待检测文件的静态特征值以及待检测文件的抽象语法树特征值,在待检测文件的静态特征值与历史检测文件的静态特征对应的基准值相同,或者待检测文件的抽象语法树特征值与历史检测文件的抽象语法树特征对应的基准值相同,则确定待检测文件的特征值与第三基准值相同。
S310、在确定待检测文件的特征值与多个第三基准值均不相同的情况下,检测装置确定待检测文件的文件类型为恶意文件。
待检测文件的特征值与多个第三基准值均不相同,即待检测文件的文件类型与历史文件的文件类型相同,历史检测文件的文件类型为正常文件,而S304中确定的待检测文件的文件类型为正常文件,因此,待检测文件的文件类型为正常文件。
示例性的,第三基准值包括历史检测文件的静态特征对应的基准值以及历史检测文件的抽象语法树特征,待检测文件的特征值包括待检测文件的静态特征值以及待检测文件的抽象语法树特征值,在待检测文件的静态特征值与多个历史检测文件的静态特征对应的基准值均不相同,且待检测文件的抽象语法树特征值与历史检测文件的抽象语法树特征对应的基准值均不相同时,则确定待检测文件的特征值与多个第三基准值均不相同。
本申请的方案,在利用机器学习算法,确定出待检测文件的文件类型之后,还根据待检测文件的特征值与历史检测文件(即利用机器学习算法得到的文件类型错误的文件)的基准值,确定机器学习算法得到的待检测文件的文件类型是否准确,从而能够提高检测出恶意文件的准确性。
需要说明的是,需要说明的是,确定出待检测文件的文件类型后,可以利用待检测文件的特征值来更新第一预设特征库中的第一基准值、第二预设特征库中的第二基准值或者第三预设特征库中的第三基准值。
在确定出待检测文件的文件类型为恶意文件时,可以对恶意文件采取相关措施(例如删除该恶意文件),能够防止该恶意文件攻击Web网站,从而保证Web网站的数据的安全性。
示例性的,利用3000个基于PHP语言的正常文件与3000个基于PHP的Webshell文件,对本申请提供的恶意文件的检测方法、现有技术中的静态特征检测方式、现有技术中的机器学习算法检测方式进行对比。
首先,将3000个基于PHP语言的正常文件中的1500个基于PHP语言的正常文件中的静态特征值进行混淆变换,将3000个基于PHP语言的We bshell文件中的1500个基于PHP语言的Webshell文件中的静态特征值进行混淆变换,例如在PHP文件中加入空格,改变PHP文件的哈希值。
之后,将混淆变换之后的正常文件、没有混淆变换的正常文件、混淆变换之后的Webshell文件、没有混淆变换的Webshell文件分别采用本申请提供的恶意文件的检测方法、现有技术中的静态特征检测方式、现有技术中的机器学习算法检测方式进行检测,得到本申请提供的恶意文件的检测方法的准确率、现有技术中的静态特征检测方式的准确率、现有技术中的机器学习算法检测方式的准确率。
如表1所示,现有技术中的静态特征检测方式的准确率为50%,现有技术中的机器学习算法检测方式的准确率为89.97%,本申请提供的恶意文件的检测方法的准确率为94.68%。可以看出,本申请提供的恶意文件的检测方法准确率最高,能够准确的确定出待检测文件是否为恶意文件。
表1
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
如图7所示,本申请实施例提供一种恶意文件的检测设备700。该恶意文件的检测设备700可以包括至少一个处理器701,通信线路702,存储器703,通信接口704。
具体的,处理器701,用于执行存储器703中存储的计算机执行指令,从而实现终端的步骤或动作。
处理器701可以是一个芯片。例如,可以是现场可编程门阵列(fieldprogrammable gate array,FPGA),可以是专用集成芯片(application specificintegrated circuit,ASIC),还可以是系统芯片(system on chip,SoC),还可以是中央处理器(central processor unit,CPU),还可以是网络处理器(network processor,NP),还可以是数字信号处理电路(digital signal processor,DSP),还可以是微控制器(microcontroller unit,MCU),还可以是可编程控制器(programmable logic device,PLD)或其他集成芯片。
通信线路702,用于在上述处理器701与存储器703之间传输信息。
存储器703,用于存储执行计算机执行指令,并由处理器701来控制执行。
存储器703可以是独立存在,通过通信线路702与处理器相连接。存储器703可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmableROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(randomaccess memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamicRAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)。应注意,本文描述的系统和设备的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
通信接口704,用于与其他设备或通信网络通信。其中,通信网络可以是以太网,无线接入网(radio access network,RAN),或无线局域网(wireless local area networks,WLAN)等。
需要指出的是,图7中示出的结构并不构成对该恶意文件的检测设备700的限定,除图7所示部件之外,该恶意文件的检测设备700可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图8所示,本申请实施例提供一种恶意文件的检测装置80。该恶意文件的检测装置可以包括获取单元81、确定单元82。
获取单元81,用于获取待检测文件。例如,结合图3,获取单元81可以用于执行S301。
确定单元82,用于基于获取单元81获取的所述待检测文件,确定待检测文件的特征值。例如,结合图3,确定单元82可以用于执行步骤S302。
确定单元82,还用于根据待检测文件的特征值,确定待检测文件的文件类型。例如,结合图3,确定单元82可以用于执行步骤S303。
确定单元82,还用于在确定待检测文件的文件类型不是目标文件类型的情况下,利用机器学习算法,确定待检测文件的文件类型。例如,结合图3,确定单元82可以用于执行步骤S304。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在实际实现时,获取单元81、确定单元82可以由图7所示的处理器701调用存储器703中的程序代码来实现。其具体的执行过程可参考图3、图5图6所示的恶意文件的检测方法部分的描述,这里不再赘述。
本申请另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当计算机指令在恶意文件的检测设备上运行时,使得恶意文件的检测设备执行上述方法实施例所示的方法流程中恶意文件的检测设备执行的各个步骤。
在本申请另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括指令,当指令在恶意文件的检测设备上运行时,使得恶意文件的检测设备执行上述方法实施例所示的方法流程中恶意文件的检测设备执行的各个步骤。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种恶意文件的检测方法,其特征在于,所述方法包括:
获取待检测文件;
基于所述待检测文件,确定所述待检测文件的特征值;
根据所述待检测文件的特征值,确定所述待检测文件的文件类型;
在确定所述待检测文件的文件类型不是目标文件类型的情况下,利用机器学习算法,确定所述待检测文件的文件类型;所述目标文件类型包括正常文件或恶意文件中的至少一种;
在所述待检测文件的文件类型的为正常文件的情况下,所述方法还包括:
将所述待检测文件的特征值与第二预设特征库中的多个第二基准值进行比对;所述第二基准值为历史检测文件的基准值,所述历史检测文件为恶意文件,且利用所述机器学习算法确定的所述历史检测文件的文件类型为正常文件;
在确定所述待检测文件的特征值与所述第二基准值相同的情况下,将所述待检测文件的文件类型更改为恶意文件;
在确定所述待检测文件的特征值与所述多个第二基准值均不相同的情况下,确定所述待检测文件的文件类型为正常文件;
确定所述机器学习算法,包括:
获取恶意文件样本和正常文件样本;
基于所述恶意文件样本和所述正常文件样本,分别生成恶意文件样本的抽象语法树和正常文件样本的抽象语法树;
基于所述恶意文件样本的抽象语法树和所述正常文件样本的抽象语法树,分别提取所述恶意文件样本的抽象语法树特征值集合和所述正常文件样本的抽象语法树特征值集合;
对恶意文件样本的抽象语法树特征值集合中出现频率小于预设阈值的特征值删除,得到恶意文件样本的有效特征集合;对正常文件样本的抽象语法树特征值集合中出现频率小于预设阈值的特征值删除,得到正常文件样本的有效特征集合;
将恶意文件样本的有效特征值集合和正常文件样本的有效特征值集合相减,得到最终的特征值集合;
将最终的特征值集合输入机器学习算法中进行训练,得到机器学习算法。
2.根据权利要求1所述的检测方法,其特征在于,所述待检测文件的特征值包括所述待检测文件的静态特征值或所述待检测文件的抽象语法树特征值中的至少一种。
3.根据权利要求2所述的检测方法,其特征在于,所述根据所述待检测文件的特征值,确定所述待检测文件的文件类型,包括:
将所述待检测文件的特征值与第一预设特征库中的多个第一基准值进行比对,确定所述待检测文件的文件类型。
4.根据权利要求3所述的检测方法,其特征在于,所述第一基准值包括正常文件的基准值或恶意文件的基准值中的至少一种;
所述正常文件的基准值包括所述正常文件的静态特征对应的基准值或所述正常文件的抽象语法树特征对应的基准值中的至少一种;所述恶意文件的基准值包括所述恶意文件的静态特征对应的基准值或所述恶意文件的抽象语法树特征对应的基准值中的至少一种。
5.根据权利要求1所述的检测方法,其特征在于,所述第二基准值包括所述历史检测文件的静态特征对应的基准值或所述历史检测文件的抽象语法树特征对应的基准值中的至少一种。
6.根据权利要求1-4中任一项所述的检测方法,其特征在于,在所述待检测文件的文件类型的为恶意文件的情况下,所述方法还包括:
将所述待检测文件的特征值与第三预设特征库中的多个第三基准值进行比对;所述第三基准值为历史检测文件的基准值,所述历史检测文件为正常文件,且利用所述机器学习算法确定的所述历史检测文件的文件类型为恶意文件;
在确定所述待检测文件的特征值与所述第三基准值相同的情况下,将所述待检测文件的文件类型更改为正常文件;
在确定所述待检测文件的特征值与所述多个第三基准值均不相同的情况下,确定所述待检测文件的文件类型为恶意文件。
7.根据权利要求6所述的检测方法,其特征在于,所述第三基准值包括所述历史检测文件的静态特征对应的基准值或所述历史检测文件的抽象语法树特征对应的基准值中的至少一种。
8.一种恶意文件的检测装置,其特征在于,所述装置包括:
获取单元,用于获取待检测文件;
确定单元,用于基于所述获取单元获取的所述待检测文件,确定所述待检测文件的特征值;
所述确定单元,还用于根据所述待检测文件的特征值,确定所述待检测文件的文件类型;
所述确定单元,还用于在确定所述待检测文件的文件类型不是目标文件类型的情况下,利用机器学习算法,确定所述待检测文件的文件类型;所述目标文件类型包括正常文件或恶意文件中的至少一种;
所述确定单元,还用于在所述待检测文件的文件类型的为正常文件的情况下,将所述待检测文件的特征值与第二预设特征库中的多个第二基准值进行比对;所述第二基准值为历史检测文件的基准值,所述历史检测文件为恶意文件,且利用所述机器学习算法确定的所述历史检测文件的文件类型为正常文件;
在确定所述待检测文件的特征值与所述第二基准值相同的情况下,将所述待检测文件的文件类型更改为恶意文件;
在确定所述待检测文件的特征值与所述多个第二基准值均不相同的情况下,确定所述待检测文件的文件类型为正常文件;
所述获取单元,还用于获取恶意文件样本和正常文件样本;
所述确定单元,还用于基于所述恶意文件样本和所述正常文件样本,分别生成恶意文件样本的抽象语法树和正常文件样本的抽象语法树;
基于所述恶意文件样本的抽象语法树和所述正常文件样本的抽象语法树,分别提取所述恶意文件样本的抽象语法树特征值集合和所述正常文件样本的抽象语法树特征值集合;
对恶意文件样本的抽象语法树特征值集合中出现频率小于预设阈值的特征值删除,得到恶意文件样本的有效特征集合;对正常文件样本的抽象语法树特征值集合中出现频率小于预设阈值的特征值删除,得到正常文件样本的有效特征集合;
将恶意文件样本的有效特征值集合和正常文件样本的有效特征值集合相减,得到最终的特征值集合;
将最终的特征值集合输入机器学习算法中进行训练,得到机器学习算法。
9.一种恶意文件的检测设备,其特征在于,所述恶意文件的检测设备包括存储器和处理器;所述存储器和所述处理器耦合;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述处理器执行所述计算机指令时,所述恶意文件的检测设备执行如权利要求1-7中任意一项所述的恶意文件的检测方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述计算机可读存储介质在恶意文件的检测设备上运行时,使得所述恶意文件的检测设备执行权利要求1-7中任一项所述的恶意文件的检测方法。
CN202110199207.6A 2021-02-22 2021-02-22 一种恶意文件的检测方法、装置、设备及存储介质 Active CN112926054B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110199207.6A CN112926054B (zh) 2021-02-22 2021-02-22 一种恶意文件的检测方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110199207.6A CN112926054B (zh) 2021-02-22 2021-02-22 一种恶意文件的检测方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112926054A CN112926054A (zh) 2021-06-08
CN112926054B true CN112926054B (zh) 2023-10-03

Family

ID=76170227

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110199207.6A Active CN112926054B (zh) 2021-02-22 2021-02-22 一种恶意文件的检测方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112926054B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113449301A (zh) * 2021-06-22 2021-09-28 深信服科技股份有限公司 一种样本检测方法、装置、设备及计算机可读存储介质
CN115134164B (zh) * 2022-07-18 2024-02-23 深信服科技股份有限公司 一种上传行为检测方法、系统、设备及计算机存储介质

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107659570A (zh) * 2017-09-29 2018-02-02 杭州安恒信息技术有限公司 基于机器学习与动静态分析的Webshell检测方法及系统
CN108038374A (zh) * 2017-12-26 2018-05-15 郑州云海信息技术有限公司 一种检测实时威胁的方法
CN108985061A (zh) * 2018-07-05 2018-12-11 北京大学 一种基于模型融合的webshell检测方法
CN109101817A (zh) * 2018-08-13 2018-12-28 亚信科技(成都)有限公司 一种识别恶意文件类别的方法及计算设备
KR101922956B1 (ko) * 2018-08-07 2019-02-27 (주)케이사인 저 차원 수의 엔트로피 카운트 맵 기반 악성코드 탐지 방법
CN109992969A (zh) * 2019-03-25 2019-07-09 腾讯科技(深圳)有限公司 一种恶意文件检测方法、装置及检测平台
CN110362996A (zh) * 2019-06-03 2019-10-22 中国科学院信息工程研究所 一种离线检测PowerShell恶意软件的方法与系统
CN110619211A (zh) * 2018-06-20 2019-12-27 深信服科技股份有限公司 一种基于动态特征的恶意软件识别方法、系统及相关装置
WO2020000743A1 (zh) * 2018-06-27 2020-01-02 平安科技(深圳)有限公司 一种webshell检测方法及相关设备
CN110765459A (zh) * 2019-10-18 2020-02-07 北京天融信网络安全技术有限公司 一种恶意脚本检测方法、装置和存储介质
CN111552957A (zh) * 2020-04-26 2020-08-18 亚信科技(成都)有限公司 一种软件超量使用的控制方法和装置
CN111639337A (zh) * 2020-04-17 2020-09-08 中国科学院信息工程研究所 一种面向海量Windows软件的未知恶意代码检测方法及系统
CN112084497A (zh) * 2020-09-11 2020-12-15 国网山西省电力公司营销服务中心 嵌入式Linux系统恶意程序检测方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11568055B2 (en) * 2019-08-23 2023-01-31 Praetorian System and method for automatically detecting a security vulnerability in a source code using a machine learning model
KR102665757B1 (ko) * 2020-02-05 2024-05-14 한국전자통신연구원 악성 스크립트 탐지 장치 및 방법

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107659570A (zh) * 2017-09-29 2018-02-02 杭州安恒信息技术有限公司 基于机器学习与动静态分析的Webshell检测方法及系统
CN108038374A (zh) * 2017-12-26 2018-05-15 郑州云海信息技术有限公司 一种检测实时威胁的方法
CN110619211A (zh) * 2018-06-20 2019-12-27 深信服科技股份有限公司 一种基于动态特征的恶意软件识别方法、系统及相关装置
WO2020000743A1 (zh) * 2018-06-27 2020-01-02 平安科技(深圳)有限公司 一种webshell检测方法及相关设备
CN108985061A (zh) * 2018-07-05 2018-12-11 北京大学 一种基于模型融合的webshell检测方法
KR101922956B1 (ko) * 2018-08-07 2019-02-27 (주)케이사인 저 차원 수의 엔트로피 카운트 맵 기반 악성코드 탐지 방법
CN109101817A (zh) * 2018-08-13 2018-12-28 亚信科技(成都)有限公司 一种识别恶意文件类别的方法及计算设备
CN109992969A (zh) * 2019-03-25 2019-07-09 腾讯科技(深圳)有限公司 一种恶意文件检测方法、装置及检测平台
CN110362996A (zh) * 2019-06-03 2019-10-22 中国科学院信息工程研究所 一种离线检测PowerShell恶意软件的方法与系统
CN110765459A (zh) * 2019-10-18 2020-02-07 北京天融信网络安全技术有限公司 一种恶意脚本检测方法、装置和存储介质
CN111639337A (zh) * 2020-04-17 2020-09-08 中国科学院信息工程研究所 一种面向海量Windows软件的未知恶意代码检测方法及系统
CN111552957A (zh) * 2020-04-26 2020-08-18 亚信科技(成都)有限公司 一种软件超量使用的控制方法和装置
CN112084497A (zh) * 2020-09-11 2020-12-15 国网山西省电力公司营销服务中心 嵌入式Linux系统恶意程序检测方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于API和Permission的Android恶意软件静态检测方法研究;杨鸣坤;罗锦光;欧跃发;慕德俊;;计算机应用与软件(第04期);53-58+104 *
基于语义分析的恶意JavaScript代码检测方法;邱瑶瑶;方勇;黄诚;刘亮;张星;;四川大学学报(自然科学版)(第02期);273-278 *

Also Published As

Publication number Publication date
CN112926054A (zh) 2021-06-08

Similar Documents

Publication Publication Date Title
CN112926054B (zh) 一种恶意文件的检测方法、装置、设备及存储介质
Gupta et al. Enhancing the browser-side context-aware sanitization of suspicious HTML5 code for halting the DOM-based XSS vulnerabilities in cloud
CN112560045A (zh) 应用程序漏洞检测方法、装置、计算机设备和存储介质
JP2018063694A (ja) Webページの悪意のある要素を検出するシステム及び方法
KR102317833B1 (ko) 악성 코드 탐지 모델 학습 방법 및 이를 이용한 탐지 방법
CN108985057B (zh) 一种webshell检测方法及相关设备
KR20090090685A (ko) 웹 어플리케이션의 취약성 판단 방법 및 시스템
WO2020253351A1 (zh) 一种点击劫持漏洞检测方法、装置及计算机设备
CN108664791B (zh) 一种超文本预处理器代码中的网页后门检测方法及装置
CN113158197B (zh) 一种基于主动iast的sql注入漏洞检测方法、系统
RU2652451C2 (ru) Способы обнаружения аномальных элементов веб-страниц
US9495542B2 (en) Software inspection system
CN113055399A (zh) 注入攻击的攻击成功检测方法、系统及相关装置
CN114448664B (zh) 钓鱼网页的识别方法、装置、计算机设备及存储介质
CN110457900B (zh) 一种网站监测方法、装置、设备及可读存储介质
CN111949992A (zh) Web应用程序的自动化安全监测方法及系统
Wu et al. Evaluating private modes in desktop and mobile browsers and their resistance to fingerprinting
CN115051824B (zh) 一种垂直越权检测方法、系统、设备及存储介质
CN113094706A (zh) 一种WebShell检测方法、装置、设备及可读存储介质
CN112367336B (zh) webshell拦截检测方法、装置、设备及可读存储介质
CN113538288A (zh) 网络异常检测方法、装置及计算机可读存储介质
CN112711574A (zh) 数据库安全性检测方法、装置、电子设备及介质
US10515219B2 (en) Determining terms for security test
CN113190847A (zh) 一种脚本文件的混淆检测方法、装置、设备及存储介质
RU2659741C1 (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