Press "Enter" to skip to content

结合强化学习与CNN的Webshell检测方法

 

原文作者:Yalun Wu, Minglu Song, Yike Li, Yunzhe Tian, Endong Tong, Wenjia Niu, Bowei Jia, Haixiang Huang, Qiong Li, Jiqiang Liu

 

原文标题:Improving Convolutional Neural Network-Based Webshell Detection Through Reinforcement Learning

 

原文链接:https://link.springer.com/chapter/10.1007/978-3-030-86890-1_21

 

笔记作者:[email protected]

 

文章小编:[email protected]

 

简介

 

该文为发表于ICICS 2021的Improving Convolutional Neural Network-Based Webshell Detection Through Reinforcement Learning。目前,Webshell检测对于网络安全保护非常重要。传统方法主要基于关键字匹配,这在很大程度上依赖于领域专家的经验。近些年来,机器学习被引入到Webshell检测中,并被证明效果很不错。因此,如何将自动特征选择的优势和基于专家知识的方式的优势恰当地结合起来成为一个关键问题。在这项工作中,作者提出了一种通过强化学习改进基于卷积神经网络(CNN)的Webshell检测的新方法。

 

方法

 

整体框架图如下所示,首先从网络请求的数据流中共提取80种特征,然后使用基于A3C的自动化特征提取方法,将提取得到的特征交由CNN模型进行分类,之后通过分类结果计算奖励函数从而优化特征选择过程。周而复始,完成对Webshell的检测。 作者从流量中提取的特征包括接口基本特征、流量来源特征、流量请求特征、流量响应特征和内容特征。其中,接口特征描述了目标接口本身的安全特性。流量来源特征反映了请求来源的合法性。流量请求特征和流量响应特征就是这个HTTP请求报文中表达的特征。内容特征是HTTP请求正文中特定字段的特征,由正文中的字段结构和字段内容组成。部分典型特征的详细描述如下表所示。 对于特征选择阶段,使用的是强化学习领域的A3C算法,主要就是要明确奖励函数、动作空间和状态这三个概念在本论文中的设置即可。首先,奖励函数是CNN检测WebShell的正确率。动作空间为{选择任意特征,停止特征选择}。最后,虽然笔者没有看到明确的状态空间定义,但是动作空间的描述,合理猜测状态空间应该是表示特征是否被选择。

 

实验

 

作者首先针对他们的方法和一些商业软件进行对比,之后又将他们的方法和没用使用A3C进行特征选择的CNN检测方法进行对比,效果上确实有一定提升。 综上,作者的方法能够提高Webshell检测效果、有效抑制CNN模型过拟合现象。但是,强化学习每做一次动作就要重新训练CNN模型计算奖励函数的方式可能会导致效率较低。

 

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注