大数据背景下恶意软件分析与检测算法的论述*
2021-12-24张矿伟张少杰
张矿伟,周 杰,张少杰
(1.周口职业技术学院信息工程学院,河南 周口 46600;2.周口技师学院机械工程系,河南 周口 466000)
0 引言
一方面云平台计算机技术能够给现代企业业务的储存和处理提供极大的便利,但是另一方面计算机科学技术的发展同样是一把双刃剑,黑客技术的不断成熟当前已经严重威胁到云平台的正常发展,云平台大数据系统因为本身的特点导致在面对外部攻击的时候非常脆弱[1]。当前虽然已经研发了相应的风险检测技术,但是随着数据类型的不断发展,已经无法满足未来的工作需要。本文提出一种基于大数据背景恶意软件动态分析与安全检测方法,有效提高了分析和检测的准确性和有效性。
1 大数据平台中的安全问题
随着网络技术的不断发展,各种云平台存储和传输技术逐渐涌入市场,但是此时黑客的入侵意识以及技术方法也明显的增强[2]。云平台技术被攻击和破坏的现象屡见不鲜,该平台之所以比较容易受到攻击是因为内部信息数据众多,并且这些数据大都是以云缓存的技术存在云盘空间中,一些恶意的病毒或者代码总是能够在其中找到入侵云节点的空隙,从而窃取其中的数据[3]。这种攻击比较容易实现,通过注入额外代码然后让云节点中的信息溢出,从而实现信息盗取的目的。
黑客在入侵系统的时候通常需要进行如下两步工作:首先针对通讯系统获取代码,然后制造适当的执行序列触发特定的信息[4]。因为当前的计算机系统发展还不是很完善,无法对于任意一个云端访问者进行检测并且无法在指定的时间中对于访问平台的代码进行鉴定,因此一旦出现代码溢出的情况,也就意味着风险代码的几率大大增加。为了能够保证计算机系统的高效运行,需要采取必要的安全防护手段对于重点环节的云请求进行计算和预防[5,6]。
2 整体设计思路
本文围绕上述研究内容和目标,研究工作将在三个层次展开:基于云计算的恶意软件分析平台、检测方法研究、原型系统开发与验证,总体设计思路如图1所示。
图1 总体设计思路
第一层次:基于云计算的恶意软件分析平台,该层次将云计算平台和动态分析工具集成,提出高效、健壮、敏捷、可扩展的动态分析平台,为后续检测方法和原型系统的研究提供高效的基础设施。
第二层次:检测方法研究,这一层次主要研究变长API调用系列的检测方法、基于API序列语义信息的恶意软件检测方法、基于多视集成学习的动态检测方法。
第三层次:原型系统实现,这一层次按照可部署使用的需求,实现以上研究提出的检测方法,在真实环境下验证提出的检测方法,并进行性能调优和改进。
3 恶意软件动态分析方法
当前动态分析平台普遍采用单机环境,国内外相关动态检测方法大部分是手动的分析可执行样本,分析效率较差,而待分析的可疑样本数量特别庞大,当前的动态分析平台已成为制约动态检测方法的瓶颈[7]。传统的静态方法能够提供更安全的检测环境和更快的检测速度,但是静态方法不能够直接获得真实的软件执行过程和行为,所获得软件信息的真实性和完整性方面存在不足。而通过动态方法分析恶意软件运行时的行为,可以确定软件的功能和性质。基于程序行为的动态检测方法是目前反病毒技术的有效新途径。
基于云计算的恶意软件分析平台,将云计算平台和动态分析工具集成,保障动态分析平台的高效、健壮、敏捷、可扩展,同时能应对最新恶意软件的抗分析技术。该分析平台可自动化的监控样本的API调用序列、系统操作行为、网络数据包等,兼容大部分的虚拟机和操作系统,同时可进行内存取证分析。恶意软件动态分析平台架构如图2所示。
图2 恶意软件动态分析平台架构图
4 大数据安全检测算法分析
4.1 变长API调用系列的检测方法
首先收集大量具有代表性的最新恶意软件和良性软件组成样本集,使用基于云计算的动态分析平台批量分析所有样本,监控每个样本动态运行时的API调用序列,得到语料库。已有基于API调用系列的方法普遍将API序列划分为固定长度的部分重叠短序列,然后用文本分类的方法实现未知恶意软件检测,但很难确定较合理的短序列长度,即使确定了一个较优的长度值,也丢失了其他长度的大量语义信息,且可能将具有语义信息的API序列分成很多子序列。API调用系列和中文文本很相似,没有明显的词分割,需要借助字典或统计学习的方法进行分词。由于API调用短序列没有现成的词典,本课题拟采用自然语言处理相似的方法,基于语料库应用统计学习的方法将API调用系列分割成不同长度的,具有较强语义信息的短序列,然后用TF.IDF(Term Frequency-Inverse Document Frequency)表示每个短序列的权重,用机器学习分类算法构建分类模型,实现未知恶意软件的检测。该方法实现了不同长度特征间的互补,尽可能的保留了更多的语义信息。
4.2 API序列语义信息的动态检测方法
前面API调用的参数和返回值可能是后面API调用的参数,通过API调用间的数据流可提取具有语义信息的API子序列。通过数据流分析提取的API子序列,具备一定的功能,能更好的表示一个可执行文件的意图和特征。基于此,我们提出了基于API序列语义模式的动态检测方法。首先,通过动态分析获得大量恶意软件样本和良性软件样本的API序列,基于API间数据流提取所有样本中可能存在的具有语义的子序列;然后提取训练集样本中具有语义的子序列作为特征,使用TF.IDF计算得到每个特征的权值,使用机器学习分类算法训练得到检测模型;对于待检测样本,提取与训练集相同的特征,使用检测模型对待检测样本分类,得到检测结果。
4.3 多视集成学习的动态检测方法
通过动态分析平台可以提取软件的API序列、系统操作行为、网络数据包等特征,某一种类型的特征都从不同的视角刻画了可执行文件的一些性质,但都存在着一定的局限性,不能充分、综合、整体的表示可执行文件。恶意软件可能改变其某一特征伪装成良性软件,但往往很难同时操纵多个抽象层次的特征。使用多视集成学习的恶意软件检测方法,通过融合多个抽象层次动态行为特征,克服单个抽象层次特征检测方法的局限性,实现了各种类型特征的互补,有效改进了单特征方法的灵敏度与适应度,从而具备较强的泛化能力,同时可明显提高检测方法的准确率和鲁棒性。
5 检测结果分析
从上面的信息资料中可以发现,本文提出的算法具有明显的技术优势。之所以能够实现这样的效果是因为本算法利用大数据背景下恶意软件分析与安全检测算法对序列进行检测,和简单序列以及距离检测相比,大大缩短样本检测的时间。和传统的数据挖掘技术相比,能够提高数据的检测精确度,同时该实验采取了延时机制,即在第一次检验过程中遗漏的序列能够在下一个循环的检测工作中被发现。总体而言,在病毒繁衍机制的影响下,来自于不同类型的攻击源被隔离,并且在充分的实验时间和环境下,之前没有被检测出来的序列信息被有效检测出来[8]。
6 结论
云平台和大数据的普及应用使得大量的信息数据集中在一起,这些数据的质量高低不一,需要有足够的时间和技术进行安全检测分析。本文开展的4项研究:1)针对当前分析工具的瓶颈,研究基于云计算的动态分析平台;2)引入中文分词的方法将API调用序列划分为有较强语义信息的变长短序列,提出变长API调用序列的检测方法;3)通过API调用间的数据流分析,提取具有语义信息的API子序列作为特征,提出基于API序列语义信息的检测方法;4)通过融合软件多个抽象层次的特征,提出基于多视集成学习的动态检测方法。通过对实验结果的分析,本方案实现对恶意软件动态分析与安全检测。探索启发式的恶意软件分析及检测新方法、新思路,为研发更加高效的反病毒软件提供理论指导和工程参考。