本文主要研究恶意软件,重点是区别APT相关恶意软件和非APT恶意软件之前的关系,并且寻找其中的可解释性。
1. Introduction
-
分类:
在研究与apt相关的恶意软件时考虑不同类型的特征将会很有趣,这不仅是为了提高准确性,也是为了更好地了解其本质。因此,本工作提出使用静态、动态和网络相关的特征、可解释的和通过领域知识选择的特征,以及知名的机器学习技术来分析apt相关的恶意软件与无任何已知关联的通用恶意软件的可识别性。 -
已有的数据包:
一个包含apt相关和非apt通用恶意软件的大数据集已经收集并公开提供(martin -里拉斯等人,2020年)。该恶意软件数据集共包含19457个恶意软件分析样本(1497个APT样本和17960个非APT类型的恶意软件),以及从静态、动态和网络流量分析中提取的字段处理中获得的1944个特征。 -
对数据集使用机器学习技术:
利用ML技术从不同角度对数据集进行分析,以更好地理解APT恶意软件的特征。首先进行探索性分析,获取数据结构的知识。执行后,特征选择过程使用不同的过滤器和嵌入式技术找到一个具有高区分度的特征来决定是否属于APT恶意软件。特征选择提供了一套修剪后的的相关特征集,然后通过成熟的分类算法进行分类。
2 .Related work
检测恶意软件的发展
1)网络流量
一般来说,比较常用的检测APT恶意软件的方法是通过分析APT样本产生的网络流量
2)静态分析
关于可执行文件的分析,一种常见的方法是静态分析,静态分析可以遵循以原始二进制文件的某些特性为中心的不同分析路径。这种方法直接使用原始字节或其他低级元素来构建特征,例如,从字节序列获得的n-gram(属于字符串语义匹配)。尽管这些特性很容易计算,但它们通常提供的可解释信息很少,而且可能存在一些局限性。
3)动态分析
动态分析也称为行为分析,它在一个受控制和监控的环境中执行恶意软件,观察其行为及其与其他资源的交互,可能提供那些静态分析无法发现的恶意软件的信息。然而,由于恶意软件的恶意行为通常取决于环境,需要观察的时间也不明确,因此很难模拟出合适的条件来揭示恶意软件的恶意行为。
4)机器学习技术
将机器学习(ML)技术应用于恶意软件样本的自动检测或分类是文献中一个常见的主题(Gandotra et al., 2014),但很少有作品将静态和动态分析的特征结合起来,而且很少有人去分析这种分类的可解释性。最近在一般的恶意软件检测和分类中提出的先进技术可以对从动态分析中获得的事件序列进行建模,例如,深度神经网络还没有应用在APT相关的恶意软件检测上。
5)恶意软件数据集
第一个数据集:在微软分类挑战中使用的数据集(Ronen等人,2018年)侧重于恶意软件的静态特征,包含9个不同的恶意软件家族的2万多个样本
第二个数据集:Anderson和Roth(2018)收集的数据集是一个110万个样本的大集合,这些样本分析了从Windows可执行样本的静态分析中再次获得的一组特征。
第三个数据集:Laurenza等人(2017)描述了一个有趣的数据集,其中有标记为apt相关的恶意软件和通用的恶意软件,但是它只包括了静态特征。
3.数据集
3.1 数据收集
对于收集的数据情况如下图所示:
静态分析:使用基于Python PEFile库的Python脚本对整个数据集进行静态分析(Mulder等人,2011),
动态分析:而从VirusTotal获得的报告中提取动态分析信息(包括网络流量特征)。
最终的分析使用的样本数量较低,因为并非所有收集到的样本都曾被VirusTotal分析过