CN116340939A - webshell检测方法、装置、设备及存储介质 - Google Patents
webshell检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116340939A CN116340939A CN202111545840.2A CN202111545840A CN116340939A CN 116340939 A CN116340939 A CN 116340939A CN 202111545840 A CN202111545840 A CN 202111545840A CN 116340939 A CN116340939 A CN 116340939A
- Authority
- CN
- China
- Prior art keywords
- code file
- sample
- detected
- confusion
- file sample
- 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 115
- 230000008030 elimination Effects 0.000 claims abstract description 13
- 238000003379 elimination reaction Methods 0.000 claims abstract description 13
- 238000007781 pre-processing Methods 0.000 claims abstract description 11
- 239000013598 vector Substances 0.000 claims description 44
- 238000004458 analytical method Methods 0.000 claims description 33
- 238000000034 method Methods 0.000 abstract description 27
- 238000010801 machine learning Methods 0.000 description 18
- 230000014509 gene expression Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 238000011156 evaluation Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000010978 jasper Substances 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000035515 penetration Effects 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/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
- G06F8/434—Pointers; Aliasing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及网络安全技术领域,公开一种webshell检测方法、装置、设备及存储介质,该方法包括对待检测代码文件样本进行解混淆,获得解混淆代码文件样本;获取待检测代码文件样本和解混淆代码文件样本之间的样本相似度;对待检测代码文件样本和解混淆代码文件样本进行规则特征匹配,获得规则特征匹配结果;根据样本相似度和规则特征匹配结果判断待检测代码文件样本是否为恶意代码文件。由于在对待检测代码文件样本进行检测时,加入解混淆预处理,同时计算待检测代码文件样本和解混淆代码文件样本之间的样本相似度作为检测结果的判据之一,提高webshell检测的准确性,降低误报率和漏报率,提升webshell检测结果。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种webshell检测方法、装置、设备及存储介质。
背景技术
Webshell是一种以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管理、服务器管理、权限管理等操作。使用方法简单,只需上传一个代码文件,通过网址访问,便可进行很多日常操作,极大地方便了使用者对网站和服务器的管理。正因如此,webshell也常常被攻击者当作后门程序使用,用来获取web服务器的操作权限。
攻击者在进行网站入侵时,通常会将webshell文件与web目录下的正常网页放置在一起,然后通过浏览器访问webshell文件,从而获取命令执行环境,最终达到控制网站服务器的目的。webshell与正常网页具有相同的运行环境和服务端口,它与远程主机通过http协议进行数据交换,因此能够很容易地避开杀毒软件的检测和穿透防火墙。
现有的webshell检测方式难以对混淆样本进行准确检测,而对于采用新型混淆方式混淆后的webshell样本检测则需要投入较大的学习和开发成本,导致检测效果不佳。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供了一种webshell检测方法、装置、设备及存储介质,旨在解决现有技术对webshell检测存在检测效率低、误报率和漏报率高的技术问题。
为实现上述目的,本发明提供了一种webshell检测方法,所述方法包括以下步骤:
对待检测代码文件样本进行解混淆,获得解混淆代码文件样本;
获取所述待检测代码文件样本和所述解混淆代码文件样本之间的样本相似度;
对所述待检测代码文件样本和所述解混淆代码文件样本进行规则特征匹配,获得规则特征匹配结果;
根据所述样本相似度和所述规则特征匹配结果判断所述待检测代码文件样本是否为恶意代码文件。
可选的,所述对待检测代码文件样本进行解混淆,获得解混淆代码文件样本的步骤,包括:
获取所述待检测代码文件样本的脚本类型;
将所述待检测代码文件样本转化为抽象语法树;
基于所述脚本类型对所述抽象语法树进行简化,获得解混淆代码文件样本。
可选的,所述基于所述脚本类型对所述抽象语法树进行简化,获得解混淆代码文件样本的步骤,包括:
对所述抽象语法树进行遍历;
对遍历到的所述抽象语法树中的常量节点进行替换,获得替换后的抽象语法树;
将所述替换后的抽象语法树转换为解混淆代码文件样本。
可选的,所述将所述待检测代码文件样本转化为抽象语法树的步骤,包括:
在所述脚本类型为第一脚本类型时,获取所述第一脚本类型对应的抽象语法树解析引擎;
通过所述抽象语法树解析引擎将所述待检测代码文件样本转化为抽象语法树。
可选的,所述将所述替换后的抽象语法树转换为解混淆代码文件样本的步骤,包括:
将所述替换后的抽象语法树转换为所述第一脚本类型对应的代码文件;
去除所述第一脚本类型对应的代码文件中的孤立语句,获得解混淆代码文件样本。
可选的,所述将所述待检测代码文件样本转化为抽象语法树的步骤,还包括:
在所述脚本类型为第二脚本类型时,将所述待检测代码文件样本转换为目标脚本类型对应的代码文件;
获取所述目标脚本类型对应的抽象语法树解析引擎;
通过所述抽象语法树解析引擎对所述目标脚本类型对应的代码文件进行解析,以获得抽象语法树。
可选的,所述在所述脚本类型为第二脚本类型时,将所述待检测代码文件样本转换为目标脚本类型对应的代码文件的步骤,包括:
在所述脚本类型为第二脚本类型时,获取所述第二脚本类型对应的语法解析工具;
通过所述语法解析工具将所述待检测代码文件样本转换为目标脚本类型对应的代码文件。
可选的,所述将所述替换后的抽象语法树转换为解混淆代码文件样本的步骤,包括:
将所述替换后的抽象语法树转换为所述第二脚本类型对应的代码文件;
在所述第二脚本类型对应的代码文件中去除所述语法解析工具添加的代码,获得解混淆代码文件样本。
可选的,所述获取所述待检测代码文件样本和所述解混淆代码文件样本之间的样本相似度的步骤,包括:
分别对所述待检测代码文件样本和所述解混淆代码文件样本进行预处理,获得处理后的待检测代码文件样本和处理后的解混淆代码文件样本;
分别提取所述处理后的待检测代码文件样本的第一特征向量和所述处理后的解混淆代码文件样本的第二特征向量;
根据所述第一特征向量和所述第二特征向量计算样本相似度。
可选的,所述对所述待检测代码文件样本和所述解混淆代码文件样本进行规则特征匹配,获得规则特征匹配结果的步骤,包括:
分别对所述待检测代码文件样本和所述解混淆代码文件样本进行规则匹配,获得规则匹配结果;
在所述规则匹配结果满足第一预设条件时,对所述待检测代码文件样本和所述解混淆代码文件样本进行特征匹配,获得特征匹配结果;
将所述特征匹配结果作为规则特征匹配结果。
可选的,所述分别对所述待检测代码文件样本和所述解混淆代码文件样本进行规则匹配,获得规则匹配结果的步骤,包括:
将所述待检测代码文件样本与预设恶意规则库进行匹配,获得第一规则匹配结果;
在所述第一规则匹配结果满足第二预设条件时,将所述解混淆代码文件样本与所述预设恶意规则库进行匹配,获得第二规则匹配结果;
根据所述第一规则匹配结果和所述第二规则匹配结果确定规则匹配结果。
可选的,所述在所述规则匹配结果满足第一预设条件时,对所述待检测代码文件样本和所述解混淆代码文件样本进行特征匹配,获得特征匹配结果的步骤,包括:
在所述规则匹配结果满足第一预设条件时,将所述待检测代码文件样本和所述解混淆代码文件样本输入至预设机器学习模型中进行特征匹配,获得特征匹配结果。
可选的,所述根据所述样本相似度和所述规则特征匹配结果判断所述待检测代码文件样本是否为恶意代码文件的步骤,包括:
根据所述规则特征匹配结果判断所述待检测代码文件样本是否为恶意代码文件;
在所述待检测代码文件样本不为恶意代码文件时,根据所述样本相似度判断所述待检测代码文件样本是否为恶意代码文件。
此外,为实现上述目的,本发明还提出一种webshell检测装置,所述检测装置包括:
解混淆模块,对待检测代码文件样本进行解混淆,获得解混淆代码文件样本;
混淆对比模块,获取所述待检测代码文件样本和所述解混淆代码文件样本之间的样本相似度;
匹配模块,对所述待检测代码文件样本和所述解混淆代码文件样本进行规则特征匹配,获得规则特征匹配结果;
综合决策模块,根据所述样本相似度和所述规则特征匹配结果判断所述待检测代码文件样本是否为恶意代码文件。
可选的,所述解混淆模块,还用于获取所述待检测代码文件样本的脚本类型;将所述待检测代码文件样本转化为抽象语法树;基于所述脚本类型对所述抽象语法树进行简化,获得解混淆代码文件样本。
可选的,所述解混淆模块,还用于对所述抽象语法树进行遍历;对遍历到的所述抽象语法树中的常量节点进行替换,获得替换后的抽象语法树;将所述替换后的抽象语法树转换为解混淆代码文件样本。
可选的,所述解混淆模块,还用于在所述脚本类型为第一脚本类型时,获取所述第一脚本类型对应的抽象语法树解析引擎;通过所述抽象语法树解析引擎将所述待检测代码文件样本转化为抽象语法树。
可选的,所述解混淆模块,还用于将所述替换后的抽象语法树转换为所述第一脚本类型对应的代码文件;去除所述第一脚本类型对应的代码文件中的孤立语句,获得解混淆代码文件样本。
此外,为实现上述目的,本发明还提出一种webshell检测设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的webshell检测程序,所述webshell检测程序配置为实现如上文所述的webshell检测方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有webshell检测程序,所述webshell检测程序被处理器执行时实现如上文所述的webshell检测方法的步骤。
本发明通过对待检测代码文件样本进行解混淆,获得解混淆代码文件样本,然后计算待检测代码文件样本和解混淆代码文件样本之间的样本相似度,同时对待检测代码文件样本和解混淆代码文件样本进行规则特征匹配,获得规则特征匹配结果,根据样本相似度和规则特征匹配结果判断待检测代码文件样本是正常代码文件或恶意代码文件。由于在对待检测代码文件样本进行检测时,加入解混淆预处理,同时计算待检测代码文件样本和解混淆代码文件样本之间的样本相似度作为检测结果的判据之一,提高webshell检测的准确性,降低误报率和漏报率,提升webshell检测结果。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的webshell检测设备的结构示意图;
图2为本发明webshell检测方法第一实施例的流程示意图;
图3为本发明webshell检测方法第二实施例的流程示意图;
图4为本发明webshell检测方法第三实施例的流程示意图;
图5为本发明webshell检测方法第四实施例的流程示意图;
图6为本发明webshell检测装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的webshell检测设备结构示意图。
如图1所示,该webshell检测设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(WIreless-FIdelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM)存储器,也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对webshell检测设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及webshell检测程序。
在图1所示的webshell检测设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明webshell检测设备中的处理器1001、存储器1005可以设置在webshell检测设备中,所述webshell检测设备通过处理器1001调用存储器1005中存储的webshell检测程序,并执行本发明实施例提供的webshell检测方法。
本发明实施例提供了一种webshell检测方法,参照图2,图2为本发明webshell检测方法第一实施例的流程示意图。
本实施例中,所述webshell检测方法包括以下步骤:
步骤S10:对待检测代码文件样本进行解混淆,获得解混淆代码文件样本;
需要说明的是,本实施例方法的执行主体可以是具有数据处理、网络通信以及程序运行功能的计算服务设备,例如手机、平板电脑、个人电脑等,还可以是能够实现相同或相似功能的其他电子设备。以下以上述webshell检测设备(简称检测设备)对本实施例和下述各实施例进行说明。
应理解的是,webshell恶意代码文件通常会采用各种混淆技术对代码进行混淆加密,从而达到隐藏的目的。Webshell常用的混淆方法包括插入注释等无用信息,比如在php代码中加入形如“/*…*/”,“//…”的注释,这些注释不会影响代码的正常执行,但会避开漏洞检测,留下安全隐患。
为此,针对不同的脚本类型,可以通过对应的解混淆引擎对待检测代码文件样本进行解混淆处理,得到解混淆代码文件样本(即混淆前的原始代码),降低混淆技术对webshell检测的不利影响,通过对解混淆代码文件样本进行规则特征匹配,可以提高webshell的检测结果。
步骤S20:获取所述待检测代码文件样本和所述解混淆代码文件样本之间的样本相似度;
需要说明的是,对待检测代码文件样本进行解混淆处理后,得到混淆前的原始代码,即解混淆代码文件样本,然后将待检测代码文件样本与解混淆代码文件样本进行相似度比对,获得二者之间的样本相似度。本实施例及下述各实施例中,样本相似度用户表征待检测代码文件样本的混淆程度,样本相似度越低,说明待检测代码文件样本混淆越厉害,待检测代码文件样本为恶意代码文件的可能性就越大。将样本相似度作为最终webshell检测结果的判断依据之一,可以提高对webshell检测的准确性。
步骤S30:对所述待检测代码文件样本和所述解混淆代码文件样本进行规则特征匹配,获得规则特征匹配结果;
需要说明的是,规则特征匹配是指对代码文件样本进行规则匹配和特征匹配,相应的,上述规则特征匹配结果中可包含规则匹配结果和/或特征匹配结果。其中,规则匹配是将待检测代码文件样本和解混淆代码文件样本分别与预设恶意规则库进行匹配,恶意规则库中可包含有特征码、特征值、敏感函数等数据。若在待检测代码文件样本或解混淆代码文件样本中发现特征码、特征值或敏感函数,则判定待检测代码文件样本为恶意代码文件。当待检测代码文件样本的混淆方式复杂,通过规则匹配难以检测时,可以对解混淆代码文件样本进行规则匹配,降低混淆技术对规则匹配检测方式的不利影响,提高webshell检测结果的精度。
进一步地,特征匹配是通过机器学习模型对待检测代码文件样本和解混淆代码文件样本进行分类,然后根据分类结果判断待检测代码文件样本是否为恶意代码文件的过程。本实施例采用机器学习的方式对待检测代码文件样本和解混淆代码文件样本进行特征匹配,可以提升webshell检测的运营和维护效率。
步骤S40:根据所述样本相似度和所述规则特征匹配结果判断所述待检测代码文件样本是否为恶意代码文件。
需要说明的是,本实施例中检测设备在根据样本相似度和规则特征匹配结果进行综合判断时,优先根据规则特征匹配结果进行判断,当规则特征匹配结果判定待检测代码文件样本不为恶意代码文件时,再根据样本相似度进行判断。当然,在具体实现中,检测设备还可以将样本相似度作为上述特征匹配结果的考虑因素之一。
本实施例通过对待检测代码文件样本进行解混淆,获得解混淆代码文件样本,然后计算待检测代码文件样本和解混淆代码文件样本之间的样本相似度,同时对待检测代码文件样本和解混淆代码文件样本进行规则特征匹配,获得规则特征匹配结果,根据样本相似度和规则特征匹配结果判断待检测代码文件样本是正常代码文件或恶意代码文件。由于在对待检测代码文件样本进行检测时,加入解混淆预处理,同时计算待检测代码文件样本和解混淆代码文件样本之间的样本相似度作为检测结果的判据之一,提高webshell检测的准确性,降低误报率和漏报率,提升webshell检测结果。
参考图3,图3为本发明webshell检测方法第二实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S10包括:
步骤S101:获取所述待检测代码文件样本的脚本类型;
步骤S102:将所述待检测代码文件样本转化为抽象语法树;
步骤S103:基于所述脚本类型对所述抽象语法树进行简化,获得解混淆代码文件样本。
需要说明的是,抽象语法树(Abstract Syntax Tree,AST)是源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构,之所以说语法是“抽象”的,是因为抽象语法树并不会表示出真实语法中出现的每个细节。比如,嵌套括号被隐含在树的结构中,并没有以节点的形式呈现;而类似于if-condition-then这样的条件跳转语句,可以使用带有两个分支的节点来表示。
应理解的是,现有的webshell脚本有非常多的类型,比如php,jsp,asp等,不同脚本类型的代码文件转化为抽象语法树的处理方式不同,因此,在将待检测代码文件样本转化为抽象语法树之前,需要获取待检测代码文件样本的脚本类型,然后基于具体的脚本类型对其进行解析处理。
在具体实现中,当待检测代码文件样本的脚本类型为第一脚本类型时,获取第一脚本类型对应的抽象语法树解析引擎,通过抽象语法树引擎将待检测代码文件样本转化为抽象语法树。
应理解的是,第一脚本类型可以是指能够直接获取到对应的抽象语法树解析引擎的脚本语言类型,如php语言,其对应的抽象语法树解析引擎PHP Parser,具有接口易用,结构简洁,工具链完善等诸多优点,实际应用中检测设备可以直接使用PHP Parser将php转为抽象语法树。
进一步地,为提高webshell检测结果的准确度,本实施例中检测设备将待检测代码文件样本转化为抽象语法树后,可以对抽象语法树进行简化,其简化步骤可包括:递归遍历抽象语法树,利用正则表达式去除抽象语法树中的注释,对遍历到的抽象语法树中的常量表达式进行求值,获得常量表达式的求值结果,然后通过求值结果替换抽象语法树中的常量表达式,获得替换后的抽象语法树,最后将替换后的抽象语法树转换为第一脚本类型对应的代码文件,去除第一脚本类型对应的代码文件中的孤立语句,从而获得解混淆代码文件样本。
需要说明的是,待检测代码文件样本经过解混淆后,混淆前的原始代码就显现出来了,其中有一些无效代码(如变量a=a)可以直接去除。本实施例上述去除孤立语句是指去除解混淆代码文件样本中的无效代码,对解混淆代码文件样本进行精简,以便对解混淆代码文件样本进行规则特征匹配以及计算待检测代码文件样本和解混淆代码文件样本之间的样本相似度。
作为一种实现方式,本实施例中的第一脚本类型为php类型时,在对php webshell样本进行解混淆时,使用PHP Parser将php webshell样本转为抽象语法树,递归遍历抽象语法树,对常量表达式如ass、ert、str_replace()进行求值,获得求值结果,然后通过求值结果替换抽象语法树中的常量表达式,实现对抽象语法树的简化,将抽象语法树转为php代码,去除php代码中的孤立语句,获得解混淆后的php样本文件。
在具体实现中,当待检测代码文件样本的脚本类型为第二脚本类型时,获取第二脚本类型对应的语法解析工具,通过语法解析工具将待检测代码文件样本转换为目标脚本类型对应的第一代码文件,然后获取目标脚本类型对应的抽象语法树解析引擎,通过抽象语法树解析引擎对第一代码文件进行解析,获得抽象语法树。
应理解的是,第二脚本类型可以是指没有对应的抽象语法树解析引擎的脚本语言类型,如jsp,由于jsp依赖服务器环境,无法单独运行,目前并没有针对jsp的抽象语法树解析引擎。当需要将此类脚本类型的代码文件样本转为抽象语法树时,需要先对其进行解析,转化为目标脚本类型对应的第一代码文件(例如将待检测代码文件jsp转换为java代码文件)。将待检测代码文件样本转为目标脚本类型对应的第一代码文件时,需要使用语法解析工具对待检测代码文件样本进行解析,语法解析工具用来对待检测代码文件样本进行语法分析,提取出句子的结构,从而得到第一代码文件。
进一步地,通过语法解析工具将待检测代码文件样本转为第一代码文件后,获取目标脚本类型对应的抽象语法树解析引擎,通过抽象语法树解析引擎将第一代码文件转为抽象语法树。待检测代码文件样本转化为抽象语法树后,可以对抽象语法树进行简化,简化步骤包括:遍历抽象语法树,对遍历到的抽象语法树中的常量表达式进行求值,获得常量表达式的求值结果,通过求值结果替换抽象语法树中的常量表达式,获得替换后的抽象语法树,最后将替换后的抽象语法树转换为第二脚本类型对应的代码文件,对第二脚本类型对应的代码文件进行精简,获得解混淆代码文件样本。
需要说明的是,在将替换后的抽象语法树转换为第二脚本类型对应的代码文件时,要先将替换后的抽象语法树转换为目标脚本类型对应的第二代码文件,再将第二代码文件转换为第二脚本类型对应的代码文件。
应理解的是,通过语法解析工具将待检测代码文件样本转为目标代码文件时,语法解析工具会添加相应的代码,在对第二脚本类型对应的代码文件进行精简时,需要去除语法解析工具添加的代码,保留第二脚本类型对应的代码,获得解混淆代码文件样本。
作为一种实现方式,本实施例中的第二脚本类型为jsp类型,在对jsp webshell样本进行解混淆时,首先使用语法解析工具Tomcat Jasper对jsp样本文件进行解析,将其转化为java代码文件,使用java的抽象语法树解析引擎javaparser对java代码文件进行解析,构建抽象语法树。遍历抽象语法树,对遍历到的抽象语法树中的常量表达式如Base64.getDecoder().decode(),new String()等进行求值,获得求值结果,通过求值结果替换抽象语法树中的常量表达式,实现对抽象语法树的简化,将简化后的抽象语法树转为java代码,再将java代码转换为jsp代码,去除Tomcat Jasper引擎添加的java代码,保留jsp代码,获得解混淆后的jsp样本文件。
本实施例通过获取待检测代码文件样本的脚本类型,针对不同的脚本类型,对待检测代码文件样本进行解混淆,可以满足对不同脚本类型的代码文件样本进行解混淆预处理的需求,提高本发明webshell检测方法的通用性,同时在对待检测代码文件样本进行解混淆时,是通过将待检测代码文件样本转为抽象语法树,抽象语法树定义了代码的结构,通过操作抽象语法树,可以精确定位到声明语句、赋值语句、运算语句等,实现对代码的分析、优化、变更等操作,提升解混淆的效率。
参考图4,图4为本发明webshell检测方法第三实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S20包括:
步骤S201:分别对所述待检测代码文件样本和所述解混淆代码文件样本进行预处理,获得处理后的待检测代码文件样本和处理后的解混淆代码文件样本;
在具体实现中,在待检测代码文件样本和解混淆代码文件样本中,根据代码语言相关的编译原理进行预处理,去除代码中的注释、空格、换行符等影响代码特征向量提取的冗余信息,并将程序中的变量名和函数名进行标准化处理,以便后续提取特征向量。
需要说明的是,本步骤的目的是从预处理后的代码中提取特征向量,特征向量能代表代码的结构特征。
步骤S202:分别提取所述处理后的待检测代码文件样本的第一特征向量和所述处理后的解混淆代码文件样本的第二特征向量;
需要说明的是,根据待检测代码文件样本对应的语法特征,利用正则表达式提取出处理后的待检测代码文件样本的特征向量,获得第一特征向量;根据解混淆后代码文件样本的语法特征,利用正则表达式提取出处理后的解混淆代码文件样本的特征向量,获得第二特征向量。
步骤S203:根据所述第一特征向量和所述第二特征向量计算样本相似度。
在具体实现中,分别对第一特征向量和第二特征向量进行加权处理,根据每个第一特征向量在待检测代码文件样本中的重要度对每个第一特征向量进行加权,获得加权后的第一特征向量,根据每个第二特征向量在解混淆代码文件样本中的重要度对每个第二特征向量进行加权,获得加权后的第二特征向量,通过向量空间模型中的夹角余弦法计算加权后的第一特征向量和加权后的第二特征向量之间的夹角大小,从而得出样本相似度。
需要说明的是,通过夹角余弦法计算样本相似度时,具体的公式如下:
其中,x=(x1,x2,x3,……,xn),y=(y1,y2,y3,……,yn)分别表示第一特征向量和第二特征向量。
本实施例通过正则表达式提取出能代表程序代码的特征向量,然后对特征向量的每一个对象进行加权处理,最后利用相似度度量方法对加权后的特征向量进行相似度计算,以比较待检测代码文件和解混淆代码文件的相似度,从而得出待检测代码文件样本的混淆程度。
参考图5,图5为本发明webshell检测方法第四实施例的流程示意图。
基于上述各实施例,在本实施例中,所述步骤S30包括:
步骤S301:分别对所述待检测代码文件样本和所述解混淆代码文件样本进行规则匹配,获得规则匹配结果;
需要说明的是,规则匹配是指通过匹配特征码、特征值、敏感函数等对webshell样本文件进行检测的过程。不同脚本类型的恶意代码文件规则不同,针对不同的脚本类型,从现有的恶意代码文件样本中提取静态特征,建立恶意规则库。其中静态特征包括样本的文档特征、基本函数特征、文件行为特征等,这里的文档特征包括单词数量、不同单词数量、行数、平均每行单词数、空字符和空格数量、最大单词长度、注释数量等。基本函数特征包括字符操作函数、敏感函数调用、系统函数调用数量、脚本区块书、函数参数最大长度、加解密函数调用等。文件行为特征包括文件操作、ftp操作、数据库操作等。
在具体实现中,在对待检测代码文件样本和解混淆代码文件样本进行规则匹配之前,需要先获取待检测代码文件样本的脚本类型,根据脚本类型获取对应的预设恶意规则库,然后将待检测代码文件样本与恶意规则库进行匹配,获得第一规则匹配结果,在第一规则匹配结果满足第二预设条件时,将解混淆代码文件样本与恶意规则库进行匹配,获得第二规则匹配结果,并将第二规则匹配结果作为规则匹配结果。
需要说明的是,在进行规则匹配时,优先对待检测代码文件样本进行规则匹配,当第一规则匹配结果得出待检测代码文件样本为恶意代码文件时,即可得出webshell检测的最终结果,即判定待检测代码文件样本为恶意代码文件,无需再对解混淆代码文件样本进行规则匹配,也无需再执行特征匹配和相似度计算。但现有的待检测代码文件样本大多进行混淆,导致规则匹配方法难以检测,因此在对待检测代码文件样本进行解混淆预处理后,当第一规则匹配结果得出待检测代码文件样本不为恶意代码文件时,还需要对解混淆代码文件样本进行规则匹配,这里的第二预设条件指的就是待检测代码文件样本不为恶意代码文件。
进一步地,将解混淆代码文件样本与预设恶意规则库进行匹配,获得第二规则匹配结果,当第二规则匹配结果得出解混淆代码文件样本为恶意代码文件时,即可得出webshell检测的最终结果,判定待检测代码文件样本为恶意代码文件,无需再进行后续的特征匹配和相似度计算;当第二规则匹配结果得出解混淆代码文件样本不为恶意代码文件时,可以得到本次规则匹配结果,即待检测代码文件样本不为恶意代码文件,并将其作为最终的webshell检测结果的判断依据之一。
步骤S302:在所述规则匹配结果满足第一预设条件时,对所述待检测代码文件样本和所述解混淆代码文件样本进行特征匹配,获得特征匹配结果;
步骤S303:将所述特征匹配结果作为规则特征匹配结果。
需要说明的是,第一预设条件是指待检测代码文件样本不为恶意代码文件,当最终的规则匹配结果得出待检测代码文件样本不为恶意代码文件时,对待检测代码文件样本和解混淆代码文件样本进行特征匹配,获得特征匹配结果。
具体的,在进行特征匹配时,优先对待检测代码文件样本进行特征匹配,获得第一特征匹配结果,当第一特征匹配结果得出待检测代码文件样本为恶意代码文件时,即可得出webshell检测的最终结果,即判定待检测代码文件样本为恶意代码文件,无需再对解混淆代码文件样本进行特征匹配,也无需进行相似度计算。当第一特征匹配结果得出待检测代码文件样本不为恶意代码文件时,还需要对解混淆代码文件样本进行特征匹配,获得第二特征匹配结果,当第二特征匹配结果得出解混淆代码文件样本为恶意代码文件时,即可得出webshell检测的最终结果,判定待检测代码文件样本为恶意代码文件,无需再进行相似度计算;当第二特征匹配结果得出解混淆代码文件样本不为恶意代码文件时,可以得到本次特征匹配结果,即待检测代码文件样本不为恶意代码文件,并将其作为最终的webshell检测结果的判断依据之一。
为保证webshell检测的准确性,本实施例中在特征匹配结果为待检测代码文件样本不为恶意代码文件时,还将会结合事先计算出的样本相似度来对综合判断待检测代码文件是否真的不属于恶意代码文件。
需要说明的是,在对待检测代码文件样本或解混淆代码文件样本进行特征匹配时,对待检测代码文件样本或解混淆代码文件样本进行特提取征,将提取到的特征输入至预设机器学习模型中进行分类,获取分类结果,根据分类结果确定待检测代码文件样本是否为恶意代码文件。
应理解的是,预设机器学习模型是指结合了多种分类算法的机器学习模型,在将提取的特征输入至预设机器学习模型之前,需要利用训练样本对预设机器学习模型进行训练,获取机器学习最优模型,再将提取的特征输入至机器学习最优模型中进行分类,获取分类结果。其中的训练样本包括正常代码文件样本和恶意代码文件样本,样本数量越多,建立的机器学习模型的检测结果准确性越高。当待检测代码文件样本经检测后判定为恶意代码文件时,可以依据待检测代码文件样本与训练样本重新进行机器学习模型的训练,对机器学习模型进行更新,不断优化机器学习模型。
本实施例中通过对待检测代码文件样本和解混淆代码文件样本进行规则匹配和特征匹配,提高对webshell检测的准确性,降低误报率和漏报率,结合机器学习,可以提升webshell检测的运营和维护效率,通过机器学习模型进行分类,还可以提高检测结果的准确率。
进一步地,所述步骤S40包括:
步骤S401:根据所述规则特征匹配结果判断所述待检测代码文件样本是否为恶意代码文件;
步骤S402:在所述待检测代码文件样本不为恶意代码文件时,根据所述样本相似度判断所述待检测代码文件样本是否为恶意代码文件。
需要说明的是,在判断待检测代码文件样本是否为恶意代码文件时,优先根据规则匹配结果进行判断,当规则匹配结果判定待检测代码文件样本为恶意代码文件时,即可得出最终结果,本次webshell检测结束;当规则匹配结果判定待检测代码文件样本不为恶意代码文件时,根据特征匹配结果进行判断;当特征匹配结果判定待检测代码文件样本为恶意代码文件时,得出检测的最终结果,本次webshell检测结束;当特征匹配结果判定待检测代码文件样本不为恶意代码文件时,根据样本相似度进行判断。
应理解的是,样本相似度反映的是待检测代码文件样本的混淆程度,相似度越低,说明待检测代码文件样本混淆得越厉害,待检测代码文件样本为恶意代码文件的可能性就越大。
本实施例通过规则匹配结果和特征匹配结果以及样本相似度综合判断待检测代码文件样本是否为恶意代码文件,利用不同的检测手段并综合考虑检测结果,提高对webshell检测的准确性。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有webshell检测程序,所述webshell检测程序被处理器执行时实现如上文所述的webshell检测方法的步骤。
参照图6,图6为本发明webshell检测装置第一实施例的结构框图。
如图6所示,本发明实施例提出的webshell检测装置包括:
解混淆模块601,对待检测代码文件样本进行解混淆,获得解混淆代码文件样本;
混淆对比模块602,获取所述待检测代码文件样本和所述解混淆代码文件样本之间的样本相似度;
匹配模块603,对所述待检测代码文件样本和所述解混淆代码文件样本进行规则特征匹配,获得规则特征匹配结果;
综合决策模块604,根据所述样本相似度和所述规则特征匹配结果判断所述待检测代码文件样本是否为恶意代码文件。
本实施例通过对待检测代码文件样本进行解混淆,获得解混淆代码文件样本,然后计算待检测代码文件样本和解混淆代码文件样本之间的样本相似度,同时对待检测代码文件样本和解混淆代码文件样本进行规则特征匹配,获得规则特征匹配结果,根据样本相似度和规则特征匹配结果判断待检测代码文件样本是正常代码文件或恶意代码文件。由于在对待检测代码文件样本进行检测时,加入解混淆预处理,同时计算待检测代码文件样本和解混淆代码文件样本之间的样本相似度作为检测结果的判据之一,提高webshell检测的准确性,降低误报率和漏报率,提升webshell检测结果。
基于本发明上述webshell检测装置第一实施例,提出本发明webshell检测装置的第二实施例。
在本实施例中,所述解混淆模块601,还用于获取所述待检测代码文件样本的脚本类型;将所述待检测代码文件样本转化为抽象语法树;基于所述脚本类型对所述抽象语法树进行简化,获得解混淆代码文件样本。
进一步地,所述解混淆模块601,还用于对所述抽象语法树进行遍历;对遍历到的所述抽象语法树中的常量节点进行替换,获得替换后的抽象语法树;将所述替换后的抽象语法树转换为解混淆代码文件样本。
进一步地,所述解混淆模块601,还用于在所述脚本类型为第一脚本类型时,获取所述第一脚本类型对应的抽象语法树解析引擎;通过所述抽象语法树解析引擎将所述待检测代码文件样本转化为抽象语法树。
进一步地,所述解混淆模块601,还用于将所述替换后的抽象语法树转换为所述第一脚本类型对应的代码文件;去除所述第一脚本类型对应的代码文件中的孤立语句,获得解混淆代码文件样本。
进一步地,所述解混淆模块601,还用于在所述脚本类型为第二脚本类型时,将所述待检测代码文件样本转换为目标脚本类型对应的代码文件;获取所述目标脚本类型对应的抽象语法树解析引擎;通过所述抽象语法树解析引擎对所述目标脚本类型对应的代码文件进行解析,以获得抽象语法树。
进一步地,所述解混淆模块601,还用于在所述脚本类型为第二脚本类型时,获取所述第二脚本类型对应的语法解析工具;通过所述语法解析工具将所述待检测代码文件样本转换为目标脚本类型对应的代码文件。
进一步地,所述解混淆模块601,还用于将所述替换后的抽象语法树转换为所述第二脚本类型对应的代码文件;在所述第二脚本类型对应的代码文件中去除所述语法解析工具添加的代码,获得解混淆代码文件样本。
进一步地,所述混淆对比模块602,还用于分别对所述待检测代码文件样本和所述解混淆代码文件样本进行预处理,获得处理后的待检测代码文件样本和处理后的解混淆代码文件样本;分别提取所述处理后的待检测代码文件样本的第一特征向量和所述处理后的解混淆代码文件样本的第二特征向量;根据所述第一特征向量和所述第二特征向量计算样本相似度。
进一步地,所述匹配模块603,还用于分别对所述待检测代码文件样本和所述解混淆代码文件样本进行规则匹配,获得规则匹配结果;在所述规则匹配结果满足第一预设条件时,对所述待检测代码文件样本和所述解混淆代码文件样本进行特征匹配,获得特征匹配结果;将所述特征匹配结果作为规则特征匹配结果。
进一步地,所述匹配模块603,还用于将所述待检测代码文件样本与预设恶意规则库进行匹配,获得第一规则匹配结果;在所述第一规则匹配结果满足第二预设条件时,将所述解混淆代码文件样本与所述预设恶意规则库进行匹配,获得第二规则匹配结果;将所述第二规则匹配结果作为规则匹配结果。
进一步地,所述匹配模块603,还用于在所述规则匹配结果满足第一预设条件时,将所述待检测代码文件样本和所述解混淆代码文件样本输入至预设机器学习模型中进行特征匹配,获得特征匹配结果。
进一步地,所述综合决策模块604,还用于根据所述规则特征匹配结果判断所述待检测代码文件样本是否为恶意代码文件;在所述待检测代码文件样本不为恶意代码文件时,根据所述样本相似度判断所述待检测代码文件样本是否为恶意代码文件。
本发明webshell检测装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
本发明提供A1一种webshell检测方法,所述webshell检测方法包括以下步骤:
对待检测代码文件样本进行解混淆,获得解混淆代码文件样本;
获取所述待检测代码文件样本和所述解混淆代码文件样本之间的样本相似度;
对所述待检测代码文件样本和所述解混淆代码文件样本进行规则特征匹配,获得规则特征匹配结果;
根据所述样本相似度和所述规则特征匹配结果判断所述待检测代码文件样本是否为恶意代码文件。
A2、如A1所述的webshell检测方法,所述对待检测代码文件样本进行解混淆,获得解混淆代码文件样本的步骤,包括:
获取所述待检测代码文件样本的脚本类型;
将所述待检测代码文件样本转化为抽象语法树;
基于所述脚本类型对所述抽象语法树进行简化,获得解混淆代码文件样本。
A3、如A2所述的webshell检测方法,所述基于所述脚本类型对所述抽象语法树进行简化,获得解混淆代码文件样本的步骤,包括:
对所述抽象语法树进行遍历;
对遍历到的所述抽象语法树中的常量节点进行替换,获得替换后的抽象语法树;
将所述替换后的抽象语法树转换为解混淆代码文件样本。
A4、如A3所述的webshell检测方法,所述将所述待检测代码文件样本转化为抽象语法树的步骤,包括:
在所述脚本类型为第一脚本类型时,获取所述第一脚本类型对应的抽象语法树解析引擎;
通过所述抽象语法树解析引擎将所述待检测代码文件样本转化为抽象语法树。
A5、如A4所述的webshell检测方法,所述将所述替换后的抽象语法树转换为解混淆代码文件样本的步骤,包括:
将所述替换后的抽象语法树转换为所述第一脚本类型对应的代码文件;
去除所述第一脚本类型对应的代码文件中的孤立语句,获得解混淆代码文件样本。
A6、如A3所述的webshell检测方法,所述将所述待检测代码文件样本转化为抽象语法树的步骤,还包括:
在所述脚本类型为第二脚本类型时,将所述待检测代码文件样本转换为目标脚本类型对应的代码文件;
获取所述目标脚本类型对应的抽象语法树解析引擎;
通过所述抽象语法树解析引擎对所述目标脚本类型对应的代码文件进行解析,以获得抽象语法树。
A7、如A6所述的webshell检测方法,所述在所述脚本类型为第二脚本类型时,将所述待检测代码文件样本转换为目标脚本类型对应的代码文件的步骤,包括:
在所述脚本类型为第二脚本类型时,获取所述第二脚本类型对应的语法解析工具;
通过所述语法解析工具将所述待检测代码文件样本转换为目标脚本类型对应的代码文件。
A8、如A7所述的webshell检测方法,所述将所述替换后的抽象语法树转换为解混淆代码文件样本的步骤,包括:
将所述替换后的抽象语法树转换为所述第二脚本类型对应的代码文件;
在所述第二脚本类型对应的代码文件中去除所述语法解析工具添加的代码,获得解混淆代码文件样本。
A9、如A1至A8任一项所述的webshell检测方法,所述获取所述待检测代码文件样本和所述解混淆代码文件样本之间的样本相似度的步骤,包括:
分别对所述待检测代码文件样本和所述解混淆代码文件样本进行预处理,获得处理后的待检测代码文件样本和处理后的解混淆代码文件样本;
分别提取所述处理后的待检测代码文件样本的第一特征向量和所述处理后的解混淆代码文件样本的第二特征向量;
根据所述第一特征向量和所述第二特征向量计算样本相似度。
A10、如A1至A8任一项所述的webshell检测方法,所述对所述待检测代码文件样本和所述解混淆代码文件样本进行规则特征匹配,获得规则特征匹配结果的步骤,包括:
分别对所述待检测代码文件样本和所述解混淆代码文件样本进行规则匹配,获得规则匹配结果;
在所述规则匹配结果满足第一预设条件时,对所述待检测代码文件样本和所述解混淆代码文件样本进行特征匹配,获得特征匹配结果;
将所述特征匹配结果作为规则特征匹配结果。
A11、如A10所述的webshell检测方法,所述分别对所述待检测代码文件样本和所述解混淆代码文件样本进行规则匹配,获得规则匹配结果的步骤,包括:
将所述待检测代码文件样本与预设恶意规则库进行匹配,获得第一规则匹配结果;
在所述第一规则匹配结果满足第二预设条件时,将所述解混淆代码文件样本与所述预设恶意规则库进行匹配,获得第二规则匹配结果;
将所述第二规则匹配结果作为规则匹配结果。
A12、如A10所述的webshell检测方法,所述在所述规则匹配结果满足第一预设条件时,对所述待检测代码文件样本和所述解混淆代码文件样本进行特征匹配,获得特征匹配结果的步骤,包括:
在所述规则匹配结果满足第一预设条件时,将所述待检测代码文件样本和所述解混淆代码文件样本输入至预设机器学习模型中进行特征匹配,获得特征匹配结果。
A13、如A10所述的webshell检测方法,所述根据所述样本相似度和所述规则特征匹配结果判断所述待检测代码文件样本是否为恶意代码文件的步骤,包括:
根据所述规则特征匹配结果判断所述待检测代码文件样本是否为恶意代码文件;
在所述待检测代码文件样本不为恶意代码文件时,根据所述样本相似度判断所述待检测代码文件样本是否为恶意代码文件。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种webshell检测方法,其特征在于,所述webshell检测方法包括以下步骤:
对待检测代码文件样本进行解混淆,获得解混淆代码文件样本;
获取所述待检测代码文件样本和所述解混淆代码文件样本之间的样本相似度;
对所述待检测代码文件样本和所述解混淆代码文件样本进行规则特征匹配,获得规则特征匹配结果;
根据所述样本相似度和所述规则特征匹配结果判断所述待检测代码文件样本是否为恶意代码文件。
2.如权利要求1所述的webshell检测方法,其特征在于,所述对待检测代码文件样本进行解混淆,获得解混淆代码文件样本的步骤,包括:
获取所述待检测代码文件样本的脚本类型;
将所述待检测代码文件样本转化为抽象语法树;
基于所述脚本类型对所述抽象语法树进行简化,获得解混淆代码文件样本。
3.如权利要求2所述的webshell检测方法,其特征在于,所述基于所述脚本类型对所述抽象语法树进行简化,获得解混淆代码文件样本的步骤,包括:
对所述抽象语法树进行遍历;
对遍历到的所述抽象语法树中的常量节点进行替换,获得替换后的抽象语法树;
将所述替换后的抽象语法树转换为解混淆代码文件样本。
4.如权利要求3所述的webshell检测方法,其特征在于,所述将所述待检测代码文件样本转化为抽象语法树的步骤,包括:
在所述脚本类型为第一脚本类型时,获取所述第一脚本类型对应的抽象语法树解析引擎;
通过所述抽象语法树解析引擎将所述待检测代码文件样本转化为抽象语法树。
5.如权利要求4所述的webshell检测方法,其特征在于,所述将所述替换后的抽象语法树转换为解混淆代码文件样本的步骤,包括:
将所述替换后的抽象语法树转换为所述第一脚本类型对应的代码文件;
去除所述第一脚本类型对应的代码文件中的孤立语句,获得解混淆代码文件样本。
6.如权利要求1至5任一项所述的webshell检测方法,其特征在于,所述获取所述待检测代码文件样本和所述解混淆代码文件样本之间的样本相似度的步骤,包括:
分别对所述待检测代码文件样本和所述解混淆代码文件样本进行预处理,获得处理后的待检测代码文件样本和处理后的解混淆代码文件样本;
分别提取所述处理后的待检测代码文件样本的第一特征向量和所述处理后的解混淆代码文件样本的第二特征向量;
根据所述第一特征向量和所述第二特征向量计算样本相似度。
7.如权利要求1至5任一项所述的webshell检测方法,其特征在于,所述对所述待检测代码文件样本和所述解混淆代码文件样本进行规则特征匹配,获得规则特征匹配结果的步骤,包括:
分别对所述待检测代码文件样本和所述解混淆代码文件样本进行规则匹配,获得规则匹配结果;
在所述规则匹配结果满足第一预设条件时,对所述待检测代码文件样本和所述解混淆代码文件样本进行特征匹配,获得特征匹配结果;
将所述特征匹配结果作为规则特征匹配结果。
8.一种webshell检测装置,其特征在于,所述webshell检测装置包括:
解混淆模块,用于对待检测代码文件样本进行解混淆,获得解混淆代码文件样本;
混淆对比模块,用于获取所述待检测代码文件样本和所述解混淆代码文件样本之间的样本相似度;
匹配模块,用于对所述待检测代码文件样本和所述解混淆代码文件样本进行规则特征匹配,获得规则特征匹配结果;
综合决策模块,用于根据所述样本相似度和所述规则特征匹配结果判断所述待检测代码文件样本是否为恶意代码文件。
9.一种webshell检测设备,其特征在于,所述webshell检测设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的webshell检测程序,所述webshell检测程序配置为实现如权利要求1至7中任一项所述的webshell检测方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有webshell检测程序,所述webshell检测程序被处理器执行时实现如权利要求1至7中任一项所述的webshell检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111545840.2A CN116340939A (zh) | 2021-12-16 | 2021-12-16 | webshell检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111545840.2A CN116340939A (zh) | 2021-12-16 | 2021-12-16 | webshell检测方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116340939A true CN116340939A (zh) | 2023-06-27 |
Family
ID=86891641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111545840.2A Pending CN116340939A (zh) | 2021-12-16 | 2021-12-16 | webshell检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116340939A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114925365A (zh) * | 2022-05-27 | 2022-08-19 | 安天科技集团股份有限公司 | 一种文件处理方法、装置、电子设备及存储介质 |
CN117349803A (zh) * | 2023-12-06 | 2024-01-05 | 浙江大学 | 代码解混淆方法、装置、电子设备及计算机可读存储介质 |
CN117891502A (zh) * | 2024-03-14 | 2024-04-16 | 北京长亭科技有限公司 | 一种jsp文件解混淆方法、系统、设备及存储介质 |
-
2021
- 2021-12-16 CN CN202111545840.2A patent/CN116340939A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114925365A (zh) * | 2022-05-27 | 2022-08-19 | 安天科技集团股份有限公司 | 一种文件处理方法、装置、电子设备及存储介质 |
CN117349803A (zh) * | 2023-12-06 | 2024-01-05 | 浙江大学 | 代码解混淆方法、装置、电子设备及计算机可读存储介质 |
CN117349803B (zh) * | 2023-12-06 | 2024-03-19 | 浙江大学 | 代码解混淆方法、装置、电子设备及计算机可读存储介质 |
CN117891502A (zh) * | 2024-03-14 | 2024-04-16 | 北京长亭科技有限公司 | 一种jsp文件解混淆方法、系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107659570B (zh) | 基于机器学习与动静态分析的Webshell检测方法及系统 | |
CN109922052B (zh) | 一种结合多重特征的恶意url检测方法 | |
CN116340939A (zh) | webshell检测方法、装置、设备及存储介质 | |
US20160261618A1 (en) | System and method for selectively evolving phishing detection rules | |
RU2722692C1 (ru) | Способ и система выявления вредоносных файлов в неизолированной среде | |
CN109598124A (zh) | 一种webshell检测方法以及装置 | |
CN107463844B (zh) | Web木马检测方法及系统 | |
CN112817877B (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
CN110472165B (zh) | Url提取方法、装置、设备及计算机可读存储介质 | |
CN112632537A (zh) | 恶意代码检测方法、装置、设备及存储介质 | |
CN112148305A (zh) | 一种应用检测方法、装置、计算机设备和可读存储介质 | |
CN111737692A (zh) | 应用程序的风险检测方法及装置、设备、存储介质 | |
CN114357443A (zh) | 基于深度学习的恶意代码检测方法、设备与存储介质 | |
CN109933977A (zh) | 一种检测webshell数据的方法及装置 | |
CN114579965A (zh) | 一种恶意代码的检测方法、装置及计算机可读存储介质 | |
CN113971284B (zh) | 基于JavaScript的恶意网页检测方法、设备及计算机可读存储介质 | |
JP7439916B2 (ja) | 学習装置、検出装置、学習方法、検出方法、学習プログラムおよび検出プログラム | |
CN112600864A (zh) | 一种验证码校验方法、装置、服务器及介质 | |
CN109684844B (zh) | 一种webshell检测方法、装置以及计算设备、计算机可读存储介质 | |
CN114996708B (zh) | 涉诈手机应用研判方法、装置、电子设备及存储介质 | |
RU2702081C2 (ru) | Система и способ обнаружения модификации веб-ресурса | |
CN116484371A (zh) | 基于函数调用图的Android插件恶意性检测方法 | |
CN106911686B (zh) | WebShell检测方法及装置 | |
US10515219B2 (en) | Determining terms for security test | |
CN111159111A (zh) | 一种信息处理方法、设备、系统和计算机可读存储介质 |
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 |