CN113239357A - 一种Webshell检测方法、存储介质及系统 - Google Patents
一种Webshell检测方法、存储介质及系统 Download PDFInfo
- Publication number
- CN113239357A CN113239357A CN202110789633.5A CN202110789633A CN113239357A CN 113239357 A CN113239357 A CN 113239357A CN 202110789633 A CN202110789633 A CN 202110789633A CN 113239357 A CN113239357 A CN 113239357A
- Authority
- CN
- China
- Prior art keywords
- php
- webshell
- detected
- controllable
- data stream
- 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.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 64
- 239000011159 matrix material Substances 0.000 claims abstract description 49
- 238000000605 extraction Methods 0.000 claims abstract description 27
- 238000013528 artificial neural network Methods 0.000 claims abstract description 24
- 238000012549 training Methods 0.000 claims abstract description 22
- 238000006243 chemical reaction Methods 0.000 claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 6
- 238000010801 machine learning Methods 0.000 description 10
- 230000003068 static effect Effects 0.000 description 9
- 230000006399 behavior Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000011218 segmentation Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000007637 random forest analysis Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003631 expected effect Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research 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
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/425—Lexical analysis
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Signal Processing (AREA)
- Virology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明给出了一种Webshell检测方法,包括:获取多个已检测php文件以及待检测php文件并进行opcode中间代码序列转换;对各个第一opcode中间代码序列以及第二opcode中间代码序列进行Webshell文本特征提取;步骤三、对多个已检测php文件以及待检测php文件进行PHP代码数据流可控特征提取;构建特征矩阵并输入到神经网络中进行训练;将第二Webshell文本特征和第二PHP代码数据流可控特征输入到训练后的神经网络中进行Webshell检测。本发明还给出了一种存储介质和系统。本发明能够提高Webshell检测结果的准确性,误报率低。
Description
技术领域
本发明属于网络安全技术领域,具体涉及一种Webshell检测方法、存储介质及系统。
背景技术
Webshell是一种基于Web服务的网页后门,攻击者通过向网站后台服务器上传Webshell达到对Web服务器稳定控制和后期渗透的目的。随着网络安全意识的不断提高,对Webshell检测的研究成为了当前的重要工作之一。
当前的Webshell检测技术主要分为静态检测和动态检测技术,静态检测技术是通过归纳Webshell的静态特征,然后通过这些特征进行检测。最早的静态检测方法是利用正则表达式进行匹配,但是因为Webshell的不断变形,导致需要不断地更新正则表达式,此外对于混淆加密的Webshell,这种基于正则表达式检测的方法效果较差;而动态检测是通过监控程序运行时的行为、流量数据包来判断对应的文件是否为Webshell,这种需要占用服务器后台的大量资源,产生不好的用户体验。结合传统的静态检测和动态检测方法的缺点,当前的研究学者提出了将机器学习运用到Webshell检测中,并且可以达到预期的效果。采用基于机器学习的Webshell检测方法,起到关键作用的是Webshell的特征选择。
Yong Fang等人在2018年提出基于随机森林算法和FastText的神经网络,总结了Webshell的最长字符串、信息熵、一致性指数和黑名单关键字等静态统计特征,其利用了php的VLD扩展提取了php opcode中间代码,利用FastText处理后输入到随机森林算法中进行训练生成检测模型。
Van-Giap Le等人在2016年提出了基于污点分析进行Xss、Sql注入漏洞检测和Webshell检测,污点分析也可以称为数据流追踪定位技术,需要找到一条从用户可控输入端到敏感函数的数据流,如果存在,则可以确认该文件为Webshell。这种技术对应于未加密混淆的简单php文件能起到很好的效果,但是因为php语言的灵活性,若攻击者利用混淆、加密等变形技术,就可以轻松地绕过这类检测系统。
现在的基于机器学习的Webshell检测技术,大多数是基于Webshell的静态特征和统计特征,如一些关键危险函数,超级全局变量的数量、最长字符串的长度和信息熵等。仅仅使用这些特征作为机器学习的特征,一定会有很高的误报率。因为这些特征并不是Webshell文件特有的;当前最新提出的神经网络中有将PHP动态可执行特性作为特征进行模型训练,对于Webshell,仅仅检测PHP动态可执行特性是不够的,并不能确定动态可执行点是可以通过攻击者输入进行交互的。
发明内容
本发明的目的之一,在于提供一种Webshell检测方法,该Webshell检测方法能够提高Webshell检测结果的准确性,降低误报率。
本发明的目的之二,在于提供一种存储介质。
本发明的目的之三,在于提供一种Webshell检测系统。
为了达到上述目的之一,本发明采用如下技术方案实现:
一种Webshell检测方法,所述Webshell检测方法包括如下步骤:
步骤一、获取多个已检测php文件以及待检测php文件并进行opcode中间代码序列转换,得到各个已检测php文件对应的第一opcode中间代码序列以及待检测php文件对应的第二opcode中间代码序列;
步骤二、对各个第一opcode中间代码序列以及第二opcode中间代码序列进行Webshell文本特征提取,得到各个第一opcode中间代码序列对应的第一Webshell文本特征以及第二opcode中间代码序列对应的第二Webshell文本特征;
步骤三、对多个已检测php文件以及待检测php文件进行PHP代码数据流可控特征提取,得到各个已检测php文件对应的第一PHP代码数据流可控特征以及待检测php文件对应的第二PHP代码数据流可控特征;
步骤四、根据各个第一Webshell文本特征和对应的第一PHP代码数据流可控特征,构建特征矩阵并输入到神经网络中进行训练;
步骤五、将第二Webshell文本特征和第二PHP代码数据流可控特征输入到训练后的神经网络中进行Webshell检测。
进一步的,步骤三的具体实现过程为:
步骤31、将php文件中的php代码转换成抽象语法树;
步骤32、对抽象语法树中每个节点进行调用函数和对应的参数提取;
步骤33、根据调用函数和对应的参数,对调用函数和对应的参数对应的节点进行危险节点判断;
步骤34、对危险节点进行向前回溯并生成控制流图;
步骤35、判断控制流图中的数据流起始输入是否为外部可控输入,如是,则php文件中存在数据流可控特征并提取出数据流可控特征;如否,则php文件中不存在数据流可控特征。
进一步的,步骤四中,所述特征矩阵的行为各个已检测php文件,行数为已检测php文件个数;列为已检测php文件对应的第一Webshell文本特征和对应的第一PHP代码数据流可控特征,列数为每个已检测php文件对应的第一Webshell文本特征个数加1。
进一步的,当已检测php文件中对应的第一Webshell文本特征是Webshell关键词时,则特征矩阵中对应的元素值为1;当已检测php文件中对应的第一Webshell文本特征不是Webshell关键词时,则特征矩阵中对应的元素值为0;
当已检测php文件中存在数据流可控特特征时,则特征矩阵中对应的元素值为1;当已检测php文件中不存在数据流可控特特征时,则特征矩阵中对应的元素值为0。
为了达到上述目的之二,本发明采用如下技术方案实现:
一种存储介质,所述存储介质存储有计算机程序指令;通过执行所述计算机程序指令,实现上述所述的Webshell检测方法。
为了达到上述目的之三,本发明采用如下技术方案实现:
一种Webshell检测系统,所述Webshell检测系统包括上述所述的存储介质;或者,
一种Webshell检测系统,所述Webshell检测系统包括:
转换模块,用于获取多个已检测php文件以及待检测php文件并进行opcode中间代码序列转换,得到各个已检测php文件对应的第一opcode中间代码序列以及待检测php文件对应的第二opcode中间代码序列;
第一提取模块,用于对各个第一opcode中间代码序列以及第二opcode中间代码序列进行Webshell文本特征提取,得到各个第一opcode中间代码序列对应的第一Webshell文本特征以及第二opcode中间代码序列对应的第二Webshell文本特征;
第二提取模块,用于对多个已检测php文件以及待检测php文件进行PHP代码数据流可控特征提取,得到各个已检测php文件对应的第一PHP代码数据流可控特征以及待检测php文件对应的第二PHP代码数据流可控特征;
训练模块,用于根据各个第一Webshell文本特征和对应的第一PHP代码数据流可控特征,构建特征矩阵并输入到神经网络中进行训练;
Webshell检测模块,用于将第二Webshell文本特征和第二PHP代码数据流可控特征输入到训练后的神经网络中进行Webshell检测。
进一步的,所述第二提取模块包括:
第一转换子模块,用于将php文件中的php代码转换成抽象语法树;
第一提取子模块,用于对抽象语法树中每个节点进行调用函数和对应的参数提取;
第一判断子模块,用于根据调用函数和对应的参数,对调用函数和对应的参数对应的节点进行危险节点判断;
回溯子模块,用于对危险节点进行向前回溯并生成控制流图;
第二判断子模块,用于判断控制流图中的数据流是否为外部数据,如是,则存在数据流可控特特征并提取出数据流可控特特征;如否,则不存在数据流可控特特征。
进一步的,所述特征矩阵的行为各个已检测php文件,行数为已检测php文件个数;列为已检测php文件对应的第一Webshell文本特征和对应的第一PHP代码数据流可控特征,列数为每个已检测php文件对应的第一Webshell文本特征个数加1。
进一步的,当已检测php文件中对应的第一Webshell文本特征是Webshell关键词时,则特征矩阵中对应的元素值为1;当已检测php文件中对应的第一Webshell文本特征不是Webshell关键词时,则特征矩阵中对应的元素值为0;
当已检测php文件中存在数据流可控特特征时,则特征矩阵中对应的元素值为1;当已检测php文件中不存在数据流可控特特征时,则特征矩阵中对应的元素值为0。
本发明的有益效果:
本发明通过对多个已检测php文件以及待检测php文件进行opcode中间代码序列转换,得到各个已检测php文件对应的第一opcode中间代码序列以及待检测php文件对应的第二opcode中间代码序列,有效地解决混淆变形的Webshell检测困难问题,最大限度地提高了Webshell的检测准确性,同时避免了使用大量的静态特征作为机器学习的特征,提高了模型构建效率;神经网络对各个第一opcode中间代码序列以及第二opcode中间代码序列进行Webshell文本特征提取;对多个已检测php文件以及待检测php文件进行PHP代码数据流可控特征提取,得到各个已检测php文件对应的第一PHP代码数据流可控特征以及待检测php文件对应的第二PHP代码数据流可控特征;并根据各个第一Webshell文本特征和对应的第一PHP代码数据流可控特征,构建特征矩阵并输入到神经网络中进行训练,有效地减少了机器学习训练的维度,提高了训练的效率和准确性;将第二Webshell文本特征和第二PHP代码数据流可控特征输入到训练后的神经网络中进行Webshell检测,保证了Webshell检测结果的准确率,降低了Webshell的误报率。
附图说明
图1为本发明的Webshell检测方法流程示意图。
具体实施方式
以下结合附图对本发明的具体实施方式作出详细说明。
本实施例给出了一种Webshell检测方法,参考图1,该Webshell检测方法包括如下步骤:
S1、获取多个已检测php文件以及待检测php文件并进行opcode中间代码序列转换,得到各个已检测php文件对应的第一opcode中间代码序列以及待检测php文件对应的第二opcode中间代码序列。
本实施例,利用phpdbg结合正则匹配的方式,将收集的Webshell样本(包括已检测php文件和待检测php文件)转换成opcode中间代码序列。
S2、对各个第一opcode中间代码序列以及第二opcode中间代码序列进行Webshell文本特征提取,得到各个第一opcode中间代码序列对应的第一Webshell文本特征以及第二opcode中间代码序列对应的第二Webshell文本特征。
本实施例可采用Word2vec提取出中间opcode代码序列中的Webshell文本特征,以排除掉无关分词,减少训练算法维度,选取出关键分词的词频作为机器学习的特征进行训练。
S3、对多个已检测php文件以及待检测php文件进行PHP代码数据流可控特征提取,得到各个已检测php文件对应的第一PHP代码数据流可控特征以及待检测php文件对应的第二PHP代码数据流可控特征。
Webshell都为单个文件,对单个Webshell文件的数据流可控特征的提取比较简单。PHP代码的数据流可控特征提取可以分为两步:第一步,将PHP脚本转换成抽象语法树,转换成抽象语法树后可以清晰的看出代码结构,遍历语法树中的每个节点,提取节点对应的调用函数和该函数对应的参数,来判断该树节点是否为危险节点,若该调用函数为危险函数,且对应的参数为变量,则认为该节点为危险节点;第二步,分别对上一步收集的所有危险树节点向前回溯,生成对应的数据流,然后检测数据流是否为外部输入可控,如果可控,则认为存在数据流可控特征;否则不存在。具体实现过程为:
步骤31、将php文件中的php代码转换成抽象语法树;
步骤32、对抽象语法树中每个节点进行调用函数和对应的参数提取;
步骤33、根据调用函数和对应的参数,对调用函数和对应的参数对应的节点进行危险节点判断;
步骤34、对危险节点进行向前回溯并生成控制流图;
步骤35、判断控制流图中的数据流起始输入是否为外部可控输入,如是,则php文件中存在数据流可控特征并提取出数据流可控特征;如否,则php文件中不存在数据流可控特征。
对Webshell文本特征进行处理后可以得到一个特征矩阵,该特征矩阵的行数和列数分别为php文件个数以及Webshell文本特征(即Webshell文本特征为预先设定的Webshell关键分词)个数加1,行对应每个php文件,列对应Webshell关键分词和PHP代码数据流可控特征。PHP代码数据流可控特征,若可控,则记录为1,反之记录为0。最后将生成的特征矩阵作为神经网络的训练数据。
本实施例中的特征矩阵的行为各个已检测php文件,行数为已检测php文件个数。列为已检测php文件对应的第一Webshell文本特征和对应的第一PHP代码数据流可控特征,列数为每个已检测php文件对应的第一Webshell文本特征个数加1。当已检测php文件中对应的第一Webshell文本特征是Webshell关键分词时,则特征矩阵中对应的元素值为1;当已检测php文件中对应的第一Webshell文本特征不是Webshell关键分词时,则特征矩阵中对应的元素值为0。当已检测php文件中存在数据流可控特特征时,则特征矩阵中对应的元素值为1;当已检测php文件中不存在数据流可控特特征时,则特征矩阵中对应的元素值为0。
S4、根据各个第一Webshell文本特征和对应的第一PHP代码数据流可控特征,构建特征矩阵并输入到神经网络中进行训练。
本实施例基于有监督的机器学习算法,进行神经网络训练,即给正样本和负样本分别打上标签,对应不同的算法,设置对应的参数,然后进行训练生成检测模型,分别对别选择效果最好的模型进行检测。本实施例中的神经网络为现有技术,具体学习过程,不再赘述。
S5、将第二Webshell文本特征和第二PHP代码数据流可控特征输入到训练后的神经网络中进行Webshell检测。
本实施例通过对多个已检测php文件以及待检测php文件进行opcode中间代码序列转换,得到各个已检测php文件对应的第一opcode中间代码序列以及待检测php文件对应的第二opcode中间代码序列,有效地解决混淆变形的Webshell检测困难问题,最大限度地提高了Webshell的检测准确性,同时避免了使用大量的静态特征作为机器学习的特征,提高了模型构建效率;对各个第一opcode中间代码序列以及第二opcode中间代码序列进行Webshell文本特征提取;对多个已检测php文件以及待检测php文件进行PHP代码数据流可控特征提取,得到各个已检测php文件对应的第一PHP代码数据流可控特征以及待检测php文件对应的第二PHP代码数据流可控特征;并根据各个第一Webshell文本特征和对应的第一PHP代码数据流可控特征,构建特征矩阵并输入到神经网络中进行训练,有效地减少了机器学习训练的维度,提高了训练的效率和准确性;将第二Webshell文本特征和第二PHP代码数据流可控特征输入到训练后的神经网络中进行Webshell检测,保证了Webshell检测结果的准确率。
另一实施例给出了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序指令;通过执行所述计算机程序指令,实现上述实施例给出的Webshell检测方法。
又一实施例给出了一种Webshell检测系统,该Webshell检测系统包括上述实施例给出的计算机可读存储介质。
再一实施例给出了一种Webshell检测系统,该Webshell检测系统包括:
转换模块,用于获取多个已检测php文件以及待检测php文件并进行opcode中间代码序列转换,得到各个已检测php文件对应的第一opcode中间代码序列以及待检测php文件对应的第二opcode中间代码序列;
第一提取模块,用于对各个第一opcode中间代码序列以及第二opcode中间代码序列进行Webshell文本特征提取,得到各个第一opcode中间代码序列对应的第一Webshell文本特征以及第二opcode中间代码序列对应的第二Webshell文本特征;
第二提取模块,用于对多个已检测php文件以及待检测php文件进行PHP代码数据流可控特征提取,得到各个已检测php文件对应的第一PHP代码数据流可控特征以及待检测php文件对应的第二PHP代码数据流可控特征。第二提取模块包括:
第一转换子模块,用于将php文件中的php代码转换成抽象语法树;
第一提取子模块,用于对抽象语法树中每个节点进行调用函数和对应的参数提取;
第一判断子模块,用于根据调用函数和对应的参数,对调用函数和对应的参数对应的节点进行危险节点判断;
回溯子模块,用于对危险节点进行向前回溯并生成控制流图;
第二判断子模块,用于判断控制流图中的数据流是否为外部数据,如是,则存在数据流可控特特征并提取出数据流可控特特征;如否,则不存在数据流可控特特征。
该特征矩阵的行为各个已检测php文件,行数为已检测php文件个数;列为已检测php文件对应的第一Webshell文本特征和对应的第一PHP代码数据流可控特征,列数为每个已检测php文件对应的第一Webshell文本特征个数加1。
当已检测php文件中对应的第一Webshell文本特征是Webshell关键词时,则特征矩阵中对应的元素值为1;当已检测php文件中对应的第一Webshell文本特征不是Webshell关键词时,则特征矩阵中对应的元素值为0;
当已检测php文件中存在数据流可控特特征时,则特征矩阵中对应的元素值为1;当已检测php文件中不存在数据流可控特特征时,则特征矩阵中对应的元素值为0。
训练模块,用于根据各个第一Webshell文本特征和对应的第一PHP代码数据流可控特征,构建特征矩阵并输入到神经网络中进行训练;
Webshell检测模块,用于将第二Webshell文本特征和第二PHP代码数据流可控特征输入到训练后的神经网络中进行Webshell检测。
以上实施方式仅用以说明本发明实施例的技术方案而非限制,尽管参照以上较佳实施方式对本发明实施例进行了详细说明,本领域的普通技术人员应当理解,可以对本发明实施例的技术方案进行修改或等同替换都不应脱离本发明实施例的技术方案的精神和范围。
Claims (10)
1.一种Webshell检测方法,其特征在于,所述Webshell检测方法包括如下步骤:
步骤一、获取多个已检测php文件以及待检测php文件并进行opcode中间代码序列转换,得到各个已检测php文件对应的第一opcode中间代码序列以及待检测php文件对应的第二opcode中间代码序列;
步骤二、对各个第一opcode中间代码序列以及第二opcode中间代码序列进行Webshell文本特征提取,得到各个第一opcode中间代码序列对应的第一Webshell文本特征以及第二opcode中间代码序列对应的第二Webshell文本特征;
步骤三、对多个已检测php文件以及待检测php文件进行PHP代码数据流可控特征提取,得到各个已检测php文件对应的第一PHP代码数据流可控特征以及待检测php文件对应的第二PHP代码数据流可控特征;
步骤四、根据各个第一Webshell文本特征和对应的第一PHP代码数据流可控特征,构建特征矩阵并输入到神经网络中进行训练;
步骤五、将第二Webshell文本特征和第二PHP代码数据流可控特征输入到训练后的神经网络中进行Webshell检测。
2.根据权利要求1所述的Webshell检测方法,其特征在于,步骤三的具体实现过程为:
步骤31、将php文件中的php代码转换成抽象语法树;
步骤32、对抽象语法树中每个节点进行调用函数和对应的参数提取;
步骤33、根据调用函数和对应的参数,对调用函数和对应的参数对应的节点进行危险节点判断;
步骤34、对危险节点进行向前回溯并生成控制流图;
步骤35、判断控制流图中的数据流起始输入是否为外部可控输入,如是,则php文件中存在数据流可控特征并提取出数据流可控特征;如否,则php文件中不存在数据流可控特征。
3.根据权利要求2所述的Webshell检测方法,其特征在于,步骤四中,所述特征矩阵的行为各个已检测php文件,行数为已检测php文件个数;列为已检测php文件对应的第一Webshell文本特征和对应的第一PHP代码数据流可控特征,列数为每个已检测php文件对应的第一Webshell文本特征个数加1。
4.根据权利要求3所述的Webshell检测方法,其特征在于,当已检测php文件中对应的第一Webshell文本特征是Webshell关键词时,则特征矩阵中对应的元素值为1;当已检测php文件中对应的第一Webshell文本特征不是Webshell关键词时,则特征矩阵中对应的元素值为0;
当已检测php文件中存在数据流可控特特征时,则特征矩阵中对应的元素值为1;当已检测php文件中不存在数据流可控特特征时,则特征矩阵中对应的元素值为0。
5.一种存储介质,其特征在于,所述存储介质存储有计算机程序指令;通过执行所述计算机程序指令,实现权利要求1~4中任意一项所述的Webshell检测方法。
6.一种Webshell检测系统,其特征在于,所述Webshell检测系统包括权利要求5所述的存储介质。
7.一种Webshell检测系统,其特征在于,所述Webshell检测系统包括:
转换模块,用于获取多个已检测php文件以及待检测php文件并进行opcode中间代码序列转换,得到各个已检测php文件对应的第一opcode中间代码序列以及待检测php文件对应的第二opcode中间代码序列;
第一提取模块,用于对各个第一opcode中间代码序列以及第二opcode中间代码序列进行Webshell文本特征提取,得到各个第一opcode中间代码序列对应的第一Webshell文本特征以及第二opcode中间代码序列对应的第二Webshell文本特征;
第二提取模块,用于对多个已检测php文件以及待检测php文件进行PHP代码数据流可控特征提取,得到各个已检测php文件对应的第一PHP代码数据流可控特征以及待检测php文件对应的第二PHP代码数据流可控特征;
训练模块,用于根据各个第一Webshell文本特征和对应的第一PHP代码数据流可控特征,构建特征矩阵并输入到神经网络中进行训练;
Webshell检测模块,用于将第二Webshell文本特征和第二PHP代码数据流可控特征输入到训练后的神经网络中进行Webshell检测。
8.根据权利要求7所述的Webshell检测系统,其特征在于,所述第二提取模块包括:
第一转换子模块,用于将php文件中的php代码转换成抽象语法树;
第一提取子模块,用于对抽象语法树中每个节点进行调用函数和对应的参数提取;
第一判断子模块,用于根据调用函数和对应的参数,对调用函数和对应的参数对应的节点进行危险节点判断;
回溯子模块,用于对危险节点进行向前回溯并生成控制流图;
第二判断子模块,用于判断控制流图中的数据流是否为外部数据,如是,则存在数据流可控特特征并提取出数据流可控特特征;如否,则不存在数据流可控特特征。
9.根据权利要求8所述的Webshell检测系统,其特征在于,所述特征矩阵的行为各个已检测php文件,行数为已检测php文件个数;列为已检测php文件对应的第一Webshell文本特征和对应的第一PHP代码数据流可控特征,列数为每个已检测php文件对应的第一Webshell文本特征个数加1。
10.根据权利要求9所述的Webshell检测系统,其特征在于,当已检测php文件中对应的第一Webshell文本特征是Webshell关键词时,则特征矩阵中对应的元素值为1;当已检测php文件中对应的第一Webshell文本特征不是Webshell关键词时,则特征矩阵中对应的元素值为0;
当已检测php文件中存在数据流可控特特征时,则特征矩阵中对应的元素值为1;当已检测php文件中不存在数据流可控特特征时,则特征矩阵中对应的元素值为0。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110789633.5A CN113239357B (zh) | 2021-07-13 | 2021-07-13 | 一种Webshell检测方法、存储介质及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110789633.5A CN113239357B (zh) | 2021-07-13 | 2021-07-13 | 一种Webshell检测方法、存储介质及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113239357A true CN113239357A (zh) | 2021-08-10 |
CN113239357B CN113239357B (zh) | 2021-09-10 |
Family
ID=77135462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110789633.5A Active CN113239357B (zh) | 2021-07-13 | 2021-07-13 | 一种Webshell检测方法、存储介质及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113239357B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113761533A (zh) * | 2021-09-08 | 2021-12-07 | 广东电网有限责任公司江门供电局 | Webshell检测方法及系统 |
CN114840858A (zh) * | 2022-05-23 | 2022-08-02 | 浙江网商银行股份有限公司 | 漏洞测试方法以及装置 |
CN115688108A (zh) * | 2023-01-04 | 2023-02-03 | 北京微步在线科技有限公司 | 一种webshell静态检测方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657661A (zh) * | 2015-01-26 | 2015-05-27 | 武汉安天信息技术有限责任公司 | 移动终端中恶意代码的检测方法和装置 |
US20180225453A1 (en) * | 2015-11-25 | 2018-08-09 | Leidos Innovations Technology, Inc. | Method for detecting a threat and threat detecting apparatus |
CN109905385A (zh) * | 2019-02-19 | 2019-06-18 | 中国银行股份有限公司 | 一种webshell检测方法、装置及系统 |
CN111475812A (zh) * | 2020-06-22 | 2020-07-31 | 中国人民解放军国防科技大学 | 一种基于数据可执行特征的网页后门检测方法与系统 |
CN111523118B (zh) * | 2020-04-15 | 2021-04-06 | 北京升鑫网络科技有限公司 | 一种Webshell检测方法、装置、存储介质和设备 |
CN112688966A (zh) * | 2021-03-11 | 2021-04-20 | 北京邮电大学 | webshell检测方法、装置、介质和设备 |
-
2021
- 2021-07-13 CN CN202110789633.5A patent/CN113239357B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657661A (zh) * | 2015-01-26 | 2015-05-27 | 武汉安天信息技术有限责任公司 | 移动终端中恶意代码的检测方法和装置 |
US20180225453A1 (en) * | 2015-11-25 | 2018-08-09 | Leidos Innovations Technology, Inc. | Method for detecting a threat and threat detecting apparatus |
CN109905385A (zh) * | 2019-02-19 | 2019-06-18 | 中国银行股份有限公司 | 一种webshell检测方法、装置及系统 |
CN111523118B (zh) * | 2020-04-15 | 2021-04-06 | 北京升鑫网络科技有限公司 | 一种Webshell检测方法、装置、存储介质和设备 |
CN111475812A (zh) * | 2020-06-22 | 2020-07-31 | 中国人民解放军国防科技大学 | 一种基于数据可执行特征的网页后门检测方法与系统 |
CN112688966A (zh) * | 2021-03-11 | 2021-04-20 | 北京邮电大学 | webshell检测方法、装置、介质和设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113761533A (zh) * | 2021-09-08 | 2021-12-07 | 广东电网有限责任公司江门供电局 | Webshell检测方法及系统 |
CN114840858A (zh) * | 2022-05-23 | 2022-08-02 | 浙江网商银行股份有限公司 | 漏洞测试方法以及装置 |
CN115688108A (zh) * | 2023-01-04 | 2023-02-03 | 北京微步在线科技有限公司 | 一种webshell静态检测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113239357B (zh) | 2021-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113239357B (zh) | 一种Webshell检测方法、存储介质及系统 | |
CN108259494B (zh) | 一种网络攻击检测方法及装置 | |
CN106709345B (zh) | 基于深度学习方法推断恶意代码规则的方法、系统及设备 | |
CN110808968B (zh) | 网络攻击检测方法、装置、电子设备和可读存储介质 | |
CN113596007B (zh) | 一种基于深度学习的漏洞攻击检测方法和设备 | |
CN111600919B (zh) | 智能网络应用防护系统模型的构建方法和装置 | |
CN108985061B (zh) | 一种基于模型融合的webshell检测方法 | |
CN112492059A (zh) | Dga域名检测模型训练方法、dga域名检测方法、装置及存储介质 | |
CN112989348B (zh) | 攻击检测方法、模型训练方法、装置、服务器及存储介质 | |
CN108282460B (zh) | 一种面向网络安全事件的证据链生成方法及装置 | |
Yong et al. | Malicious Web traffic detection for Internet of Things environments | |
CN103455597B (zh) | 面向海量web图像的分布式信息隐藏检测方法 | |
CN108509794A (zh) | 一种基于分类学习算法的恶意网页防御检测方法 | |
CN112257076B (zh) | 一种基于随机探测算法和信息聚合的漏洞检测方法 | |
CN111740946A (zh) | Webshell报文的检测方法及装置 | |
CN110674370A (zh) | 域名识别方法及装置、存储介质及电子设备 | |
CN108040053A (zh) | 一种基于dns日志数据的网络安全威胁分析方法及系统 | |
CN105069158B (zh) | 数据挖掘方法及系统 | |
CN117938430A (zh) | 基于Bert模型的Webshell检测方法 | |
CN115567306B (zh) | 基于双向长短时记忆网络的apt攻击溯源分析方法 | |
Lu et al. | A GAN-based method for generating SQL injection attack samples | |
CN112052453A (zh) | 基于Relief算法的webshell检测方法及装置 | |
CN115567305B (zh) | 基于深度学习的顺序网络攻击预测分析方法 | |
Binxiang et al. | A deep reinforcement learning malware detection method based on PE feature distribution | |
Liang et al. | Leverage temporal convolutional network for the representation learning of urls |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |