基于BiLSTM和Attention的命令序列检测方法*

2019-12-11 02:23牟宸洲
通信技术 2019年12期
关键词:特征向量双向命令

牟宸洲,薛 质,2,施 勇,2

(1.上海交通大学 网络空间安全学院,上海 200240;2.上海市信息安全综合管理技术实验室,上海 200240)

0 引 言

入侵检测即是对入侵行为的检测,通过收集并分析已有的网络审计数据、日志记录以及用户行为记录等网络信息以及计算机系统中可以收集到的信息数据,检查、判断是否存在违反安全策略的攻击行为。入侵检测是一种主动防护的保护措施,提供对包括外部攻击、内部攻击以及内部误操作等情况的实时防护,及时对入侵威胁做出响应和警告。近年来,用户行为异常检测已经成为入侵检测研究的一个重要分支。由于用户输入具有多变、复杂的特性,且根据时间、工作任务、兴趣等不确定性因素产生变化,针对用户输入的shell命令,单条命令与前后输入命令之间相互关联,具备序列化和多样化的特点。

用户行为检测的具体实现大体可以分为训练和检测两个阶段。在训练阶段,通过已有的用户输入经过分类作为训练数据集,构建模型区分正常输入和异常输入;在检测阶段,模型读取当前用户输入识别是否是异常数据,可能是该用户的误操作,也有可能是外部入侵者进行非法操作,从而引发告警。

1 相关工作

针对用户shell命令行为的异常检测受到了不少科研人员的关注,成为近些年的研究热点。国内外已经开展采用机器学习如贝叶斯模型、支持向量机(Support Vector Machine,SVM)以及Markov模型等技术在用户伪装攻击检测中的应用研究。Lane等人[1-2]的研究展示基于隐Markov模型(Hidden Markov Model)和实例学习两种针对用户行为的异常检测方法。基于实例的方法通过计算当前行为与正常行为之间的相似度判断是否为异常行为,原理较为简单,多数情况下有效,但没有考虑不同行为模式下不同行为具有不同的分布特征,因此检测阶段准确率较低,泛化能力不强。而基于隐马尔可夫链的方法虽然准确率较高,但运算效率较低。Schonlau等人[3]提出的异常检测方法基于统计理论,综合分析了6种不同统计方法的优点和缺点。而Maxion等人[4]对Schonlau方法进行改进,假定用户以固定频率进行操作而与此前的所有历史操作无关,由此引入朴素贝叶斯分类器算法。Dash等人[5]提出延迟检测概念,运用改进后的适应性朴素贝叶斯分类方法进行行为异常检测,进一步提高了检测准确率。Coull等人[6]采用命令分组(Command Grouping)和二元计分(Binary Scoring)的方法模拟变异(Mutation),把生物信息学的序列比对方法用于用户行为异常检测。Kim H S等人[7]和Shim C Y等人[8]研究了基于SVM支持向量机的方法。

2 相关知识

2.1 BiLSTM双向长短期记忆网络

长短期记忆网络(Long Short-Term Memory,LSTM)是循环神经网络(Recurrent Neural Network,RNN)的一种。LSTM由于设计特点,非常适合处理如文本数据的时序数据的建模[9]。BiLSTM是Bi-directional Long Short-Term Memory的缩写,即双向长短期记忆网络,由前向LSTM与后向LSTM组合而成。两者在自然语言处理任务中都常被用来建模上下文信息,在本研究中用于建模处理前后命令输入的双向关联关系。

LSTM延续了RNN的连续结构[10],具体结构如图1所示,不同之处在于LSTM网络中增加了细胞状态ct。ct会随着时刻t传递给下一个细胞,即代表了长期记忆,而LSTM的关键是细胞状态。在细胞序列的运算过程中,细胞会独立决定是否遗忘,因此可以较长时间地记忆以往信息。

图1 LSTM细胞结构

LSTM细胞在每轮更新中,接收上一个细胞的隐藏状态ht-1与输入xt,由遗忘门决定需要舍弃哪些信息,计算过程为:

输入门决定当前的细胞状态ct,原理是通过一个包含激活函数的层决定保留的信息,然后生成当前时刻t的细胞状态ct,计算方法为:

输出门决定输出信息,计算过程为:

其中Wo为权重矩阵,bo为偏置项,σ为激活函数。

平顺县隶属于山西省东南部的长治市,位于太行山西侧,黄土高原东部边缘,处于我国由华北平原向第二阶梯过度的前沿,平均海拔高于1000m的地区占全县总面积的70%以上(图1)。全县地势南高北低、自东南向西北倾斜。境内河流则有浊漳河,东部的虹霓河、南部宑底河系集东南部山地雨水形成,流域面积均较小[10]。县境内地貌以山地为主,平原仅在浊漳河两岸有少量分布[11]。

BiLSTM双向长短期记忆网络解决了LSTM不能编码从后往前的信息,通过由前向LSTM与后向LSTM组合而成的BiLSTM可以更好地捕捉双向语义依赖,提高预测的准确率。

2.2 Attention注意力机制

Attention注意力机制的目的可以通俗理解为模拟人把注意力集中在重要信息上,忽略次要信息[11]。基于不同应用场景,Attention机制可以分为空间和时间两类,分别适用于图像处理和文本处理。

在原始编解码模型中,如图2所示,编码过程和解码过程中间存在一个中间矢量C,用于保存编码器从原始数据中得到的信息。模型中,该中间矢量的长度是固定的,即当输入数据量较大时不能保存得到的所有特征信息,也不能全部传给解码器,Attention注意力机制的设计目的是突破定长的中间矢量的限制[12]。

图2 典型编码器-解码器结构

Attention机制计算当前输入序列与输出向量的匹配程度,从而计算得到输入序列中不同元素的权重。匹配度越高,权重越高。模型在产生输出的时候,还会根据权重产生注意力范围表示接下来输出的时候序列中不同元素的重要程度,然后根据关注的区域产生输出,由此在解码时每一步都会选择性地从向量序列中挑选一个子集进行一步处理。这样在产生每一个输出的时候,能够充分利用输入序列蕴含的信息。

3 一种新的命令序列异常检测方法

3.1 数据获取

由于本研究目标针对目录遍历攻击、大量读取、删除文件以及反弹shell生成等特定攻击场景,目前不存在针对性的shell命令数据集,因此自行根据已有的SEA实验数据——AT&T Shanon实验室数据[3]加以修改,以达到实验研究目的。SEA数据集的预处理格式较为简单,仅保留shell命令名称,不包含其他参数,共包含50个不同用户。每名用户拥有15 000条命令记录,其中前5 000条为本用户输入,而后10 000条包含其他用户输入。显然,SEA数据集的内容与本研究目的不符,目的不在于分辨是否为当前用户输入的命令,而在于发现是否存在目录遍历攻击、大量读取、删除文件以及反弹shell生成等特定攻击场景。因此,将所有SEA数据集每50条命令视为一个数据块,且所有数据块均视为正常数据,然后在部分数据块中替换部分shell命令记录,使数据块具有目录遍历攻击、大量读取、删除文件以及反弹shell生成等特定攻击场景,将这些修改过的数据块视作异常数据。数据格式如图3所示,其中标签设为1的即为包含目录遍历攻击、大量读取、删除文件以及反弹shell生成等特定攻击行为的异常数据块。

图3 数据集的数据格式

3.2 网络架构

本研究的网络模型结构如图4所示。

一个shell命令块输入网络模型后,首先通过分词器对文本中的词进行计数生成词典文档,将输入的shell命令块转换为基于词典位序的向量表示,输入长度不足进行填充,满足长度要求。生成的命令块矢量随后进入前向LSTM和后向LSTM,输出的特征向量进入Attention层。Attention层输出的语义编码经过Dropout层后,在输出层分类得到最终预测标签。

图4 网络结构

本网络结构设计拥有以下几个优点:

(1)BiLSTM双向长短期记忆网络能够结合上下文提供在特征向量中更丰富的语义信息。其中,前向长短期记忆网络能够提供输入序列的上文信息,而后向长短期记忆网络能够提供输入序列的下文信息,最后合并双向网络的状态后将包含上下文语义编码作为输出层的输入。

(2)Attention注意力机制的加入优化了最终输出给分类器的特征向量,解决了提取的特征向量无法完全代表整个长序列以及先输入的信息被后输入的信息覆盖的两大弊端。通过计算输入信息节点对输出向量的权重得到注意力概率分布,突出重点语义信息,从而得到更高质量的特征向量,输出更高质量的语义信息,突破了定长的特征向量的限制。

(3)Dropout层在训练过程中概率性忽略部分特征提取器,减少了隐层节点的相互作用和过拟合现象。

3.3 实验结果与分析

本研究在基于SEA实验数据修改得到的针对目录遍历攻击、大量读取、删除文件以及反弹shell生成等特定攻击场景的新数据集上进行试验,网络架构基于双向LSTM以及Attention注意力机制。经过对超参数的不断调整训练网络,最终在数据集上得到了较好的实验结果。最终的测试结果如图5所示,混淆矩阵如表1所示。

图5 测试结果

表1 混淆矩阵

可见,在存在或不存在攻击异常行为的二分类问题中,本文提出的基于双向长短时记忆网络和Attention注意力机制的异常检测方法显示出较好的检测能力。其中,在220个测试命令块中准确率(Precision)均值超过98%,召回率(Recall)超过了98%。由于召回率的定义为Recall=TP/(TP+FN),代表覆盖面的度量即度量有正例被分为正确标签。准确率和召回率都较高,代表着较低的误报率和漏报率,展现出出色的预测能力。而F1-score是准确率P和召回率R的调和平均值,定义为:

可知,F1-score综合了准确率P和召回率R的结果。较高的F1-score说明本文提出的方法有效。实际应用中,准确率和召回率往往是一对矛盾的值,想要保证准确率需要舍弃一些召回率,但本文提出的基于双向长短时记忆网络和Attention注意力机制的异常检测方法同时得到了较高的准确率和召回率。

4 结 语

本文提出了一种高效的基于双向长短时记忆网络和Attention注意力机制的针对目录遍历攻击、大量读取、删除文件以及反弹shell生成等特定攻击场景的用户行为异常检测方法。LSTM本身较适用于时间离散序列数据的神经网络结构,本研究利用BiLSTM双向长短时记忆网络结合上下文提供在特征向量中更丰富的语义信息,结合Attention注意力机制,突破了定长的特征向量的限制,得到了更高质量的特征向量,输出了更高质量的语义信息,在针对目标攻击场景生成的基于SEA实验数据的数据集上得到了较高的准确率和召回率,显示出较高的综合预测能力。下一步的研究目标在于拓展到更多的攻击场景,这对网络模型提出了更高要求。

猜你喜欢
特征向量双向命令
二年制职教本科线性代数课程的几何化教学设计——以特征值和特征向量为例
双向度的成长与自我实现
只听主人的命令
克罗内克积的特征向量
降低寄递成本需双向发力
用“双向宫排除法”解四宫数独
安装和启动Docker
一类三阶矩阵特征向量的特殊求法
完善刑事证据双向开示制度的思考
移防命令下达后