CN115470489A - 检测模型训练方法、检测方法、设备以及计算机可读介质 - Google Patents
检测模型训练方法、检测方法、设备以及计算机可读介质 Download PDFInfo
- Publication number
- CN115470489A CN115470489A CN202211136479.2A CN202211136479A CN115470489A CN 115470489 A CN115470489 A CN 115470489A CN 202211136479 A CN202211136479 A CN 202211136479A CN 115470489 A CN115470489 A CN 115470489A
- Authority
- CN
- China
- Prior art keywords
- sample
- feature
- data set
- training
- features
- 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 100
- 238000012549 training Methods 0.000 title claims abstract description 69
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000004044 response Effects 0.000 claims abstract description 14
- 230000006870 function Effects 0.000 claims description 25
- 238000000605 extraction Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 19
- 238000004422 calculation algorithm Methods 0.000 claims description 14
- 230000001364 causal effect Effects 0.000 claims description 10
- 238000012216 screening Methods 0.000 claims description 7
- 230000011218 segmentation Effects 0.000 claims description 7
- 238000007637 random forest analysis Methods 0.000 claims description 5
- 238000001914 filtration Methods 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 8
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000012360 testing method Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Virology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种检测模型训练方法、检测方法、设备以及计算机可读介质,该方案可以基于配置文件从样本集中提取关于样本的结构特征,从所述样本集中提取关于样本的语义特征后,组合获得第三特征集和第三数据集,进而基于第三特征集和第三数据集获得训练集,并基于所述训练集训练Webshell检测模型,由此完成Webshell检测模型的训练。在完成模型训练后,即可基于该Webshell检测模型对响应流量进行Webshell检测,获得检测结果。由于输入数据是请求的响应流量,并且Webshell检测模型的训练过程中,结合了样本的语义特征与DOM节点的结构特征,因此能够同时确保检测的准确性和实时性,并且无需查看Web应用的源文件,能够很好的适用于CDN服务器的应用场景。
Description
技术领域
本申请涉及信息技术领域,尤其涉及一种Webshell检测模型训练方法、检测方法设备以及计算机可读介质。
背景技术
随着Web应用的爆发式增长,Web应用系统遭受攻击的事件越来越多,带来的损失也越来越大。现今,网络攻击的模式已经由传统的分散性的攻击模式逐渐转变为有针对性的持续性攻击模式。这种模式的网络攻击不易被检测,危害性大,并且通常会留下后门程序便于进行后续网络攻击。Webshell是一种基于网络应用的后门程序,是网络攻击中主要的组成部分,网络攻击者成功地攻陷网络应用后,可以通过Webshell获取服务器控制权限进行持续性攻击,造成严重的后果。针对Webshell的检测主要有3个方向:基于文件内容的静态检测、基于Web日志的事后检测以及基于实时通信流量的检测。
现有的一种基于文件内容的静态检测方案中,是通过从Web应用中识别包含恶意代码的文件的方式来实现Webshell检测。具体通过该检测系统将扫描并发现Web应用的每个文件中的恶意代码,分析包括关键字、文件权限和所有者在内的特性。这种方法是工作量大,防御者需要扫描并查找Web应用中的每个文件,并且缺少实时性,并且需要拥有对源文件的访问权限。
现有的一种基于实时通信流量的检测方案中,需要从请求的载荷中进行Webshell的检测,通过获取原始序列的全局表示来使RNN(Recurrent Neural Network,循环神经网络)能够很好地执行,同时设计了一种用于聚合子序列的注意力机制,以提高聚合的可解释性并显著提高了模型的检测性能。但是,这种方式的本质仍然是一种文本处理问题,类似与前述的静态检测方案。
现有的一种基于Web日志的事后检测方案中,是从Web日志中还原出Session信息,同时利用HMM(Hidden Markov Model,隐式马尔科夫模型)和LSTM(long-short termmemory,长短期记忆网络)等构建模型进行检测。但是这种方式的问题在于:基于Session信息的检测会失去实时性,同时增加了工程化的复杂度。
在CDN(Content Delivery Network,内容分发网络)服务器防护Webshell攻击的场景中,由于其场景特点,防护程序无权查看Web应用的源文件,同时也需要确保检测的实时性,因此导致了现有技术中的Webshell检测方法无法很好的适用于此类场景。
发明内容
本申请的一个目的是提供一种检测模型训练方法、检测方法设备以及计算机可读介质,至少用以解决现有方案无法很好的部署于CDN服务器上实现Webshell检测的问题。
为实现上述目的,本申请的一些实施例提供了一种Webshell检测模型训练方法,所述方法包括:
基于配置文件从样本集中提取关于样本的结构特征,生成第一特征集和第一数据集,其中,所述样本集中的样本为HTML文档,所述配置文件包括了HTML文档的DOM节点信息以及从所述DOM节点信息中提取结构特征的提取函数;
从所述样本集中提取关于样本的语义特征,生成第二特征集和第二数据集;
将所述第二特征集、第二数据集分别与所述第一特征集、第一数据集组合,获得第三特征集和第三数据集;
基于所述第三特征集和第三数据集获得训练集,并基于所述训练集训练Webshell检测模型。
本申请实施例还提供了一种Webshell检测方法,所述方法包括:
采用前述的Webshell检测模型训练方法,训练获得Webshell检测模型;
获取响应流量中的待检测HTML文档,并将所述待检测HTML文档输入所述Webshell检测模型,获取所述检测结果。
本申请实施例还提供了一种计算设备,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行所述的Webshell检测模型训练方法或Webshell检测方法。
本申请实施例还提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现所述的Webshell检测模型训练方法或Webshell检测方法。
相较于现有技术,本申请实施例提供的方案中,可以基于配置文件从样本集中提取关于样本的结构特征,生成第一特征集和第一数据集,从所述样本集中提取关于样本的语义特征,生成第二特征集和第二数据集,然后将所述第二特征集、第二数据集分别与所述第一特征集、第二数据集组合,获得第三特征集和第三数据集,进而基于所述第三特征集和第三数据集获得训练集,并基于所述训练集训练Webshell检测模型,由此完成Webshell检测模型的训练。在完成模型训练后,即可基于该Webshell检测模型对响应流量进行Webshell检测,获得检测结果。由于输入数据是请求的响应流量,并且Webshell检测模型的训练过程中,结合了样本的语义特征与DOM节点的结构特征,因此能够同时确保检测的准确性和实时性,并且无需查看Web应用的源文件,能够很好的适用于CDN服务器的应用场景。
附图说明
图1为本申请实施例提供的一种Webshell检测模型训练方法的处理流程图;
图2为本申请实施例的方案获取敏感词集时的处理流程图;
图3为本申请实施例进行特征提取和筛选的一种实现方式的处理流程图;
图4为一种在CDN场景中部署本申请实施例中的Webshell检测方案的示意图;
图5为本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请一个典型的配置中,终端、服务网络的设备均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机程序指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本申请实施例提供了一种检测模型训练方法以及基于训练获得的检测模型所实现的检测方法。在进行检测模型训练时,可以基于配置文件从样本集中提取关于样本的结构特征,生成第一特征集和第一数据集,从所述样本集中提取关于样本的语义特征,生成第二特征集和第二数据集,然后将所述第二特征集、第二数据集分别与所述第一特征集、第二数据集组合,获得第三特征集和第三数据集,进而基于所述第三特征集和第三数据集获得训练集,并基于所述训练集训练Webshell检测模型,由此完成Webshell检测模型的训练。在完成模型训练后,即可基于该Webshell检测模型对响应流量进行Webshell检测,获得检测结果。由于输入数据是请求的响应流量,并且Webshell检测模型的训练过程中,结合了样本的语义特征与DOM节点的结构特征,因此能够同时确保检测的准确性和实时性,并且无需查看Web应用的源文件,能够很好的适用于CDN服务器的应用场景。
在实际场景中,该方法的执行主体可以是用户设备、网络设备或用户设备与网络设备通过网络相集成所构成的设备,或者也可以是运行于上述设备的应用程序。所述用户设备包括但不限于计算机、手机、平板电脑等各类终端设备;所述网络设备包括但不限于如网络主机、单个网络服务器、多个网络服务器集中的服务器或者是分布式云网络中的服务器等。在此所述分布式云网络由基于云计算(Cloud Computing)的大量主机或网络服务器构成。需要说明的是,分布式云网络可以为CDN(Content Delivery Network,内容分发网络),该CDN网络中可以包括多个CDN节点,分布式云网络也可以为边缘云网络,该边缘云网络中可以包括多个边缘服务节点。
图1示出了本申请实施例提供的一种检测模型训练方法的处理流程,至少包括以下的处理步骤:
步骤S101,基于配置文件从样本集中提取关于样本的结构特征,生成第一特征集和第一数据集。
在本实施例中,样本集中所包含的样本为HTML(Hyper Text Markup Language,超文本标记语言)文档,可以包括正样本和负样本,其中正样本为包含Webshell的HTML文档,所述负样本为不包含Webshell的HTML文档,可以分别通过不同的标记(label)来标识,例如本实施例中所使用的样本集中可以包括104000条样本,其中,4000条为包含Webshell的正样本,其余为负样本。配置文件可以包括HTML文档的DOM(Document Object Model,文件对象模型)节点信息以及从所述DOM节点信息中提取结构特征的提取函数,可以在训练检测模型之前预先配置完成。由此,可以利用配置文件中的信息从HTML文档中提取出各个DOM节点中的具体内容所代表的结构特征。
具体地,在编写获得配置文件时,可以根据各类HTML文档的DOM结构,将DOM节点对应的标签(tag)以及这些标签包含的属性(attribute)提取出来,以标签和属性的组合作为一个key值,该key值即表示一个DOM节点信息。对于每一个DOM节点信息,都可以配置一个对应的提取函数,以用于从对应的DOM节点中提取出相关的结构特征。在实际场景中,配置文件中可以通过写入该提取函数的名称(即提取函数名),以便于本方案可以通过提取函数的名称调用对应的提取函数,来从对应的DOM节点中提取结构特征。
以<a>标签的href属性为例,可以组合生成“a_href”的key值。然后可以进一步分析href属性,进行更细粒度的特征提取后,可以细化获得“是否是绝对路径”、“路径深度”、“协议类型”和“资源类型”这四种具体的细化特征。在配置文件中,可以写入前述的key值以及对应的细化特征数量和提取函数名,作为配置信息,例如本实施中“a_href”的细化特征数量为4,提取函数名为src_str。下表1示出了本实施例中配置文件的几条配置信息的示例:
配置信息 | <tag>_<attribute> | "(<feature_num>,'<method_name>')" |
示例1 | a_href | "(4,'src_str')" |
示例2 | form_method | "(1,'one_hot_method')" |
示例3 | script_count | "(1,'count')" |
…… | …… | …… |
表1
表1中,tag表示标签,attribute表示标签的属性,feature_num表示细化特征数量,method_name表示提取函数名。
由此,通过配置文件中的这部分配置可以提取到对应DOM节点的一部分结构特征。以某一HTML文档的样本为例,首先,可以根据所述HTML文档的DOM节点信息,从样本集中提取样本中的标签以及所述标签的属性,获得特征集的标签字典。然后可以根据对应的提取函数,从所述标签字典中提取关于样本的结构特征,生成第一特征集和第一数据集。
由于配置文件中包含的key值表示样本中可能包含的标签以及对应的属性,因此可以提取出HTML文档中所包含的所有标签以及该标签的属性,得到一个初步的标签字典。同时,由于配置文件中每种标签和属性组成的key值,都记录了各自的对应的提取函数名,因此可以基于这些提取函数名所指向的提取函数,从标签字典中提取具体的特征信息,该特征信息即为关于样本的结构特征。样本的这些结构特征所组成的集合即可形成第一特征集,同时在第一特征集的基础上,结合样本所对应的label形成第一数据集。本实施例中,第一特征集可以记为Fstruc,第一数据集记为Sstruc。
按照上述的方式,将各个不同DOM节点对应的配置信息写入到配置文件后,即可利用该配置文件提取到检测所需要的结构特征。此外,在后续的处理中,若出现HTML文档的DOM结构有更新,也可以不断地向配置文件中添加新的配置信息,以保证所提取到的结构特征的详实程度。
步骤S102,从所述样本集中提取关于样本的语义特征,生成第二特征集和第二数据集。
区别于步骤S101中所提取的结构特征,本步骤中需要从样本集的HTML文档样本中提取其所包含的语义特征,由此组成第二特征集和对应的第二数据集,其中第二特征集可以记为Fsem和第二数据集可以记为Ssem。
在本申请的一些实施例中,提取语义特征可以基于TF-IDF(Term Frequency-Inverse Document Frequency,词频-逆文本频率指数)算法,该算法可以用于评估关键词对于一个样本集中的一份样本的重要程度。具体方式为:首先,采用TF-IDF算法获取所述样本集中关于正样本的敏感词集,其中TF-IDF值的公式为:tfidfi,j=tfi,j×idfi,i为单词索引,j为文档索引,tfi,j为单词i在文档j中的词频,idfi为单词i在语料库中的逆文档频率,tfidfi,j为文档j中的单词i所对应的TF-IDF值。然后,基于所述敏感词集中的敏感词在样本中出现的数量,确定所述样本的语义特征,并根据所述语义特征生成第二特征集和第二数据集。
其中,所述敏感词集中包含够用于显著识别正样本的关键词,理论上,当一个样本中包含越多敏感词集中的关键词,则该样本属于正样本的概率越高。图2示出了本申请实施例采用TF-IDF算法获取所述样本集中关于正样本的敏感词集时的具体处理流程,至少包括以下步骤:
步骤S201,基于所述样本集训练TF-IDF算法的特征转换器。其中,所述特征转换器包括样本集的分词列表以及对应的IDF向量表,所述分词列表包括样本集所对应的关键词,所述IDF向量表中包括分词列表中每个关键词对应的IDF值。
其中,所述语料库对应于本申请实施例中的样本集,其中每一条语料对应于一个样本,该语料库中包含4条语料。通过对每一条语料进行分词可以得到包括多个关键词的分词列表,words=['this','document','first','is','second','the','and','one']。计算这些关键词在出现的词频,可以获得TF值,由此可以生成词频矩阵为:
[[1,1,1,1,0,1,0,0],[1,2,0,1,1,1,0,0],[1,0,0,1,0,1,1,1],[1,1,1,1,0,1,0,0]]
然后关键词对应的IDF值向量为:[1,1.22314355,1.51082562,1,1.91629073,1,1.91629073,1.91629073]。
由此,可以获得包含分词列表和IDF值向量的特征转换器。
步骤S202,使用所述特征转换器分别统计样本集的负样本和正样本中排序靠前的n个关键词,作为第一负样本关键词集和第一正样本关键词集,其中,排序结果按照关键词的TF-IDF值由大到小的顺序确定。
对于一个待统计的样本,对其进行分词后,首先可以利用特征转换器的分词列表,统计出各个关键词的词频。例如,以测试样本“This document is the first document”为例,可以统计获得其对应的TF向量为[1,2,1,1,0,1,0,0]。而后,利用特征转换器中的IDF值向量,可以确定该测试样本中每个关键词对应的TF-IDF值为:[1,2.4462871,1.51082562,1,0,1,0,0]。通过分别对所有正样本和负样本进行遍历处理,可以分别统计出负样本和正样本TF-IDF值排序靠前的n个关键词,作为第一负样本关键词集和第一正样本关键词集。
步骤S203,按照预设比例,从所述第一正样本关键词集获取排序靠前的多个关键词,作为第二正样本关键词集。其中,所述预设比例可以根据实际场景的需求设定,用于从前一步的结果中筛选出对正样本重要程度更高的关键词。例如,可以设定为TF-IDF值排序结果的前2/3、1/2等。此外,在特定的场景下,也可以将预设比例设定为1,即直接使用前一步筛选出的n个关键词,而不做进一步的筛选。
例如,若前述步骤所获得的第一正样本关键词集为W_sp=("shell","chmod","777","user","wwwroot","linux",":port","dbserver","cmd"),且已按照TF-IDF值排序结果排序。本实施例中,预设比例设定为TF-IDF值排序结果的前2/3,则由此获得的第二正样本关键词集W_sp2=("shell","chmod","777","user","wwwroot","linux")。
步骤S204,按照预设比例,从所述第一负样本关键词集获取排序靠前的多个关键词,作为第二负样本关键词集。对于第一负样本关键词集,也可以采用类似的方式,做进一步筛选,例如,若前述步骤所获得的第一正样本关键词集为W_sn=('"body","javascript","linux","user","rgb","display","html","backgroud","width"),且已按照TF-IDF值排序结果排序。本实施例中,预设比例设定为TF-IDF值排序结果的前1/3,则由此获得的第二正样本关键词集W_sn2=('"body","javascript","linux")。
步骤S205,计算第二正样本关键词集和第二负样本关键词集的差集,作为敏感词集。取第二正样本关键词集和第二负样本关键词集的差集的目的在于,排除在正样本和负样本都普遍出现的关键词,以排除此类关键词的干扰,提升敏感词集对正样本的识别能力。
以前述的第二正样本关键词集和第二负样本关键词集为例,可以获得敏感词集为:W_s=W_sp2–W_sn2=("shell","chmod","777","user","wwwroot")。
在基于所述敏感词集中的敏感词在样本中出现的数量,确定所述样本的语义特征,并根据所述语义特征生成第二特征集和第二数据集时,可以先从所述敏感词集中取排序靠前的m个关键词,并将所述m个关键词分为k组,获得数量为k的关键词组。此处,关键词的排序结果同样是按照关键词的TF-IDF值由大到小的顺序确定。
在获取到k组关键词组后,可以分别统计k个关键词组所包含的关键词在样本中出现的数量,作为所述样本的语义特征,并根据所述语义特征生成第二特征集和第二数据。例如,若本实施例中的敏感词集W_s为("aaa","bbb","ccc","ddd","eee"),将其分为3组后,分别得到三个关键词组w1=("aaa","bbb","ccc"),w2=("ddd"),w3=("eee"),此时可以针对每个样本分别统计这些关键词组出现的数量,例如以一个HTML文档d为例,包含如下的内容“<html>aaa is not bbb,bbb is ddd</html>”,其中,"aaa"的数量为1,"bbb"的数量为2,关键词组w1出现的数量为1+2=3,而"ddd"的数量为1,故关键词组w2出现的次数为1,未出现"eee",故关键词组w3出现的次数为0。由此,将得到该样本d的语义特征[3,1,0]。通过此种方式遍历样本集中的所有样本后,即的获得相应的语义特征,可以得到第二特征集Fsem和第二数据集Ssem。
步骤S103,将所述第二特征集、第二数据集分别与所述第一特征集、第一数据集组合,获得第三特征集Ffull和第三数据集Sfull。
在进行组合时,可以将第二特征集Fsem拼接到第一特征集Fstruc的尾部,得到第三特征集Ffull,并将第二数据集Ssem拓展到第一数据集Sstruc中得到第三数据集Sfull,该步骤所得到的第三特征集Ffull与第三数据集Sfull中关于特征的列一一对应。
步骤S104,基于所述第三特征集和第三数据集获得训练集,并基于所述训练集训练Webshell检测模型。由于第三特征集和第三数据集中结合了样本的结构特征和语义特征,能够更加精准的表示HTML样本的特点,使得后续的处理结果更加准确。
为了避免训练集中的样本类别的不平衡导致训练效果不佳,在获取训练集时可以对样本进行一定程度的平衡,本实施例中可以通过一定的采样方式控制训练集中正样本与负样本的比例在1:30至1:10之间,由此来确保样本类别的平衡。例如,若本申请实施例中初步获得的训练集中,正样本为4000条,而负样本多达100000条,此时可以使用欠采样的方式维持正样本和负样本的比例为1:10,以确保正负样本的类别平衡。
进一步地,本申请实施例在进行模型训练时可以采用随机森林算法训练Webshell检测模型。例如,本实施例中可以设定树的数量为100,每个数的最大特征数为10,由于随机森林算法属于集成算法,模型精度往往比单棵决策树更高,并且每次随机选样本和特征,提高了模型抗干扰能力,泛化能力更强,可以获得更加准确的Webshell检测模型。
在本申请的另一些实施例中,为了进一步提高检测模型的精确度以及方案的运行速度,对于所得的第三特征集和第三数据集进行进一步的筛选,以便于排除一些无效的数据。
具体地,可以对所述第三特征集和第三数据集进行筛选,从所述第三特征集和第三数据集中删除无效的元素,获得第五特征集和第五数据集。而后将所述第五特征集和第五数据集作为训练集,训练Webshell检测模型。其中,所述元素包括特征集中的特征以及所述特征在数据集中对应的列,由此获得的第五特征集即为在第三特征集的基础上删除了部分无效特征的特征集,而第五数据集则是在第三数据集的基础上删除了无效特征所对应的列的数据集。
在实际场景中,若第三数据集中的某一列的取值完全相同,则表示这两列表示的是冗余的特征,因此在从所述第三特征集和第三数据集中删除无效的元素时,可以采用如下的方式:将第三数据集中取值相同的列删除,获得第五数据集,同时将第三特征集中与所删除的列对应的特征删除,获得第五特征集。
此外,还可以利用因果学习的方式进行进一步的筛选,首先采用前述的方式,将第三数据集中取值相同的列删除,获得第四数据集Sfilter,同时将第三特征集中与所删除的列对应的特征删除,获得第四特征集Ffilter。然后对第四数据集进行因果学习,生成因果图,所述因果图中的节点对应样本的特征。在生成因果图中,将样本的label作为一个特征放入因果图,节点之间存在连接的边,说明两项特征之间具有潜在的关联,其中,大部分特征所所对应的节点是相互联通的,且最大连通图中包含label所对应的节点,因此可以认为这个最大连通图中的特征与label所对应的检测结果相关。而其他孤立的节点所对应的特征,则可以认为它们与最终的检测结果无关或关联度很小,故可以作为无效的特征删除,由此从所述第四特征集中删除孤立节点所对应的特征,即可获得第五特征集Ffinal,同时将第四数据集中与所删除的特征所对应的列删除,获得第五数据集Sfinal。
由此获得的第五特征集Ffinal和第五数据集Sfinal,可以作为最终的特征集和训练集,以此获得的训练集进行模型训练时,可以进一步提高检测模型的精确度以及训练的速度,从而提升方案的整体性能。
图3示出了本申请实施例进行特征提取和筛选的一种实现方式的处理流程,在完成编写配置文件、设置原始的样本集等准备工作后,可以执行如下的处理步骤:
步骤S301,基于配置文件,从样本集的HTML文档中提取出所有<tag>_<attribute>组合的key值。
步骤S302,根据配置文件选择相应的提取函数来进行结构特征的提取,得到初步的第一特征集Fstruc和第一数据集Sstruc。
步骤S303,使用TF-IDF算法提取样本集中HTML文档的语义特征,得到第二特征集Fsem和第二数据集为Ssem,并与第一特征集Fstruc和第一数据集Sstruc组合为第三特征集Ffull与第三数据集Sfull,作为补充。
步骤S304,删除第三数据集中取值相同的列以及该列对应的特征,获得第四数据集Sfilter和第四特征集Ffilter。
步骤S305,基于第四数据集和第四特征集使用PC算法生产因果图。
步骤S306,删除不与label对应的节点位于同一连通图的特征节点,获得最终的第五特征集Ffinal和第五数据集Sfinal,以实现样本数据的特征表示。
此外,本申请实施例还提供了一种Webshell检测方法,该检测方法采用前述的训练方法来训练获得Webshell检测模型,获取响应流量中的待检测HTML文档,并将所述待检测HTML文档输入所述Webshell检测模型,获取所述检测结果。由于输入数据是请求的响应流量,并且Webshell检测模型的训练过程中,结合了样本的语义特征与DOM节点的结构特征,因此能够同时确保检测的准确性和实时性,并且无需查看Web应用的源文件,能够很好的适用于CDN服务器的应用场景。
图4示出了一种在CDN场景中部署本申请实施例中的Webshell检测方案的示意图,客户端410发起请求后,请求流量会经由CDN节点420中的代理421转发给服务器430,服务器430对会根据请求返回应答,并将响应流量经由CDN节点420发送给发起请求的客户端410。在此过程中,CDN节点420中的Webshell检测程序422会采用前述的Webshell检测方法,响应流量进行检测,判断其中的HTML文档是否包含了Webshell,若检测结果判断该HTML文档中包含了Webshell,则可以通过报警系统423执行相应的处理,例如向用户发出报警信息、终止转发响应流量等,以此保护客户端。
对于上述Webshell检测方法的性能,可以采用如下的方式进行验证。首先,可以选择的样本集S,其中共有样本104000条,其中4000条为包含Webshell的正样本,其余为负样本。首先,通过前述特征提取的方式得到训练集,然后在采用随机森林算法训练Webshell检测模型时,通过欠采样的方式维持正样本与负样本的比例为1:20,同时随机森林算法中树的数量为81,每棵树的最大特征数为9。在完成模型训练后,对测试集进行逐条的特征抽取和预测,并统计测试集进行特征抽取和预测这两个阶段的耗时。
在评价方案性能时,可以采用F1分数(F1-Score)来评价检测模型的精确度,F1分数定义为精确率和召回率的调和平均数,同时兼顾了分类模型的准确率和召回率,其计算公式为F1_score=2·(precision_score·recall_score)/(precision_score+recall_score),其中,precision_score为准确率,recall_score为召回率。
在验证时,测试集共146321条,其中负样本为5114条,其余为正样本,通过预先训练好的Webshell检测模型进行训练最终得到的precision_score为98.32%,recall_score为99.93%,由此计算获得F1_score结果为98.95%,并且即使进行多次训练F1_score始终大于98%。单条测试样本的平均预测时长保持在10ms以内,特征抽取阶段的耗时约2ms,模型预测阶段的耗时在7ms以内。由此可知,本申请实施例的方案具有较好的性能,能够快速、准确地对样本进行Webshell的检测。
此外,本申请实施例还提供了一种计算设备,该设备的结构如图5所示,包括用于存储计算机程序指令的存储器510和用于执行计算机程序指令的处理器520,其中,当该计算机程序指令被该处理器执行时,触发所述处理器执行所述Webshell检测模型训练方法或Webshell检测方法。
本申请实施例中的方法和/或实施例可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在该计算机程序被处理单元执行时,执行本申请的方法中限定的上述功能。
需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图或框图示出了按照本申请各种实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的针对硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
作为另一方面,本申请实施例还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个计算机程序指令,所述计算机程序指令可被处理器执行以实现前述本申请的多个实施例的方法和/或技术方案的步骤。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一些实施例中,本申请的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (12)
1.一种Webshell检测模型训练方法,其特征在于,所述方法包括:
基于配置文件从样本集中提取关于样本的结构特征,生成第一特征集和第一数据集,其中,所述样本集中的样本为HTML文档,所述配置文件包括了HTML文档的DOM节点信息以及从所述DOM节点信息中提取结构特征的提取函数;
从所述样本集中提取关于样本的语义特征,生成第二特征集和第二数据集;
将所述第二特征集、第二数据集分别与所述第一特征集、第一数据集组合,获得第三特征集和第三数据集;
基于所述第三特征集和第三数据集获得训练集,并基于所述训练集训练Webshell检测模型。
2.根据权利要求1所述的方法,其特征在于,基于配置文件从样本集中提取关于样本的结构特征,生成第一特征集和第一数据集,其中,所述样本集中的样本为HTML文档,所述配置文件包括了HTML文档的DOM节点信息以及从所述DOM节点信息中提取结构特征的提取函数,包括:
根据所述HTML文档的DOM节点信息,从样本集中提取样本中的标签以及所述标签的属性,获得特征集的标签字典;
根据对应的提取函数,从所述标签字典中提取关于样本的结构特征,生成第一特征集和第一数据集。
3.根据权利要求1所述的方法,其特征在于,从所述样本集中提取关于样本的语义特征,生成第二特征集和第二数据集,包括:
采用TF-IDF算法获取所述样本集中关于正样本的敏感词集,所述正样本为包含Webshell的HTML文档;
基于所述敏感词集中的敏感词在样本中出现的数量,确定所述样本的语义特征,并根据所述语义特征生成第二特征集和第二数据集。
4.根据权利要求3所述的方法,其特征在于,采用TF-IDF算法获取所述样本集中关于正样本的敏感词集,包括:
基于所述样本集训练TF-IDF算法的特征转换器,其中,所述特征转换器包括样本集的分词列表以及对应的IDF向量表,所述分词列表包括样本集所对应的关键词,所述IDF向量表中包括分词列表中每个关键词对应的IDF值;
使用所述特征转换器分别统计样本集的负样本和正样本中排序靠前的n个关键词,作为第一负样本关键词集和第一正样本关键词集,其中,排序结果按照关键词的TF-IDF值由大到小的顺序确定,所述负样本为不包含Webshell的HTML文档;
按照预设比例,从所述第一正样本关键词集获取排序靠前的多个关键词,作为第二正样本关键词集;
按照预设比例,从所述第一负样本关键词集获取排序靠前的多个关键词,作为第二负样本关键词集;
计算第二正样本关键词集和第二负样本关键词集的差集,作为敏感词集。
5.根据权利要求3所述的方法,其特征在于,基于所述敏感词集中的敏感词在样本中出现的数量,确定所述样本的语义特征,并根据所述语义特征生成第二特征集和第二数据集,包括:
从所述敏感词集中取排序靠前的m个关键词,并将所述m个关键词分为k组,获得数量为k的关键词组,其中,排序结果按照关键词的TF-IDF值由大到小的顺序确定;
分别统计k个关键词组所包含的关键词在样本中出现的数量,作为所述样本的语义特征,并根据所述语义特征生成第二特征集和第二数据集。
6.根据权利要求1所述的方法,其特征在于,基于所述第三特征集和第三数据集获得训练集,并基于所述训练集训练Webshell检测模型,包括:
对所述第三特征集和第三数据集进行筛选,从所述第三特征集和第三数据集中删除无效的元素,获得第五特征集和第五数据集,其中,所述元素包括特征集中的特征以及所述特征在数据集中对应的列;
将所述第五特征集和第五数据集作为训练集,训练Webshell检测模型。
7.根据权利要求6所述的方法,其特征在于,对所述第三特征集和第三数据集进行筛选,从所述第三特征集和第三数据集中删除无效的元素,获得第五特征集和第五数据集,包括:
将第三数据集中取值相同的列删除,获得第五数据集,同时将第三特征集中与所删除的列对应的特征删除,获得第五特征集;或者
将第三数据集中取值相同的列删除,获得第四数据集,同时将第三特征集中与所删除的列对应的特征删除,获得第四特征集;
对第四数据集进行因果学习,生成因果图,所述因果图中的节点对应样本的特征;
从所述第四特征集中删除孤立节点所对应的特征,获得第五特征集,同时将第四数据集中与所删除的特征所对应的列删除,获得第五数据集。
8.根据权利要求1所述的方法,其特征在于,所述训练集中正样本与负样本的比例在1:30至1:10之间,所述正样本为包含Webshell的HTML文档,所述负样本为不包含Webshell的HTML文档。
9.根据权利要求1所述的方法,其特征在于,基于所述训练集训练Webshell检测模型,包括:
基于所述训练集,采用随机森林算法训练Webshell检测模型。
10.一种Webshell检测方法,其特征在于,所述方法包括:
采用如权利要求1至9中任一项所述的方法训练获得Webshell检测模型;
获取响应流量中的待检测HTML文档,并将所述待检测HTML文档输入所述Webshell检测模型,获取所述检测结果。
11.一种计算设备,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行权利要求1至10中任一项所述的方法。
12.一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现如权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211136479.2A CN115470489A (zh) | 2022-09-19 | 2022-09-19 | 检测模型训练方法、检测方法、设备以及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211136479.2A CN115470489A (zh) | 2022-09-19 | 2022-09-19 | 检测模型训练方法、检测方法、设备以及计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115470489A true CN115470489A (zh) | 2022-12-13 |
Family
ID=84333446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211136479.2A Pending CN115470489A (zh) | 2022-09-19 | 2022-09-19 | 检测模型训练方法、检测方法、设备以及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115470489A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117077763A (zh) * | 2023-10-18 | 2023-11-17 | 贵州白山云科技股份有限公司 | 一种模型可更新的注入攻击检测方法及系统 |
-
2022
- 2022-09-19 CN CN202211136479.2A patent/CN115470489A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117077763A (zh) * | 2023-10-18 | 2023-11-17 | 贵州白山云科技股份有限公司 | 一种模型可更新的注入攻击检测方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10360307B2 (en) | Automated ontology building | |
US11196756B2 (en) | Identifying notable events based on execution of correlation searches | |
US20180225388A1 (en) | Automatic browser tab groupings | |
JP7120350B2 (ja) | セキュリティ情報分析方法、セキュリティ情報分析システム、及び、プログラム | |
CN112165462A (zh) | 基于画像的攻击预测方法、装置、电子设备及存储介质 | |
CN110929145A (zh) | 舆情分析方法、装置、计算机装置及存储介质 | |
US11941135B2 (en) | Automated sensitive data classification in computerized databases | |
US11151180B2 (en) | Messaging digest | |
CN111324810A (zh) | 一种信息过滤方法、装置及电子设备 | |
US11797617B2 (en) | Method and apparatus for collecting information regarding dark web | |
CN115514558A (zh) | 一种入侵检测方法、装置、设备及介质 | |
CN110929185A (zh) | 网站目录检测方法、装置、计算机设备及计算机存储介质 | |
CN115470489A (zh) | 检测模型训练方法、检测方法、设备以及计算机可读介质 | |
US20130282759A1 (en) | Method and system for processing search queries | |
CN115001763B (zh) | 钓鱼网站攻击检测方法、装置、电子设备及存储介质 | |
US9286349B2 (en) | Dynamic search system | |
Copstein et al. | Exploring syntactical features for anomaly detection in application logs | |
CN111563276B (zh) | 一种网页篡改检测方法、检测系统及相关设备 | |
US11055491B2 (en) | Geographic location specific models for information extraction and knowledge discovery | |
CN112257100A (zh) | 敏感数据保护效果的检测方法、装置及存储介质 | |
CN110309312B (zh) | 一种关联事件获取方法及装置 | |
EP3786825B1 (en) | Natural language processing systems and methods for automatic reduction of false positives in domain discovery | |
RU2664018C1 (ru) | Система и способ автоматического расследования инцидентов безопасности в автоматизированной системе | |
US11954424B2 (en) | Automatic domain annotation of structured data | |
Unnikrishnan et al. | A Literature Review of Sentiment Evolution |
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 |