APP下载

基于主机日志的恶意登录异常检测方法

2023-05-24王伟

无线互联科技 2023年5期
关键词:异常检测

王伟

摘要:高级持续性威胁通常会利用网络中的横向移动来造成伤害。事实上,横向移动占攻击时间的 80% 以上。攻击者通常使用窃取的凭据进行横向移动。然而,目前的检测方法更关注恶意用户和主机,而不是表明恶意登录的异常日志条目,无法有效检测横向移动。文章提出了一种恶意登录检测方法,主要针对窃取凭据的攻击。细粒度方法采用时间神经网络嵌入来学习主机跳跃表示。日志条目中学习到的主机向量和初始化的属性向量被输入具有登录特征提取的注意力机制的长短期记忆中,从而确定登录是不是恶意的。实验结果表明,文章提出的方法优于几种基线检测模型。

关键词:主机日志;恶意登录;异常检测

中图分类号:TP399文献标志码:A

0 引言

机器学习和数据挖掘算法在入侵检测系统设计中起着重要作用。在入侵检测系统中,只要网络中的活动序列与已知的攻击签名相匹配,就会检测到系统中的攻击。另外,在异常检测方法中,可以基于系统状态转换与其正常状态的显著差异来识别系统中的异常状态[1]。

1 相关概念与技术理论基础

1.1 恶意登录攻击分析

异常登录检测是构建安全可信系统的关键一步。当登录记录中出现新用户时,传统方法判断登录发生了异常行为,但实际上,第一个登录主体可能是攻击者以外的新员工。高级持续性威胁(APTs)一直是大量研究的焦点通常表现为对特定目标的持续有效攻击[2]。攻击者通常会破坏主机,并采用隐藏策略进入睡眠状态。横向移动是攻击的下一个关键且耗时的阶段,会尝试逐步移动到网络中的其他机器并进行控制。因此,恶意登录检测对于对抗高级持续威胁至关重要。

1.2 恶意登录检测方法概述

恶意登录检测方法在描述用户和主机之间交互的通信图中建模登录。然而,这些方法主要关注日志条目的部分属性(例如登录关系),以识别恶意用户和主机,这是一种相对粗粒度的检测策略。其他横向移动检测技术利用机器学习可以获得更好的结果,然而,大多数技术都受到模型可解释性的限制。此外,还有一些细粒度的检测方法,包括主机表示学习和日志文件特征提取。主机表示學习使用时间神经网络嵌入模型来学习初始主机向量,使主机登录关系转换为主机向量[3]。

1.3 深度学习理论基础

最近,深度学习是一种广泛使用的技术,可应用于入侵检测系统以检测恶意网络流量。深度学习模型检测效率的核心是基于数据集的质量训练模型。本研究提出了一个带有深度学习模型的检测框架,使用由恶意和正常流量构建的数据集。用于提供恶意登录异常检测方法,以检测网络流量异常。这项研究的重大挑战是将提取的特征用于训练各种攻击的模型,以区分异常流量和常规流量。数据集 ISOT-CID 网络流量部分用于训练 ML 模型。笔者添加了一些重要的列功能,并且批准该功能在训练阶段支持 ML 模型。ISOT-CID 数据集流量部分包含两类特征,一类特征是从网络流量中提取的,另一类特征是在特定时间间隔内计算的。笔者还展示了一个添加到数据集的新列特征,并证实它可以提高检测质量。

2 基于实体嵌入的日志向量化表示方法

2.1 实体嵌入算法思想

在一般的基于日志的异常检测系统中,网络、设备和主机日志都被一起用来分析和检测异常。然而,不断增加的日志量仍然是异常检测工具面临的主要挑战之一。本文提出了一种基于主机的日志分析系统,该系统可以在不使用网络日志的情况下检测异常,以减少体积并显示基于主机的日志的重要性,使解析器从Sysmon日志中解析和提取特征,并对数据执行检测。经过两次广泛的体积缩减步骤后,有价值的信息得以成功保留。周超[3]提出了一个异常检测系统,并在多达 55 000 个事件和超过100万条日志消息的不同数据集上执行。系统使用保存的日志可以轻松地检测攻击和恶意活动。

模型不能直接理解文本或图像数据,要在机器学习或深度学习中建立任何模型,最终级别的数据必须是数字形式。向量化或词嵌入是将文本数据转换为数值向量的过程,被用来构建各种机器学习模型[4]。

2.2 基于实体嵌入的日志向量化表示方法

日志分为日志键和日志参数。为了理解和生成文本,NLP 驱动的系统必须能够识别单词、语法和大量的语言细微差别。为了弥合差距,NLP 专家开发了一种词嵌入技术,可以将词转换成相应的数字表示。转换后,NLP 算法可以轻松处理文本信息。词嵌入将词映射为实数值向量,通过标记序列(或句子)中的每个单词并将它们转换为向量空间来实现。词嵌入旨在捕捉文本序列中词的语义,将相似的数字表示分配给具有相似含义的单词。TF-IDF 是一种机器学习(ML)算法,它基于寻找文本中单词相关性的统计度量,文本可以是文档或各种文档(语料库)的形式。TF-IDF是两个指标的组合:词频 (TF)和逆文档频率(IDF)。TF 的计算方法是将单词(i)的出现次数除以文档(j)中单词的总数 (N)。随着 NLP 的进步,词嵌入技术也在进步。许多 NLP 任务不需要高级嵌入技术,词嵌入技术的选择必须基于实验和特定任务的要求。

3 基于神经网络的恶意登录异常检测方法

3.1 注意力机制原理

注意力机制的兴起使得恶意登录异常检测能力获得了比较高的准确率。同时,小波变换和粒子群优化算法用于优化和改变决策树模型,以提高模型的性能。根据后验概率最大化进行分类判断,得到了较好的结果。在 KDD 数据集中,二进制精度可以显著提高到 99.6%~99.8% ,同时将误报减少到 0.5%。

3.2 长短时记忆网络

长短时记忆网络使用神经网络来检测恶意流量。研究结果发现,较深的网络比浅层神经网络能更准确地检测恶意流量。同时,一些研究人员使用卷积神经网络(Convolutional Neural Networks, CNN)作为特征提取[5]。多CNN融合模型非常适合在NSL-KDD数据集上提供高精度、低复杂度的分类方法。

3.3 基于注意機制的LSTM恶意登录异常检测模型

异常检测已成为多个领域的重要问题。本文提出了一种基于长短期记忆 (Long Short-Term Memory,LSTM)网络检测时间序列异常的新方法。在对正常数据进行训练后,网络用于预测时间序列中感兴趣的步骤。预测值和观测值之间的差异被计算为预测误差。然后,笔者使用分位数函数的核估计计算阈值,该阈值用于确定异常观察。

4 基于主机日志的恶意登录异常检测方法研究

4.1 系统架构

防御的一个重要组成部分是恶意登录异常检测方法,它分析跨越防御边界的网络流量并寻找正在进行恶意活动的证据。当检测到此类活动时,会发出警报,然后由网络管理员进行分析,确定损坏的范围,并进行修复。

恶意登录异常检测方法可以根据不同的标准进行分类:位置(在主机、有线网络或无线网络上)、检测方法(签名匹配、异常检测或状态协议分析)或能力(简单检测或主动攻击预防)。

基于异常的检测通过建立正常行为的统计模型,并检测与它的所有偏差来减少人工。基于异常的检测能够检测新的、以前未知的攻击,前提是它们的统计行为与正常流量的统计行为不同。基于异常的检测方法虽然在概念上很有吸引力,但是通常具有很高的误报率,尚未被广泛采用。

4.2 日志解析器原理

日志分为日志键和日志参数。首先,要把两者分开,把日志解析成结构。解析日志的完整过程如下:

Input: log input

Output: sequence output

(1)Initialization (, , )

(2)Store to

(3)Read by STREAM

(4)Traverse the to find the largest common subsequence

(5)ifthen

(6)GOTO

(7)else

(8)GOTO

(9)end if

(10)Initialize the line of log into the list

(11)Update the line log

(12)Update the template

(13)GOTO

基于异常的恶意登录异常检测方法的误报分为两类:非结构化误报和结构化误报。非结构化误报本质上是由网络流量的随机性引起的随机噪声,而结构化误报是由持续但不同的少数行为引起的。

通过时间平滑异常值来降低非结构化误报率,会导致发生在不同时间的相似异常获得相似的异常分数。该方法使用两种不同的恶意登录异常检测方法进行评估,评估证明在两种情况下,恶意登录异常检测准确性均有所提高。因此,可以将日志执行顺序视为一个多分类问题。日志键的总数是一定的,将其视为K。在训练阶段,输入典型的日志执行序列生成多分类器模型。在测试阶段,输入最近的日志键的历史,输出一个日志键的概率分布。当序列预测结果与实际结果误差较大时,可以认为日志异常。

4.3 处理特征提取

为了开发异常检测模型,包括角色分类模型,本文提取了一些特征。每个日志条目代表一个用户的单个事务。为了分析用户活动,每个用户的日志被合并到一个特定的时期。企业的每一项活动都将代表难以单独分析的无意义数据点。但是,通过观察企业在特定时间段内的几次活动,可以更轻松地执行异常检测任务。将日志数据处理成24小时的块,以便一个实例代表用户在一天内的累积活动。结果,从原始日志中提取了25 151个实例,其中,24 223个被认为是正常的、585个被认为是非恶意异常、343个被标记为恶意。因此,在日志中,恶意数据代表一天内至少有一次恶意日志访问的所有实例,正常数据表示对日志的所有访问都是合法的所有实例,非恶意异常数据表示至少有一次异常日志访问但没有恶意的实例,然后将这些实例转化为恶意访问检测的特征。

4.3.1 日志键编码

由于日志是由程序的代码或进程输出的,代码是恒定的,所以输出日志的类型也是恒定的,数量往往不大。因此,对于log key,直接使用序号进行编码。

4.3.2 日志参数编码

与日志类型不同,参数值不是由模板生成的,而是在系统运行过程中根据实际情况动态生成的,因此往往具有很大的不确定性。参数值的字符串类型会很多种,在很多情况下,直接使用简单的整数置换码会导致线性长度过大。

4.4 异常检测方案

对于恶意访问检测,包括精确度、召回率和F-measures在内的多种测量被确定并用于评估性能。LSTM核心单元函数流程描述如下。

Input: input sequence

Output: prediction

(1)while BatchNotFinished do

(2)InitializeParameters(, , , )

(3)Connect the previous hidden state with the current input

(4)Put the into forget layer, DELETE irrelevant data

(5)Create a candidate layer using cell state

(6)input layer, decide candidate layer data

(7)Calculate the vector using forget, candidate and input layers

(8)Calculate the current output

(9)Update the new hidden state

(10)end while

(11)Output the prediction

LSTM的第一步是從细胞状态中选择要放弃的信息。这个决定是由称为“遗忘门层”的S形网络层做出的。对于细胞状态中的每个数字,输出值介于0和1之间,1表示“完全接受”,0表示“完全忽略”。通常,自动恶意行为检测用作过滤器以缩小数据范围,供进一步手动调查。在这种情况下,高召回率是首选,这样大部分实际的恶意访问都不会被遗漏。但是,如果将使用自动恶意行为检测的结果作为最终决策而不需要进一步的人工调查,则高精度优于高召回率。通过使用高精度的方法,几乎所有被禁止的访问都是恶意的;相反,如果使用高召回率的算法作为最终决策者,可能会禁止一些被误认为是欺诈的合法访问。恶意行为检测主要用于在进一步人工调查之前的决策支持系统。

5 结语

为了解决社交网络服务器的安全问题,本文提出了一种恶意登录检测方法,主要针对窃取凭证的攻击。特征提取部分采用了LSTM神经网络,使得恶意登录异常检测方法能够更好地提取隐藏在日志中的特征信息,以达到更好的检测效果。恶意登录检测方法包括主机表示学习和日志文件特征提取。主机表示学习使用时间神经网络嵌入模型来学习初始主机向量,使主机登录关系转换为主机向量。主向量和其他属性的初始表达式是日志特征提取的输入。特征提取模型使用长短期记忆和额外的注意机制来学习日志输入向量,该机制增强了关于重要属性的信息提取。日志向量随后被输入一个多层感知器,该感知器将它们分类为恶意或良性。受文本分类研究的启发,文章采用长短时记忆来学习属性信息并提取日志文件的含义。与仅仅检测恶意主机和用户不同,每个日志条目都被分析并分类为恶意或非恶意,从而支持细粒度检测。注意机制强调了模型的重要属性,加强了模型的可解释性。此外,由于恶意登录发生在主机之间,因此考虑使用时间图嵌入来学习首选的主机表示并将其集成到日志向量中。实验结果表明,该恶意登录检测方法的误报率仅为0.002%,优于几种最先进的检测模型。

参考文献

[1]李信强.结合时间和语意信息的异常日志检测方法研究[D].成都:电子科技大学,2022.

[2]牛旭.面向软件演化的日志质量增强技术研究[D].长沙:国防科技大学,2019.

[3]周超.面向云服务的日志处理系统关键技术研发[D].西安:西安电子科技大学,2020.

[4]杜海森.基于并发完备日志的过程挖掘[D].青岛:山东科技大学,2019.

[5]吴其.复合型日志模版提取方法的研究与实现[D].北京:北京邮电大学,2020.

(编辑 王雪芬)

猜你喜欢

异常检测
一种基于随机空间树的数据流异常检测算法