人工智能安全|AI安全应用|基于图像分类的恶意代码同源分析
01 背景
恶意代码(Malicious/Unwanted Code)泛指所有会对网络或系统产生威胁或潜在威胁的计算机代码,造成目标系统信息泄露、资源滥用、破坏系统完整性及可用性、违背目标系统安全策略等危害。
近年来,虽然恶意代码爆发式增长,但安全研究人员发现,许多新型恶意代码都是已有恶意代码的变种,这些变种很多是黑客利用变形、加壳、多态、代码扰乱等技术制造的,可以躲避黑白名单、特征码匹配等传统的检测技术[1][10]。实际上,这些变种现象反映了恶意代码之间的同源关系。例如,2017年出现的WannaCry实际上与已知病毒Wcy具有同源关系,但该病毒绕过了各类检测工具,造成了严重的经济损失。因此,发现同源关系逐渐成为网络安全领域关注焦点。
恶意代码同源分析(Homology Analysis)是指通过恶意代码内外部特性以及生成和传播的规律,分析恶意代码之间衍生的关联性。同源关系有很多种,包括:家族同源、开发者同源、类型同源或者攻击源同源等。本文主要关注恶意代码类型同源分析问题。基于恶意代码类型同源分析,可以帮助检测、预警恶意代码,制定应急响应方案以及预测事件发展趋势。
本文首先介绍了相关基础知识,简单回顾了同源分析分析技术现状,然后介绍了基于图像分类的同源分析技术方案设计,最后通过具体实验验证了基于图像分类的同源分析技术的有效性。
02 基础知识
2.1 类型同源
恶意代码类型多种多样,包括计算机病毒、蠕虫、木马程序、后门程序、逻辑炸弹等。每一类恶意代码往往会在以下三个方面存在相似性。
(1)关键代码段
指为了实现某一恶意功能,同源恶意代码在关键代码片段(如DLL注入、RPC服务)具有相似性,这些相似代码片段也被称为基因码。
(2)系统函数调用
恶意行为的操作通常依赖对操作系统函数的调用,同源恶意代码调用的函数名称、频次、顺序等可能存在类似。
(3)功能行为
每一类恶意代码都有针对性的破坏行为,如勒索软件会读写用户数据、远程控制木马会查看屏幕或摄像头,功能行为的相似性反映在文件、进程、网络及注册表等方面。
2.2 图像化
图像化即恶意代码字节流内容的可视化展示,而流内容包含了一个组装恶意代码完整的信息,例如PE格式恶意代码的头部、数据节、代码节、尾部等。
黑客经常使用开源的恶意代码片段,经过进一步开发、包装之后,形成恶意代码变种;相同功能或者同一家族的恶意代码,也会共享代码片段。因此,共享片段表现为相似的的流内容,进而映射为图像中相似的纹理。
图1,2展示某些流氓软件(Application)两个家族InstallMonster和Hacktool图像化结果。可以看到InstallMonster和Hacktool类的示例样本即便来自不同的家族,纹理上却具有明显相似性。
图1. Application-InstallMonster
图2. Application-Hacktool
3 现状分析
与恶意代码检测技术相同,同源分析所采用的特征也分为静态特征和动态特征。静态特征包括:恶意代码的组装结构特征、API序列特征、代码语义、二进制内容特征等[1]。动态特征通常为控制流程图、读取及修改的相关资源对象特征、API动态调用。获取特征之后,可以采用关联分析、机器学习分类以及图分析等方法完成溯源。
关联分析即计算恶意代码特征的相似度,例如Jaccard系数[14,15]、海明距离、余弦距离等,根据相似度判断恶意代码之间是否存在关联。基于相似度分析,以恶意代码为节点、相似度为边,可以构建恶意代码关系网络,主要用于族群可视化,进一步溯源、挖掘大量离散恶意代码之间的关联[18]。SVM、XGBoost[14]、DBScan[10,15]、模糊哈希[14]等常见的分类算法,都在恶意代码同源分析中有相应的研究与应用。
图分析作用于恶意代码的控制流程图,提取出入度(Out/In degree)、中间中心性(Betweenness centrality)、聚集系数(Clustering coefficient)等图结构度量[16],通过计算这些度量的相似性,判断恶意代码是否存在关联。利用图分析还可以在族群中挖掘相似子图形成族群基因,通过基因对比判断恶意代码是否同源[12]。赵等人运用了图卷积网络(Graph Convolutional Network,GCN)技术,对恶意代码的API调用图进行分类,从而分析同源性[17]。
2011年,Nataraj等人提出将恶意代码的流内容转换成灰度图像,然后提取GIST、局部空间平均值等特征,结合KNN算法对恶意代码进行分类[3]。随后,出现了一些研究延续该思路,比如将字节熵[4]、API调用[5]、opcode哈希[7]等转换为图像,卷积神经网络(Conventional Neural Network,CNN)[7]、长短期记忆(Long-short Term Memory,LSTM)网络[8,9]等深度学习方法相继被应用于恶意代码同源分析。
采用图像分类技术的同源分析方法,不要求分析人员具备逆向工程专业知识,而且无需人工提取特征,因此应用起来比较灵活。得益于计算机视觉领域的快速发展,这种方法也能够取得较高的准确性。以下重点介绍该类技术。
4 方案设计
基于图像分类的同源分析方案中,典型的实现技术就是基于CNN的恶意代码同源分析技术方案,主要包括以下部分构成:
(1)数据集构建:确定恶意代码的类别划分方式,收集样本并标注类别,作为训练数据。本文以类型作为类别划分方式。
(2)图像化处理:将训练样本转化为图像,作为CNN网络的输入。
(3)CNN网络构建:构建出CNN神经网络结构(如VGGNet、GoogleNet、ResNet等)。
(4)模型训练:将训练数据输入CNN网络进行训练,得到分类模型。
(5)模型应用:将待测样本图像化,输入分类模型,根据输出类别判定所属类别。应用流程如图3所示:
图3. 基于CNN图像分类的恶意代码同源分析流程
5 实验分析
本实验中收集了7种类型的恶意代码样本,具体见表1。
表1. 实验数据集
数据集按照比例4:1划分为训练集和测试集。基于构建CNN网络结构,经过200次迭代训练,模型损失收敛至0.0088,训练准确率达到0.9957。图4展示模型的训练过程。
图4. 训练过程
表2列出了模型在测试集上的各项测试指标,总体准确率为0.93。
图5为测试的混淆矩阵。在实验的7个类别中,Trojan作为较复杂的一种恶意代码类型,测试准确性最低。
表2. 测试性能
图5. 混淆矩阵
6 总结
恶意代码同源分析,一方面可追踪定位攻击来源或攻击者,遏制APT攻击,对黑客产生震慑打击作用;另一方面,恶意软件检测技术存在疏漏,同源分析可协助检测、防范恶意软件。本文通过分析及验证,认为基于图像分类的恶意代码同源分析具备可行性。但恶意代码的类型之间错综复杂,没有明确的划分界限,也是限制分类准确性的原因之一。家族显然是比类型更加精确的一种同源划分方式。然而,有些家族样本数量庞大,有些家族仅有少量可追溯的样本,若以家族划分类别,则需要解决样本不平衡问题。通过初步判断,如果增加类别划分的细粒度,分类准确率会得到进一步提升,当然这些问题有待进一步探索。
参考文献
[1]褚乾峰, 朱信宇, 刘功申. 恶意代码同源判定技术综述[J]. 通信技术, 2017, 50(007):1484-1492.
[2]Goldberg L, Goldberg P, Phillips C, et al. Constructing Computer Virus Phylogenies[J]. Journal of
Algorithms,1998,26(01):188-208.
[3]Nataraj L, Karthikeyan S, Jacob G, et al. Malware images: visualization and automatic classification[C]. IEEE Symposium on Visualization for Cyber Security, Pittsburg, PA, USA, ACM. 2011.
[4]Han K S , Lim J H , Kang B , et al. Malware analysis using visualized images and entropy graphs[J]. International Journal of Information Security, 2015, 14(1):1-14.
[5]Kolosnjaji B , Zarras A , Webster G , et al. Deep Learning for Classification of Malware System Call Sequences[C]// Australasian Joint Conference on Artificial Intelligence. Springer International Publishing, 2016.
[6]Ni S , Qian Q , Zhang R . Malware identification using visualization images and deep learning[J]. Computers & Security, 2018, 77(AUG.):871-885.
[7]Raff E , Barker J , Sylvester J , et al. Malware Detection by Eating a Whole EXE. 2017.
[8]Quan, Boydell, Oisin, et al. Deep learning at the shallow end: Malware classification for non-domain experts[J]. Digital investigation: The internatnional journal of digital forensics & incident response, 2018.
[9]Venkatraman S , Alazab M , Vinayakumar R . A hybrid deep learning image-based analysis for effective malware detection[J]. Information Security Technical Report, 2019, 47(Aug.):377-389.
[10]钱雨村,彭国军,王滢等.恶意代码同源性分析及家族聚类. 计算机工程与应用,2015,56(18):76-81.
[11]Park L, Yu J, Kang H K, et al. Birds of a Feature: Intrafamily clustering for version identification of packed malware[J]. IEEE systems journal, 2020,14(3):4545-4556.
[12] Zhao B L, Shan Z, Liu F D, et al. Malware homology identification based on a gene perspective[J]. 信息与电子工程前沿:英文版, 2019(6):801-815.
[13]Li Y, Sundaramurthy S C, Bards A G, et al. Experimental study of fuzzy hashing in malware clustering analysis[C]. Usenix, Washington DC, USA, 2015: 1-8.
[14]Ahmadi M , Giacinto G , Ulyanov D , et al. Novel feature extraction, selection and fusion for effective malware family classification[DB]. 2015.
[15]Kinable J,Kostakis O.Malware Classification based on Call Graph Clustering[J].Journal of Computer Virology and Hacking Techniques,2011,7(04):233-245.
[16]Jang J W , Woo J , Mohaisen A , et al. Mal-Netminer: Malware Classification Approach Based on Social Network Analysis of System Call Graph[J]. Mathematical Problems in Engineering,2015,(2015-10-1), 2015, 2015(PT.18):731-734.
[17]赵炳麟, 孟曦, 韩金,等. 基于图结构的恶意代码同源性分析[J]. 通信学报, 2017, v.38;No.365(S2):86-93.
[18]Sanders H, Saxe J. Malware data science: Attack detection and attribution[M]. No Starch Press, 2018.
[19]Ronen R , Radu M , Feuerstein C , et al. Microsoft Malware Classification Challenge[DB]. 2018. https://arxiv.org/pdf/1802.10135.pdf.
版权声明
转载请务必注明出处。
版权所有,违者必究。
- 关键词标签:
- 天融信 人工智能安全 AI安全应用 恶意代码同源分析