CN117459247A - 一种基于深度学习的Webshell检测方法及装置 - Google Patents
一种基于深度学习的Webshell检测方法及装置 Download PDFInfo
- Publication number
- CN117459247A CN117459247A CN202311196627.4A CN202311196627A CN117459247A CN 117459247 A CN117459247 A CN 117459247A CN 202311196627 A CN202311196627 A CN 202311196627A CN 117459247 A CN117459247 A CN 117459247A
- Authority
- CN
- China
- Prior art keywords
- webshell
- network
- traffic
- flow
- feature
- 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 104
- 238000013135 deep learning Methods 0.000 title claims abstract description 21
- 238000011176 pooling Methods 0.000 claims description 26
- 230000006870 function Effects 0.000 claims description 25
- 238000012549 training Methods 0.000 claims description 25
- 238000000034 method Methods 0.000 claims description 24
- 230000004913 activation Effects 0.000 claims description 17
- 238000013527 convolutional neural network Methods 0.000 claims description 15
- 238000007781 pre-processing Methods 0.000 claims description 15
- 230000009467 reduction Effects 0.000 claims description 14
- 238000013528 artificial neural network Methods 0.000 claims description 9
- 238000004458 analytical method Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 7
- 230000006835 compression Effects 0.000 claims description 6
- 238000007906 compression Methods 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 4
- 239000011159 matrix material Substances 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 241000282414 Homo sapiens Species 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000149 penetrating effect Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Virology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于深度学习的Webshell检测方法和装置,通过将原始网络流量与特征集进行特征匹配,初步筛选出疑似Webshell流量,进一步将疑似Webshell流量输入到训练好的流量检测模型中,进行精确检测,既提高了Webshell检测的检测效率,又提高了Webshell检测的检测精度。
Description
技术领域
本发明涉及网络安全技术领域,特别涉及一种基于深度学习的Webshell检测方法及装置。
背景技术
随着互联网技术的飞速发展,网络与人们的生活联系日益紧密,网络空间安全形势日益复杂。Web应用程序的安全性受到了越来越多的关注,服务端安全问题日益严峻,甚至严重威胁到网络服务的正常运行。
在Web攻击和高级持续性威胁手段中,Webshell可以实现外部人员对于系统部分权限的控制。Webshell是一种由编程语言如PHP、JSP和ASP等写成的程序,该程序拥有获取服务器基本信息、操作文件和数据库、执行系统命令等功能。在网络攻击生命周期中,Webshell常被看作是一种在被攻击Web服务器上运行的远程访问木马程序,攻击者通过Webshell可以获得Web服务的管理权限,从而可以突破系统的内部边界,完成对网站的持续性控制。
传统的Webshell检测方法通过对常见Webshell的危险函数和恶意签名等关键词进行分析和匹配,从而迅速检测出文件中是否包含其恶意特征。通常情况下,经筛选出的Webshell需要经过网站维护人员的进一步技术核实。为了能够及时地检测出经过高度混淆和加密的Webshell,基于日志、流量分析以及行为分析的检测方法被相继提出。与此同时,人工智能正在渗透各行各业,机器学习在解决网络安全问题中也得到了充分的应用。以Webshell检测而言,随着攻击、检测对抗技术的制约和发展,当选取大量样本、合适的样本特征和检测方法时,从Webshell原理和实现方法出发,基于深度学习的Webshell检测方法可以获得超越传统检测方法对Webshell更好的检测效果。
目前,工业界对于Webshell的人工智能检测方法大多还是基于传统方法,通过对不同类型特征的Webshell建模,建立不同的特征库,对Webshell进行批量查杀。由于样本预测需要加载模型,检测效率较低,且容易引入一些如正常编码文件、脚本注释等的误报,需要人工排查,导致检测的准确率也较低。因此,如何精准有效地检测出Webshell,是本领域技术人员所要解决的技术问题。
发明内容
本发明的实施例提供一种基于深度学习的Webshell检测方法及装置,结合特征匹配和深度学习,通过对网络流量进行二次检测,提高了Webshell的识别精度,同时也提高了检测效率。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种基于深度学习的Webshell检测方法,该方法包括
步骤一:对采集到的原始网络流量进行预处理,去除重复的URL及无效数据,并进行解码,得到第一网络流量;对第一网络流量进行特征提取,并与特征集进行特征匹配,得到疑似Webshell流量,记作第二网络流量;所述特征集为包含能够表明Webshell特征的参数集合;
步骤二:对第二网络流量进行解析,确定协议类型,根据协议类型从第二网络流量对应的流量数据包中提取出脚本文件,得到待检测流量文件;对待检测流量文件进行预处理,去除文件中的标签数据和残缺数据,并将处理后的待检测流量文件输入预设的Webshell检测模型,输出检测结果,实现对网络流量的检测;所述预设的Webshell检测模型为基于卷积神经网络的检测模型。
在本发明的一个可能的实现方式中,本发明实施例所提供的方法还包括:
对第一网络流量进行特征提取,并与特征集进行特征匹配,得到疑似Webshell流量,具体包括:
提取第一网络流量的特征,构造特征向量,同时根据特征集中的参数集合构造特征集的特征向量,根据第一网络流量与特征集中特征向量之间的相似度得到疑似Webshell流量,计算公式为:
其中,n是流量特征向量的维度,fp=(fp1,fp2,…,fpn)表示第一网络流量的n维特征向量,fq=(fq1,fq2,…,fqn)表示特征集的n维特征向量;当Sim值大于预设阈值时,认为待检测流量为疑似Webshell流量,记作第二网络流量。
在本发明的一个可能的实现方式中,本发明实施例所提供的方法还包括:
所述预设阈值为人为预先设置的经验值。
在本发明的一个可能的实现方式中,本发明实施例所提供的方法还包括:
所述基于卷积神经网络的检测模型包括输入层、两个卷积层、两个池化层、全连接层和输出层;学习训练时,输入层为构成训练集的已知的Webshell脚本文件,卷积层1和卷积层2进行卷积运算完成对脚本文件特征的提取,Relu激活函数给卷积神经网络提供非线性建模能力,池化层1和池化层2用于特征降维、降低网络训练参数及过拟合程度,输出层起到分类器的作用。
在本发明的一个可能的实现方式中,本发明实施例所提供的方法还包括:
所述特征集中包含的特征参数为指定操作关键词、指定敏感文件信息、指定字符、信息熵、压缩比中的一种或多种。
第二方面,本发明实施例提供一种基于深度学习的Webshell检测装置,该装置包括:
预处理模块,用于对采集到的原始网络流量进行预处理,去除重复的URL及无效数据,并进行解码,得到第一网络流量;
特征匹配模块,用于对第一网络流量进行特征提取,并与特征集进行特征匹配,得到疑似Webshell流量,记作第二网络流量;所述特征集为包含能够表明Webshell特征的参数集合;
解析模块,用于对第二网络流量进行解析,确定协议类型,根据协议类型从第二网络流量对应的流量数据包中提取出脚本文件,得到待检测流量文件;
检测模块,用于对待检测流量文件进行预处理,去除文件中的标签数据和残缺数据,并将处理后的待检测流量文件输入预设的Webshell检测模型,输出检测结果,实现对网络流量的检测;所述预设的Webshell检测模型为基于卷积神经网络的检测模型。
在本发明的一个可能的实现方式中,本发明实施例所提供的装置还包括:
所述对第一网络流量进行特征提取,并与特征集进行特征匹配,得到疑似Webshell流量,具体包括:
提取第一网络流量的特征,构造特征向量,同时根据特征集中的参数集合构造特征集的特征向量,根据第一网络流量与特征集中特征向量之间的相似度得到疑似Webshell流量,计算公式为:
其中,n是流量特征向量的维度,fp=(fp1,fp2,…,fpn)表示第一网络流量的n维特征向量,fq=(fq1,fq2,…,fqn)表示特征集的n维特征向量;当Sim值大于预设阈值时,认为待检测流量为疑似Webshell流量,记作第二网络流量。
在本发明的一个可能的实现方式中,本发明实施例所提供的装置还包括:
所述预设阈值为人为预先设置的经验值。
在本发明的一个可能的实现方式中,本发明实施例所提供的装置还包括:
所述基于卷积神经网络的检测模型包括输入层、两个卷积层、两个池化层、全连接层和输出层;学习训练时,输入层为构成训练集的已知的Webshell脚本文件,卷积层1和卷积层2进行卷积运算完成对脚本文件特征的提取,Relu激活函数给卷积神经网络提供非线性建模能力,池化层1和池化层2用于特征降维、降低网络训练参数及过拟合程度,输出层起到分类器的作用。
在本发明的一个可能的实现方式中,本发明实施例所提供的装置还包括:
所述特征集中包含的特征参数为指定操作关键词、指定敏感文件信息、指定字符、信息熵、压缩比中的一种或多种。
在上述技术方案中,本发明提供的技术效果和优点:
本发明通过分别对原始网络流量及疑似WebShell流量进行预处理,提高了数据的有效性和完整性,减少系统的处理压力,提高了检测效率;在利用流量检测模型对网络流量进行检测之前,先利用特征集进行特征匹配,减少了检测模型处理的数据量,避免了Webshell检测过程中的重复分析,进一步提升了检测效率,且将特征匹配与深度学习结合,进行多重检测,由于深度学习算法网络结构的自主学习能力,该检测方法可以用于对已知样本进行恶意判别,也可实现对新型、变种Webshell的判别检测,有效地补偿了传统Webshell检测方法对于新型恶意样本的漏报,也提高了Webshell检测的检测精度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示为本发明一示例性实施例提供的基于深度学习的Webshell检测方法的流程示意图。
图2所示为本发明一示例性实施例提供的卷积神经网络的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例一
本实施例中提供一种基于深度学习的Webshell检测方法,如图1所示,具体包括如下步骤:
步骤100:对采集到的原始网络流量进行预处理,去除重复的URL及无效数据,并进行解码,得到第一网络流量;对第一网络流量进行特征提取,并与特征集进行特征匹配,得到疑似Webshell流量,记作第二网络流量;所述特征集为包含能够表明Webshell特征的参数集合;
在设置特征集中包含的特征参数时,可以选用指定操作关键词、指定敏感文件信息、指定字符、信息熵、最长单词、压缩比、重合指数以及其他能够代表Webshell特有特征的属性作为流量特征。
例如,首先对采集到的原始网络流量pcap格式的数据包进行解析从中提取出HTTP协议的内容。对pcap包进行解析并提取出每一条HTTP请求报文内容,按照请求方法,URL,Host、User-agent等字段保存为CSV格式,以便后续特征提取使用。在请求的URL和请求体部分,HTTP协议会在传输前对特殊字符进行URL编码,因此需要对传输后所得到的报文进行URL解码。
对第一网络流量进行特征提取,并与特征集进行特征匹配,得到疑似Webshell流量,具体包括:
提取第一网络流量的特征,构造特征向量,同时根据特征集中的参数集合构造特征集的特征向量,根据第一网络流量与特征集中特征向量之间的相似度得到疑似Webshell流量,计算公式为:
其中,n是流量特征向量的维度,fp=(fp1,fp2,…,fpn)表示第一网络流量的n维特征向量,fq=(fq1,fq2,…,fqn)表示特征集的n维特征向量;当Sim值大于预设阈值时,认为待检测流量为疑似Webshell流量。
其中,所述预设阈值为人为预先设置的经验值,该预设阈值通常设置的较低,能够将所有疑似的Webshell流量都筛选出来,供后续通过Webshell检测模型进行进一步检测,提高了Webshell检测的准确性,也减少了Webshell检测模型的检测压力,从而提高了检测性能。
步骤200:对第二网络流量进行解析,确定协议类型,根据协议类型从第二网络流量对应的流量数据包中提取出脚本文件,得到待检测流量文件;对待检测流量文件进行预处理,去除文件中的标签数据和残缺数据,并将处理后的待检测流量文件输入预设的Webshell检测模型,输出检测结果,实现对网络流量的检测;所述预设的Webshell检测模型为基于卷积神经网络的检测模型。
所述基于卷积神经网络的检测模型包括输入层、两个卷积层、两个池化层、全连接层和输出层;学习训练时,输入层为构成训练集的已知的Webshell脚本文件,卷积层1和卷积层2进行卷积运算完成对脚本文件特征的提取,Relu激活函数给卷积神经网络提供非线性建模能力,池化层1和池化层2用于特征降维、降低网络训练参数及过拟合程度,输出层起到分类器的作用。
卷积函数是构建卷积神经网络的重要支架,本发明选用tf.layers.conv2d卷积函数,因为layers模块是用于深度学习的更高层次封装的API,相比于tf.nn.conv2d函数,layers更适合从头到尾训练模型,因为激活函数(activation)和偏差(bias)自动实现,更能满足本发明的设计要求。而tf.nn.conv2d更适合加载已经预训练好的模型,因为filter滤波器由tf.Variable生成,在加载预训练的权值时更快,并且需要显示地创建placeholder并进行相关计算。所以综上考虑,选择tf.layers.conv2d卷积函数。
激活函数对于卷积神经网络非常重要,如果不用激活函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合。本发明激活函数选用Relu函数(f(x)=max(0,x)),能给神经网络提供非线性建模能力。由于sigmoid激活函数和tanh激活函数的导数都小于1,多层叠加后导数将呈现指数级变小,选择不当将会出现导致梯度消失的问题,然而若激活函数的导数大于1将会导致梯度爆炸,选择导数为1最好,而激活函数Relu正好满足这个要求,并且它的收敛速度相对其他激活函数较快,满足本发明的设计要求。
在对基于卷积神经网络的检测模型进行训练时,可以利用知名开源仓库、APT事件的泄露数据包作为模型训练的主要样本来源。在保证模型训练有效性和检测结果上,因为收集的全部样本均来自公开仓库和丰富多样的开源模板,因此需要对收集的样本进行去重、降噪等预处理,预处理过程通过哈希算法完成样本去重和独立性判别。对于降噪处理,可以结合后缀扫描、二进制文件扫描以及人工识别的半自动化方法,用来确定收集样本的有效性。
将处理后的待检测流量文件输入预设的Webshell检测模型时,所述输入层的输入为经过向量化的文本数据,输入层与卷积层1相连接。本申请将待检测流量文件转化为抽象语法树的节点结构和语义参数,从语法树结构中提取字符串、关键词和函数调用名称,利用提取的关键词构造敏感词汇语料库,将文本数据向量化,实现对脚本文件的语义特征提取。
所述卷积层1的卷积核的数量为16,卷积层2的卷积核的数量为32,卷积核大小均为3;所述输入层数据经过卷积层1得到16个特征数据,再将得到的特征数据传送至池化层1;池化层1以a×a的采样大小对所述卷积层1生成的特征数据进行池化,得到相应的16个采样后的特征数据,再将得到的特征数据传送至下一个卷积层2;卷积层2与池化层2顺序连接,继续提取数据深层次的抽样特征,最后池化层2与全连接层相连接,全连接层与输出层相连接,输出待检测流量文件的检测结果,从而判断所采集的原始流量数据中是否含有Webshell流量。
卷积层是特征提取层,对输入特征进行卷积运算后可得到特征数据,卷积运算表示如下:
其中,为偏置矩阵;/>为权值矩阵;/>为第l层的卷积层特征;/>为第l-1层的第i个特征;f为激活函数。
池化层是下采样层,池化运算表示如下:
其中,为权值矩阵;/>为偏置矩阵;down为降采样函数;/> 为池化前后的结果。
全连接层将经过多次卷积和池化后的高阶特征整合为二维向量,表示如下:
y=f(ωx+b)
其中,ω为全连接层的权值矩阵;b为全连接层的偏置矩阵;x为全连接层的输入;y为全连接层的输出。
分类结果的好坏可以使用损失值进行判断,损失值可用来评估模型预测值与数据真实值的差异程度,损失值越低,表示模型预测的值与真实值越一致,采用如下公式进行损失值的计算:
其中,a表示目标数据,p表示正样本,n表示负样本, 分别是三个样本的特征,/>表示正样本对的特征距离,表示负样本对的特征距离,α为人工设置的距离间隔。正样本为与目标数据分类结果相同的样本,负样本为与目标数据分类结果不同的样本。
此外,α的值还可经过训练得到,根据准确率以及召回率,进行调节,并不是固定值。在训练判定阈值的过程中,设准确率为U,召回率为V,准确率U=提取出的正确信息条数/提取出的信息条数,又称为查准率;召回率V=提取出的正确信息条数/样本中的信息条数,又称为查全率。查准率和查全率两者取值均在0和1之间,数值越接近1,查准率或查全率就越高。α可根据准确率和召回率进行调节。一般来说,准确率Precision即检索出来的条目有多少是准确的,召回率Recall即所有准确的条目有多少被检索出来了。在实施中当然希望检索结果Precision越高越好,同时Recall也越高越好,但事实上这两者在某些情况下是存在矛盾的。比如极端情况下,实验中只搜索出一个结果,且是准确的,那么Precision就是100%,但是Recall就很低;而如果把所有结果都返回,那么Recall就是100%,但是Precision就会很低。因此在不同的场合中需要判断是希望Precision比较高或是Recall比较高。
本实施例提出的一种基于深度学习的Webshell检测方法,提取了Webshell词法及语法分析的词频统计、抽象语法树节点、单词序列等多维结构特征,结合深度学习算法,实现了对Webshell语法结构的检测。由于深度学习算法网络结构的自主学习能力,该检测技术可以用于对已知样本进行恶意判别,也可实现对新型、变种Webshell的判别检测,有效地补偿了传统Webshell检测方法对于新型恶意样本的漏报。
实施例二
本实施例提供一种基于深度学习的Webshell检测装置,所述装置包括:
预处理模块,用于对采集到的原始网络流量进行预处理,去除重复的URL及无效数据,并进行解码,得到第一网络流量;
特征匹配模块,用于对第一网络流量进行特征提取,并与特征集进行特征匹配,得到疑似Webshell流量,记作第二网络流量;所述特征集为包含能够表明Webshell特征的参数集合;
解析模块,用于对第二网络流量进行解析,确定协议类型,根据协议类型从第二网络流量对应的流量数据包中提取出脚本文件,得到待检测流量文件;
检测模块,用于对待检测流量文件进行预处理,去除文件中的标签数据和残缺数据,并将处理后的待检测流量文件输入预设的Webshell检测模型,输出检测结果,实现对网络流量的检测;所述预设的Webshell检测模型为基于卷积神经网络的检测模型。
可选地,在本实施例中,所述对第一网络流量进行特征提取,并与特征集进行特征匹配,得到疑似Webshell流量,具体包括:
提取第一网络流量的特征,构造特征向量,同时根据特征集中的参数集合构造特征集的特征向量,根据第一网络流量与特征集中特征向量之间的相似度得到疑似Webshell流量,计算公式为:
其中,n是流量特征向量的维度,fp=(fp1,fp2,…,fpn)表示第一网络流量的n维特征向量,fq=(fq1,fq2,…,fqn)表示特征集的n维特征向量;当Sim值大于预设阈值时,认为待检测流量为疑似Webshell流量,记作第二网络流量。
可选地,在本实施例中,所述预设阈值为人为预先设置的经验值。
可选地,在本实施例中,所述基于卷积神经网络的检测模型包括输入层、两个卷积层、两个池化层、全连接层和输出层;学习训练时,输入层为构成训练集的已知的Webshell脚本文件,卷积层1和卷积层2进行卷积运算完成对脚本文件特征的提取,Relu激活函数给卷积神经网络提供非线性建模能力,池化层1和池化层2用于特征降维、降低网络训练参数及过拟合程度,输出层起到分类器的作用。
可选地,在本实施例中,所述特征集中包含的特征参数为指定操作关键词、指定敏感文件信息、指定字符、信息熵、压缩比中的一种或多种。
本实施例提供的WebShell检测方法及装置,通过对网络流量多角度的特征分析,从不同方面完成了模型训练的数据训练集收集工作,筛选出疑似webshell网络流量,随后从各个数据集的特点出发,构造网络检测模型,从全方位多角度来对WebShell进行检测和查杀,减少了检测模型处理的数据量,进一步提升了检测效率,且将特征匹配与深度学习结合,进行多重检测,也提高了Webshell检测的检测精度。本实施例解决了传统方法检测效率低、检测适用场景差、人工规则维护成本高的问题,通过充分利用各个网络流量特征数据集不同的差异性,提升了模型对于特征知识更深层次的语义知识学习,从而提高了检测效果。
经实验表明,本实施例提供的Webshell检测方法及装置对于公开样本集的检测准确率达到了99.24%,召回率99.14%,并且可以有效地检测出APT事件中泄露数据的新型、变种Webshell。在性能测试实验中,系统检测耗时较少,检测效率高,提供了较好的用户体验,达到了在常规站点检查中有效检测Webshell的效果。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本说明书中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种基于深度学习的Webshell检测方法,其特征在于,包括如下步骤:
S1:对采集到的原始网络流量进行预处理,去除重复的URL及无效数据,并进行解码,得到第一网络流量;对第一网络流量进行特征提取,并与特征集进行特征匹配,得到疑似Webshell流量,记作第二网络流量;所述特征集为包含能够表明Webshell特征的参数集合;
S2:对第二网络流量进行解析,确定协议类型,根据协议类型从第二网络流量对应的流量数据包中提取出脚本文件,得到待检测流量文件;对待检测流量文件进行预处理,去除文件中的标签数据和残缺数据,并将处理后的待检测流量文件输入预设的Webshell检测模型,输出检测结果,实现对网络流量的检测;所述预设的Webshell检测模型为基于卷积神经网络的检测模型。
2.如权利要求1所述的方法,其特征在于,步骤S1中,所述对第一网络流量进行特征提取,并与特征集进行特征匹配,得到疑似Webshell流量,具体包括:
提取第一网络流量的特征,构造特征向量,同时根据特征集中的参数集合构造特征集的特征向量,根据第一网络流量与特征集中特征向量之间的相似度得到疑似Webshell流量,计算公式为:
其中,n是流量特征向量的维度,fp=(fp1,fp2,…,fpn)表示第一网络流量的n维特征向量,fq=(fq1,fq2,…,fqn)表示特征集的n维特征向量;当Sim值大于预设阈值时,认为待检测流量为疑似Webshell流量,记作第二网络流量。
3.如权利要求2所述的方法,其特征在于,所述预设阈值为人为预先设置的经验值。
4.如权利要求3所述的方法,其特征在于,所述基于卷积神经网络的检测模型包括输入层、两个卷积层、两个池化层、全连接层和输出层;学习训练时,输入层为构成训练集的已知的Webshell脚本文件,卷积层1和卷积层2进行卷积运算完成对脚本文件特征的提取,Relu激活函数给卷积神经网络提供非线性建模能力,池化层1和池化层2用于特征降维、降低网络训练参数及过拟合程度,输出层起到分类器的作用。
5.如权利要求4所述的方法,其特征在于,所述特征集中包含的特征参数为指定操作关键词、指定敏感文件信息、指定字符、信息熵、压缩比中的一种或多种。
6.一种基于深度学习的Webshell检测装置,其特征在于,所述装置包括:
预处理模块,用于对采集到的原始网络流量进行预处理,去除重复的URL及无效数据,并进行解码,得到第一网络流量;
特征匹配模块,用于对第一网络流量进行特征提取,并与特征集进行特征匹配,得到疑似Webshell流量,记作第二网络流量;所述特征集为包含能够表明Webshell特征的参数集合;
解析模块,用于对第二网络流量进行解析,确定协议类型,根据协议类型从第二网络流量对应的流量数据包中提取出脚本文件,得到待检测流量文件;
检测模块,用于对待检测流量文件进行预处理,去除文件中的标签数据和残缺数据,并将处理后的待检测流量文件输入预设的Webshell检测模型,输出检测结果,实现对网络流量的检测;所述预设的Webshell检测模型为基于卷积神经网络的检测模型。
7.如权利要求6所述的装置,其特征在于,所述对第一网络流量进行特征提取,并与特征集进行特征匹配,得到疑似Webshell流量,具体包括:
提取第一网络流量的特征,构造特征向量,同时根据特征集中的参数集合构造特征集的特征向量,根据第一网络流量与特征集中特征向量之间的相似度得到疑似Webshell流量,计算公式为:
其中,n是流量特征向量的维度,fp=(fp1,fp2,…,fpn)表示第一网络流量的n维特征向量,fq=(fq1,fq2,…,fqn)表示特征集的n维特征向量;当Sim值大于预设阈值时,认为待检测流量为疑似Webshell流量,记作第二网络流量。
8.如权利要求7所述的装置,其特征在于,所述预设阈值为人为预先设置的经验值。
9.如权利要求8所述的装置,其特征在于,所述基于卷积神经网络的检测模型包括输入层、两个卷积层、两个池化层、全连接层和输出层;学习训练时,输入层为构成训练集的已知的Webshell脚本文件,卷积层1和卷积层2进行卷积运算完成对脚本文件特征的提取,Relu激活函数给卷积神经网络提供非线性建模能力,池化层1和池化层2用于特征降维、降低网络训练参数及过拟合程度,输出层起到分类器的作用。
10.如权利要求9所述的装置,其特征在于,所述特征集中包含的特征参数为指定操作关键词、指定敏感文件信息、指定字符、信息熵、压缩比中的一种或多种。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311196627.4A CN117459247A (zh) | 2023-09-15 | 2023-09-15 | 一种基于深度学习的Webshell检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311196627.4A CN117459247A (zh) | 2023-09-15 | 2023-09-15 | 一种基于深度学习的Webshell检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117459247A true CN117459247A (zh) | 2024-01-26 |
Family
ID=89591754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311196627.4A Pending CN117459247A (zh) | 2023-09-15 | 2023-09-15 | 一种基于深度学习的Webshell检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117459247A (zh) |
-
2023
- 2023-09-15 CN CN202311196627.4A patent/CN117459247A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Min et al. | TR-IDS: Anomaly-based intrusion detection through text-convolutional neural network and random forest | |
CN109413028B (zh) | 基于卷积神经网络算法的sql注入检测方法 | |
CN111371806B (zh) | 一种Web攻击检测方法及装置 | |
CN111600919B (zh) | 智能网络应用防护系统模型的构建方法和装置 | |
CN111027069B (zh) | 恶意软件家族检测方法、存储介质和计算设备 | |
CN110704840A (zh) | 一种基于卷积神经网络cnn的恶意软件检测方法 | |
CN111614599B (zh) | 基于人工智能的webshell检测方法和装置 | |
Hao et al. | Variant gated recurrent units with encoders to preprocess packets for payload-aware intrusion detection | |
CN110166484A (zh) | 一种基于LSTM-Attention网络的工业控制系统入侵检测方法 | |
CN111901340B (zh) | 一种面向能源互联网的入侵检测系统及其方法 | |
CN112019651B (zh) | 利用深度残差网络和字符级滑动窗口的dga域名检测方法 | |
CN112073551B (zh) | 基于字符级滑动窗口和深度残差网络的dga域名检测系统 | |
CN112073550B (zh) | 融合字符级滑动窗口和深度残差网络的dga域名检测方法 | |
CN113556319B (zh) | 物联网下基于长短期记忆自编码分类器的入侵检测方法 | |
CN112887325B (zh) | 一种基于网络流量的电信网络诈骗犯罪欺诈识别方法 | |
CN111030992A (zh) | 检测方法、服务器及计算机可读存储介质 | |
CN115277189B (zh) | 基于生成式对抗网络的无监督式入侵流量检测识别方法 | |
CN117220920A (zh) | 基于人工智能的防火墙策略管理方法 | |
Hong et al. | Abnormal access behavior detection of ideological and political MOOCs in colleges and universities | |
CN114491525A (zh) | 基于深度强化学习的安卓恶意软件检测特征提取方法 | |
CN116074092B (zh) | 一种基于异构图注意力网络的攻击场景重构系统 | |
CN112163493A (zh) | 一种视频虚假人脸检测方法及电子装置 | |
CN116467720A (zh) | 一种基于图神经网络的智能合约漏洞检测方法及电子设备 | |
CN117459247A (zh) | 一种基于深度学习的Webshell检测方法及装置 | |
CN112597498A (zh) | 一种webshell的检测方法、系统、装置及可读存储介质 |
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 |