APP下载

基于深度学习的网络恶意登录异常检测方法研究

2021-09-08宋文爱王振宇危胜军

中北大学学报(自然科学版) 2021年4期
关键词:日志编码算法

明 泽,宋文爱,单 纯,王振宇,危胜军

(1. 中北大学 软件学院,山西 太原 030051; 2. 北京理工大学 计算机学院,北京 100081)

0 引 言

随着计算机网络的不断发展,网络安全风险成为了不法分子盗取用户信息的主要途径之一. 这些威胁可以来自于各个方面,包括恶意登陆、 恶意软件、 网络钓鱼、 端口扫描等. 恶意攻击使得未经授权的攻击者对目标计算机进行访问,从而造成进一步的破坏,如窃取机密、 知识产权以及其它商业敏感信息. 其中,高级可持续威胁攻击(Advanced Persistent Threat, APT)是最常见的网络攻击之一,它是一种隐秘的攻击,能够对各种组织和企业造成重大破坏. 例如,2010年的极光攻击(Google Aurora)是一个非常著名的APT攻击,谷歌的一名雇员点击即时消息中的一条恶意链接,引发一系列事件,导致谷歌和其他大概 20家公司的系统数据被窃取; 针对伊朗关键基础设施的臭名昭著的Stuxnet[1]摧毁了伊朗的核项目. 根据卡巴斯基实验室[2]的研究,一个名为Carbanak的后门项目,给一家金融机构造成了累计10亿美元的损失. 此外,8000多万社会安全号码被从Anthem(一家大型医疗保险公司)抽走,直到9个月后才被发现. 在这次攻击中,Mivast恶意软件[3]伪装成一个VPN软件,为攻击者提供了一个后门.

在实际应用中,网络管理员的任务就是筛选来自计算机的海量用户日志,以评估潜在的安全风险. 但是,即使是规模适中的网络,其数据量也会迅速增长,超出个人或团队的检测能力,从而导致响应延迟. 为了降低网络安全风险,以便网络管理员能够快速发现计算机网络上潜在的恶意登录活动,出现了网络异常检测与机器学习的跨领域研究,网络安全攻击和恶意行为的自动化检测已经成为了目前研究的主流. 大多数安全系统在互联网和内部网之间保持一个强大的边界,因此,攻击者不能够访问网络安全功能(如防火墙、 入侵预防系统等)后的主机,攻击者也很难驻留在内部网中对受保护的计算机发起攻击. 横向移动(Lateral Movement, LM)就是攻击者使用不同的攻击技术(例如,网络钓鱼、 伪装、 诱饵等)来欺骗内部人员执行恶意代码或交出网络证书,使得攻击者能够访问受害者的计算机,并通过其内部漏洞逐步探索有价值的信息.

目前,机器学习的方法已经广泛应用于网络安全中,Heard等[4]利用贝叶斯网络来检测计算机网络上的异常,该方法通过源计算机和目标计算机构建二部图,用来检测最有可能与源计算机相连接的目标计算机,并对所有源计算机进行异常排序. Kent等[5]提出了一种基于二部图的用户行为分析方法,利用二部图分析用户行为特征以此作为入侵检测的依据. Turcotte等[6]提出了一种基于概率的异常检测推荐系统算法,该方法使用泊松因数分解用户运行的进程以进行异常检测. 刘敬等[7]采用无监督的方式建立了基于支持向量机模型,利用主动学习找出有较高价值的样本并人工进行标记,最后使用半监督的方法对模型进行扩展. 在机器学习的相关工作中,对异常身份验证连接的建模只考虑了日志事件中的部分可用信息,且随着网络日志中用户与操作的信息不断增加,该方法在网络异常检测方面的特征提取能力也不断降低.

由于网络安全中数据的冗杂和数据量大的特点十分适合进行深度学习及其分析计算,因此,基于深度学习的方法在近年来也经常用于网络异常检测中. Ussath等分析了22种不同的APT报告,总结了不同APT活动使用的相应技术[8]; 还设计了用户行为的模拟系统来生成Windows平台的用户活动日志,并使用前馈神经网络和递归神经网络来识别日志中的恶意事件[9]; 但是,其所使用的数据集是基于假设而构建的,比如将用户的经纬度作为检测的特征,这在大多数情况下是不符合实际情况的. Siadati等[10]设计了一种用于异常检测系统的登录模式,提出了一种新模式的挖掘算法,而且可用于扩展大数据集; 该系统由精确匹配和模式匹配两部分分类器组成,由于精确匹配分类器容易出现过拟合,因此,使用模式匹配分类器进行补偿以避免过拟合. TIM等[11]分析了LANL两个数据集的优缺点,并且依靠RDP协议以及RDP登录会话将两个数据集合并,将LANL2015数据集中的恶意数据合并到LANL2017数据集中,同时使用无监督学习方法检测合并数据后的恶意RDP会话事件,但该方法只能检测基于RDP的会话事件,并不适用于所有的登录事件,数据集也是构造的并不是真实数据集. Kaiafas等[12]提出了一种提取特征的方法,测试了多个异常检测模型的效果并取得了不错的假阳性率,但是,作者没有使用任何恶意数据,全部采用良性数据进行训练.

由上述可知,绝大部分恶意登录攻击检测所使用的数据集都是基于假设构造而成的,检测的方法也没有考虑到攻击的时序性. 对于时序性特征,绝大部分研究使用的模型都是普通的循环神经网络(Recurrent Neural Network, RNN),其最大的优势就是保证数据的连续性,使用户操作日志中的数据前后连续. 虽然理论上RNN可以解决一切长时间序列的问题,但是,RNN经常在网络中出现梯度爆炸、 梯度消失和对长时间序列不再学习的问题. 为了解决这些问题,本文使用了长短期记忆网络(Long Short-Term Memory, LSTM)[13],它是一种循环神经网络的变体.

对于恶意登录攻击检测的时序性特征和数据集问题,本文使用了LSTM加上注意力机制的方法,更加关注操作正常的特征信息,而对无效信息进行抑制. 同时,本文模型可以直接作用于原始日志,而不是人工构造的基于特定领域假设的数据集. 这样可以极大地减少处理日志的时间,并使其与特定的网络或日志源配置无关. 本文使用公开的洛斯阿拉莫斯国家实验室网络(Los Alamos National Laboratory,LANL)安全数据集对模型进行训练,该数据集是在一个公司内收集到的真实数据集,其中包含RedTeam网络攻击的真实数据.

1 研究框架与方法介绍

1.1 研究框架

图1 给出了用户恶意登录检测算法的研究框架. 首先,对用户操作日志进行预处理,该模块使用两种编码方式构建日志字典,并基于日志字典将用户操作日志形成单个序列; 接着,对每个日志序列进行向量化表示; 进而,利用长短期记忆网络模型学习用户操作特征信息; 然后,通过注意力机制筛选行为特征信息,同时过滤冗余操作,得到用户操作评分; 最后,通过阈值判断用户操作是否异常,若评分高于阈值,则认为用户操作异常,模型判断为恶意登录,并反馈给技术人员进行后续处理.

图1 研究框架

1.2 日志预处理

日志格式复杂多样,本文为了可以处理任意格式的日志样本,使用了两种编码方式:word-level编码和char-level编码[14].

对于word-level的编码方法,本文假设使用的日志可由已知的分隔符进行分割,例如:空格或者逗号. 分割后的日志是不同单词的组合,日志的每一个字段对应一个或者几个单词, 本文提取其所有单词形成一个词汇库. 同时,随着日志的不断增加,可能会出现单词表中没有出现过的单词. 所以,本文加入了〈oov〉(Out-of-vocabulary)[15]标记来处理这些单词,在模型评估时,如果出现词汇库中没有的单词则其会被定义为〈oov〉. 由于在现实环境中,日志中出现的单词会不断增加,所以,需要对词汇表进行不断的更新,可以使用单词频率的统计信息对在词汇表中出现频率较高的单词进行更新. 为了简单起见,本文假设有一个固定的训练集,于是词汇表也是固定的.

Char-level编码的提出就是为了避免词汇表不固定而需要不断更新词汇表的问题. 在这种情况下,原始的词汇表就是可打印的ASCII字符的字母表,通过它能够表示任何日志,同时与网络、 日志源或日志字段无关,从而绕过了词汇不存在于单词表的情况.

1.3 用户操作评分

日志编码可以看作是一种长文本序列,为了准确获取单一序列中含有的用户历史操作信息,本文引入LSTM模型,该模型通过引入门结构来决定在训练期间需要保留或遗忘的信息,因而该模型适合处理长文本序列. LSTM由输入门it,输出门ot和遗忘门ft以及记忆单元ct组成. 其中,遗忘门用来控制历史信息,输入门用来控制当前信息,输出门用来确定下一个隐藏层状态,记忆单元用来保存历史信息. LSTM的工作流程由以下公式表征:

it=sigmoid(Wi*[ht-1,xt]+bi),

(1)

ft=sigmoid(Wf*[ht-1,xt]+bf) ,

(2)

ot=sigmoid(Wo*[ht-1,xt]+bo),

(3)

ct=ft*ct-1+it*tanh(Wc*[ht-1,xt]+bc),

(4)

ht=ot*tanh(ct),

(5)

式中:sigmoid和tanh函数为激活函数;xt表示t时刻的输入;ht表示隐藏层单元;Wi,Wf,Wo,Wc和bi,bf,bo,bc分别表示对应的权重矩阵和偏置.

用户日志中包含了大量的冗余操作,为了更好地捕获用户日志流中 “正常”操作的特征,本文在LSTM模型的基础上引入注意力机制[16]. 注意力机制对用户日志中重要的特征信息赋予较高的权重,对用户日志中“无意义”操作赋予较小的权重,这有助于提高模型识别异常操作的准确率. 根据编码后得到的词向量D={Xi,Xi+1,…,Xi+n,xn},xn为前n个向量的叠加后的平均值,以LSTM输出门最后的输出为例,将xn导入到LSTM模型中,得到输出特征值Sn,则第t个向量对n个向量的注意力概率αnt计算公式为

Snt=Ua*tanh (Ub*Sn+Uc*St+b),

(6)

(7)

式中:Ua、Ub和Uc表示注意力机制的权值矩阵;b表示注意力机制的偏置向量.

用户操作评分结构如图2 所示,具体实现步骤如下:

1) 对训练样本D={xi,xi+1,…,xi+n}中的字符串进行编码,将其转化为可处理的编码,即

xi→δxiα.

(8)

图2 用户行为评分结构图

2) 为每个特征的编码层搭建一层嵌入层,该层输出为

Xi=∑αwαβδxiα=wxiβ.

(9)

3) 将输出Xi送入LSTM网络中进行训练,然后将LSTM的输出和注意机制进行加权输出.

4) 最后,经过SoftMax激活函数处理后得到该用户的操作评分结果.

2 实验与分析

2.1 数据集介绍

数据集在基于深度学习的模型训练中起着至关重要的作用,但是,代表着真实用户操作的Windows日志数据集是极其稀少的. 建立在真实用户操作的公开数据集,例如,CIC-IDS-2017[17]和LANL2017[18],虽然对基于深度学习的恶意登录检测研究有一定的帮助,但是,由于CIC-IDS-2017数据集对敏感信息(如:用户名、 IP地址、 主机名等)进行了规避处理,而LANL2017缺少恶意事件,因此,模型在恶意登录检测的实际应用中准确率较低.

为了克服这些限制,研究人员通过模拟正常用户和攻击者的行为来生成综合数据集. 然而,使用这种方法生成的数据集完全基于假设,可能无法描述真实的用户行为. 因此,为了保留用户行为的真实性,本文使用了来自洛斯阿拉莫斯国家实验室建立的真实数据集:Comprehensive,Multi-Source Cyber-Security Events[19]. 该数据集是从LANL内部计算机网络中收集的日志信息. 数据集包括12 425个用户、 17 684台计算机和62 974个进程且提供了总计1 648 275 307个事件. 数据集分为五个不同的日志,即身份验证事件日志、 进程事件日志、 网络流事件日志、 DNS查找事件日志以及RedTeam活动日志. 其中,恶意登录行为由RedTeam活动日志所记录.

2.2 数据预处理

数据集以日志的形式记录了LANL内部网络中58 d的网络活动. 本文仅使用带有身份验证日志的恶意登录攻击部分,RedTeam活动日志用于评估模型,其字段名以及对应的例子例如表1 所示.

表1 字段名与对应例子

2.3 评价指标

本文将恶意登录事件定义为正例样本,并使用各种性能度量来评估不同的深度学习技术. 混淆矩阵作为评估模型的指标,也是本文采用的指标的基础,通过混淆矩阵计算出4个基础指标. 真正类(True Positive, TP)代表被正确分类的正例数量; 假负类(False Negative, FN)代表将正例错分为负例的数量; 假正类(False Positive, FP)代表将负例错分为正例的数量; 真负类(True Negative, TN)代表正确分类的负例数量. 混淆矩阵如表2 所示.

表2 混淆矩阵

在计算完混淆矩阵的基础指标后,就可以获得本文所需要的四种基础指标:精准率、 召回率、 F1-Score和准确率. 计算公式为

(10)

(11)

(12)

(13)

式中:Acc代表模型的准确率;P代表模型预测为正例的样本中实际为正例的比例;R代表真实值为正例中预测正确的比例;F1-Score是综合P和R两个指标所产生的值.F1-Score 的范围是[0,1],1代表模型性能最好,0代表性能最差.

2.4 实验分析

为了验证本文所提方法的有效性,本文设置了以下对比试验:逻辑回归算法(Logistic Regression,LR)、 决策树(Decision Tree,DT)、 随机森林(Random Forest,RF)、 前馈神经网络(Feed-Forward Neural Network,FFNN), RNN, LSTM以及LSTM+Attention.

本文使用L1正则化以及随机梯度下降算法的逻辑回归算法来捕捉变量之间的关系. 决策树算法使用的最大深度为3层,由于样本量过大将criterion设为entropy, splitter设为random. FFNN使用的是3层结构,包含了两个隐藏层. FFNN, RNN, LSTM以及LSTM+attention算法中,实验迭代次数epoch设置为500,为了防止过拟合,dropout设置为0.5,BatchSize为32,初始化学习率为0.001,并使用Adam算法对学习率进行优化.

经过对攻击日志的分析,本文发现所有攻击者的源主机都来自四个主机其中的一个,使用源主机特征的时候可能会导致这些源主机所有的事件都会被预测为异常. 因此,本文在后续的工作中删除了导致这些偏见的特征,即:源用户、 源主机和目标主机.

从表3 中可以看出,由于LR对非线性问题的局限性,其精确率和召回率都较低. 而其它机器学习算法准确率过高是数据不平衡造成的,数据集中恶意数据仅有全部数据的0.001%,这样使得大量正常的样本被预测成功而导致准确率过高. 所以,本文仅关注精准率、 召回率以及F1-Score,其中F1-Score最能体现模型的鲁棒性. 普通的机器学习算法中,F1-Score最高的为RF算法,普通机器学习算法存在过拟合问题,RF具有两个随机特性,使得RF有一定的抗噪声能力,同时也在一定程度上解决了过拟合问题. LSTM+ATT模型相对于传统机器学习算法和普通LSTM算法都有一定的优越性,其F1-Score值达到了0.989.

表3 Word-level结果

表4 Char-level结果

对比表3 和表4 可以看出,word-level和char-level编码的实验结果相差不大. 但是由于word-level要进行单独的词汇提取和编码,而char-level直接使用ASCII编码形式,所以在相同大小的数据集中,word-level的训练时间要比char-level短20%左右.

由表5 和表6 可知,在缺少用户、 源主机和目标主机字段的情况下,本文所提方法在恶意登录异常检测中依然有较高的精确率、 召回率以及F1-Score.

表5 删除用户、源主机和目标主机的word-level结果

表6 删除用户、源主机和目标主机的char-level结果

3 结 论

深度学习方法可以自动从大规模数据中选择特征,同时,循环神经网络具有长期保存输入特征的特点,本文基于此提出了一种基于注意力机制的恶意登录异常检测方法,与传统LSTM方法相比,在输出前通过加入注意力机制使模型能够更好地聚焦用户日志中正常操作的特征信息. 同时,为了提高模型的泛化性能,提出了word-level和char-level两种编码方法,对日志的字段进行编码. 实验结果表明,本文方法对恶意登录异常检测具有较好的精确率、 召回率以及F1-Score,优于其他的无监督恶意登陆检测算法. 然而,本文研究依旧存在局限性,如恶意数据过少,仅占有所有数据的0.001%,因此,如何解决数据不平衡问题还需要深入研究; 从头开始训练深度学习的模型需要大量的时间,在出现新数据后如何快速地重新训练模型有待进一步研究.

猜你喜欢

日志编码算法
哪种算法简便
生活中的编码
一名老党员的工作日志
扶贫日志
《全元诗》未编码疑难字考辨十五则
子带编码在图像压缩编码中的应用
Travellng thg World Full—time for Rree
进位加法的两种算法
根据问题 确定算法
雅皮的心情日志