一种基于卷积神经网络模型的网站后门检测方法与流程

专利2022-06-29  115


本发明属于计算机安全技术领域,涉及网站安全中的异常检测方法,具体的说是一种基于卷积神经网络模型的网站后门检测方法。



背景技术:

目前在实际的服务器安全扫描的工作中,即在判断一个脚本文件或者可执行文件是否为安全的文件,排除这个文件是网页后门的工作中,通常利用脚本文件中所使用的关键词、高危函数、文件修改的时间、文件权限、文件的所有者以及和其它文件的关联性等特征生成特征库,将待检测文件内容与特征库进行匹配,根据待检测文件是否存在特征库中内容,判断该文件是否为网页后门(webshell),又称网站的后门工具。

如果对该执行文件或脚本文件进行特殊处理,例如,对自己加密,在执行前先解密,又例如,变量名使用一些随机字符串,在中间代码插入大量无用的随机字符串,将完整的语句拆成多条;再例如,在执行前对传入的参数做一些判断,只有匹配条件时才会转到真正执行的代码。就无法通过这种检测方式进行检测。因此,现有技术中存在着无法对经过特殊处理后的网页后门文件进行检测的问题。



技术实现要素:

针对上述问题,本发明提出一种基于卷积神经网络模型的网站后门检测方法。

本发明的技术方案为:

一种基于卷积神经网络模型的网站后门检测方法,包括以下步骤:

步骤1、从网站服务器中提取普通网页文件样本,从网上搜集恶意后门文件样本,删除注释等冗余信息并划分训练集和测试集;

步骤2、对步骤1中提取的数据进行预处理;

步骤3、搭建卷积神经网络,根据步骤2得到的数据对卷积神经网络进行训练,得到卷积神经网络模型;

步骤4、根据步骤3得到的模型进行实时检测网站服务器中的网页文件样本是否存在后门文件样本。

进一步的,所述步骤1中提取的网站文件为普通网页文件样本,主要为php,jsp,asp,aspx四种类型,搜集的恶意样本文件根据其特点确认为恶意样本文件样本,主要为php,jsp,asp,aspx四种类型,同时分别对普通文件样本和恶意后门文件样本进行注释信息删除并分别标记为负样本和正样本,然后将正负样本按7:3的比例划分为训练集和测试集,划分后再分别将测试集和训练集打乱;

进一步的,所述步骤2中的预处理包括以下过程:

s1:对每个文件中的每行代码利用空格和非数字和字母的特殊字符进行分词;

s2:对样本进行词向量化训练,得到词向量化模型;

s3:根据s2中的模型对样本进行向量化,每一行代码转为一个二维向量,每个样本文件均转化为一个三维向量;

s4:将s3得到的三维向量进行截取和填充,转为统一规定大小的三维向量。

进一步的,所述步骤3具体过程如下:

s1:搭建卷积神经网络网络,利用训练集进行训练;

s2:通过测试集对步骤s1得到的卷积神经网络模型进行测试,若满足准确率、召回率、及f1值预设要求则停止,否则调整卷积神经网络网络参数后继续进行训练。

本发明的有益效果是:

(1)本发明通过卷积神经网络模型学习恶意后门文件共有特征,识别出通过隐藏手段进行绕过特征匹配的恶意后门文件,正确率高,速度快;

(2)本发明通过对各种脚本语言的恶意后门文件进行训练学习,能实现一次检测多种语言的恶意后门文件,能实现广泛应用。

附图说明

图1为本发明流程示意图。

图2为本发明中分词方法示意图。

图3为本发明最终实验结果中roc曲线。

具体实施方式

下面结合附图和具体实施例对本发明做进一步说明。

如图1所示,一种基于卷积神经网络模型的网站后门检测方法,包括以下步骤:

步骤1:样本获取与划分;

s1:从网站文件提取普通网页文件样本,搜集的恶意样本文件同时分别对普通文件样本和恶意后门文件样本进行注释信息删除并分别标记为负样本和正样本。

在正负样本中可能会出现重复样本,通过去重提高样本质量。如

<?php

eval(@$_post['a']);?>//执行我们传递过去的'a'

其中//是注释符,后面为注释内容,注释内容一般每个用户写的都不一样,且对语句功能无影响作用,但是有时会因为用户特殊注释,影响判断结果,因此进行删除操作,最终处理后样本为:

<?php

eval(@$_post['a']);?>

s2:分别将正负样本按7:3的比例划分为训练集和测试集,划分后再分别将测试集和训练集打乱;

由于在训练时是将所有样本分批次导入训练,打乱正负样本可防止训练时出现整个训练批次全是正样本或负样本,将正负样本按比例划分后再分别将测试集和训练集打乱。

步骤2:对步骤1中提取的数据进行预处理,包括以下步骤:

s1:对样本进行分词处理;

如图2所示,首先,每行代码都被视为一个句子。如果直接根据空格进行分词会导致词的类型更多,词库量很大,也十分耗内存,而且部分出现频率低的词在词向量化时直接进行向量填充,失去其具体含义。因此在模型这个中考虑采用通过空格和非数字和字母的特殊字符进行分词,将第n句sn'进行分词得到列表sn:

sn=[wn,1,wn,2,…,wn,m]

其中wn,j是第n句中的第j个词,m代表一个句子中词的数量。如<?phpeval(@$_post['a']);?>分为:[[<,?,php],[eval,(,@,$,_,post,[,',a,',],),;,?,>]]。

s2:对样本进行词向量化训练,得到词向量化模型;

使用word2vec方法(谷歌开源的词向量化方法)对分词后的样本进行词向量化训练,得到词向量化模型,此词向量化模型保存了每个词对应的向量表示,其中向量化维度可以自由设置。例如“php”可以通过词向量化表示为[0.2,0.1,0,4]。

s3:根据s2中的模型对样本进行向量化,每个词转为一个一维向量,每一行代码转为一个二维向量,每个样本均转化为一个三维向量;

若模型中没有样本中出现的字符,则用1向量填充,即行向量每个元素值都取1;每条样本均可转化为一个三维矩阵。

如[[<,?,php],[eval,(,@,$,_,post,[,',a,',],),;,?,>]]向量化示意图:

[[[0.1,2,0.8,3],[0.3,0.9,2,0.1],[0.9,0.6,0.1,3]],[[0.9,0.2,0.7,3],[0.4,0.6,0.1,0.9],[0.1,1.2,2.2,0.6],[1.9,0.3,0.5,1.3],[0.4,0.8,1.2,1],[1.2,1.2,2.3,0.3],[0.3,2.2,4.7,1.3],[0.2,1.2,0.5,2.3],[2.3,1.2,2.1,0.3],[0.2,1.2,0.5,2.3],[1.3,1.2,2.1,0.2],[0.1,0.4,1.1,2.4],[0.4,2.3,1.8,3.2],[0.3,0.9,2,0.1],[1.1,1.8,0.1,2.2]]]

s4:将s3得到的三维向量转化为统一大小的三维向量;

若向量每行词数行数小于指定值,则在最后一直补0向量至其为指定大小,若词数大于指定值,则去掉该行最后的词至其为指定大小;若向量行数小于指定值,则在最后一直补0向量至其为指定大小,若行数大于指定值,则去掉该向量最后的行至其为指定大小。

步骤3:搭建cnn网络,根据步骤2得到的数据对cnn网络进行训练,得到cnn模型(模型训练)。

s1:搭建cnn网络进行训练;

s2:过验证集对s1得到的模型进行测试,若误差满足预设要求则停止,否则调整卷积神经网络参数后继续进行训练。

通过测试集对训练好的模型进行测试,若误差(准确率、召回率、及f1值)在可接受范围内则该模型符合要求,否则通过调整神经网络参数继续进行训练,参数包括卷积神经网络整体结构,网络层数、训练次数、卷积核大小、数量、池化函数、分类函数、激活函数等等。

步骤4:根据步骤3得到的卷积神经网络模型实时检测的网站是否存在后门。

实施例

本发明方法的roc曲线如图3所示,从图中可以看出本发明检测性能很好;本发明训练的模型并未提取一些具有明显可见性的特征,对于一些通过混淆编码绕过特征匹配检测的webshell有很好的检测效果,对webshell语言也没有特殊要求,一个模型就能满足对多种不同语言的webshell的检测。

通过测试,该模型对测试样本的检测准确率为97.29%,召回率为96.97%,f1为96.58%。

本发明中出现的符号如下:

网页后门(webshell):又称网站的后门工具,webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器web目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。顾名思义,“web”的含义是显然需要服务器开放web服务,“shell”的含义是取得对服务器某种程度上操作权限。webshell常常被称为入侵者通过网站端口对网站服务器的某种程度上操作的权限。由于webshell其大多是以动态脚本的形式出现,也有人称之为网站的后门工具。

asp(activeserverpages),是微软microsoft公司开发的服务器端脚本环境,可用来创建动态交互式网页并建立强大的web应用程序。当服务器收到对asp文件的请求时,它会处理包含在用于构建发送给浏览器的超文本置标语言(html,hypertextmarkuplanguage)网页文件中的服务器端脚本代码。除服务器端脚本代码外,asp文件也可以包含文本、html(包括相关的客户端脚本)和com组件调用。

php(hypertextpreprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。

jsp(javaserverpages,中文名:“java服务器页面”),其根本是一个简化的servlet设计,它是由sunmicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。

cnn(convolutionalneuralnetwork,中文名:“卷积神经网络”),是一种深度前馈人工神经网络;cnn是一个针对图像识别问题设计的神经网络,它模仿人类识别图像的多层过程。


技术特征:

1.一种基于卷积神经网络模型的网站后门检测方法,其特征在于,包括以下步骤:

s1、从网站服务器中提取普通网页文件样本,从网上搜集恶意后门文件样本,删除注释信息并划分训练集和测试集;

s2、对步骤1中提取的数据进行预处理;

s3、搭建卷积神经网络,根据步骤2得到的数据对卷积神经网络进行训练,得到训练好的卷积神经网络模型;

s4、利用s3训练好的卷积神经网络模型进行实时检测,判断网站服务器中的网页文件样本是否存在后门文件样本。

2.根据权利要求1所述的一种基于卷积神经网络模型的网站后门检测方法,其特征在于,步骤s1中,分别将普通文件样本和恶意后门文件样本标记为负样本和正样本,然后将正负样本按7:3的比例划分为训练集和测试集,划分后再分别将测试集和训练集打乱。

3.根据权利要求1所述的一种基于卷积神经网络模型的网站后门检测方法,其特征在于,步骤s2的具体方法为:

(1)对每个文件中的每行代码利用空格和非数字和字母的特殊字符进行分词;

(2)对样本进行词向量化训练,得到词向量化模型;

(3)根据s2中的模型对样本进行向量化,每一行代码转为一个二维向量,每个样本文件均转化为一个三维向量;

(4)将s3得到的三维向量进行截取和填充,转为统一规定大小的三维向量。

4.根据权利要求1所述的一种基于卷积神经网络模型的网站后门检测方法,其特征在于,步骤s3的具体方法为:

(1)搭建卷积神经网络网络,利用训练集进行训练;

(2)通过测试集对步骤s1得到的卷积神经网络模型进行测试,若满足准确率、召回率、及f1值预设要求则停止,否则调整卷积神经网络网络参数后继续进行训练。

技术总结
本发明属于计算机安全技术领域,涉及网站安全中的异常检测方法,具体的说是一种基于卷积神经网络模型的网站后门检测方法。包括以下步骤:步骤1:从网站服务器中提取普通网页文件样本,从网上搜集恶意后门文件样本,删除注释等冗余信息并划分训练集和测试集;步骤2:对步骤1中提取的数据进行预处理;步骤3:搭建卷积神经网络,根据步骤2得到的数据对卷积神经网络进行训练,得到卷积神经网络模型;步骤4:根据步骤3得到的模型进行实时检测网站服务器中的网页文件样本是否存在后门文件样本。本发明训练的模型能检测多种语言的Webshell,同时能对通过混淆编码进行隐藏的样本具有很好的检测效果,准确率高,召回率和F1值效果都很好。

技术研发人员:李婷婷;任春辉;郭劲宏;付毓生
受保护的技术使用者:电子科技大学
技术研发日:2020.01.15
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-15965.html

最新回复(0)