CN117938430A - 基于Bert模型的Webshell检测方法 - Google Patents
基于Bert模型的Webshell检测方法 Download PDFInfo
- Publication number
- CN117938430A CN117938430A CN202311693763.4A CN202311693763A CN117938430A CN 117938430 A CN117938430 A CN 117938430A CN 202311693763 A CN202311693763 A CN 202311693763A CN 117938430 A CN117938430 A CN 117938430A
- Authority
- CN
- China
- Prior art keywords
- model
- webshell
- data
- bert
- data set
- 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 71
- 238000012549 training Methods 0.000 claims abstract description 48
- 238000000034 method Methods 0.000 claims abstract description 33
- 238000012545 processing Methods 0.000 claims abstract description 24
- 238000005070 sampling Methods 0.000 claims abstract description 21
- 238000007781 pre-processing Methods 0.000 claims abstract description 18
- 238000011068 loading method Methods 0.000 claims abstract description 7
- 238000013145 classification model Methods 0.000 claims abstract description 5
- 239000013598 vector Substances 0.000 claims description 26
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 13
- 230000011218 segmentation Effects 0.000 claims description 10
- 238000004140 cleaning Methods 0.000 claims description 9
- 238000011049 filling Methods 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 7
- 230000007246 mechanism Effects 0.000 claims description 6
- 238000011176 pooling Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 238000012360 testing method Methods 0.000 claims description 6
- 230000004913 activation Effects 0.000 claims description 4
- 230000002457 bidirectional effect Effects 0.000 claims description 4
- 230000014509 gene expression Effects 0.000 claims description 4
- 238000011157 data evaluation Methods 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 3
- 230000009466 transformation Effects 0.000 claims description 3
- 230000001788 irregular Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000003066 decision tree Methods 0.000 description 4
- 238000013515 script Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000008014 freezing Effects 0.000 description 2
- 238000007710 freezing Methods 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 238000010257 thawing Methods 0.000 description 2
- 235000019013 Viburnum opulus Nutrition 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000000877 morphologic effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Machine Translation (AREA)
Abstract
本发明公开了基于Bert模型的Webshell检测方法,属于大数据/AI领域,其具体包括:收集Webshell检测数据集,将数据划分为黑白两类,用1和0特征标识,对数据进行预处理,以剔除重复样本和去除影响文本向量化的字符,利用随机抽样将特征数据划分为数据集和训练集,并将特征数据处理为Bert模型的输入形式,通过Tensorflow加载Bert‑base‑cased模型,输入处理过后的特征数据,完成对特征的向量化编码,并利用模型中的微调方法进行调优,结合YOLOv5模型从不同空间维度检测特征建立分类模型,得到较高的准确度、精确度和F_score值,有效的提取webshell的特征。
Description
技术领域
本发明属于大数据/AI领域,具体的说是基于Bert模型的Webshell检测方法。
背景技术
Webshell是以asp、php、jsp等网页文件形式存在的一种代码执行环境,也可以称做网页后门,不仅隐蔽性很强,而且种类愈发复杂。黑客在入侵一个网站服务器后,通常会将Webshell后门文件与网站服务器Web目录下正常网页文件混在一起,通过Web访问Webshell后门进行信息嗅探、数据窃取、系统命令调用或篡改等各种高危操作,从而达到非法控制网站服务器的目的。
近年来,对于Webshell检测方法的研究有很多,主要从文件、日志和通信流量三个方面进行。基于文件的检测是分析文件的文本特征和统计特征,需要源码,容易泄露隐私,且耗时。基于日志的检测是根据服务器日志文件中的网站访问信息,对日志文件信息具有依赖性,故检测效果有限。基于流量的检测方法是通过攻击者和Webshell通信时产生的流量特征来进行检测,虽然可保证用户的隐私,但存在较高的误报率。
如授权公告号为CN108337269B的中国专利公开了一种WebShell检测方法,其特征是,对用户访问Web服务器产生的Web日志预处理后,以Web日志中的IP字段作为访问用户的唯一标识符计算入侵访问频次和最大访问连续度并各取值最大的N个URL作为疑似WebShell的URL,在Web日志中定位以获得疑似攻击IP,以文件形式传到安保服务器,由安保服务器根据疑似WebShell和访问IP对应的攻击时间进行复查,对攻击行为进行取证及输出。该发明所达到的有益效果:针对攻击通过非动态网页攻击也能有效检测,不存在解析结果差异问题,可以实现对多种浏览器攻击行为的检测,避免仅通过单一指标检测存在的误报率较高的问题,对未知WebShell也实现有效检测。
如授权公告号为CN114499944B的中国专利公开了一种检测WebShell的方法、装置和设备,涉及网络安全技术领域,本发明包括:获取WebShell环境中的待检测文件;将待检测文件输入至预先训练得到的目标检测模型进行检测;其中,目标检测模型是应用训练样本,对初始检测模型进行训练得到的;初始检测模型是由第一CNN网络、GRU网络和第二CNN网络构成的;第一CNN网络用于从训练样本中抽取基本特征,GRU网络用于提取基本特征中的序列特征,第二CNN网络用于对序列特征进行处理,以根据处理后的序列特征调节初始检测模型中参数,得到目标检测模型;根据检测结果确定WebShell环境中的待检测文件是否为安全文件。提高检测webshell是恶意还是安全的准确性。
以上专利均存在以下问题:针对Webshell检测存在的特征选择欠妥,特征提取不充分,特征向量难以贴切描述特征,导致的检测效果不佳等问题。
发明内容
针对现有技术的不足,本发明提出了基于Bert模型的Webshell检测方法,利用统计收集Webshell检测的样本集,将数据划分为黑白两类,用1和0特征标识,对样本数据进行预处理,以剔除重复样本和去除影响文本向量化的字符,利用随机抽样将特征数据划分为数据集和训练集,并将特征数据处理为Bert模型的输入形式,通过Tensorflow加载Bert-base-cased模型,输入处理过后的特征数据,完成对特征的向量化编码,并利用模型中的微调方法进行调优,结合YOLOv5模型从不同空间维度检测特征建立分类模型,得到较高的准确度、精确度和F_score值,有效的提取webshell的特征。
为实现上述目的,本发明提供如下技术方案:
基于Bert模型的Webshell检测方法,包括:
步骤S1:获取Webshell数据集,并将数据集进行特征标识;
步骤S2:对标识后的特征数据集进行预处理,并使用随机抽样,将预处理后的特征数据集的4/5划分为训练集,1/5划分为测试集,得到待训练特征数据集;
步骤S3:将数据集处理为Bert模型的输入形式,通过Tensorflow加载Bert-base-cased模型,输入待训练特征数据集进行训练,完成对特征的向量化编码,并进行微调,得到微调后的数据集;
步骤S4:将微调后的数据集输入到YOLOv5模型,从不同空间维度检测特征建立分类模型;
步骤S5:根据微调结果,数据评估结果,得到待检测文本的Webshell检测结果。
具体的,所述步骤S1中所述的获取Webshell数据集包括:php、jsp、asp在内的Webshell检测的正负样本集,并将数据划分为黑白两类,分别用1和0特征标识。
具体的,所述步骤S2中所述的预处理包括:去重、去特殊字符和去换行数据导入、数据清洗、分词、去停用词、特征处理,数据导入时要过滤掉字符串中的回车符与换行符,数据清洗使用正则表达式来处理非常规字符,分词使用cut方法,去停用词主要使用哈工大停用词表、百度停用词表,特征处理使用TF-IDF权重计算。
具体的,所述步骤S3的具体步骤包括:
步骤S301:设置最大序列长度为512,将输入的文本序列分词;
步骤S302:在两边分别加上[CLS]和[SEP]的特殊标记,并将单词列表转化成ID_token序列,再进行padding处理,其中,padding表示填充,属性接受1~4个值,每个值为<length>或<percentage>,且取值不为负,然后生成Mask和Segment ID,Mask表示掩码,用于提取感兴趣区域和提取结构特征,指示位置表示真实还是填充,Segment ID用于区分不同句子,最后得到3个嵌入向量,分别为:Token embedding、Position Embedding和SegmentEmbedding;
步骤S303:通过Tensorflow加载Bert-base-cased预训练模型,将得到的3个嵌入向量输入到Bert预训练模型的Transformer中进行训练,利用Transformer-encoder的注意力机制输出对应的特征词向量;
步骤S304:对得到的特征词向量进行微调。
具体的,所述步骤S303中预训练包括:Masked LM和下一句预测,其中,Masked LM用于防止信息泄露,下一句预测用于判断关系,将句子A和B输入Bert,预测B是否A的下一句,使用[CLS]的编码信息C进行预测。
具体的,所述步骤S303中Transformer-encoder多头注意力机制的步骤包括:
步骤S3031:在Transformer-encoder所包含的自注意力层上,将输入的embedding向量和一个随机生成的矩阵相乘,得到Q,K,V向量;
步骤S3032:进行注意力计算,注意力计算公式为:
其中,dk表示K向量的维度,V表示键值,Softmax()表示激活函数。
具体的,所述步骤S304中所述的对数据进行训练和微调包括:对微调模型的计算公式进行优化,微调模型的计算公式为:
其中,θt表示第t个迭代时的模型参数,g表示当前最小批量的梯度,表示梯度或随机梯度,/>和/>表示修正后的移动平均值,ε表示数值稳定项,η表示学习率,Loss表示损失函数,/>表示模型预测样本是正例的概率,y表示样本标签,样本属于正例,取值为1,否则取值为0。
具体的,所述步骤S4的具体步骤包括:
步骤S401:将步骤S303中生成的数据输入到YOLOv5的卷积层中与卷积核进行卷积操作,得到输出特征图,再对输出特征图进行非线性变换和归一化处理;
步骤S402:将处理后的特征图输入最大池化层,利用最近邻插值进行压缩;
步骤S403:将压缩后的数据接入到一个高维的卷积层得到高维特征,再利用平均池化层对得到的高维特征进行拉伸降维;
步骤S404:将降维后的数据输入Dropout层和全连接层,得到一个区间[0,1]的数值,根据数值大小判断是否为Webshell。
基于Bert模型的Webshell检测系统,包括:Webshell数据集获取模块、数据预处理模块、采样模块、Bert模块、YOLOv5模块,
所述Webshell数据集获取模块,用于获取Webshell数据集;
所述数据预处理模块,用于对Webshell数据集进行文件去重、去特殊字符和去换行;
所述采样模块,用于将Webshell数据集划分为训练集和测试集;
所述Bert模块,用于预训练和微调,利用双向Transformer结构提取上下文信息,利用完形填空式的Mask-LM预测被遮挡的词块,利用下一句预测任务学习句子级别信息,进一步完善和扩展了通用任务框架,创新了词块(token)和句子的表征方式;
所述YOLOv5模块,用于获得不同维度的特征,抓住特征中的重点信息。
具体的,所述Bert模块包括:预训练单元和微调单元,
所述预训练单元,用于节省计算资源;
所述微调单元,用于更好地反映特定领域的细微差别,生成特定领域或背景的语言,使其输出与预期输出之间的差异最小,从而找到使模型分类效果最好的参数。
具体的,一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现基于Bert模型的Webshell检测方法的步骤。
具体的,一种计算机可读存储介质,其特征在于,其上存储有计算机指令,当计算机指令运行时执行基于Bert模型的Webshell检测方法的步骤。
与现有技术相比,本发明的有益效果是:
1.本发明提出基于Bert模型的Webshell检测系统,并进行了架构、运行步骤和流程上的优化改进,系统具备流程简单,投资运行费用低廉,生产工作成本低的优点,在原有的Webshell检测系统的基础上提高了检测的准确度。
2.本发明提出基于Bert模型的Webshell检测方法,将Webshell数据集进行按照特征进行标识,并对特征数据进行预处理,根据Bert模型完成对特征的向量化编码,结合YOLO模型和微调方法的计算结果以实现Webshell检测的效果,不仅节省了从零开始训练语言处理模型所需要的时间、精力、知识和资源,并且在实际预测新样本中,也得到了较高的检出率。
3.本发明提出基于Bert模型的Webshell检测方法,考虑到Webshell方法特征选取因素、向量化选取因素、模型涉及不合理因素,能够对Bert模型进行最优规划,在批量大小、训练次数、学习率参数的设置上进行探索,采用Bert作为自编码模型,并使用开源预训练模型进行微调,从而提高模型的检测效率。
附图说明
图1为本发明基于Bert模型的Webshell检测方法流程图;
图2为本发明基于Bert模型的Webshell检测方法Bert模型流程图;
图3为本发明基于Bert模型的Webshell检测方法微调模型结构图;
图4为本发明基于Bert模型的Webshell检测方法系统分析流程图;
图5为本发明基于Bert模型的Webshell检测系统架构图;
图6位本发明基于Bert模型的Webshell检测方法及系统的电子设备图。
具体实施方式
为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“一号”、“二号”、“三号”仅用于描述目的,而不能理解为指示或暗示相对重要性。下面结合具体实施方式,进一步阐述本发明。
实施例1
请参阅图1-图4,本发明提供的一种实施例:基于Bert模型的Webshell检测方法,包括以下步骤:
步骤S1:获取Webshell数据集,并将数据集进行特征标识;
Webshell是以ASP、ASPX、JSP、PHP等Web脚本形式存在的一种代码执行环境。网络管理人员利用它可以进行服务器、网站后台的管理,而攻击者利用它可以控制服务器执行一些特定的命令,以完成信息收集、数据窃取、系统破坏等操作。攻击者首先利用服务器的漏洞将具有特定功能的Webshell脚本上传到服务器,然后通过访问脚本,在服务器上远程执行命令。
步骤S2:对标识后的特征数据集进行预处理,并使用随机抽样,将预处理后的特征数据集的4/5划分为训练集,1/5划分为测试集,得到待训练特征数据集;
数据进行预处理的原因:1)文本中含有不必要的信息和噪声;2)数据可能不一致或者不太规范;3)文本需要标记和分词;4)可能需要词形还原和词干提取;5)需要将文本向量化处理。
常用的抽样方法有:随机抽样、分层抽样、整群抽样、系统抽样;非随机抽样分为方便抽样、判断抽样、配额抽样、滚雪球抽样。
步骤S3:将数据集处理为Bert模型的输入形式,通过Tensorflow加载Bert-base-cased模型,输入处理过后的特征数据进行训练,完成对特征的向量化编码,并进行微调;
步骤S4:将微调后的数据输入到YOLO模型,从不同空间维度检测特征建立分类模型;
步骤S5:根据微调结果,数据评估结果,得到待检测文本的Webshell检测结果。
Webshell检测方法有:决策树、随机森林算法、语义分析、多层神经网络、支持向量机、Bert模型等,现有技术中,基于决策树的Webshell检测方法研究,可有效检测出变异Webshell,弥补了传统基于特征匹配检测方法的不足,主要思想是采用相应反混淆法抽取特征引擎,结合Boosting集体学习思想不断地调整权重以降低分类错误的概率,但是当子模型过多就会存在过度拟合问题,导致分类的准确度降低。现有技术中,采用随机森林改进算法的Webshell检测方法,提高决策树分类强度,降低树间相关度,同时依靠更少的决策树就能达到很好的效果,但是当引入的外部情报数据时,依靠样本数据和自身数据无法做到防御。现有技术中,基于语义分析的Webshell检测技术研究,主要思想是提出了污点子树的获取方法,通过节点风险值评估表,准确定位Webshell文件恶意行为发生点,剔除无关影响因子并使用巴斯克范式对行为进行特征的提取和描述,还可以从对未知风险进行识别和捕捉,但兼容性不够。现有技术中,基于支持向量机的Webshell黑盒检测,和决策树检测模型都属于有监督的机器学习系统,同时它还可以在未知脚本源代码的情况下对Webshell进行检测,可以同时监测多台服务器。而基于Bert模型的方法,避免了繁杂的特征提取和语言模型的重复训练过程,使用微调迁移学习的方法,更好地捕获文本的深层潜在语义特征,并在语言模型下游任务实现检测分类,进一步缓解了缺少数据的问题。
步骤S2中的预处理包括:数据导入、数据清洗、分词、去停用词、特征处理,数据导入时要过滤掉字符串中的回车符与换行符,数据清洗使用正则表达式来处理非常规字符,分词使用jieba库中的cut方法,去停用词主要使用哈工大停用词表、百度停用词表,特征处理使用TF-IDF权重计算。
数据清洗常用的方法有:正则表达式、字符串匹配和过滤。
分词常用的方法有:基于规则的算法、基于统计的算法和基于深度学习的算法,其中,基于深度学习的算法如BERT、LSTM等。
特征处理常用的方法有:词袋模型(Bag-of-words,BoW)、word2vec、GloVe、TDF-IDF等,
TF-IDF权重算法公式为:
TF-IDF=TF×IDF,
其中,TF表示词频,IDF表示逆文档频率,词频越高,说明单词越重要。
步骤S3的具体步骤包括:
步骤S301:设置最大序列长度为512,将输入的文本序列分词,得到一个单词列表;
步骤S302:在两边分别加上[CLS]和[SEP]的特殊标记,并将单词列表转化成ID_token序列,再进行padding处理,其中,padding表示填充,属性接受1~4个值,每个值为<length>或<percentage>,且取值不为负,然后生成Mask和Segment ID,Mask表示掩码,用于提取感兴趣区域和提取结构特征,指示位置表示真实还是填充,Segment ID用于区分不同句子,最后得到3个嵌入向量,分别为:Token embedding、Position Embedding和SegmentEmbedding;
步骤S303:通过Tensorflow加载Bert-base-cased预训练模型,将得到的3个嵌入向量输入到Bert预训练模型的Transformer中进行训练,利用Transformer-encoder的注意力机制输出对应的特征词向量;
Bert预训练模型的创新点在于:训练策略的改变,将以往基于自回归的训练策略转换为基于去噪自编码的训练策略,即掩蔽语言模型(Masking Language Model,MLM)任务,使得词向量从先前只包含前文信息变为了可以学习到上下文的信息,虽然丢失了对自然语言生成任务的先天优势,但加强了词向量本身的特征。
encoder表示编码器,是将输入序列转化成一个固定长度的向量,具体步骤为:1)对于输入序列a=(a1,…,ar),当前时间的隐藏状态为ψt,ψt=f(at,ψt-1);
2)再将隐藏层的信息汇总,生成最后的语义向量c,c=q(ψt,…,ψr),其中,f和q是非线性的函数。
步骤S304:对得到的特征词向量进行微调。
步骤S303中预处理包括:MLM和下一句预测(NextWord Prediction,NSP),其中,MLM用于防止信息泄露,NSP用于判断关系,将句子A和B输入Bert,预测B是否A的下一句,使用[CLS]的编码信息C进行预测。
其中,MLM任务旨在利用语句的上下文双向信息,恢复语句中被Mask的token,以帮助模型学习语言知识,NSP任务旨在去识别一个输入文本是否是相邻的两句话拼接而成。
步骤S303中注意力机制的具体步骤包括:
步骤S3031:在Transformer-encoder所包含的自注意力层上,将输入的embedding向量和一个随机生成的矩阵相乘,得到Q,K,V向量;
步骤S3032:进行注意力计算,注意力计算公式为:
其中,dk表示K向量的维度,V表示键值,Softmax()表示激活函数,
激活函数公式为:
步骤S304的具体步骤包括:
对微调模型的计算公式进行优化,微调模型的计算公式为:
其中,
其中,θt表示第t个迭代时的模型参数,g表示当前最小批量的梯度,表示梯度或随机梯度,β1和β2表示超参数,m和v表示移动平均值,/>和/>表示修正后的移动平均值,ε表示数值稳定项,η表示学习率,Loss表示损失函数,/>表示模型预测样本是正例的概率,y表示样本标签,样本属于正例,取值为1,否则取值为0;
常用的模型微调的方法:1)冻结底层,将预训练模型的底层冻结,微调替换顶层,以适应特定的任务;2)全局微调,对整个模型进行微调,但通常需要较大的目标训练集,以避免过拟合;3)层级微调,从顶层逐步向底层微调,可防止模型在微调过程中失去预训练的特征;4)差异化学习率,为底层设置较小学习率,顶层使用较大学习率,可在保护训练模型的特征的同时加速微调;5)渐进解冻,从底层到顶层逐层解冻并对顶部几层进行微调。
步骤S4的具体步骤包括:
步骤S401:将步骤S303中生成的数据输入到YOLOv5的卷积层中与卷积核进行卷积操作,得到输出特征图,再对输出特征图进行非线性变换和归一化处理;
步骤S402:将处理后的特征图输入最大池化层,利用最近邻插值进行压缩;
步骤S403:将压缩后的数据接入到一个高维的卷积层得到高维特征,再利用平均池化层对得到的高维特征进行拉伸降维;
步骤S404:将降维后的数据输入Dropout层和全连接层,得到一个区间[0,1]的数值,根据数值大小判断是否为Webshell。
步骤S5的数据评估的方法包括:
准确率、精确率和F_score值,具体公式为:
其中,TP表示将正类预测为正类数,FN表示将正类预测为负类数,FP表示将负类预测为正类数,TN表示将负类预测为负类数,Ac表示准确率,Ap表示精确率,Are表示召回率。
实施例2
请参阅图5,本发明提供的另一种实施例:基于Bert模型的Webshell检测系统,包括:
Webshell数据集获取模块、数据预处理模块、采样模块、Bert模块、YOLO模块;
所述Webshell数据集获取模块,用于获取Webshell数据集;
所述数据预处理模块,用于对Webshell数据集进行文件去重、去特殊字符和去换行;
所述采样模块,用于将Webshell数据集划分为训练集和测试集;
所述Bert模块,用于预训练和微调,利用双向Transformer结构提取上下文信息,利用完形填空式的Mask-LM预测被遮挡的词块,利用下一句预测任务学习句子级别信息,进一步完善和扩展了通用任务框架,创新了词块(token)和句子的表征方式;
所述YOLO模块,用于获得不同维度的特征,抓住特征中的重点信息。
所述数据预处理模块包括数据导入单元、数据清洗单元、分词单元、去停用词单元和特征处理单元;
所述数据导入单元,用于过滤掉字符串中的回车符与换行符;
所述数据清洗单元,用于去除数据中HTML标签、数字、特殊符号等;
所述分词单元,用于将句子分割成单独的词语;
所述去停用词单元,用于去除对文本意义贡献较小的词语,以减少处理时间和存储空间,并提高文本处理效率;
所述特征处理单元,用于衡量单词在文档集合中的重要性。
所述Bert模块包括预训练单元和微调单元;
所述预训练单元,用于节省计算资源;
所述微调单元,用于更好地反映特定领域的细微差别,生成特定领域或背景的语言,使其输出与预期输出之间的差异最小。
实施例3
请参阅图6,一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现基于Bert模型的Webshell检测方法的步骤。
一种计算机可读存储介质,其特征在于,其上存储有计算机指令,当计算机指令运行时执行基于Bert模型的Webshell检测方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (12)
1.基于Bert模型的Webshell检测方法,其特征在于,包括:
步骤S1:获取Webshell数据集,并将数据集进行特征标识;
步骤S2:对标识后的特征数据集进行预处理,并使用随机抽样,将预处理后的特征数据集的4/5划分为训练集,1/5划分为测试集,得到待训练特征数据集;
步骤S3:将数据集处理为Bert模型的输入形式,通过Tensorflow加载Bert-base-cased模型,输入待训练特征数据集进行训练,完成对特征的向量化编码,并进行微调,得到微调后的数据集;
步骤S4:将微调后的数据集输入到YOLOv5模型,从不同空间维度检测特征建立分类模型;
步骤S5:根据微调结果,数据评估结果,得到待检测文本的Webshell检测结果。
2.如权利要求1所述的基于Bert模型的Webshell检测方法,其特征在于,所述步骤S1中获取Webshell数据集包括:php、jsp、asp在内的Webshell检测的正负样本集,并将数据划分为黑白两类,分别用1和0特征标识。
3.如权利要求2所述的基于Bert模型的Webshell检测方法,其特征在于,所述步骤S2中预处理包括:数据导入、数据清洗、分词、去停用词、特征处理,数据导入时要过滤掉字符串中的回车符与换行符,数据清洗使用正则表达式来处理非常规字符,分词使用cut方法,去停用词主要使用哈工大停用词表、百度停用词表,特征处理使用TF-IDF权重计算。
4.如权利要求3所述的基于Bert模型的Webshell检测方法,其特征在于,所述步骤S3的具体步骤包括:
步骤S301:设置最大序列长度为512,将输入的文本序列分词,得到一个单词列表;
步骤S302:在两边分别加上[CLS]和[SEP]的特殊标记,并将单词列表转化成ID_token序列,再进行padding处理,其中,padding表示填充,属性接受1~4个值,每个值为<length>或<percentage>,且取值不为负,然后生成Mask和Segment ID,Mask表示掩码,用于提取感兴趣区域和提取结构特征,指示位置表示真实还是填充,Segment ID用于区分不同句子,最后得到3个嵌入向量,分别为:Token embedding、Position Embedding和SegmentEmbedding;
步骤S303:通过Tensorflow加载Bert-base-cased预训练模型,将得到的3个嵌入向量输入到Bert预训练模型的Transformer中进行训练,利用Transformer-encoder的注意力机制输出对应的特征词向量;
步骤S304:对得到的特征词向量进行微调。
5.如权利要求4所述的基于Bert模型的Webshell检测方法,其特征在于,所述步骤S303中预训练包括:Masked LM和下一句预测,其中,Masked LM用于防止信息泄露,下一句预测用于判断关系,将句子A和B输入Bert,预测B是否A的下一句,使用[CLS]的编码信息C进行预测。
6.如权利要求5所述的基于Bert模型的Webshell检测方法,其特征在于,所述步骤S303中Transformer-encoder的注意力机制的具体步骤包括:
步骤S3031:在Transformer-encoder所包含的自注意力层上,将输入的embedding向量和一个随机生成的矩阵相乘,得到Q,K,V向量;
步骤S3032:进行注意力计算,注意力计算公式为:
其中,dk表示K向量的维度,V表示键值,Softmax()表示激活函数。
7.如权利要求6所述的基于Bert模型的Webshell检测方法,其特征在于,所述步骤S304中对数据进行微调包括:对微调模型的计算公式进行优化,微调模型的计算公式为:
其中,θt表示第t个迭代时的模型参数,g表示当前最小批量的梯度,表示梯度或随机梯度,/>和/>表示修正后的移动平均值,ε表示数值稳定项,η表示学习率,Loss表示损失函数,/>表示模型预测样本是正例的概率,y表示样本标签,样本属于正例,取值为1,否则取值为0。
8.如权利要求7所述的基于Bert模型的Webshell检测方法,其特征在于,所述步骤S4的具体步骤包括:
步骤S401:将步骤S303中生成的数据输入到YOLOv5的卷积层中与卷积核进行卷积操作,得到输出特征图,再对输出特征图进行非线性变换和归一化处理;
步骤S402:将处理后的特征图输入最大池化层,利用最近邻插值进行压缩;
步骤S403:将压缩后的数据接入到一个高维的卷积层得到高维特征,再利用平均池化层对得到的高维特征进行拉伸降维;
步骤S404:将降维后的数据输入Dropout层和全连接层,得到一个区间[0,1]的数值,根据数值大小判断是否为Webshell。
9.基于Bert模型的Webshell检测系统,其基于所述权利要求1-8中任一项所述的基于Bert模型的Webshell检测方法实现,其特征在于,包括:Webshell数据集获取模块、数据预处理模块、采样模块、Bert模块、YOLOv5模块,
所述Webshell数据集获取模块,用于获取Webshell数据集;
所述数据预处理模块,用于对Webshell数据集进行文件去重、去特殊字符和去换行;
所述采样模块,用于将Webshell数据集划分为训练集和测试集;
所述Bert模块,用于预训练和微调,利用双向Transformer结构提取上下文信息,利用完形填空式的Mask-LM预测被遮挡的词块,利用下一句预测任务学习句子级别信息,进一步完善和扩展了通用任务框架,创新了词块(token)和句子的表征方式;
所述YOLOv5模块,用于获得不同维度的特征,抓住特征中的重点信息。
10.如权利要求9所述的基于Bert模型的Webshell检测系统,其特征在于,所述Bert模块包括:预训练单元和微调单元,
所述预训练单元,用于节省计算资源;
所述微调单元,用于更好地反映特定领域的细微差别,生成特定领域或背景的语言,使其输出与预期输出之间的差异最小。
11.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-8任一项所述的基于Bert模型的Webshell检测方法的步骤。
12.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,当计算机指令运行时执行权利要求1-8任一项所述的基于Bert模型的Webshell检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311693763.4A CN117938430A (zh) | 2023-12-11 | 2023-12-11 | 基于Bert模型的Webshell检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311693763.4A CN117938430A (zh) | 2023-12-11 | 2023-12-11 | 基于Bert模型的Webshell检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117938430A true CN117938430A (zh) | 2024-04-26 |
Family
ID=90761888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311693763.4A Pending CN117938430A (zh) | 2023-12-11 | 2023-12-11 | 基于Bert模型的Webshell检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117938430A (zh) |
-
2023
- 2023-12-11 CN CN202311693763.4A patent/CN117938430A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111783100B (zh) | 基于图卷积网络对代码图表示学习的源代码漏洞检测方法 | |
CN107294993B (zh) | 一种基于集成学习的web异常流量监测方法 | |
US20220405592A1 (en) | Multi-feature log anomaly detection method and system based on log full semantics | |
CN112905421B (zh) | 基于注意力机制的lstm网络的容器异常行为检测方法 | |
CN112765603B (zh) | 一种结合系统日志与起源图的异常溯源方法 | |
CN112491796B (zh) | 一种基于卷积神经网络的入侵检测及语义决策树量化解释方法 | |
CN109547423B (zh) | 一种基于机器学习的web恶意请求深度检测系统及方法 | |
CN111600919B (zh) | 智能网络应用防护系统模型的构建方法和装置 | |
CN109918505B (zh) | 一种基于文本处理的网络安全事件可视化方法 | |
CN111598179B (zh) | 电力监控系统用户异常行为分析方法、存储介质和设备 | |
CN112492059A (zh) | Dga域名检测模型训练方法、dga域名检测方法、装置及存储介质 | |
CN111866004B (zh) | 安全评估方法、装置、计算机系统和介质 | |
CN111901340A (zh) | 一种面向能源互联网的入侵检测系统及其方法 | |
CN112738014A (zh) | 一种基于卷积时序网络的工控流量异常检测方法及系统 | |
CN114168938B (zh) | 一种基于少量异常标签的半监督sql注入攻击检测方法 | |
CN115269314A (zh) | 一种基于日志的事务异常检测方法 | |
CN111177731A (zh) | 一种基于人工神经网络的软件源代码漏洞检测方法 | |
Chen et al. | An efficient network intrusion detection model based on temporal convolutional networks | |
CN112613032B (zh) | 基于系统调用序列的主机入侵检测方法及装置 | |
CN116192537B (zh) | 一种apt攻击报告事件抽取方法、系统和存储介质 | |
CN116074092B (zh) | 一种基于异构图注意力网络的攻击场景重构系统 | |
CN112039907A (zh) | 一种基于物联网终端评测平台的自动测试方法及系统 | |
JI et al. | Log Anomaly Detection Through GPT-2 for Large Scale Systems | |
CN115242539B (zh) | 基于特征融合的电网信息系统网络攻击检测方法及装置 | |
CN109508544B (zh) | 一种基于mlp的入侵检测方法 |
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 |