[发明专利]基于深度神经网络的WebShell检测方法及其系统有效
申请号: | 201710705914.1 | 申请日: | 2017-08-17 |
公开(公告)号: | CN107516041B | 公开(公告)日: | 2020-04-03 |
发明(设计)人: | 张涛;齐龙晨;宁戈 | 申请(专利权)人: | 北京安普诺信息技术有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F11/36;G06F8/41;G06N3/04 |
代理公司: | 北京万象新悦知识产权代理有限公司 11360 | 代理人: | 黄凤茹 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 深度 神经网络 webshell 检测 方法 及其 系统 | ||
1.一种基于深度神经网络的WebShell检测方法,基于抽象语法树的递归循环神经网络,针对脚本语言自动获取脚本的词法、语法信息,利用抽象语法树的层次化结构特征完成特征抽取和WebShell检测,包括预处理过程、样本生成过程和检测过程;具体包括如下步骤:
A.脚本文件预处理过程:
输入为脚本源代码,预处理包括词法分析、语法分析、简化,输出为抽象语法树T=(V,E),其中V是T中叶子节点的集合,E是T中边的集合;
B.样本生成过程:
输入包括简化后的抽象语法树和抽象语法树的叶子节点;包括:对抽象语法树进行压缩处理和向量化抽象语法树,向量化抽象语法树包括树节点和叶子节点的向量化表示;
C.采用深度神经网络进行WebShell检测:针对抽象语法树的树形结构,深度神经网络采用递归循环神经网络;包括如下过程:
C1.针对树形结构定义一种神经网络层为递归长短期记忆层,所述递归长短期记忆层利用树的递归特性,由树的根节点及子树集合的向量表示,通过非线性运算产生树的向量表示;
C2.树形结构中根节点的向量化表示方法采用与步骤B中树节点的向量化表示相同的方法;树形结构中子树集合的向量表示通过将子树依次输入递归长短期记忆层计算生成;
C3.利用递归长短期记忆层,设计一个递归循环神经网络RRNN作为检测模块;
RRNN的输入包括:k个向量化的m阶多叉树,代表抽象语法树的中间节点;定长的向量,表示抽象语法树的叶子节点;RRNN的运算过程包括:
C31.RRNN底端包括k个共享权重的递归长短期记忆层,对应处理k个m叉树,通过运算输出k×d维的特征,记为FeatureR=[f1,f2,…,fk]T,fk为第k个d维特征向量;
C32.RRNN池化层同时使用最大值、最小值、均值三种下采样函数对FeatureR按列进行下采样操作,池化层输出三个d维向量,记为Featurep=[fmax,fmin,fmean]T,其中,fmax为池化层使用最大值采样函数输出的d维向量,fmin为池化层使用最小值采样函数输出的d维向量,fmean为池化层使用均值采样函数输出的d维向量;
C33.RRNN拼接层将Featurep及叶子特征对应的向量fs拼接成一个向量,得到拼接后的特征向量FeatureA=fmax&fmin&fmean&fs,&表示拼接符;
C34.RRNN全连接层利用特征向量FeatureA进行WebShell判定。
2.如权利要求1所述WebShell检测方法,其特征是,步骤脚本文件预处理过程具体为:
A1.将程序代码进行词法分析,生成词法单元流;
A2.对词法单元流进行语法分析,构造抽象语法树;
A3.对进行语法分析后的词法单元流进行过滤,去掉语义无关信息,以达到简化抽象语法树的目的。
3.如权利要求2所述WebShell检测方法,其特征是,步骤A3简化抽象语法树包括如下步骤:
A31.删掉抽象语法树的所有叶子节点,同时为不损失叶子节点特征,样本生成时采用简单的特征工程方法对叶子节点进行向量化处理;
A32.抽象语法树的中间节点只保留声明、表达式和标量节点类型,忽略辅助类型。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京安普诺信息技术有限公司,未经北京安普诺信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710705914.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种面罩的死腔测试装置
- 下一篇:动车组旋转件故障监测与诊断系统