CN113094706A - 一种WebShell检测方法、装置、设备及可读存储介质 - Google Patents

一种WebShell检测方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN113094706A
CN113094706A CN202010018759.8A CN202010018759A CN113094706A CN 113094706 A CN113094706 A CN 113094706A CN 202010018759 A CN202010018759 A CN 202010018759A CN 113094706 A CN113094706 A CN 113094706A
Authority
CN
China
Prior art keywords
script
webshell
features
statistical
webshell detection
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.)
Pending
Application number
CN202010018759.8A
Other languages
English (en)
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.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies 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 Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN202010018759.8A priority Critical patent/CN113094706A/zh
Publication of CN113094706A publication Critical patent/CN113094706A/zh
Pending legal-status Critical Current

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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

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

Abstract

本申请公开了一种WebShell检测方法、装置、设备及可读存储介质。本申请公开的方法包括:获取待检测的脚本;利用抽象语法树提取脚本中的语法特征,语法特征包括函数依赖关系、类声明和函数关键字;利用多模匹配算法提取脚本中的统计特征;将语法特征和统计特征进行融合;利用机器学习模型计算融合后的融合特征对应的特征值,若特征值大于预设阈值,则确定脚本为WebShell。本申请利用抽象语法树和多模匹配算法从脚本中提取多维度的特征,而后将这些特征进行融合,从而使各个维度的特征相互补充,弥补了单一检测方式的缺点,可避免漏报或误报,提高WebShell检测的准确率和效率。相应地,本申请公开的一种WebShell检测装置、设备及可读存储介质,也同样具有上述技术效果。

Description

一种WebShell检测方法、装置、设备及可读存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种WebShell检测方法、装置、设备及可读存储介质。
背景技术
WebShell是黑客入侵网站的常用手段。WebShell是一种命令执行脚本,通常以asp、php、jsp或者cgi等网页文件的形式存在于网络中,因此检测出网络中的WebShell,可以提高网络安全。
目前,检测WebShell的方式较为单一。例如:提前为某一类型的WebShell设置检测规则,利用该检测规则检测该种类型的WebShell。但由于WebShell类型时常变换,因此提前设置的检测规则可能无效,从而导致漏报或误报,检测结果的准确率低。并且,此种检测方式需要人工辅助进行,因此会增加检测流程、降低检测效率。
因此,如何提高WebShell的检测效率和准确率,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种WebShell检测方法、装置、设备及可读存储介质,以提高WebShell的检测效率和准确率。其具体方案如下:
第一方面,本申请提供了一种WebShell检测方法,包括:
获取待检测的脚本;
利用抽象语法树提取所述脚本中的语法特征,所述语法特征包括函数依赖关系、类声明和函数关键字;
利用多模匹配算法提取所述脚本中的统计特征;
将所述语法特征和所述统计特征进行融合,获得融合特征;
利用机器学习模型计算所述融合特征对应的特征值,若所述特征值大于预设阈值,则确定所述脚本为WebShell。
优选地,所述将所述语法特征和所述统计特征进行融合,获得融合特征之前,还包括:
判断是否提取到所述语法特征;
若是,则执行所述将所述语法特征和所述统计特征进行融合,获得融合特征的步骤。
优选地,还包括:
若未提取到所述语法特征,则利用所述多模匹配算法提取所述函数关键字,并将所述函数关键字确定为所述语法特征。
优选地,所述将所述语法特征和所述统计特征进行融合,获得融合特征,包括:
将所述语法特征和所述统计特征进行拼接,获得所述融合特征。
优选地,还包括:
若所述特征值不大于所述预设阈值,则确定所述脚本为正常脚本。
优选地,还包括:
利用预设规则提取所述脚本中的静态特征;
相应的,
所述将所述语法特征和所述统计特征进行融合,获得融合特征,包括:
将所述语法特征、所述统计特征和所述静态特征进行融合,获得所述融合特征。
优选地,所述机器学习模型通过CNN或SVM训练获得。
第二方面,本申请提供了一种WebShell检测装置,包括:
获取模块,用于获取待检测的脚本;
第一提取模块,用于利用抽象语法树提取所述脚本中的语法特征,所述语法特征包括函数依赖关系、类声明和函数关键字;
第二提取模块,用于利用多模匹配算法提取所述脚本中的统计特征;
融合模块,用于将所述语法特征和所述统计特征进行融合,获得融合特征;
检测模块,用于利用机器学习模型计算所述融合特征对应的特征值,若所述特征值大于预设阈值,则确定所述脚本为WebShell。
第三方面,本申请提供了一种WebShell检测设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的WebShell检测方法。
第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的WebShell检测方法。
通过以上方案可知,本申请提供了一种WebShell检测方法,包括:获取待检测的脚本;利用抽象语法树提取所述脚本中的语法特征,所述语法特征包括函数依赖关系、类声明和函数关键字;利用多模匹配算法提取所述脚本中的统计特征;将所述语法特征和所述统计特征进行融合,获得融合特征;利用机器学习模型计算所述融合特征对应的特征值,若所述特征值大于预设阈值,则确定所述脚本为WebShell。
可见,本申请在获取到待检测的脚本后,首先利用抽象语法树提取脚本中的语法特征,进而利用多模匹配算法提取脚本中的统计特征;而后将语法特征和统计特征进行融合,最后利用机器学习模型计算融合特征对应的特征值,当特征值大于预设阈值时,确定脚本为WebShell。可见,本申请利用抽象语法树和多模匹配算法能够从待检测的脚本中提取多维度的特征,而后将这些特征进行融合,从而可获得相互融合且多维度的融合特征,使得各个维度的特征相互补充,弥补了单一检测方式的缺点,在一定程度上能够避免漏报或误报。本申请针对时常变换的WebShell,能够通过特征融合来弥补缺陷,从而不会造成漏报。最后利用机器学习模型计算融合特征对应的特征值,从而可确定当前检测的脚本是WebShell的概率大小。其中,机器学习模型具有高效、高准确率的优势,因此可进一步提高WebShell检测的准确率和效率。并且,本申请无需人工辅助进行,从而简化了检测流程,提高了检测效率。
相应地,本申请提供的一种WebShell检测装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的第一种WebShell检测方法流程图;
图2为本申请公开的第二种WebShell检测方法流程图;
图3为本申请公开的一种AST树示意图;
图4为本申请公开的一种特征融合示意图;
图5为本申请公开的一种WebShell检测装置示意图;
图6为本申请公开的一种WebShell检测设备示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,检测WebShell的方式较为单一,会导致漏报或误报,检测结果的准确率低,且检测流程复杂、检测效率低。为此,本申请提供了一种WebShell检测方案,能够避免漏报或误报,提高WebShell检测的准确率和效率。
参见图1所示,本申请实施例公开了第一种WebShell检测方法,包括:
S101、获取待检测的脚本。
具体的,待检测的脚本可以从客户端与服务端之间的流量数据中获取。待检测的脚本可以为asp、php、jsp或者cgi等网页文件。
S102、利用抽象语法树提取脚本中的语法特征。
其中,语法特征包括函数依赖关系(如函数操作依赖关系的次数)、类声明和函数关键字。函数关键字如:函数操作调用次数、危险操作关键词等。当然,语法特征中还可以包括其他语法类的特征。抽象语法树可以分析待检测脚本。语法分析是一种利用词语的高维空间稠密向量来表示词语中涵盖的语义、语法等信息的分析方法。常用向量的相似度来量化词语之间的语义相似性。
具体的,抽象语法树(Abstract Syntax Tree)也称为AST语法树。其能够通过编译原理的方法将待检测的脚本创建为抽象语法树,从而分析脚本中的函数、变量、字符串、语法结构等特征。抽象语法树是源代码语法结构的一种抽象表示,它以树的结构形式表现出使用编程语言编写的源代码的语法结构,树上的每个节点在源代码中都有一定意义,抽象语法树不会表示出真实语法中的每个细节。
S103、利用多模匹配算法提取脚本中的统计特征。
其中,统计特征包括:信息熵、重合指数、压缩指数等特征。当然,统计特征中还可以包括其他统计类的特征。多模匹配算法可以在字符串中寻找多个模式的字符串子串。
需要说明的是,本实施例不限定S102和S103的执行顺序,因此S102和S103可以并行执行;可以先执行S102,再执行S103;也可以先执行S103,再执行S102。S102和S103执行顺序的调整不影响本实施例的实现。
S104、将语法特征和统计特征进行融合,获得融合特征。
在一种具体实施方式中,将语法特征和统计特征进行融合,获得融合特征,包括:将语法特征和统计特征进行拼接,获得融合特征。其中,以拼接方式可获得扩充后的融合特征,使得特征更为丰富。
在一种具体实施方式中,将语法特征和统计特征进行融合,获得融合特征之前,还包括:判断是否提取到语法特征;若是,则执行将语法特征和统计特征进行融合,获得融合特征的步骤。若未提取到语法特征,则利用多模匹配算法提取函数关键字,并将函数关键字确定为语法特征。
具体的,若提取到语法特征和统计特征,则拼接语法特征和统计特征,可获得融合特征。若未提取到语法特征(利用抽象语法树提取特征可能会出现失败情况,即利用抽象语法树没有提取到任何特征),则利用多模匹配算法提取函数关键字,由于函数关键字是语法特征中的一种,因此将函数关键字确定为语法特征,并执行S104,此时融合的特征实质上是函数关键字和统计特征。多模匹配算法既可以提取统计特征,也可以提取函数关键字。
S105、利用机器学习模型计算融合特征对应的特征值,若特征值大于预设阈值,则确定脚本为WebShell。
在一种具体实施方式中,还包括:若特征值不大于预设阈值,则确定脚本为正常脚本。需要说明的是,机器学习模型通过CNN(Convolutional Neural Networks,卷积神经网络)或SVM(Support Vector Machine,支持向量机)训练获得。当然,机器学习模型还可以通过其他分类算法训练获得,如:朴素贝叶斯算法、决策树、KNN(K-Nearest Neighboralgorithm,最邻近结点算法)等。在训练过程中,还可以记录检出率。检出率即:被检出WebShell占所有WebShell的概率。检出率越高,表示机器学习模型的精度越高,检测结果就越准确。检出率也称为召回率(recall)。
需要说明的是,预设阈值可以根据实际应用情况灵活设置并调整。按照机器学习模型的通常设置,预设阈值的取值在0~1之间。
在一种具体实施方式中,还可以利用预设规则对待检测的脚本进行静态特征提取,如此一来,结合S102和S103步骤获得的语法特征和统计特征,便可以获得静态特征、语法特征和统计特征这3种维度的特征,那么进一步地,将语法特征、统计特征和静态特征进行融合,可以获得由静态特征、语法特征和统计特征融合获得的融合特征,最后利用机器学习模型计算融合特征对应的特征值,若特征值大于预设阈值,则确定脚本为WebShell。其中,语法特征、统计特征和静态特征的提取步骤的执行顺序可以灵活调整,调整后不影响本实施例的实现。其中,预设规则可通过正则匹配实现。
需要说明的是,本申请可应用于防火墙和终端安全等产品。
可见,本申请实施例在获取到待检测的脚本后,首先利用抽象语法树提取脚本中的语法特征,进而利用多模匹配算法提取脚本中的统计特征;而后将语法特征和统计特征进行融合,最后利用机器学习模型计算融合特征对应的特征值,当特征值大于预设阈值时,确定脚本为WebShell。可见,本实施例利用抽象语法树和多模匹配算法能够从待检测的脚本中提取多维度的特征,而后将这些特征进行融合,从而可获得相互融合且多维度的融合特征,使得各个维度的特征相互补充,弥补了单一检测方式的缺点,在一定程度上能够避免漏报或误报。本实施例针对时常变换的WebShell,能够通过特征融合来弥补缺陷,从而不会造成漏报。最后利用机器学习模型计算融合特征对应的特征值,从而可确定当前检测的脚本是WebShell的概率大小。其中,机器学习模型具有高效、高准确率的优势,因此可进一步提高WebShell检测的准确率和效率。并且,本实施例无需人工辅助进行,从而简化了检测流程,提高了检测效率。
参见图2所示,本申请实施例公开了第二种WebShell检测方法,该方法具体包括:利用多模匹配算法提取待检测脚本中的统计特征和函数关键字;利用抽象语法树解析待检测脚本,以提取语法特征和函数关键字;若抽象语法树成功解析待检测脚本,则将统计特征与语法特征、函数关键字进行融合,即对特征进行扩充,也就是将多模匹配算法提取到的统计特征添加至抽象语法树提取到的语法特征和函数关键字中;若抽象语法树未成功解析待检测脚本(即抽象语法树未提取到任何特征),则将多模匹配算法提取到的统计特征和函数关键字进行融合,即对特征进行填充,也就是将多模匹配算法提取到的统计特征和函数关键字确定为需要融合的特征。其中,多模匹配算法提取特征和抽象语法树解析的执行顺序可以互换,也可以并行执行。
若抽象语法树和多模匹配算法都成功提取到特征,则融合语法特征、函数关键字和统计特征(此时抽象语法树和多模匹配算法提取到重复的函数关键字,那么保留其中任一份函数关键字即可,即利用其中任一份函数关键字参与特征融合),获得融合特征;最后利用机器学习检测融合特征,获得待检测脚本对应的特征值。若特征值大于阈值,则确定待检测脚本为WebShell脚本;否则,确定待检测脚本为正常脚本。
若抽象语法树未提取到特征,但多模匹配算法成功提取到特征,那么融合多模匹配算法提取到的函数关键字和统计特征,即可获得融合特征,最后利用机器学习检测融合特征,获得待检测脚本对应的特征值。若特征值大于阈值,则确定待检测脚本为WebShell脚本;否则,确定待检测脚本为正常脚本。
其中,利用抽象语法树解析待检测脚本,提取语法特征和函数关键字的具体过程如下。
请参见图3,利用抽象语法树解析php脚本,可获得如图3所示的AST树。
php脚本具体包括:
Figure BDA0002359927380000081
如图3所示,图3为本申请公开的一种AST树示意图。AST树的根节点statements表示语句序列(Php代码由若干语句组成),上述列举了两条语句。assign节点表示第一条语句是赋值语句,其左子节点表示一个名为$k的变量,右子节点表示一个字符串拼接运算。call节点表示第二条语句是函数调用语句,该节点的两个子节点分别表示调用的函数名以及参数列表,在Php中函数名为变量说明这是一次变量函数调用。参数列表对应的是一个access节点,表示一个索引访问运算,在代码中对应对超级全局变量$_POST的范围。可见,AST树以树的结构形式表现出了使用编程语言编写的源代码的语法结构,即表示了其中的语法信息,因此可利用抽象语法树提取待检测脚本中的语法特征和函数关键字。
其中,利用多模匹配算法提取待检测脚本中的统计特征和函数关键字的具体过程如下。
在本实施例中,多模匹配算法既可以提取统计特征,也可以提取函数关键字。需要说明的是,针对经过编码混淆或加密的脚本(如:utf-7编码格式混淆的脚本)进行统计特征的提取,可提高检测准确率。
特别的,为了缩小特征定位范围,以asp脚本为例,我们会在<%%>代码块中提取一系列统计特征,例如块内英文字符、中文等数量和占比信息。
其中,特征融合的具体过程如下。请参见图4,图4为本申请公开的一种特征融合示意图。图4中的特征1为利用抽象语法树提取到的语法特征,特征2为利用抽象语法树或多模匹配算法提取到的函数关键字,特征3为利用多模匹配算法提取到的统计特征。
在一种具体实施方式中,特征1、2和3均已提取到,那么特征1、2和3按照顺序拼接,即可获得融合特征。其中,特征2既可以是利用抽象语法树提取到的,也可以是利用多模匹配算法提取到的。
在一种具体实施方式中,特征未提取到(即利用抽象语法树没有提取到任何特征),但特征2和3已提取到,那么将特征2和3按照顺序拼接,即可获得融合特征。此时,特征1仍然存在,只是内容被置为0。
最后,利用机器学习模型计算融合特征的特征值,并比较特征值与预设阈值的大小,即可确定待检测脚本是否为WebShell。
可见,本实施例利用抽象语法树和多模匹配算法能够从待检测的脚本中提取多维度的特征,而后将这些特征进行融合,从而可获得相互融合且多维度的融合特征,使得各个维度的特征相互补充,弥补了单一检测方式的缺点,在一定程度上能够避免漏报或误报。利用机器学习模型计算融合特征对应的特征值,从而可确定当前检测的脚本是WebShell的概率大小。其中,机器学习模型具有高效、高准确率的优势,因此可进一步提高WebShell检测的准确率和效率。
下面对本申请实施例提供的一种WebShell检测装置进行介绍,下文描述的一种WebShell检测装置与上文描述的一种WebShell检测方法可以相互参照。
参见图5所示,本申请实施例公开了一种WebShell检测装置,包括:
获取模块501,用于获取待检测的脚本;
第一提取模块502,用于利用抽象语法树提取脚本中的语法特征,语法特征包括函数依赖关系、类声明和函数关键字;
第二提取模块503,用于利用多模匹配算法提取脚本中的统计特征;
融合模块504,用于将语法特征和统计特征进行融合,获得融合特征;
检测模块505,用于利用机器学习模型计算融合特征对应的特征值,若特征值大于预设阈值,则确定脚本为WebShell。
在一种具体实施方式中,还包括:
判断模块,用于判断是否提取到语法特征;
执行模块,用于若提取到语法特征,则执行融合模块中的步骤。
在一种具体实施方式中,还包括:
第三提取模块,用于若未提取到语法特征,则利用多模匹配算法提取函数关键字,并将函数关键字确定为语法特征。
在一种具体实施方式中,融合模块具体用于:
将语法特征和统计特征进行拼接,获得融合特征。
在一种具体实施方式中,还包括:
确定模块,用于若特征值不大于预设阈值,则确定脚本为正常脚本。
优选地,还包括:
第四提取模块,用于利用预设规则提取脚本中的静态特征;
相应的,融合模块具体用于:
将语法特征、统计特征和静态特征进行融合,获得融合特征。
在一种具体实施方式中,机器学习模型通过CNN或SVM训练获得。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种WebShell检测装置,该装置可避免漏报或误报,提高WebShell检测的准确率和效率。
下面对本申请实施例提供的一种WebShell检测设备进行介绍,下文描述的一种WebShell检测设备与上文描述的一种WebShell检测方法及装置可以相互参照。
参见图6所示,本申请实施例公开了一种WebShell检测设备,包括:
存储器601,用于保存计算机程序;
处理器602,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种WebShell检测方法、装置及设备可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的WebShell检测方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种WebShell检测方法,其特征在于,包括:
获取待检测的脚本;
利用抽象语法树提取所述脚本中的语法特征,所述语法特征包括函数依赖关系、类声明和函数关键字;
利用多模匹配算法提取所述脚本中的统计特征;
将所述语法特征和所述统计特征进行融合,获得融合特征;
利用机器学习模型计算所述融合特征对应的特征值,若所述特征值大于预设阈值,则确定所述脚本为WebShell。
2.根据权利要求1所述的WebShell检测方法,其特征在于,所述将所述语法特征和所述统计特征进行融合,获得融合特征之前,还包括:
判断是否提取到所述语法特征;
若是,则执行所述将所述语法特征和所述统计特征进行融合,获得融合特征的步骤。
3.根据权利要求2所述的WebShell检测方法,其特征在于,还包括:
若未提取到所述语法特征,则利用所述多模匹配算法提取所述函数关键字,并将所述函数关键字确定为所述语法特征。
4.根据权利要求3所述的WebShell检测方法,其特征在于,所述将所述语法特征和所述统计特征进行融合,获得融合特征,包括:
将所述语法特征和所述统计特征进行拼接,获得所述融合特征。
5.根据权利要求1所述的WebShell检测方法,其特征在于,还包括:
若所述特征值不大于所述预设阈值,则确定所述脚本为正常脚本。
6.根据权利要求1所述的WebShell检测方法,其特征在于,还包括:
利用预设规则提取所述脚本中的静态特征;
相应的,
所述将所述语法特征和所述统计特征进行融合,获得融合特征,包括:
将所述语法特征、所述统计特征和所述静态特征进行融合,获得所述融合特征。
7.根据权利要求1至6任一项所述的WebShell检测方法,其特征在于,所述机器学习模型通过CNN或SVM训练获得。
8.一种WebShell检测装置,其特征在于,包括:
获取模块,用于获取待检测的脚本;
第一提取模块,用于利用抽象语法树提取所述脚本中的语法特征,所述语法特征包括函数依赖关系、类声明和函数关键字;
第二提取模块,用于利用多模匹配算法提取所述脚本中的统计特征;
融合模块,用于将所述语法特征和所述统计特征进行融合,获得融合特征;
检测模块,用于利用机器学习模型计算所述融合特征对应的特征值,若所述特征值大于预设阈值,则确定所述脚本为WebShell。
9.一种WebShell检测设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的WebShell检测方法。
10.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的WebShell检测方法。
CN202010018759.8A 2020-01-08 2020-01-08 一种WebShell检测方法、装置、设备及可读存储介质 Pending CN113094706A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010018759.8A CN113094706A (zh) 2020-01-08 2020-01-08 一种WebShell检测方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010018759.8A CN113094706A (zh) 2020-01-08 2020-01-08 一种WebShell检测方法、装置、设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN113094706A true CN113094706A (zh) 2021-07-09

Family

ID=76663325

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010018759.8A Pending CN113094706A (zh) 2020-01-08 2020-01-08 一种WebShell检测方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN113094706A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113821448A (zh) * 2021-11-22 2021-12-21 上海斗象信息科技有限公司 一种Webshell代码的检测方法及装置、可读存储介质
CN114499944A (zh) * 2021-12-22 2022-05-13 天翼云科技有限公司 一种检测WebShell的方法、装置和设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070083933A1 (en) * 2005-10-07 2007-04-12 Microsoft Corporation Detection of security vulnerabilities in computer programs
CN106611375A (zh) * 2015-10-22 2017-05-03 北京大学 一种基于文本分析的信用风险评估方法及装置
CN106961419A (zh) * 2017-02-13 2017-07-18 深信服科技股份有限公司 WebShell检测方法、装置及系统
CN107516041A (zh) * 2017-08-17 2017-12-26 北京安普诺信息技术有限公司 基于深度神经网络的WebShell检测方法及其系统
CN108985061A (zh) * 2018-07-05 2018-12-11 北京大学 一种基于模型融合的webshell检测方法
CN109462575A (zh) * 2018-09-28 2019-03-12 东巽科技(北京)有限公司 一种webshell检测方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070083933A1 (en) * 2005-10-07 2007-04-12 Microsoft Corporation Detection of security vulnerabilities in computer programs
CN106611375A (zh) * 2015-10-22 2017-05-03 北京大学 一种基于文本分析的信用风险评估方法及装置
CN106961419A (zh) * 2017-02-13 2017-07-18 深信服科技股份有限公司 WebShell检测方法、装置及系统
CN107516041A (zh) * 2017-08-17 2017-12-26 北京安普诺信息技术有限公司 基于深度神经网络的WebShell检测方法及其系统
CN108985061A (zh) * 2018-07-05 2018-12-11 北京大学 一种基于模型融合的webshell检测方法
CN109462575A (zh) * 2018-09-28 2019-03-12 东巽科技(北京)有限公司 一种webshell检测方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张慧琳;邹维;韩心慧;: "网页木马机理与防御技术", 软件学报, no. 04 *
王一岚;郭嵩;: "基于静态分析的Java源代码后门检测技术研究", 信息网络安全, no. 07 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113821448A (zh) * 2021-11-22 2021-12-21 上海斗象信息科技有限公司 一种Webshell代码的检测方法及装置、可读存储介质
CN114499944A (zh) * 2021-12-22 2022-05-13 天翼云科技有限公司 一种检测WebShell的方法、装置和设备
CN114499944B (zh) * 2021-12-22 2023-08-08 天翼云科技有限公司 一种检测WebShell的方法、装置和设备

Similar Documents

Publication Publication Date Title
US10146532B2 (en) Apparatus and method for detecting code cloning of software
KR102452123B1 (ko) 비정형 사이버 위협 정보 빅데이터 구축 장치, 사이버 위협 정보 빅데이터 구축 및 연관성 분석 방법
CN107341399B (zh) 评估代码文件安全性的方法及装置
CN111600919B (zh) 智能网络应用防护系统模型的构建方法和装置
CN112800427B (zh) webshell检测方法、装置、电子设备和存储介质
CN112822187B (zh) 网络攻击的检测方法及装置
CN115328756A (zh) 一种测试用例生成方法、装置及设备
CN112511546A (zh) 基于日志分析的漏洞扫描方法、装置、设备和存储介质
CN111835777A (zh) 一种异常流量检测方法、装置、设备及介质
CN113094706A (zh) 一种WebShell检测方法、装置、设备及可读存储介质
CN112989348A (zh) 攻击检测方法、模型训练方法、装置、服务器及存储介质
CN112580363A (zh) 需求文档处理方法、装置、计算机设备及存储介质
CN112817877B (zh) 异常脚本检测方法、装置、计算机设备和存储介质
CN116055293A (zh) 路由器的远程故障监控方法及路由器
CN117940894A (zh) 用于检测代码克隆的系统和方法
CN115314268B (zh) 基于流量指纹和行为的恶意加密流量检测方法和系统
CN111414621A (zh) 一种恶意网页文件识别方法及装置
CN115563296A (zh) 基于内容语义的融合检测方法和系统
CN114266046A (zh) 网络病毒的识别方法、装置、计算机设备及存储介质
CN111901310A (zh) 一种网站安全测试方法、装置、电子设备及存储介质
CN113810343B (zh) 函数注入攻击的检测方法、装置、设备及可读存储介质
CN115718696B (zh) 源码密码学误用检测方法、装置、电子设备和存储介质
CN114861216B (zh) 一种基于ac自动机的sql注入检测方法、设备、存储介质
CN117371041A (zh) 一种查询检测方法和相关装置
CN109325496B (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