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.
wepoker官网入口的版权声明
转载请务必注明出处。
wepoker官网入口的版权所有,违者必究。
- 关键词标签:
- 天融信 人工智能安全 ai安全应用 恶意代码同源分析