Improving Convolutional Neural Network-Based Webshell Detection Through Reinforcement Learning

该文为发表于ICICS 2021《Improving Convolutional Neural Network-Based Webshell Detection Through Reinforcement Learning》

原文作者: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 笔记作者:nerd@SecQuan 文章小编:ourren@SecQuan

简介

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

方法

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

实验

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