基于
异常
终端
入侵
检测
文定
基于异常的终端级入侵检测熊文定,罗凯伦,李睿(东莞理工学院网络空间安全学院,东莞523808)通信作者:李睿,E-mail:摘要:入侵检测技术作为计算机防护的主要技术手段,因具有适应性强、能识别新型攻击的优点而被广泛研究,然而识别率和误报率难以保证是该技术的主要瓶颈.为了提升异常检测技术的识别率并降低误报率,提出了一种终端级入侵检测算法(terminal-levelintrusiondetectionalgorithm,TL-IDA).在数据预处理阶段把终端日志切割成连续的小块命令序列,并引入统计学的常用指标为命令序列构建特征向量,再使用 TL-IDA 算法通过特征向量对用户建模.在此基础上,还提出了一种滑动窗口判别法,用于判断系统是否遭受攻击,从而提升入侵检测算法的性能.实验结果表明,TL-IDA 算法的平均识别率和误报率分别达到了 83%和 15%,优于同类的基于异常技术的终端级入侵检测算法 ADMIT、隐马尔可夫模型法等.关键词:计算机安全;异常技术;动态聚类;终端级入侵检测;滑动窗口判别法引用格式:熊文定,罗凯伦,李睿.基于异常的终端级入侵检测.计算机系统应用,2023,32(2):181189.http:/www.c-s- Terminal-level Intrusion DetectionXIONGWen-Ding,LUOKai-Lun,LIRui(SchoolofCyberspaceSecurity,DongguanUniversityofTechnology,Dongguan523808,China)Abstract:Asthemaintechnicalmeansofcomputerprotection,intrusiondetectiontechnologyhasbeenwidelystudiedduetoitsadvantagesofstrongadaptabilityandabilitytoidentifynewtypesofattacks.However,therecognitionrateandfalsealarmratearedifficulttoguarantee,whichisthemainbottleneckofthistechnology.Toimprovetherecognitionrateandreducethefalsealarmrateofanomalydetectiontechnology,thisstudyproposesaterminal-levelintrusiondetectionalgorithm(TL-IDA).Inthedatapreprocessingstage,theterminallogiscutintocontinuousandsmall-blockcommandsequences,andcommonstatisticalindicatorsareintroducedtoconstructfeaturevectorsforthecommandsequences.ThenTL-IDAisappliedtomodelusersthroughthefeaturevectors.Onthisbasis,aslidingwindowdiscriminationmethodisalsoproposedtojudgewhetherthesystemisunderattack,soastoimprovetheperformanceoftheintrusiondetectionalgorithm.TheexperimentalresultsshowthattheaveragerecognitionrateandfalsealarmrateoftheTL-IDAare83%and15%,respectively,whicharesuperiortothoseofsimilarterminal-levelintrusiondetectionalgorithmsbasedonanomalytechnologysuchasADMITandhiddenMarkovmodel.Key words:computersecurity;anomalytechnology;dynamicclustering;terminal-levelintrusiondetection;slidingwindowdiscriminationmethod1引言计算机系统的安全性广泛受到人们的关注.根据数据显示,2020 年上半年,我国境内感染计算机恶意程序的主机数量约 304 万台,同比增长 25.7%,位于境外计算机系统应用ISSN1003-3254,CODENCSAOBNE-mail:ComputerSystems&Applications,2023,32(2):181189doi:10.15888/ki.csa.008904http:/www.c-s-中国科学院软件研究所版权所有.Tel:+86-10-62661041基金项目:国家重点研发计划(2021YFB3101300);国家自然科学基金面上项目(61972089)收稿时间:2022-06-12;修改时间:2022-07-11;采用时间:2022-07-16;csa 在线出版时间:2022-09-01CNKI 网络首发时间:2022-11-16SoftwareTechniqueAlgorithm软件技术算法181的约 2.5 万个计算机恶意程序控制了我国境内约303 万台主机.因此,从终端层面对计算机的安全性进行检测变得越发重要.入侵检测系统作为防火墙、强认证和用户特权等预防性技术的补充,可以监控网络或其他系统的异常行为,其对于网络和终端的检测能力,已经成为互联网技术安全管理的重要组成部分1.然而,由于网络流量和终端类型日益复杂化、多样化,传统的基于签名技术的入侵检测系统越来越难以胜任入侵检测的任务.因此,基于异常技术的入侵检测系统是目前的重点研究方向.目前入侵检测的相关研究主要集中在网络层面.如 Ahmim 等人2提出的基于决策树和规则概念的入侵检测方法,Lin 等人3提出的一种称为聚类中心和最近邻的检测方法,Cui 等人4提出的一种用于系统日志异常检测的卷积自动编码器方法,还有基于卷积神经网络的字符级入侵检测方法5,均用于网络流量检测.然而,仅依靠网络级的安全检测无法保证终端的安全性,因为授权用户的密码可能会被入侵者破解6,此时网络级的检测将不起作用.某些早期的终端级入侵检测方法的检测对象是系统调用系列.如 Cabrera 等人7提出通过长度固定的系统调用序列来检测终端是否存在异常行为.Lee 等人8把该问题当作分类问题,采用机器学习分类器把系统调用序列区分为正常和异常 2 种类别.此外,宋海涛等人9提出基于模式挖掘的异常识别算法.然而,系统调用级别的颗粒度太细,不仅导致过大的系统开销,检测准确性也难以保证.此外,一些入侵检测方法把终端的操作日志作为检测对象.在这方面作出重要贡献的是Ryan 等人10,他们首先提出用人工神经网络在终端提取用户特征的方法.此外,DuMouchel11创建了连续的基于命令序列的概率转移矩阵作为用户模型.最后,Schonlau 等人12测试了建立用户模型的各种统计方法.与本文密切相关的方法是由 Lane 和 Brodley13,14提出的,他们使用基于实例学习和隐马尔可夫模型技术,把用户的行为划分为若干个聚簇.由于基于实例学习技术在归类用户的行为类别时只参考部分相近的实例,从而限制了问题的复杂性.然而,该方法的前提条件是异常实例占比很小,并且该方法存在需要为实例设置标签、运行时开销较大的缺陷.在文献 13,14 的基础上,Sequeira 等人15以命令相似度为指标,使用动态聚类算法对数据集进行分类来建立用户模型.他们的方法放宽了数据预处理的限制,然而,他们没有考虑命令表达的多样性问题.据作者所知,现有的终端级入侵检测方法大多需要为训练数据预先设置标签,并且需要大量的训练数据集和较长的训练时间.此外,这些方法均没有解释聚簇的含义.本文研究的是基于异常技术的终端级入侵检测问题,提出了一种终端级入侵检测算法 TL-IDA,并提出了对应的滑动窗口判别法.TL-IDA 算法依靠终端的操作日志对用户进行建模,模型接收终端输入并采用滑动窗口判别法判断是否为异常操作.为了实现该算法,在数据预处理阶段构建特征向量时引入了统计学的常用指标,并设计了符合本问题的动态聚类算法.最后,本文总结了操作日志存在的 4 种行为类别.在实验部分,采用 K 折交叉验证法和控制变量法对数据集进行了测试,实验结果表明 TL-IDA 算法比类似的算法更好.本文的主要贡献有:(1)提出了终端级入侵检测算法 TL-IDA.(2)提出了滑动窗口判别法用于识别异常行为.(3)总结了操作日志的行为类别.2TL-IDA 算法本文提出的 TL-IDA 算法包括数据预处理和模型训练 2 个部分.第 3 部分使用训练好的模型结合滑动窗口判别法对输入进行数据分类.图 1 是入侵检测方法的处理流程.数据集过滤训练集分类模型分类结果滑动窗口判别法训练集2.模型训练1.数据预处理TL-IDA 算法3.数据分类数据处理归一化处理转化为向量图 1入侵检测方法的处理流程 2.1 数据预处理操作日志由大量历史命令组成,需要对日志进行预处理后才能用于建模.Sequeira 等人15认为,日志中的单个命令不能保留用户的使用习惯,但连续的小块命令序列可以,并且,把日志转化成连续的小块命令序列集还可以生成大量样本用于模型的训练和测试,因计 算 机 系 统 应 用http:/www.c-s-2023年第32卷第2期182软件技术算法SoftwareTechniqueAlgorithm此,本文借鉴了该思想.此外,为了尽可能去除噪音干扰,在分割日志的命令序列前,还需要进行数据清理,把不存在的命令删除.表 1 展示了长度为 4 的命令序列,设定子命令序列长度为 2、步长为 1 时的切割结果.表 1原长度为 4 的序列,设子序列长度为 2,步长为 1 时的切割结果序列名称切割结果原命令序列S=t0=lsl,t1=vi,t2=psef,t3=viS0=t0=lsl,t1=vi子命令序列S1=t1=vi,t2=psefS2=t2=psef,t3=vi得到子命令序列集后,需要进行数值化处理,把子命令序列逐个转化为特征向量,为此,本文引入了统计学的常用指标来保留用户特征.首先,定义两个子命令序列的相似度为这两个序列的最长公共子序列(longestcommonsubsequence,LCS).假设命令序列 S0=t0=lsl,t1=vi,t2=psef,t3=vi,S1=t0=vi,t1=psef,t2=vi,t3=touch.根据定义,S0和 S1的 LCS 为vi,psef,vi,相似度为 3.然后,对操作日志统计以下数据:(1)所有命令的出现次数.(2)单个命令的出现次数.(3)单个命令的所有可选参数的出现次数.(4)单个命令的单个可选参数的出现次数.(5)用户的特征序列.对于(5),先统计每个子命令序列与其他的子命令序列的累计相似度,再以累计相似度最高的前 20%子命令序列作为用户的特征序列.最后,定义特征:(1)x1:命令的平均出现频率.(2)x2:可选参数的平均出现频率.(3)x3:与特征序列的最大相似度除以序列长度.则每个子命令序列的特征向量为(x1,x2,x3),在这个特征向量中,x1和 x2保留了命令的频率特征,x3保留了命令的顺序特征.2.2 TL-IDA 算法设计完成数据预处理后,需要设计算法对特征向量进行聚类.显然,传统的 K-means 算法不适合本问题,原因在于无法预测 K 的值(即合理聚簇个数).Ahamed 等人16提出的动态聚类算法解除了必须提前设置 K 值的限制,但对于本问题表现不够理想.为此,本文设计了 TL-IDA 算法,它主要由 3 个函数组成.在分析这3 个函