基于机器学习的多模型融合的Webshell检测 方法设计与实现

发布时间:2022-03-07 20:47:27 论文编辑:vicky

本文是一篇计算机论文,本文首先分析了现有 Webshell 检测的难点与痛点,在此基础上进行全生命周期 Webshell的需求分析,并进行了系统详细设计,分别采用检测子系统和训练子系统来规避传统正则检测规则无法适配动态变化场景的问题;对系统进行了详细设计,并在详细设计的基础上,结合系统功能特点进行了特征提取优化方法的提出,采用多模型融合多场景下探的方法来实现检测准确率与召回率的提升,并对系统进行实验测试。


第一章 绪论


1.1 研究背景与意义

日趋严峻的国际局势和更加复杂的业务架构,使得安全形势更加严峻。党的十八大以来,习近平总书记高度重视网络安全和信息化工作,多次强调做好网络与数据安全防护。伴随《网络安全法》的发布,如今我国对于网络信息安全的重视程度已经上了一个台阶,并提出了“护自己、护他人、能感知、能处置、能攻防”的网络与信息安全综合防护体系的目标。其中“护自己、护他人”是对于知己知彼的要求,主要的思路就是知道对方的网络攻击手段与己方的网络防护手段的对等性并进行效度分析以实现全周期安全防护;“能感知、能处置、能攻防”则是对于网络与信息安全防护纵深的要求,其要求在高级威胁分析、业务无感知处置、攻防能力建设上要进一步深化手段覆盖面并验证覆盖效果,做到“策略清、效果清”。

然而,根据 2015 年至 2019 年的整体网络安全态势来看,主要有三类攻击态势变化。一是攻击者身份不断升级[1]:其由原有的松散型个人或者小团体黑客组织已经演变成为以“海莲花”为代表的国家背景黑客组织,从 2015 年起就在针对我国各政府部门进行长期攻击,黑客组织日益专业化、政治化;二是攻击手段高级化[2]:日益复杂的业务系统与功能组件,留下了大量软件后门与 0day 漏洞,攻防难度严重倾斜。随着网络战武器的泄露,利用漏洞进行传播感染的电脑数量达到 10-15 万台每天。挖坑、勒索病毒猖獗;三是防护措施跟不上[3]:传统的防护手段难以抵抗不断升级的攻击组织及攻击手段,薄弱的安全意识让问题更加严峻;此外由于网站是面向互联网服务的暴露面门户,具有复杂的网络架构、开放的业务系统、海量的数据信息等特点,是滋养网络黑客与网络黑产的温床,针对敏感数据泄漏的威胁尤为突出。因此针对网站安全的防护是网络安全研究的重要环节。


1.2 国内外研究现状

1.2.1 机器学习国内发展现状

泛机器学习技术是近年来比较火热的人工智能话题[5-10],其在各个领域都有着广泛的应用,在 Webshell 检测领域也存在若干研究成果。

2011 年,一种基于内容的网页恶意代码检测分析方法被提出,该方法主要通过 Webshell与正产网页 shell 的特性空间进行区分,使用机器学习算法进行分类后,对 JS 脚本利用固定参数进行反向混淆,导致混淆检测能力不能适配动态变化的场景[11-15]。

2012 年,一种基于数据挖掘的网页恶意代码检测技术被提出,其主要思想是通过分类模型的上升式挖掘来实现动态检测算法的硬耦合,但是其在算法收敛性上表现较差,无法实现与其他系统的对接[16]。

同在 2012 年,基于决策树的检测方法被提出[17],该方法采用定向选举的方式来实现超长单次、关键词组与函数的加密。但是由于其采用未经剪枝的决策树算法判决,相当于牺牲召回率的前提下提升检测精准度,需要进一步提升。

2014 年,一种在网页中的重定向链接特征在 WFEGM-W 算法模型中的表征态研究结果被提出[18],其主要通过 SVM 分类的方式进行检测与加固,但是在算法收敛度上表现较差,仍具备一定提升空间。

2017-2019 年,多类 Webshell 检测算法被提出,主要引人瞩目的便是 GAN 对抗性神经网络的提出[19-25],这类思想主要采用分类器的方法来实现 Webshell 的检测,并实现多模型的融合检测,可惜该模型尚未在我国范围内广泛使用。

在重大活动保障以及应急响应范围内,召回率和准确率的特性是最受关注的。目前大多数研究主要是采用理论研究的方式来实现以上两类指标的提升,尚未结合工程系统进行实地测试。


第二章 Webshell 检测基础理论概述


2.1 Webshell 概述

2.1.1 广义上的 Webshell 定义

Webshell 可以理解为是 ASP、ASA、ASPX、PHP、JSP 等网页语言环境下可以执行后台命令执行的命令集的组合,其可以绕过管理员权限执行任意可执行代码,对于网页本身以及后台数据库、buffer 缓存都有执行可能,因此危害极大,也可以成为是后门的一种[30]。广义上来说,黑客一般采用植入正常网页元素与后门文件的混合体的方式来实现浏览器访问权限与防护手段的限制,进一步采用浏览器行为来实现自己 Webshell 的权限提升,也称为提权。提权后所能操作的对象主要是网站服务器上的数据库、中间件执行流、组件层,可以任意篡改网页页面以及将数据库中的敏感数据信息拖出,危害极大[31]。

从操作流程层面来说,Webshell 的主要操作流体现在增删改查网页、增删改查数据库、破坏中间件执行流等操作层面。其提权后可以拥有任意文件系统/非文件系统的编辑权限、并可以以此为跳板进行对其他网站服务器的跳板攻击功能,实现横向渗透[32]。如图 2.1 是一个典型 Webshell 提权过程:

计算机论文怎么写

2.2 Webshell 特征分类

2.2.1 关键词库特性与函数分布特性

从上文对 Webshell 的定义中可知,Webshell 中的关键执行词语与关键调用函数是主要组成部分。因此,关键执行词语与关键调用函数也就代表了 Webshell 的主要特征。常见的Webshell 的关键词库包括 ribotqtonut、nylalobghyhirgh 等混淆前词汇以及 eval、system、cdm等关键连接词;常见的高危调用函数类型比较多,包括系统调用函数、数据库操作函数等[34]。其中系统操作函数主要包括 fopen、fwrite、readdir 等;数据库操作函数包括存储过程中调用、连接数据库的操作等。以下本文进行若干举例,进行简要说明:

2.2.2 文件时间的特征

Webshell 上传的时间一般是具备单独上传时间的,通过检索凌晨上传、孤立时间点的上传记录可以发现[37]。

2.2.3 动态流转特征

一般来说,攻击者只要具备了 Webshell 所需的权限后,通常都要将 Webshell 进行使能,这样就为动态特征的提取提供了场景。Webshell 从动态流转特征的分类来说,主要可以理解为调用过程与内存拷贝过程两大类[38-40]:

调用过程之文件操作类:主要可以体现为文件的查看、文件的上传、文件的下载、文件的删除、文件名称/大小的更改、文件的复制/黏贴/剪切操作等;

调用过程之目录操作类:目录操作主要涉及路径规避型浏览、目录名称的跨级修改、目录增加与删除等; 内存调用之扫描类:从内存驻留的程序中直接匹配端口与 IP 地址扫描场景;

内存调用之应用程序堆栈攻击类:对于应用程序的加壳文件进行动态编译,例如在window 系统下实现.dll 动态链接库文件的生产,进而形成攻击脚本化的跳板。


第三章  多模型融合 Webshell 检测方法分析与系统原型设计 ..................................... 12

3.1 Webshell 检测原型需求分析 ........................................ 12

3.1.1  新型 Webshell 带来的威胁 .............................................. 12

3.1.2 Webshell 全生命周期场景分析 ............................................. 13

第四章  特征提取优化方法研究 ................................... 32

4.1 N-gram 词袋模型与 XGBoost 算法适配与选型 ....................................... 32

4.1.1 N-gram 词袋模型的选型 .......................................... 32

4.1.2 XGBoost 算法适配 ........................................... 32

第五章  原型系统设计与实现 ............................. 43

5.1  基于机器学习机制的检测子系统设计与实现 ........................................ 43

5.1.1  特征提取模块设计与实现 ..................................... 43

5.1.2  分级分类模块设计与实现 ................................ 46


第五章 原型系统设计与实现


5.1 基于机器学习机制的检测子系统设计与实现

5.1.1 特征提取模块设计与实现

按照特征提取模块在总体设计中的要求,需要建立一种基于机器学的正常 shell 与异常Webshell 的提取建模方法,本文对于两类建模方法的设计如图 5.1 所示

计算机论文参考

如图 5.1 所示,对于正常特征建模与正常特征建模采用判决流程如下:

(1)获取目标 URL 并进行字符分类,分类状态包括数字、文本、字符、使能、终结至少 4 个字段;

(2)获取上述四类分类的样本模式,将样本模式定义为 N,并将字符串按照表征态进行分析。表征态的检测方法主要由四个表征组组成,对于任意一组字符,一般都是从“=”后开始分析,并进一步实现字符提取的转化效果,如“^  ”代表初始态、而“$  ”  代表终结态等;

(3)对于不同的长度与字符模式的特征提取采用不同的提取方法,通过自定义基态的信息实现将服务器端的各类请求转换为基态数据来实现,实现效果确保各类数据状态被压缩从而实现在向量空间上的映射。


第六章 总结与展望


6.1 总结

本文首先分析了现有 Webshell 检测的难点与痛点,在此基础上进行全生命周期 Webshell的需求分析,并进行了系统详细设计,分别采用检测子系统和训练子系统来规避传统正则检测规则无法适配动态变化场景的问题;对系统进行了详细设计,并在详细设计的基础上,结合系统功能特点进行了特征提取优化方法的提出,采用多模型融合多场景下探的方法来实现检测准确率与召回率的提升,并对系统进行实验测试。 本文所做工作总结如下:

(1)以检测准确率与召回率为抓手的原型设计

明确了本文 Webshell 检测是服务重大活动网络安全保障场景的目标后,明确了检测准确率与召回率的指标,采用系统分层的思想,结合 Webshell 传统检测方法的在检测准确率、召回率上的问题,分别采用机器学习检测子系统与机器学习训练子系统进行设计,并明确了每个子系统的辖属功能模块之间的业务逻辑交互要求;系统详细设计中根据这些业务逻辑交互要求实现了核心逻辑与部分核心代码;系统整体具备模型融合分析、关联分析、高效分级分类功能。

(2)Webshell 多场景特征提取优化方案的提出

针对 Webshell 多场景下的特征提取困难问题,本文提出了一种结合 XGBoost 与 N-gram词袋模型的多模型耦合检测方法,直接调用本文设计原型系统中的机器学习检测模块进行能力复用,解决了部分 shell 文件无法读取为可操作码的问题;结合卷积神经网络对 Webshell全生命周期场景进行样本训练,并采用增加判决层的方式对系统原型中训练子系统进行接口适配。

(3)系统测试

对单一随机森林、单一 SVM、基于神经网络的操作码解析、基于神经网络的 N-gram 方法、本文所提方法进行了对比测试。实验结果表明,本文提出的方准确率、召回率、计算效率较好,达到重大活动网络安全保障的基本要求的同时,也具备一定的应用潜质。

参考文献(略)

提交代写需求

如果您有论文代写需求,可以通过下面的方式联系我们。