云基础设施的恶意软件检测方法
2020-12-10张小莉程光
张小莉 程光
摘 要:云基础设施的恶意软件检测是必要的。为了避免被恶意软件发现,针对云基础设施的特点,设计了一个外部的恶意软件检测器。首先,利用一个具有特殊权限且位于目標之外的虚拟机收集可疑进程的系统调用;然后,将收集到的系统调用转换为进程的行为图;最后,利用行为图间的相似性来判断可疑进程是否为恶意软件。实验结果表明,平均检测率为89%,误报率低于5%,检测器对客户虚拟机的性能影响不大,且能够抵抗添加率低于30%的系统调用攻击。
关键词:恶意软件;行为图;云基础设施
中图分类号: TP309 文献标识码:A
1 引言
恶意软件不仅破坏传统的计算环境,而且对云计算构成了极大威胁。在云安全联盟识别的七种顶级威胁中就有五种与恶意软件直接或间接相关[1,2]。多年来,科技工作者在恶意软件检测方面开展了许多研究工作,也取得了丰富的研究成果。然而,随着检测技术的提升,恶意软件自身也在不断发展,这给恶意软件检测提出了许多挑战。特别是近年来出现的云计算在给人类带来便利的同时,也给恶意软件提供了更加广阔的生存空间。为了更好地发现云基础设施环境中的恶意软件,本文针对云基础设施环境的特点,设计了一种新的恶意软件检测器。
如何描述恶意软件是检测恶意软件的前提,本文使用恶意软件的系统调用来刻画恶意软件的行为进而实现恶意软件的描述。系统调用信息可进一步划分为两大类:空间信息和时间信息。本文使用系统调用的时间信息,待识别进程的行为与已知恶意软件行为间的相似性被用于识别恶意软件,进程行为使用一个带权有向图描述,这个有向图产生于系统调用的轨迹。
云基础设施中资源的丰富性引起了黑客的极大关注,恶意软件是黑客的主要攻击工具,研究云基础设施中的恶意软件检测意义重大。与传统计算环境下的恶意软件检测相比,云计算环境下的恶意软件检测不仅关注识别率,更关注恶意软件检测器的可伸缩性,当然透明性也是比较重要的。研究的目标就是要在云基础设施环境中设计一个可伸缩性好、识别率高、且难以被恶意软件发现的恶意软件检测器。
2 相关工作
借助逆向工程或受控环境下的进程分析技术可提取恶意软件的行为特征。常见的一些机器学习算法,比如关联规则、支持向量机、决策树、随机森林、朴素贝叶斯和聚类算法,正是利用这些静态或动态特征来识别恶意软件。
Schultz等人率先将机器学习算法应用于恶意软件的识别研究,在他们的研究中,使用PE、特征字符串和字节顺序等多种特征描述恶意软件[3]。Mahdi等人也提出一种云计算环境下运用混合机器学习方法的新型恶意软件检测与识别系统,包括数据预处理及识别模块,并采用UNSW-NB15数据集进行模型性能评估[4]。Patil等人提出一种超级监督者级别的分布式网络安全(HLDNS)框架,将其部署在云计算的每个物理服务器上,该框架结合了特征选择和机器学习技术,监视来自网络的相关流量,进而分析恶意软件流量特征[5]。Balram Neil等人选择一组关键PE头特征进行分析,开发特征提取程序提取APT1数据集中的重要特征,并使用机器学习分类器方法实现了6个恶意软件检测器[6]。此外,An Yujie等人也曾使用关键指令的顺序来识别恶意软件,在这篇文献中,提出一种有效的序列模式挖掘算法,通过分析结构序列发现具有识别性的恶意软件[7]。
现在,越来越多的研究人员为了克服静态特征的局限性,倾向于使用动态特征来描述恶意软件。Carlin等人通过动态运行时的分析方法获得操作码(Opcode),运用机器学习的方法来检测恶意软件[8]。Acarman等人综合利用Windows系统调用轨迹中的API调用序列及动态特征来检测恶意软件[9]。Park Y.等人基于系统调用产生的图提出了一种新的恶意软件分类方法[10]。在其他研究中,Islam R等人综合使用静态和动态特征设计了第一个分类算法[11]。总的来讲,以上这些恶意软件识别算法的计算复杂度较高。
云计算环境下恶意软件检测的研究工作相对较少,这主要是因为云环境下恶意软件检测面临着诸多挑战,Ali Mirza、Preeti等人提出一种云环境下恶意软件检测框架[12,13]。虚拟化是云基础设施中资源的主要组织方式,本研究针对云基础设施,并综合利用图匹配技术、可信计算技术以及虚拟机自省技术设计了一种可伸缩性好、识别率高,且透明性好的恶意软件检测器。
可信计算技术[14]可对信息提供完整性保护,研究中主要利用其来保证系统调用序列的完整性。虚拟机自省技术允许从外部查看一台虚拟机的状态,本研究中主要用于设计诊断虚拟机FVM,FVM被用于监控目标机VM的状态。
3 恶意软件检测模型
虚拟机自省技术主要用于保证恶意软件检测器的透明性[15],可信计算技术主要用于确保能够收集到真实的系统调用[16],图匹配技术被用于识别恶意软件。如图1所示,恶意软件检测器由三种组件构成,即代理Agent、诊断虚拟机FVM和TPM模块。代理管理FVM的生命周期并且判定可疑恶意软件是否确为恶意。FVM负责收集可疑恶意软件的系统调用。为了让FVM给代理程序提供真实的系统调用,TPM模块被引入恶意软件检测器。此外,通过给每一个目标机VM配置FVM的方式,有效地解决了恶意软件检测器的可伸缩性问题。
3.1 恶意软件检测协议
如表1和表2所示,恶意软件检测协议被分成了四个阶段:初始化、挑战、验证和决策。
初始阶段:代理Agent首先给目标虚拟机创建一个诊断虚拟机FVM。然后,它调用TPM模块的扩展命令TPM_Extend将诊断虚拟机FVM的哈希值扩展到寄存器PCR-20,同时,将诊断虚拟机FVM的哈希值添加到存储度量日志。
挑战阶段:代理Agent首先发送恶意软件检测请求到诊断虚拟机FVM。请求当中包括随机数nonce、PCR索引PCR-20和可疑恶意软件的名称。当诊断虚拟机FVM收到请求时,诊断虚拟机FVM收集可疑恶意软件的系统调用。同时,诊断虚拟机FVM将每一个系统调用的哈希值扩展到PCR-20,并且添加对应的哈希值到存储度量日志。最后,诊断虚拟机FVM生成响应并发送给代理Agent。
验证阶段:代理Agent首先检查响应的真实性和诊断虚拟机FVM及收到的系统调用的完整性。通过所有检查后,代理Agent将系统调用转换成行为图,并通过与已知行为图的比较做出决策。
3.2 模型生成
首先,定义一个带权的有向图用于表示恶意软件的行为。该图对应一个恶意软件的系统调用图,用一个三元组表示,其中表示节点的集合,每一个节点表示恶意软件执行过程中的一个系统调用。表示边的集合,每一个边意味着系统调用和之间存在顺序依赖。是一个给边赋权的标签函数,表示赋予边大于0的权值。
依据拦截的系统调用可以构造恶意软件的行为图。具体来讲,当恶意软件运行时首先获得一个系统调用序列。然后,计算每一个边的权值,边的权值等于。表示恶意软件运行时从系统调用到系统调用。表示系统调用出现的次数。最后,据此来构造恶意软件的行为图。
3.3 恶意软件检测
本文将恶意软件的识别问题泛化为一个图的匹配问题。首先生成一个可疑恶意软件的行为图,将生成的行为图与数据库中已知恶意软件的行为图进行比较。可疑恶意软件被判定为恶意软件的条件是当且仅当等式(1)被满足。在等式(1)中,关键路径由权值大于预定义阈值的边组成。在等式(2)中,符号表示两个行为图之间的距离函数。表示节点的数量,表示图和的最大公共子图。
(1)
(2)
总之,当且仅当两个软件和的行为图的关键路径被匹配,且两个软件行为图之间的距离小于预定义的阈值时判定可疑恶意软件相似于恶意软件。
4 评估
模型性能的评估需要有大量数据进行支撑。为了评估检测器,共收集了六个流行的恶意软件家族,它们分别是Allaple (Exploit-based Worm)、Sober (Email-Worm)、Bagle、Mytob、Netsky和Mydoom (Mass-mailing worm)[17],其中每個家族包括100个不同的恶意软件。
4.1 识别率的评估
评估时,首先从每一个家族中挑选了100个恶意软件,同时配备了100个正常软件作为数据集。然后,借助Ether[18]程序收集了608个系统调用轨迹,其中510个恶意软件,98个正常软件。
为评估识别能力,首先从每个家族中选择了80个恶意软件,80个正常软件。然后,根据对应的系统调用轨迹生成了各自的行为图。最后,依据这些行为图做了三个实验。
实验一:首先把480个恶意软件的行为图分成两个组,每一个组中包含240个恶意软件样本。一个组作为测试组,另一个组作为参照组。(实验中,没有检查行为图中的关键路径。)换句话说,就是仅检查条件是否符合,来判断两个图是否相似。如图2所示,展示了所提恶意软件检测器针对各恶意软件家族的识别率,平均识别率为89%,高于文献[19]的87%的识别率。
实验二:为了评估关键路径对识别率的作用,在实验1的基础上增加了关键路径比较。实验中,关键路径的权值是0.7。如图3所示,增加关键路径能够提高恶意软件的识别率。
实验三:为了评估误报率,分别在两个恶意软件组中增加了40个正常软件的行为图。如表3所示,实验中,关键路径的权值仍然选取0.7,并且阈值 选取0.3。如表3所示,展示误报率低于5%,远低于文献[20]的误报率13.10%。
4.2 性能评估
为了评估诊断虚拟机FVM对客户虚拟机的影响,实验中选择了一个压缩工具7-zip,测试环境是IBM System x3650 M4 2.4GHz Intel Xeon处理器,英飞凌TPM模块1.2,主机的操作系统是Windows 2008 Server,客户机的操作系统是Windows XP Hypvisor是Xen 3.1。为了测试CPU、IO和混合情况下的负载,分别做了三个实验。如表4所示,诊断虚拟机FVM对客户机的虚拟机影响不大。
4.3 健壮性评估
为了评估健壮性,从40个正常软件样本中随机选择了一些正常软件的系统调用轨迹。然后,将这些轨迹被增加到每个恶意软件的轨迹中。最后,重复了实验二。结果表明,当增加率低于30%时,对恶意软件的识别率影响不大。此外,针对系统调用的篡改攻击也能被检测器成功感知。
5 结束语
本文设计了一个针对云基础实施的恶意软件检测器。设计过程中,把恶意软件抽象为一个图的匹配问题,并利用虚拟机内省技术保证了检测器的透明性,利用可信计算技术保证了诊断虚拟机能够收集到真实的系统调用序列,同时通过给每一个目标机配备诊断虚拟机的方式保证了恶意软件检测器的可伸缩性。
从不同的角度评估了这个恶意软件检测器。首先,针对恶意软件的识别能力做了实验。结果表明,针对所有恶意软件家族的恶意软件识别率大于80%,平均识别率是89%。此外,误报率低于5%。其次,针对诊断虚拟机FVM对客户机的影响做了实验。结果表明,所产生的负载是可接受的。最后,针对抵抗系统调用加性攻击做了实验。结果表明,在增加率低于30%时能够抵抗针对系统调用的加性攻击。同时,检测器也能够发现针对系统调用篡改的攻击。
基金项目:
国家重点研发计划“宽带通信和新型网络”重点专项自主可控高性能路由器及关键技术项目(项目编号:2018YFB1800600)。
参考文献
[1] Cloud Security Alliance.Top Threats to Cloud Computing (V1.0)[EB/OL].https://cloudsecurityalliance.org/topthreats/csathreats, 2020-6-25.
[2] Watson M R, Shirazi N U H, Marnerides A K, et al. Malware Detection in Cloud Computing Infrastructures[J]. IEEE Transactions on Dependable & Secure Computing. 2016.13(2):192-205.
[3] Schultz M G, Eskin E, Zadok E, et al. Data mining methods for detection of new malicious executables[A].Proceedings of the IEEE Computer Society Symposium on Research in Security and Privacy[C]. Oakland:Elsevier Inc,2001.38-49.
[4] Mahdi Rabbania,?, Yong Li Wanga,??, Reza Khoshkanginib, Hamed Jelodara,Ruxin Zhaoa, Peng Hua. A hybrid machine learning approach for malicious behaviour detection andrecognition in cloud computing[J]. Journal of Network and Computer Applications.2020.151:1-13.
[5] Patil, Rajendra, Dudeja, Harsha, Modi, Chirag. Designing an e?cient security framework for detecting intrusions in virtual network of cloud computing[J]. Comput. Secur.2019. 85:402–422.
[6] Balram Neil, Hsieh George,McFall Christian.Static Malware Analysis using Machine Learning Algorithms on APT1 Dataset with String and PE Header Features[A]. CSCI 2019[C].Las Vegas: Elsevie Inc,2019.90-95.
[7] an Yujie ,Ye,Yanfang, Chen, Lifei. Malicious sequential pattern mining for automatic malware detection[J].Expert Systems with Applications. 2016.52:16-25.
[8] D. Carlin, P. OKane, S. Sezer. A cost analysis of machine learning using dynamic runtime opcodes for malware detection[J].Computers & Security. 2019.85:138-155.
[9] Acarman, Tankut. Malware classification based on API calls and behaviour analysis[J].IET Information Security. 2018. 12: 2.
[10] Park Y, Reeves D S, Stamp M. Deriving common malware behavior through graph clustering[J]. Computers & Security. 2013. 39: 419-430.
[11] Islam R, Tian R, Batten L M, et al. Classification of malware based on integrated static and dynamic features[J]. Journal of Network and Computer Applications. 2013. 36(2): 646-656.
[12] Ali Mirza, Qublai K, et al. A Cloud-Based Energy Ef?cient Hosting Model for Malware Detection Framework [A].2018 IEEE Global Communications Conference, GLOBECOM 2018-Proceedings[C].Abu Dhabi:Elsevier Inc,2018.
[13] Preeti Mishra,IshitaVerma,SaurabhGupta. KVMInspector: KVM Based introspection approach to detect malware in cloud environment[J]. Journal of Information Security and Applications.2020.51:1-12.
[14] Priyadarsi Nanda, Xiangjian He, Laurence T.Yang. Security,Trust and Privacy in Cyber(STPCyber):Future trends and challenges[J].Future Generation computer System .2020(109):446-449.
[15] 刘哲元,徐隽,汪兴,等.一种基于虚拟机自省的安全检测框架[J].计算机工程.2016.42(3):182-187.
[16] 马亮,钱雪忠.基于可信计算的Web服務调用关键路径研究[J].计算机工程与应用. 2016. 52(3):230-235.
[17] 郭春生.基于动态分析的勒索软件检测方法研究[D].南京:东南大学,2019.
[18] A. Dinaburg, P. Royal, M. I. Sharif, and W. Lee. Ether:malware analysis via hardware virtualization extensions[A]. 15th ACM Conference on Computer and Communications Security[C]. Alexandria:ACM,2008.51-62.
[19] Islam R, Tian R, Batten L M, et al. Classification of malware based on integrated static and dynamic features[J]. Journal of Network and Computer Applications. 2013. 36(2): 646-656.
[20] Nikolopoulos S D, Polenakis I. A graph-based model for malicious code detection exploiting dependencies of system-call groups[A]. Computer Systems and Technologies -16th International Conference[C]. Dublin: Elsevie Inc,2015.228-235.
作者简介:
张小莉(1982-),女,汉族,山西吕梁人,太原理工大学,硕士,山西铁道职业技术学院,副教授;主要研究方向和关注领域:计算机网络、计算机网络安全。
程光(1973-),男,汉族,东南大学,博士,东南大学网络空间安全学院,教授;主要研究方向和关注领域:SDN网络测量与管理、网络流量测量与大数据分析、僵尸网络、APT攻击检测。