CN111092894A - 一种基于增量学习的webshell检测方法、终端设备及存储介质 - Google Patents
一种基于增量学习的webshell检测方法、终端设备及存储介质 Download PDFInfo
- Publication number
- CN111092894A CN111092894A CN201911332980.4A CN201911332980A CN111092894A CN 111092894 A CN111092894 A CN 111092894A CN 201911332980 A CN201911332980 A CN 201911332980A CN 111092894 A CN111092894 A CN 111092894A
- Authority
- CN
- China
- Prior art keywords
- sample
- samples
- subset
- incremental learning
- training
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 33
- 238000012549 training Methods 0.000 claims abstract description 72
- 238000013145 classification model Methods 0.000 claims abstract description 45
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000012216 screening Methods 0.000 claims abstract description 24
- 239000013598 vector Substances 0.000 claims abstract description 24
- 238000000605 extraction Methods 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 31
- 238000004422 calculation algorithm Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 14
- 239000011159 matrix material Substances 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000009471 action Effects 0.000 claims description 5
- 230000001174 ascending effect Effects 0.000 claims description 4
- 238000007635 classification algorithm Methods 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000007123 defense Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于增量学习的webshell检测方法、终端设备及存储介质,该方法中包括:S1:采集webshell样本和正常样本,并对样本进行特征提取后组成训练集;S2:构建分类模型,通过训练集对分类模型进行训练,得到训练后的初始分类模型;S3:继续采集webshell样本,并提取样本的特征向量组成新增样本集,通过新增样本集中的样本对初始分类模型进行增量学习,得到增量学习后的分类模型;S4:通过增量学习后的分类模型对webshell进行检测。本发明利用了有标记样本和无标记样本的集合,通过解析样本抽象语法树得到词集向量的方式获得样本特征向量,无需人工标记,利用词集向量和基于调整筛选的最小距离分类算法,只需少量样本即可得到初始模型,大大降低了人力成本。
Description
技术领域
本发明涉及网络安全检测领域,尤其涉及一种基于增量学习的webshell检测方法、终端设备及存储介质。
背景技术
随着Internet的迅速发展和Web技术在各行业的广泛应用,Web安全逐渐成为信息安全领域最重要的攻防战场之一。WebShell是一种常见的Web攻击技术,由攻击者通过文件上传、SQL注入等攻击手段植入Web应用内,常用于权限维持、数据窃取、内网探测等攻击目的。扫描器和网站后门(即WebShell)已成为攻击者最常用的Web攻击技术。因此,快速、准确地进行WebShell的检测在安全防守端尤为重要。
传统的机器学习检测webshell的方法是通过人工提取了webshell样本的一些文本特征,然后把这些特征通过机器学习算法进行分类训练出机器学习模型,再用模型来预测未知的样本。在webshell安全检测领域,由于缺少样本,很难建立精准的监督学习模型,而无监督学习会造成误报率高的问题,需要大量的安全工程师分析过滤机器学习的警告,分析结果存在人工误差。由于Web攻击方式多变,传统的预测方式难以应对复杂的真实环境。
发明内容
为了解决上述问题,本发明提出了一种基于增量学习的webshell检测方法、终端设备及存储介质。
具体方案如下:
一种基于增量学习的webshell检测方法,包括以下步骤:
S1:采集webshell样本和正常样本,并对样本进行特征提取后组成训练集;
S2:构建分类模型,通过训练集对分类模型进行训练,得到训练后的初始分类模型;
S3:继续采集webshell样本,并提取样本的特征向量组成新增样本集,通过新增样本集中的样本对初始分类模型进行增量学习,得到增量学习后的分类模型;
S4:通过增量学习后的分类模型对webshell进行检测。
进一步的,样本特征提取包括以下步骤:
(1)通过抽象语法树对样本进行语义分析,获取样本的函数调用集合;
(2)根据每个样本对应的函数调用集合计算该样本的特征向量。
进一步的,样本特征向量的计算方法为:
设定训练集为D={x1,x2,...,xm},设定训练集中所有样本的所有函数调用组成词汇集合L,词汇集合L中的元素为各函数调用,则样本xi的特征向量Vi的计算公式为:
Vi={Vi1,Vi2,...,Vil}
其中,l表示集合L中元素的个数,i∈[1,m],j∈[1,l],Wi表示样本xi的函数调用集合,Lj表示词汇集合L中的第j个元素。
进一步的,步骤S2中的训练过程包括以下步骤:
S21:根据训练集中各样本的类别,确定每个类别对应的子集数量;
S22:确定每个子集的初始中心;
S23:针对每一类别的样本,根据该类别对应的子集数量,通过聚类算法将该类别的样本分为多个子集,并计算各子集的中心和协方差矩阵;
S24:消除训练集中属于不同类别的子集且具有重叠作用域的重叠样本;
S25:对训练集中的样本进行筛选,并计算筛选后的各子集的中心和协方差矩阵;
S26:通过训练集对构建的分类模型进行训练,将训练后的模型作为初始分类模型,并将分类错误的样本添加至错误样本集中。
进一步的,步骤S24具体包括以下步骤:
S241:设定集合Π,并初始化为空集;
S242:判断训练集中是否存在一子集,该子集与训练集中归属其他类别的子集具有重叠关系,如果存在,将该子集和对应的具有重叠关系的子集从训练集中删除,并添加至集合Π中,进入S243;否则,结束;
S243:针对集合Π中的每个子集,通过聚类算法将该子集的拆分为多个更小的子集后,将拆分后的子集添加至训练集中,清空集合Π,返回S242。
进一步的,步骤S242中重叠关系的判断方法为:如果一个子集中的样本与其所属的子集之间的距离大于与该样本另一子集之间的距离时,则判定两个子集具有重叠关系。
进一步的,步骤S25中筛选的方法为:针对每个子集,计算子集中每个样本与子集的距离,按照计算的距离对样本进行升序排列后,按照一定的间隔筛选样本。
进一步的,步骤S3中进行一次增量学习的过程为:
S31:通过初始分类模型对新增样本集中的样本进行分类,将分类正确的样本添加至正确样本集中,将分类错误的样本添加至错误样本集中;
S32:将正确样本集中的各样本添加至训练集的各子集中,对训练集中的样本进行筛选,并重新计算筛选后的各子集的中心和协方差矩阵;
S33:针对错误样本集中的各样本,通过聚类算法将样本分为多个子集,将各子集添加至训练集中;
S34:消除训练集中属于不同类别的子集且具有重叠作用域的重叠样本,并重新计算各子集的中心和协方差矩阵;
S35:使用步骤S34处理后的训练集对初始分类模型进行训练,并将分类错误的样本添加至错误样本集中,完成一次增量学习。
一种基于增量学习的webshell检测终端设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例上述的方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现本发明实施例上述的方法的步骤。
本发明采用如上技术方案,利用了有标记样本和无标记样本的集合,通过解析样本抽象语法树得到词集向量的方式获得样本特征向量,无需人工标记,利用词集向量和基于调整筛选的最小距离分类算法,只需少量样本即可得到初始模型,大大降低了人力成本,并且初始有标记样本数量越多,准确性越可靠;其次,在检测webshell一定程度上改善了系统的性能,有效降低了漏报率和误报率,并且支持增量学习,通过不断学习新增标记样本,能够持续优化系统。
附图说明
图1所示为本发明实施例一的流程图。
图2所示为该实施例中函数调用集合的示意图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。
现结合附图和具体实施方式对本发明进一步说明。
实施例一:
本发明实施例提供了一种基于增量学习的webshell检测方法,如图1所示,包括以下步骤:
S1:采集webshell样本和正常样本,并对样本进行特征提取后组成训练集。
所述特征提取的过程包括以下两点:
(1)采用抽象语法树(Abstract Syntax Tree,AST)对样本进行语义分析,获取样本的函数调用集合。
该实施例中采集的样本为脚本文件。
抽象语法树是编程语言的抽象语法结构的树状表现形式,作为编译器后端的输入,不依赖于具体的文法和语言的细节。通过对抽象语法树进行分析,可以获得对代码语义层面的理解。抽象语法树的生成过程包括词法分析和语法分析两个步骤,其中词法分析是将代码字符流转变为标记(Token)的过程,语法分析是根据标记集合构造抽象语法树的过程。
以Python为例,下面一段代码与其生成的抽象语法树为:
代码:
importos;os.system(cmd)
Module(body=[
Import(names=[
alias(name='os',asname=None),
]),
抽象语法树:
Expr(value=Call(func=Attribute(valu
e=Name(id='os',ctx=Load()),attr='system',
ctx=Load()),args=[
Name(id='cmd',ctx=Load()),
],keywords=[],starargs=None,
kwargs=None)),
])
由于WebShell的编写有很大的可变性,为了逃逸检测可以采取多种方式对代码本身进行混淆,如果仅在文本层面提取WebShell特征,则会陷入极大的被动,造成大量的漏报。因此,该实施例中通过对WebShell文本进行语义分析,从语义角度获取代码行为意图,对各类逃逸技术进行降维打击,从而获得相对稳定的WebShell特征。
综合各种编程语言的抽象语法树定义,树节点主要包括声明(Statement)、表达式(Expression)、注释(Comment)、定义(Declaration)、类型(Type)等。为了最大程度地屏蔽代码混淆等对特征提取结果的影响,从提取WebShell实际行为的目的出发,本实施例中认为只有函数调用表达式有实际意义,而外部库引用、变量定义、类/方法定义、注释等节点信息没有参考意义。函数调用表达式包括调用类、调用方法、调用参数三部分组成,其中调用类指函数调用主体类型,调用方法指调用的具体函数,调用参数指调用函数时传入的参数,如下所示:
os.system(cmd)
Expr(value=Call(func=Attribute(value
=Name(id='os',ctx=Load()),attr='system',
ctx=Load()),args=[
Name(id='cmd',ctx=Load()),
],keywords=[],starargs=None,
kwargs=None)
由于WebShell可以对语言内置类和方法,在抽象语法树遍历节点时对内部或外部引用的自定义类型和方法的调用进行递归追溯,最大程度上保证函数调用特征提取的完整性和一致性。由于WebShell编写和逃逸技术应用不尽相同,安全函数调用和危险函数调用的次数和顺序与WebShell实际行为没有必然联系,因此该实施例中认为在抽象语法树遍历时,同一类方法的调用次数不影响该函数调用的权重;不同类方法的调用顺序与其实际语义无关。此外,类名、变量名等应解析为对应的全限定名(Fully Qualified Name,FQN),以获取其明确唯一的类型表示。通过抽象语法树的生成和遍历解析,可以得到该脚本文件内的函数调用的无序不重复的函数调用集合。以JSP语言为例,抽取的函数调用集合如图2所示。
在获得脚本文件的函数调用集合后,对其进行特征提取,该实施例中通过特征向量来表示。
(2)采用词集模型(Set of Words),根据每个样本对应的函数调用集合计算该样本的特征向量。
样本特征向量的计算方法为:
设定训练集为D={x1,x2,...,xm},设定训练集中所有样本的所有函数调用组成词汇集合L(Lexicon),词汇集合L中的元素为各函数调用,则样本xi的特征向量Vi的计算公式为:
Vi={Vi1,Vi2,...,Vil}
其中,l表示集合L中元素的个数,i∈[1,m],j∈[1,l],Wi表示样本xi的函数调用集合,Lj表示词汇集合L中的第j个元素。
即如果词汇集合L中第j个词Lj出现在Wi中,那么该样本xi的向量分量Vij就为1,否则就为0。
S2:构建分类模型,通过训练集对分类模型进行训练,得到训练后的初始分类模型。
步骤S2实现模型的首次训练,主要包括两个阶段:第一阶段通过聚类算法对每个类别的样本进行聚类,由于其聚类是在同一类别的样本内部进行的,只考虑了同一类别样本对子集的所属关系的唯一性,没有考虑不同类别之间的两个子集之间可能存在重叠作用域,因此在第二阶段对不同类别的子集间进行调整,将存在重叠作用域的不同类别的子集进行分裂,生成作用域不重叠的多个更小的子集,避免了分类模型内部结构相互干扰。
该实施例中所述分类模型采用最小距离分类器,其具体的训练过程包括以下步骤:
S21:根据先验知识中各样本的类别,确定每个类别对应的子集数量。
该实施例中仅包括两个类别,即webshell类别和正常类别。
S22:确定每个子集的初始中心。
S23:针对每一类别的样本,根据该类别对应的子集数量,通过聚类算法将该类别的样本分为多个子集,并计算各子集的中心和协方差矩阵。
所述聚类算法可以采用常用的聚类算法,在此不做限制,该实施例中采用k-均值聚类算法。
S24:消除训练集中属于不同类别的子集且具有重叠作用域的重叠样本。
由于分类模型内部结构会产生互相干扰的现象,因此,需对其做出相应的调整以消除干扰,以确保分类模型的识别性能。分类模型内部结构的相互干扰表现为两个或者更多不同类别的子集之间存在着作用域的空间重叠,且重叠区域内分布着一个或者多个样本,按照分类模型的判决准则,这些样本可能被判决到错误的类别。由于样本的分布是不能被改变的,能够修改的只有分类模型的结构,而且相互干扰的根源在于不同类别的子集的作用域之间的重叠,因此,需要设法消除这种重叠。
该实施例中采用的消除重叠样本的方法为:先搜索出所有的存在作用域重合的不同类别的子集,如果不存在这样的子集,则不需要进行调整,否则把它们分裂为更小的一些子集,这相当于在样本空间中用代表分裂后的子集的作用域的超椭球体填充样本空间,因为这些超椭球体比原来的超椭球体要小,所以可以更加细致地反映样本的分布状况,表现更多的细节,填充时不易发生重叠现象。进行分裂之后,再次搜索所有的存在作用域重合的不同类别的子集,如果还存在这样的子集,则再次进行分裂,直至分类模型中不再存在这样的子集。
采用的具体步骤如下:
S241:设定集合Π,用于存储重叠子集,将集合Π初始化为空集,即Π=φ。
S242:判断训练集中是否存在一子集,该子集与训练集中归属其他类别的子集具有重叠关系,如果存在,将该子集和对应的具有重叠关系的子集从训练集中删除,并添加至集合Π中,进入S243;否则,结束;
判断两个子集是否具有重叠关系的方法为:
如果如果一个子集中的样本与其所属的子集之间的距离大于与该样本另一子集之间的距离时,则判定两个子集具有重叠关系。具体计算公式为:
样本与子集之间的距离的计算公式为:
协方差矩阵V的计算公式为:
S243:针对集合Π中的每个子集,通过聚类算法将该子集的拆分为多个更小的子集后,将拆分后的子集添加至训练集中,清空集合Π,返回S242。
如将集合Π中的子集Ωi拆分为两个更小的子集Ωia和Ωib,
S25:对步骤S24处理后的训练集中的样本进行筛选,并计算筛选后的各子集的中心和协方差矩阵。
具体筛选方法为:针对每个子集,计算子集中各样本与子集的距离,按照计算的距离对样本进行升序排列后,按照一定的间隔筛选样本。
通过样本筛选可以挑选出具有最大信息量的样本,提高训练的效率。
通过类似于统计学的分组抽样的方法进行筛选,筛选后的样本仍然包含着原始训练集的主要信息,也就是说,聚类的中心和形状、大小基本保持不变。当需要对子集进行分裂时,仍然可以从筛选后留下的样本中获得关于原始样本集足够多的信息。
S26:通过训练集对构建的分类模型进行训练,将训练后的模型作为初始分类模型,并将分类错误的样本添加至错误样本集中。
S3:继续采集webshell样本,并提取样本的特征向量组成新增样本集,通过新增样本集中的样本对初始分类模型进行增量学习,得到学习后的最终分类模型。
一次增量学习的过程包括以下步骤:
S31:通过初始分类模型对新增样本集中的样本进行分类,将分类正确的样本添加至正确样本集中,将分类错误的样本添加至错误样本集中。
S32:将正确样本集中的各样本添加至训练集的各子集中,对训练集中的样本进行筛选,并重新计算筛选后的各子集的中心和协方差矩阵。
S33:针对错误样本集中的各样本,通过聚类算法将样本分为多个子集,将各子集添加至训练集中。
S34:消除训练集中属于不同类别的子集且具有重叠作用域的重叠样本,并重新计算各子集的中心和协方差矩阵。
S35:使用步骤S34处理后的训练集对初始分类模型进行训练,并将分类错误的样本添加至错误样本集中,完成一次增量学习。
S4:通过增量学习后的分类模型对webshell进行检测。
本发明实施例提出一种基于增量学习的webshell检测方法,不同于传统的单分类分类器,本实施例提出了最小距离分类器的两阶段训练法,引入了类间调整过程,消除了训练过程,以及增量学习过程中出现的分类器内部结构的相互干扰现象,提高了分类器的识别能力;最小距离分类器的增量学习算法,在学习已有样本后分类器能够通过不断学习新的样本来提高分类能力,并且不忘记已经学习过的知识,适应“只知部分不知全局”的情况和动态的环境。而且,分类器能够克服增量学习过程中可能出现的内部结构的相互干扰的问题。在实际应用中,webshell每天都有海量的样本集更新,因此,希望检测系统能够具有自适应能力,能够在原来学习的基础上,不断地吸收来自环境中新的知识来优化改善当前系统,而不是每次有新来样本时,重头开始学习训练。本实施例中提出的增量学习算法,在有新样本产生时,不会重新对原来的样本进行学习训练,用增量学习算法将新样本的知识吸纳到原有的模型中,不断地优化现有的模型,提高准确率。
本发明实施例利用了有标记样本和无标记样本的集合,通过解析样本抽象语法树得到词集向量的方式获得样本特征向量,无需人工标记,利用词集向量和基于调整筛选的最小距离分类算法,只需少量样本即可得到初始模型,大大降低了人力成本,并且初始有标记样本数量越多,准确性越可靠;其次,在检测webshell一定程度上改善了系统的性能,有效降低了漏报率和误报率,并且本分类器支持增量学习,通过不断学习新增标记样本,能够持续优化系统。
实施例二:
本发明还提供一种基于增量学习的webshell检测终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例一的上述方法实施例中的步骤。
进一步地,作为一个可执行方案,所述基于增量学习的webshell检测终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述基于增量学习的webshell检测终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述基于增量学习的webshell检测终端设备的组成结构仅仅是基于增量学习的webshell检测终端设备的示例,并不构成对基于增量学习的webshell检测终端设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述基于增量学习的webshell检测终端设备还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。
进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述基于增量学习的webshell检测终端设备的控制中心,利用各种接口和线路连接整个基于增量学习的webshell检测终端设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述基于增量学习的webshell检测终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。
所述基于增量学习的webshell检测终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)以及软件分发介质等。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
Claims (10)
1.一种基于增量学习的webshell检测方法,其特征在于,包括以下步骤:
S1:采集webshell样本和正常样本,并对样本进行特征提取后组成训练集;
S2:构建分类模型,通过训练集对分类模型进行训练,得到训练后的初始分类模型;
S3:继续采集webshell样本,并提取样本的特征向量组成新增样本集,通过新增样本集中的样本对初始分类模型进行增量学习,得到增量学习后的分类模型;
S4:通过增量学习后的分类模型对webshell进行检测。
2.根据权利要求1所述的基于增量学习的webshell检测方法,其特征在于:样本特征提取包括以下步骤:
(1)通过抽象语法树对样本进行语义分析,获取样本的函数调用集合;
(2)根据每个样本对应的函数调用集合计算该样本的特征向量。
4.根据权利要求1所述的基于增量学习的webshell检测方法,其特征在于:步骤S2中的训练过程包括以下步骤:
S21:根据训练集中各样本的类别,确定每个类别对应的子集数量;
S22:确定每个子集的初始中心;
S23:针对每一类别的样本,根据该类别对应的子集数量,通过聚类算法将该类别的样本分为多个子集,并计算各子集的中心和协方差矩阵;
S24:消除训练集中属于不同类别的子集且具有重叠作用域的重叠样本;
S25:对训练集中的样本进行筛选,并计算筛选后的各子集的中心和协方差矩阵;
S26:通过训练集对构建的分类模型进行训练,将训练后的模型作为初始分类模型,并将分类错误的样本添加至错误样本集中。
5.根据权利要求4所述的基于增量学习的webshell检测方法,其特征在于:步骤S24具体包括以下步骤:
S241:设定集合Π,并初始化为空集;
S242:判断训练集中是否存在一子集,该子集与训练集中归属其他类别的子集具有重叠关系,如果存在,将该子集和对应的具有重叠关系的子集从训练集中删除,并添加至集合Π中,进入S243;否则,结束;
S243:针对集合Π中的每个子集,通过聚类算法将该子集的拆分为多个更小的子集后,将拆分后的子集添加至训练集中,清空集合Π,返回S242。
6.根据权利要求5所述的基于增量学习的webshell检测方法,其特征在于:步骤S242中重叠关系的判断方法为:如果一个子集中的样本与其所属的子集之间的距离大于与该样本另一子集之间的距离时,则判定两个子集具有重叠关系。
7.根据权利要求4所述的基于增量学习的webshell检测方法,其特征在于:步骤S25中筛选的方法为:针对每个子集,计算子集中每个样本与子集的距离,按照计算的距离对样本进行升序排列后,按照一定的间隔筛选样本。
8.根据权利要求1所述的基于增量学习的webshell检测方法,其特征在于:步骤S3中进行一次增量学习的过程为:
S31:通过初始分类模型对新增样本集中的样本进行分类,将分类正确的样本添加至正确样本集中,将分类错误的样本添加至错误样本集中;
S32:将正确样本集中的各样本添加至训练集的各子集中,对训练集中的样本进行筛选,并重新计算筛选后的各子集的中心和协方差矩阵;
S33:针对错误样本集中的各样本,通过聚类算法将样本分为多个子集,将各子集添加至训练集中;
S34:消除训练集中属于不同类别的子集且具有重叠作用域的重叠样本,并重新计算各子集的中心和协方差矩阵;
S35:使用步骤S34处理后的训练集对初始分类模型进行训练,并将分类错误的样本添加至错误样本集中,完成一次增量学习。
9.一种基于增量学习的webshell检测终端设备,其特征在于:包括处理器、存储器以及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1~8中任一所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1~8中任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911332980.4A CN111092894A (zh) | 2019-12-23 | 2019-12-23 | 一种基于增量学习的webshell检测方法、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911332980.4A CN111092894A (zh) | 2019-12-23 | 2019-12-23 | 一种基于增量学习的webshell检测方法、终端设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111092894A true CN111092894A (zh) | 2020-05-01 |
Family
ID=70396499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911332980.4A Pending CN111092894A (zh) | 2019-12-23 | 2019-12-23 | 一种基于增量学习的webshell检测方法、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111092894A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111475812A (zh) * | 2020-06-22 | 2020-07-31 | 中国人民解放军国防科技大学 | 一种基于数据可执行特征的网页后门检测方法与系统 |
CN111611457A (zh) * | 2020-05-20 | 2020-09-01 | 北京金山云网络技术有限公司 | 一种页面分类方法、装置、设备及存储介质 |
CN111818067A (zh) * | 2020-07-14 | 2020-10-23 | 绿盟科技集团股份有限公司 | 流量特征提取方法及装置 |
CN112685736A (zh) * | 2021-03-18 | 2021-04-20 | 北京安博通科技股份有限公司 | 一种webshell识别方法、装置及计算机可读存储介质 |
CN112988212A (zh) * | 2021-03-24 | 2021-06-18 | 厦门吉比特网络技术股份有限公司 | 神经网络模型之在线增量更新方法、装置、系统及存储介质 |
CN115774854A (zh) * | 2023-01-30 | 2023-03-10 | 北京亿赛通科技发展有限责任公司 | 一种文本分类方法、装置、电子设备和存储介质 |
CN116305148A (zh) * | 2023-02-28 | 2023-06-23 | 南京瀚海伏羲防务科技有限公司 | 一种基于指纹自动收集与增量模型训练的被动操作系统识别方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604394A (zh) * | 2008-12-30 | 2009-12-16 | 华中科技大学 | 一种有限存贮资源下的增量学习分类方法 |
CN106778795A (zh) * | 2015-11-24 | 2017-05-31 | 华为技术有限公司 | 一种基于增量学习的分类方法及装置 |
CN108833409A (zh) * | 2018-06-15 | 2018-11-16 | 北京网思科平科技有限公司 | 基于深度学习和半监督学习的webshell检测方法及装置 |
-
2019
- 2019-12-23 CN CN201911332980.4A patent/CN111092894A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604394A (zh) * | 2008-12-30 | 2009-12-16 | 华中科技大学 | 一种有限存贮资源下的增量学习分类方法 |
CN106778795A (zh) * | 2015-11-24 | 2017-05-31 | 华为技术有限公司 | 一种基于增量学习的分类方法及装置 |
CN108833409A (zh) * | 2018-06-15 | 2018-11-16 | 北京网思科平科技有限公司 | 基于深度学习和半监督学习的webshell检测方法及装置 |
Non-Patent Citations (3)
Title |
---|
吴斌: "基于深度学习和半监督学习的webshell检测方法", 《信息技术与网络安全》 * |
张昊: "基于语义分析和神经网络的WebShell检测方法", 《网络空间安全》 * |
戴桦: "智能检测WebShell的机器学习算法", 《网络与信息安全学报》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111611457A (zh) * | 2020-05-20 | 2020-09-01 | 北京金山云网络技术有限公司 | 一种页面分类方法、装置、设备及存储介质 |
CN111611457B (zh) * | 2020-05-20 | 2024-01-02 | 北京金山云网络技术有限公司 | 一种页面分类方法、装置、设备及存储介质 |
CN111475812A (zh) * | 2020-06-22 | 2020-07-31 | 中国人民解放军国防科技大学 | 一种基于数据可执行特征的网页后门检测方法与系统 |
CN111475812B (zh) * | 2020-06-22 | 2020-09-22 | 中国人民解放军国防科技大学 | 一种基于数据可执行特征的网页后门检测方法与系统 |
CN111818067A (zh) * | 2020-07-14 | 2020-10-23 | 绿盟科技集团股份有限公司 | 流量特征提取方法及装置 |
CN111818067B (zh) * | 2020-07-14 | 2022-07-15 | 绿盟科技集团股份有限公司 | 流量特征提取方法及装置 |
CN112685736B (zh) * | 2021-03-18 | 2021-06-29 | 北京安博通科技股份有限公司 | 一种webshell识别方法、装置及计算机可读存储介质 |
CN112685736A (zh) * | 2021-03-18 | 2021-04-20 | 北京安博通科技股份有限公司 | 一种webshell识别方法、装置及计算机可读存储介质 |
CN112988212A (zh) * | 2021-03-24 | 2021-06-18 | 厦门吉比特网络技术股份有限公司 | 神经网络模型之在线增量更新方法、装置、系统及存储介质 |
CN112988212B (zh) * | 2021-03-24 | 2022-09-13 | 厦门吉比特网络技术股份有限公司 | 神经网络模型之在线增量更新方法、装置、系统及存储介质 |
CN115774854A (zh) * | 2023-01-30 | 2023-03-10 | 北京亿赛通科技发展有限责任公司 | 一种文本分类方法、装置、电子设备和存储介质 |
CN115774854B (zh) * | 2023-01-30 | 2023-06-02 | 北京亿赛通科技发展有限责任公司 | 一种文本分类方法、装置、电子设备和存储介质 |
CN116305148A (zh) * | 2023-02-28 | 2023-06-23 | 南京瀚海伏羲防务科技有限公司 | 一种基于指纹自动收集与增量模型训练的被动操作系统识别方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111092894A (zh) | 一种基于增量学习的webshell检测方法、终端设备及存储介质 | |
US11061648B2 (en) | Method and system for arbitrary-granularity execution clone detection | |
CN111027069B (zh) | 恶意软件家族检测方法、存储介质和计算设备 | |
WO2019075390A1 (en) | BOX BLACK MATCHING MOTOR | |
Suo et al. | A simple and robust correlation filtering method for text-based person search | |
CN109905385B (zh) | 一种webshell检测方法、装置及系统 | |
US11212297B2 (en) | Access classification device, access classification method, and recording medium | |
CN115827895A (zh) | 一种漏洞知识图谱处理方法、装置、设备及介质 | |
CN108491228A (zh) | 一种二进制漏洞代码克隆检测方法及系统 | |
CN111090860A (zh) | 一种基于深度学习的代码漏洞检测方法及装置 | |
CN112800427A (zh) | webshell检测方法、装置、电子设备和存储介质 | |
US20240241954A1 (en) | Method of detecting android malware based on heterogeneous graph and apparatus thereof | |
CN103679034A (zh) | 一种基于本体的计算机病毒分析系统及其特征提取方法 | |
Tian et al. | Enhancing vulnerability detection via AST decomposition and neural sub-tree encoding | |
Liu et al. | Prompt Learning for Multi-Label Code Smell Detection: A Promising Approach | |
CN111738290B (zh) | 图像检测方法、模型构建和训练方法、装置、设备和介质 | |
CN117435189A (zh) | 金融系统接口的测试用例分析方法、装置、设备及介质 | |
CN112487394B (zh) | 图形推理验证码识别方法、系统、设备及介质 | |
CN114722400A (zh) | 一种侧信道漏洞检测的方法、系统、介质、设备及终端 | |
CN114510719A (zh) | 非法sql语句获取、模型训练、检测方法、装置及设备 | |
CN111860662B (zh) | 一种相似性检测模型的训练方法及装置、应用方法及装置 | |
Miao et al. | AST2Vec: A Robust Neural Code Representation for Malicious PowerShell Detection | |
CN117312833B (zh) | 一种应用于数字资产环境中的数据识别方法及系统 | |
US20230282013A1 (en) | Automated key-value pair extraction | |
Ly et al. | Deepmal: deep convolutional and recurrent neural networks for malware classification |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200501 |
|
WD01 | Invention patent application deemed withdrawn after publication |