【资料】恶意软件任务识别的认知启发推理
2021-05-25 23:27:00 Author: mp.weixin.qq.com(查看原文) 阅读量:150 收藏

【摘要】
恶意软件反向工程,具体地说,识别给定恶意软件被设计来执行的任务(例如,记录击键、记录视频、建立远程访问)在很大程度上是人工驱动的过程,是一项困难且耗时的操作。在本文中,提出了一种自动识别恶意软件任务的方法,该方法基于ACT-R认知体系结构,使用两种不同的方法来识别恶意软件任务,ACT-R认知体系结构是统一认知理论的流行实现。使用三个不同的恶意软件集合,本文探索了对每个基于实例和基于规则的模型的不同评估-包括训练数据与测试显著不同的情况;被评估的恶意软件使用打包来阻碍分析技术的情况;以及训练数据稀疏的情况。我们发现,我们基于认知推理的方法始终优于当前最先进的恶意软件任务识别软件以及标准的机器学习方法-经常获得超过0.9的无偏见F1得分。

因原文较长,以下摘取该文部分内容展示:

识别给定恶意软件旨在执行的任务(例如记录击键、录制视频、建立远程访问等)。这是一项困难和耗时的任务,在实践中很大程度上是由人来驱动的。当您考虑到恶意软件在不断演变,并且根据每个网络安全专家自己的特定背景,如何对每个恶意软件实例进行分类可能会有所不同时,这项任务的复杂性会大大增加。这个问题的自动化解决方案非常有吸引力,因为它们可以显著减少在网络攻击后进行补救所需的时间。

认知启发推理

虽然人类推理具有记忆和注意力的局限性,但是它们的认知过程是强大的,其中采用自适应的启发式策略在强时间约束下使用有限方法完成任务。使用认知模型来描述推理过程的优点在于,底层架构提供了人类启发式推理的好处,同时允许比诸如人类工作记忆之类的约束更加灵活。我们相信,人工情报使用认知架构是有效的,它利用基本的认知机制,而不一定利用架构的所有约束。在这种情况下,最好具体说明模型的哪些方面不受数据的约束,而不是以可信但不可能验证的方式模拟这些方面,简单地将它们视为未建模的过程。这种方法导致模型更简单,所用机制与结果之间有明确的联系,而不是被复杂但不相关的机制所掩盖。例如,虽然本章中描述的模型针对人类行为和神经数据使用正当的激活动力学来解释特征,例如时间折扣,但我们不直接对工作存储器约束建模以允许恶意软件的更多特征和更多实例存在于存储器中。

基于ACT-R的方法

我们使用ACT-R(Adaptive Control of Thought-Rational)认知架构的机制提出了两个模型,这些模型利用此架构应用于情报分析问题的工作,特别是我们试图利用最近引入的基于实例的(ACTR-IB)和基于规则的(ACTR-R)模型,前面的研究论证了在复杂动态情况下基于实例的学习的能力使得它们更适合在本节中,我们回顾了ACT-R框架中与这些模型相关的一些主要概念,并介绍了两种方法。

我们利用ACT-R架构的声明式内存和生产系统的特性来完成恶意软件任务识别。在ACT-R中,从声明性记忆(c.f,为了我们的目的,识别)的回忆取决于三个主要组件:激活增强(即,元素的基级激活)、关联(即,扩展)激活和元素间相似性(即,部分匹配)。这三个值相加在一起,表示项目的总激活。当从内存请求召回时,检索总激活率最高的项。

声明性知识声明性知识以块形式表示。块具有显式类型,由有序的槽值信息对列表组成。块通过激活过程从声明性存储器中检索,并且每个块与激活强度相关联,激活强度又用于计算检索概率。在本章中,块通常将对应于恶意软件家族。在ACTR-IB版本中,我们不显式地表示家族,块对应于训练数据中的样本。

对于给定的块i,激活强度A计算为,

Aj=Bi+Si+Pi                        

其中,Bj是基本级激活,Sj是扩展激活,Pj是部分匹配得分。下面我们将更详细地描述这些内容。

基级激活(B,)从技术上讲,块i的基级既反映了内存中的样本的频率,也反映了它们的新近性,尽管我们在这里没有使用新近性,但它可以很容易地应用于向最近的样本称重。更重要的是,将基级设置为ACTR-R中的先验概率(即与块相关联的样本分数)的日志;例如,基于实例(ACTR-IB),我们将其设置为基级常数ft。

扩展激活(Sj)扩展激活是测量存储器中的测试样本i和样本j之间的属性的唯一性。激活到样本i的扩展是通过将样本j与所考虑的当前样本i的属性之间的关联强度相加来计算的。为了计算扩展激活,我们为每个属性计算属性a的扇形(即具有属性a的内存中的样本数)。在两种方法中,关联强度的计算都不同,并且在一些认知模型实现中,关联强度被加权(如本章的ACTR-R中所做的)。

部分匹配(P,)部分匹配机制计算两个样本之间的相似度。在这项工作中,它只与基于实例的方法相关。给定测试样本j,将其与存储器中的样本i的相似性计算为失配惩罚(mp,系统的参数)和失配程度Mp的乘积。我们定义Mp的值在0和-1之间;0表示完全匹配,而-1表示完全失配。

与基于ACT-R框架的模型一样,我们将丢弃激活强度低于特定阈值(表示为r)的块。一旦针对给定块计算激活强度At,我们就可以计算激活概率,这是认知模型将回忆该块并使用以下我们提供的Boltzmann(softmax)方程计算的概率。

这里,e是自然对数的基础,5是通过模拟背景神经激活来诱导随机性的瞬时噪声(这也是系统的参数)。

 基于ACT-R实例的模型

基于实例的模型是一种迭代学习方法,它反映了积累经验(在这种情况下是训练样本的知识库)的认知过程,并利用它们来预测未见测试样本的任务。每个恶意软件实例将恶意软件的一组属性与其家族相关联。当遇到新的恶意软件样本时,使用等式1计算具有存储器中的每个样本的该样本的激活强度。扩展激活是测量存储器中的测试样本i和样本j之间的属性的唯一性。为了计算扩展激活,我们计算每个属性a(fan(a)在内存中找到测试样本i的属性a)的所有实例。如上所述计算部分匹配。失配程度计算为给定恶意软件的属性向量与使用两个向量之间的欧几里得距离规格化的存储器中的每个样本之间的交集。然后使用等式2计算存储器中的每个样本j相对于测试样本i的检索概率。这产生家庭上的概率分布。然后,通过将与该任务相关联的家族的概率与适当设置的阈值相加来确定任务(我们将该阈值设置为0.5(指示在预测针对测试恶意软件样本的任务之前,模型应该超过50%有信心))。算法1显示了基于实例的模型的伪代码。

算法1:ACT-R实例学习

基于实例的模型的时间复杂性基于实例的模型没有明确的训练阶段,因此没有相关的训练成本。对于给定的测试样本,模型计算知识库中每个样本的激活函数。因此,时间复杂性随知识库线性增加。设n是知识库中样本的数目,m是与测试样本相关联的属性的数目,那么对于每个测试样本,时间复杂度为0(nm),因为我们期望m是相对小的(n>>m),关系在n中是线性的。

基于ACT-R规则的模型

在ACT-R模型的这个版本中,我们根据训练阶段计算的简单规则对样本进行分类。给定具有其属性集a的恶意软件训练样本,以及基本真值族值,我们计算属于(或不属于)族/(的恶意软件片段中的属性)的条件概率p(a\f)和p(«H/)。这些概率规则(条件概率)用于设置属性与族(saj)的关联强度。关联强度由源激活w加权以避免基于规则的模型的检索失败。我们使用经验确定的贝叶斯priors/?(/)设置每个族的基级,而不是使用恒定的基级。仅使用激活等式1的两个分量,即基电平和扩展激活。给定当前恶意软件的属性,我们根据等式2计算样本属于每个家族的概率,生成家族上的概率分布。然后以与基于实例的模型类似的方式确定任务。算法2显示了基于规则的模型的伪代码。

算法2:基于ACT-R规则的学习

基于规则的模型的时间复杂性对基于规则的模型计算知识库中每个属性的规则大大增加了计算时间。设n是训练集中的样本数,m是新恶意软件中的属性数,m*是UyeAdaltribtj的基数。因此,训练的时间复杂性是O(m*n),这在我们的研究中观察到m*>>m时是显著的。虽然这很昂贵,但我们注意到,为了测试单个恶意软件样本,时间复杂性小于基于实例的测试阶段(9(|J'|/«)——尽管基于实例的模型不需要显式的训练阶段(对基于规则的方法的训练阶段的时间复杂性占主导地位)。

表3 认知模型的参数

模型

参数参数

基于实例的学习

fi=20(基电平常数)

s=0.1(随机噪声参数)r=-10(激活阈值)mp=20(失配惩罚)

基于规则的学习

s=0.1(随机噪声参数)w=16(源激活)

模型参数设置

两个提出的模型利用激活函数的单独组件。表3提供了用于两种ACT-R模型的参数列表——我们使用标准ACT-R参数,这些参数是从来自其它领域的大量先前ACT-R建模研究中估计的,并且ACT-R参考手册中也提出了这些参数,

这些参数背后的直觉如下。参数5在模型中注入随机噪声。它用于计算噪声分布的方差,并计算存储器中每个样本的检索概率。失配惩罚参数mp是跨样本恒定的架构参数,但它将测试样本与知识库中样本之间的相似度相乘。因此,具有大的值,它更加惩罚不匹配样本。它通常以信噪比的方式与噪声s的值进行权衡:mp的较大值导致最接近的匹配样本的更一致检索,而较大的值5导致较差的匹配样本的更普遍检索。激活阈值t确定将从存储器检索哪些样本以进行任务预测决策。基电平常数ft用于避免可能由于高激活阈值引起的检索失败。源激活w被分配给每个检索以避免基于规则的模型的检索失败。

基线方法

我们将所提议的认知模型与各种基线方法——一个商业软件包和五个标准的机器学习技术相比较。对于机器学习技术,我们生成族上的概率分布,并返回与0.5或更大的概率相关联的任务集,而商业软件如制造商所期望的那样使用。所有基线方法的参数都是以取得最佳性能的方式设定的。

商业提供:Invencia Cynomix Cynomix 是一个恶意软件分析工具,由Invencia 行业提供给研究人员[7]最初在国防高级研究项目局(DARPA)的网络基因组项目下开发。它代表了恶意软件能力检测领域的最新进展。Cynomix对恶意软件样本进行静态分析,并使用专有算法将其与已知功能的众包识别的恶意软件组件进行比较。

决策树(DT)是一种层次递归分割算法。我们通过找到最佳分割属性即最大化节点每个分割处的信息增益的属性来构建决策树。为了避免过拟合,将终止准则设置为小于总样本的5%。恶意软件样本通过树中的每个层次上的最佳分割属性的存在与否进行测试,直到它到达叶节点。当它到达叶节点时,叶节点处的概率分布被分配给恶意软件样本。

朴素贝叶斯分类器(NaiveBayesClassifier, NB)是利用贝叶斯定理和独立属性假设的概率分类器。在训练期间,我们计算属于特定族的给定属性的条件概率。我们还计算每个家庭的先验概率,即属于每个家庭的训练数据的分数。朴素贝叶斯假设属性在统计上是独立的,因此用与家族关联的属性集a表示的样本S的似然性被给出为p(f\S)=P(f)xnf=iI/。

随机森林(RF)集成方法是流行的分类工具。它们基于生成多个组合用于分类新的未见样本的预测器的思想。我们使用随机森林,其将每个树的套袋与在每个节点处的随机特征选择结合来分割数据,从而生成多个决策树分类器。每个决策树对测试样本分类给出其自己的意见,然后合并该样本分类以生成族上的概率分布。对于所有的实验,我们将树数设置为100,这给了我们最好的性能。

支持向量机(SVM)是Vapnik提出的支持向量机,SVM通过寻找使类之间的几何距离最大化的分离余量来工作。分离边界称为超平面。我们使用公共可用的流行的LibSVM实现。与最大概率预测相反,实现具有返回概率分布的选项。

Logistic回归(LogisticRegression,LOG-REG)通过计算赔率对样本进行分类。概率比给出了属性与家族之间的关联强度,如ACT-R规则学习中使用的简单规则。我们实现了处理多类分类的多项式逻辑回归。

动态故障分析

动态分析研究在主机上执行的恶意程序。它使用调试器、函数调用跟踪器、机器仿真器、逻辑分析器和网络嗅探器等工具来捕获程序的行为。我们使用两个公开可用的恶意软件分析工具为每个恶意软件样本生成属性。这些工具使用沙箱,沙箱是运行恶意软件的受控环境。

Anubis SandboxAnubis是一个在线沙箱,它为远程环境中的恶意软件执行生成XML格式的报告。它生成恶意软件的详细的静态分析,但是提供关于主机上的恶意软件的行为的更少的细节。由于它是远程托管的,我们不能修改它的设置。

Cuckoo Sandbox Cuckoo是一个使用专用虚拟机实现的独立沙箱,更重要的是,可以根据我们的需要定制。它通过在虚拟机上运行恶意软件时监视和记录恶意软件,生成静态和行为分析的详细报告。这些行为分析被证明是针对实验的给定恶意软件的唯一指示符(单个家族常见的行为模式)。

绩效评价

在我们的测试中,我们主要基于四个指标来评估性能:精确性、召回性、无偏性和家庭预测准确性。对于正在测试的给定恶意软件样本,精确度是与恶意软件相关联的算法的任务的一部分,这些任务是实际实况中的实际任务。回想一下,对于一个恶意软件,是由算法识别的地面真相任务的一部分。无偏Fl是精确性和召回性的调和平均值。在我们的结果中,我们报告执行次数的精确度、召回率和无偏Fl的平均值。我们衡量家庭准确性——最可能的家庭是所涉恶意软件的基本真相家庭的试用分数——意在让人们了解算法在中间步骤中的表现。

结果

所有实验均在Intel core-i7上运行,在3.2GHz下使用16GBRAM。只有一个核用于实验。除明确指出的情况外,所有实验(在所有数据集和沙箱中)的ACT-R参数按照表3固定。

原文未展示部分的一些插图:

原文及机器翻译文档已上传知识星球


文章来源: http://mp.weixin.qq.com/s?__biz=MzI2MTE0NTE3Mw==&mid=2651122445&idx=1&sn=79e640aa9224e8c96cc7fe13e8c13f10&chksm=f1ae9c37c6d91521d59eb9f28826a54b93e40a204ef060e9527b7e24a01a6208669bdfdded20#rd
如有侵权请联系:admin#unsafe.sh