0x01 Introduction
终端安全行业越来越多地采用基于机器学习 (ML) 的工具作为其纵深防御策略的组成部分。特别是,使用源自二进制文件静态分析的特征的分类器通常用于在端点上执行快速、预执行检测和预防,并且通常充当终端用户的第一道防线。同时,了针对恶意软件(malware)检测模型的对抗性攻击的关注度相应增加。该领域的主要焦点是逃避攻击(evasion attack)的发展,其中攻击者的目标是在推理时改变数据点以引起错误分类。然而在本文中关注投毒攻击的潜在问题,它试图影响 ML 训练过程,特别是后门投毒攻击,其中攻击者将精心选择的模式放入特征空间,以便受害者模型学习将其存在与攻击者选择的类别相关联。虽然之前已经针对开源和商业恶意软件分类器的测试证明了规避攻击,但后门投毒为攻击者提供了一种有吸引力的替代方案,它在一开始就需要更多的计算工作,这可能会导致通用规避各种恶意软件样本和目标分类器的能力。当应用于计算机视觉模型而不需要大量投毒样本时,这些后门攻击已被证明是非常有效的,但它们对恶意软件分类域和一般基于特征的模型的适用性尚未被调查。
在可能存在任何恶意第三方有能力篡改训练数据子集的情况下,投毒攻击都是一种危险。因此,它们已被视为与生产部署的 ML 模型最相关的威胁之一。许多安全供应商当前的训练管道为此类攻击提供了一个天然的注入点。事实上,安全公司通常依赖众包威胁源为他们提供大量不同的用户提交的二进制文件来训练他们的分类器。这主要是由于实现令人满意的检测性能(数千万到数亿个样本)所需的标记二进制文件的绝对数量,特别是难以充分覆盖实践中观察到的各种良性软件(goodware,例如,自定义二进制文件、多个版本流行软件、不同编译器编译的软件等)。
然而,这种情况下的一个复杂问题是,这些众包样本的标签通常是通过应用多个独立的恶意软件检测引擎生成的,攻击者无法控制这种情况。因此,在本文中通过开发一种新的、与模型无关的后门方法来研究针对基于 ML 的恶意软件分类器的干净标签(clean label)后门攻击。本文攻击在恶意软件检测器的训练集中注入后门良性样本,目的是在推理时改变对带有相同模式水印的恶意软件样本的预测。为了将攻击策略与 ML 模型的细节分离,本研究的主要见解是利用 ML 可解释性中的年龄工具,即 SHapley Additive exPlanations (SHAP),选择一小组高效特征及其用于创建水印的值。针对在广泛使用的恶意软件数据集上训练的各种机器学习模型评估本文攻击,包括 EMBER(Windows 可执行文件)、Contagio(PDF)和 Drebin(Android 可执行文件)。此外,探索了各种现实世界的限制对攻击者成功的影响,以及检测攻击的防御机制的可行性。总的来说,结果表明攻击在许多场景中都取得了很高的成功率,并且由于良性软件样本中存在自然多样性,因此很难检测到。
0x02 Problem Statement and Threat Model
下图中总结了基于 ML 的恶意软件分类器的典型训练方式,通常从从第三方威胁情报平台获取大量标记的二进制文件开始。这些平台允许用户(包括攻击者)提交样本,这些样本通过在二进制文件上运行现有防病毒 (AV) 引擎池来标记。然后,公司可以从平台获取标记数据。然而,由于所涉及的数量庞大,而且任务的内在难度,需要专门的人员和工具,因此流入流的筛选过程变得非常繁重。这种外包数据还可以与一小组专有的、经过审查的二进制文件相结合,以创建一个带标签的训练数据集。训练过程包括特征提取步骤(在这种情况下是 PE 文件的静态分析),然后是 ML 算法训练过程。然后将经过训练的恶意软件分类器部署在野外,并应用于新的二进制文件以生成标签,恶意软件或良性软件。
威胁情报数据带有一组由第三方 AV 分析器确定的标签,这些标签不受攻击者的直接控制。这种情况使干净标签后门方法成为事实上的必要条件,因为标签翻转意味着对标签程序的对抗性控制。因此,攻击者的目标是生成后门良性二进制文件,这些二进制文件将通过这些标签平台传播,并将毒化下游恶意软件分类器的训练集。一旦部署了模型,攻击者将在发布恶意二进制文件之前简单地在恶意二进制文件中引入相同的水印,从而确保新的恶意软件活动将逃避后门分类器的检测。在探索此攻击空间时,首先针对 Windows 可移植可执行文件 (PE) 文件针对静态的、基于特征的恶意软件分类器。然后为了展示方法的通用性,将重点扩展到其他常见文件格式,例如 PDF 和 Android 应用程序。
A.威胁模型
很大一部分后门攻击方法采用了 BadNets 威胁模型,它定义了:
(i)“外包训练攻击”,其中攻击者完全控制训练过程,并且只允许最终用户检查使用保留的验证数据集进行训练;
(ii) “迁移学习攻击”,用户下载预先训练的模型并对其进行微调,这种威胁模型很难直接应用。
安全公司通常规避风险,更愿意在内部执行训练,或将硬件外包,同时保持对训练期间使用的软件堆栈的完全控制。
攻击者目标:与大多数后门投毒设置类似,攻击者的目标是改变训练程序,使得产生的后门分类器 Fb 不同于经过干净训练的分类器 F,其中 F,Fb : X ∈ R^n → {0,1} .理想的 Fb 对一组干净的输入 X 具有与 F 完全相同的响应,而当应用于后门输入 Xb 时,它会生成对抗性选择的预测 yb。这些目标可以概括为:
而在多类设置(例如图像识别)中,有针对性的攻击(诱导错误分类针对特定类别)和非针对性攻击(其目标仅是导致错误预测)之间存在差异,这种差异在恶意软件检测中消失了。在这里,攻击者有兴趣使恶意二进制文件看起来是良性的,因此目标结果始终是 yb = 0。对良性软件使用类 0,对恶意软件使用类 1。为了使攻击无法被检测到,攻击者希望最小化投毒样本集的大小和触发器的足迹(计为修改特征的数量)。
攻击者能力:可以通过他们对训练组件的知识和控制程度来表征攻击者,如上表所示。首先探索一个不受限制的场景,其中攻击者可以自由篡改训练数据,主要制约因素。为了避免为带水印的特征分配完全任意的值,总是将攻击者的修改限制在训练中在良性样本中实际找到的一组值。这种情况能够从防御者的角度研究攻击并揭示其在最坏情况下的主要特征。还检查了对攻击者的各种限制,例如对训练集的访问受限(data_limited)、对目标模型的访问受限(传输)以及模型架构的有限知识(black_box)。最后,考虑一个受限的场景是相关的,其中攻击者在他们被允许改变的特征和要使用的值的范围上都受到严格限制。该场景模拟了专用攻击者的能力,尽管后门对二进制文件进行了更改,但仍希望保留程序的原始特征。有了这些基本构建块,可以结合基本攻击者的局限性来探索众多现实的攻击场景。
0x03 Explanation-Guided Backdoor Attacks
在后门投毒攻击中,由于这些特征维度中存在投毒值,攻击者利用对(一部分)特征的控制来诱导错误分类。直观地说,攻击在包含触发器的特征子空间内创建了一个密度区域,分类器调整其决策边界以适应投毒样本的密度。在调整决策边界时,后门点与周围非水印点以及攻击者无法控制的特征维度的影响作斗争。然而,即使攻击者只控制了一个相对较小的子空间,如果水印点的密度足够高,周围的数据点足够稀疏,或者水印占据了决策边界的特别薄弱的区域,他们仍然可以影响决策边界模型的置信度低的地方。攻击者可以通过他们注入的投毒数据点的数量以及他们通过仔细选择模式的特征维度及其值来操纵的决策边界区域来调整攻击点的密度。
因此,开发成功的后门有两种自然策略:(1)搜索决策边界附近的弱置信区域,水印可以压倒现有的弱证据;或 (2) 颠覆已经严重面向良性软件的区域,以便后门子空间的密度压倒来自其他附近样本的信号。考虑到这些策略,问题就变成了:如何以一种通用的、与模型无关的方式深入了解模型的决策边界?本研究认为模型解释技术,如 SHapley Additive exPlanations (SHAP),是理解决策边界相对于给定样本的方向的自然方式。在本研究任务中,正 SHAP 值表示将模型推向恶意软件决策的特征,而负 SHAP 值表示将模型推向恶意软件决策的特征。给定样本的所有特征的 SHAP 值的总和等于模型输出的 logit 值(可以使用逻辑变换将其转换为概率)。 SHAP 值的一种解释是它们沿每个特征维度近似决策边界的置信度,这提供了实现上述两种直观策略所需的模型不可知方法。也就是说,如果想要决策边界的低置信度区域,可以寻找 SHAP 值接近于零的特征,而通过寻找具有负贡献的特征可以找到强烈的面向良性软件的特征。沿特征列对每个样本的值求和,然后就可以指示数据集中该特征的整体方向。
A.构建块
攻击者需要两个构建块来实现后门:特征选择器和值选择器。特征选择将攻击者的水印缩小到满足某些理想属性的子空间,而值选择则选择该空间中的特定点。根据攻击者选择的策略,这些构建块的多个实例是可能的。在这里将概述攻击中使用的基于 SHAP 的方法,但是其他实例(可能支持替代攻击策略)也是可能的。
特征选择:所有后门投毒攻击策略的关键原则是选择对模型决策具有高度影响力的特征。自然地捕捉到这一概念的一个概念是特征重要性。例如,在基于树的模型中,特征重要性是根据使用特征分割数据的次数以及这些分割在将数据分为纯类方面的效果如何计算的,如基尼系数所衡量的那样。当然,由于目标是开发与模型无关的方法,试图用 SHAP 值来捕捉类似的概念。为此将数据集中所有样本的给定特征的 SHAP 值相加,以得出该特征重要性的总体近似值。由于 SHAP 值同时编码方向性(即类别偏好)和幅度(即重要性),可以以两种独特的方式使用这些值。
LargeSHAP:通过对各个 SHAP 值求和,将每个样本的值的各个类对齐组合起来,以获得该特征的平均类对齐。请注意,基于与样本中其他特征的交互以及它们与决策边界的关系,特征的类对齐可以从一个样本更改为下一个样本。因此,以这种方式对特征求和说明该特征的重要性取决于类标签,大的负值对良好软件决策很重要,而具有大正值的特征对恶意软件决策很重要。具有接近零的 SHAP 值的特征,虽然它们在一般意义上可能很重要,但与特定类别不一致,并表示置信度较弱的区域。
LargeAbsSHAP:另一种方法是通过在求和之前取 SHAP 值的绝对值来忽略方向性。这是与基于树的模型中特征重要性最接近的类比,并捕获特征对模型的整体重要性,而不管决策边界的方向(即选择哪个类)。
值选择:一旦确定了要嵌入触发器的特征子空间,下一步就是选择构成触发器的值。然而,由于二进制文件的强语义限制,不能简单地为后门选择任意值。相反,限制自己只从数据中选择值。因此,值选择实际上变成了一个搜索问题,即在特征空间中识别具有所需属性的值以及相对于该空间中的决策边界的方向。根据上述攻击策略,希望根据子空间中的密度概念来选择这些值——要么选择稀疏、弱置信区域中的点以对决策边界进行高杠杆,要么选择密集区域中的点以混合与周围的背景数据。提出了三个选择器,它们跨越了从子空间的稀疏到密集区域的这个范围。
MinPopulation:要从子空间的稀疏区域中选择值,可以简单地查找数据集中出现频率最低的值。MinPopulation选择器确保该值对于二进制的语义是有效的,并且根据定义,所选区域中只有一个或少量背景数据点,这为决策边界提供了强大的杠杆作用。
CountSHAP:在频谱的另一端,寻求选择具有高密度的良性软件对齐数据点的值,这允许水印与背景良性软件数据混合。直观地说,希望选择数据中经常出现的值(即具有高密度)并且具有面向良性软件的 SHAP 值(即较大的负值)。将这两个组件组合在以下公式中:
其中 α,β 是可用于控制评分指标每个分量的影响的参数,cv 是构成触发器的特征中值 v 的频率,∑xv∈X Sxv 对分配给的 SHAP 值求和训练集 X 中数据向量的每个分量,其值为 xv。在实验中发现设置 α = β = 1.0 可以很好地选择具有强大良性软件方向的流行特征值。
CountAbsSHAP:CountSHAP 方法的一个挑战是,虽然触发器可能与周围的良性软件很好地融合,但它必须与自然背景数据作斗争以控制决策边界。根据攻击者控制下的特征维度数量,后门的整体影响力可能相当低,这激发了一种弥合 MinPopulation 和 CountSHAP 之间差距的方法。为了解决这个问题,对 CountSHAP 方法进行了一个小改动,以帮助识别与任一类都没有强烈对齐的特征值(即,它对确定类的信心很低)。与 LargeAbsSHAP 特征选择器一样,可以通过简单地求和 SHAP 值的绝对值,并寻找总和最接近零的值来实现这一点:
B.攻击策略
有了特征选择和值选择构建块,现在提出两种算法将它们结合起来以实现上述直观的攻击策略。
独立选择:第一个攻击策略是搜索决策边界附近的弱置信区域,在那里水印可以压倒现有的弱证据。在多个特征维度上实现这一目标的最佳方法是通过独立选择后门,从而允许攻击者通过将两个选择阶段解耦并单独选择最佳组合来最大化攻击活动的效果。对于攻击目的,使用构建块的最佳方法是使用 LargeAbsSHAP 选择最重要的特征,然后使用MinPopulation 或 CountAbsSHAP 选择值。对于 MinPopulation,这确保选择最高杠杆特征和具有最高稀疏度的值。同时,通过 CountAbsSHAP 方法,尝试平衡攻击与对原始数据缺乏信心的流行值的混合。
贪心组合选择:虽然上面的独立选择策略侧重于基于决策边界的薄弱区域识别最有效的水印,但在某些情况下,可能希望更仔细地将水印与背景数据集混合,并确保特征之间的语义关系是保持。为了实现这一点,提出了第二种选择策略,它颠覆了面向良性软件的决策边界的现有区域,将其称为组合策略。在组合策略中,使用贪婪算法有条件地选择新的特征维度及其值,使这些值与攻击者数据集中现有的面向良性软件的点一致,如算法 1 所示。从选择最多的开始使用 LargeSHAP 选择器的面向良性软件的特征维度和使用 CountSHAP 选择器的该维度中最高密度的面向良性软件的值。接下来删除所有没有选定值的数据点,并使用以当前触发器为条件的数据子集重复该过程。直观地,可以将此过程视为从现有的良性软件样本中识别语义一致的特征子空间,这些样本可以作为后门转移到恶意软件。由于强制算法从观察到的良性软件样本中选择一个模式,该触发器更有可能与原始数据分布自然融合,而不是独立策略,后者可能会产生不“接近”的后门任何自然特征子空间。事实上,已经发现在 Windows PE 文件的情况下,这种组合过程会产生成百上千个背景点,触发大小高达 32 个特征。相比之下,Independent 算法仅在三四个特征维度后即可将水印与所有现有背景点快速分离。
此外,由于选定的后门模式占据了真实良性软件样本支持的子空间,可以确保在该子空间中选择的值的组合彼此一致并与原始问题空间的语义一致。如果确保所考虑的所有特征 (i) 仅包含在原始问题空间中可操作的特征并且 (ii) 没有依赖性或相关性,就可以利用此属性来处理特征之间的相关性或副作用具有该宇宙之外的特征(即,语义关系包含在子空间内)。这也是在之前针对恶意软件分类器的对抗性规避攻击的工作中发现的假设。
需要注意的一点是,虽然该算法生成的后门保证在原始子空间中是可实现的,但其他问题空间约束可能会限制将其应用于哪些恶意软件样本。 例如,如果一个特征只能在不影响恶意软件样本的特征的情况下增加,那么可能会得到一个无法适用于给定样本的水印(例如,只能增加文件大小)。 在这些情况下,可以在贪婪搜索算法中以综合增加 SHAP 值的形式对特征空间中不符合恶意软件样本约束的值施加约束,有效地将搜索加权到那些区域 可实现并提供有效的后门规避。
0x04 Experimental Attack Evaluation
EMBER是用于恶意软件分类的恶意软件和良性软件样本的代表性公共数据集,与 LightGBM 梯度提升模型一起发布,可实现良好的二进制分类性能。 EMBER2 数据集包含从 Microsoft Windows 操作系统的 110 万个可移植可执行 (PE) 文件中提取的 2,351 维特征向量。训练集包含 600,000 个标记样本,在良性和恶意之间平均分配,而测试集包含 200,000 个样本,具有相同的类平衡。 VirusTotal 上至少有 40 个防病毒引擎报告了所有分类为恶意的二进制文件。
本文使用默认参数来训练 LightGBM(每棵树 100 棵树和 31 片叶)。还考虑了最先进的神经网络来执行恶意软件分类任务,并且鉴于分类任务基于特征的性质,尝试了不同的前馈网络架构。选择了一个模型 EmberNN,它由四个密集连接的层组成,前三个使用 ReLU 激活函数,最后一个以 Sigmoid 激活(二元分类的标准选择)结尾。前三个密集层由 Batch Normalization 层交错,并在训练期间应用 50% 的 Dropout 率进行正则化以避免过度拟合。 EMBER 测试集(上表)上的两个干净模型(执行攻击之前)的性能指标具有可比性,EmberNN 的性能略好于公开发布的 LightGBM 模型。在实验中(https://github.com/ClonedOne/MalwareBackdoors ),对后门模型的以下指标特别感兴趣:
Acc(Fb , Xb ):后门模型对水印恶意软件样本的准确性。这衡量了后门模型被有效地诱骗将先前正确识别的恶意二进制文件错误分类为良性软件的次数百分比(F 的基线准确度从 100% 开始)。因此,攻击者的主要目标是降低该值。
Acc(Fb , X):后门模型在干净测试集上的准确性。该指标能够衡量训练过程中数据更改的破坏性影响,捕获被攻击模型仍然正确概括干净数据的能力。
FPb:后门模型的误报 (FP)。 FP 与安全公司的成本尤其相关,因此 FP 的增加可能会引起怀疑。
A.攻击性能
通过改变触发器大小、投毒率和攻击策略来分析无限制攻击的有效性。
针对 LightGBM:为了衡量上面讨论的方法的性能,使用 LightGBM TreeSHAP 解释器在 EMBER 上训练的LightGBM 模型上运行了两种独立攻击和组合策略。绘制 8个特征触发器的攻击成功率,下图a 清楚地突出了增加投毒样本池大小与降低 Acc(Fb,Xb) 之间的相关性。当增加不同水印大小(4、8 和 16 个特征)的投毒数据集时,看到了类似的攻击成功率更高的趋势。有趣的是,SHAP 特征选择允许攻击者使用相对较小的触发器,下图a 中的 2,351 个特征中的 8 个,仍然可以获得强大的攻击。对于代表整个训练集 1% 的 6,000 个投毒点,最有效的策略 LargeAbsSHAP x CountAbsSHAP 将 Acc(Fb,Xb) 平均降低到不到 3%。即使在低得多的投毒率 (0.25%) 下,最好的攻击也会始终将分类器对后门恶意软件的性能降低到比随机猜测更糟糕的程度。所有策略都会导致 FPb 的整体变化小于 0.001,略大的增加与较大的投毒样本大小相关。还观察到 Acc(Fb,X) 的最小变化,平均低于 0.1%。
比较三种攻击策略,观察到由 LargeAbsSHAP 和 Count AbsSHAP 组成的独立攻击会导致持续的高误分类率。值得一提的是,正如预期的那样,组合战略非常隐蔽。将干净模型在干净良性样本上的准确性与其各自后门对应物的准确性进行了比较,并在所有攻击运行中观察到非常小的差异。总之,观察到该攻击在诱导 LightGBM 模型中有针对性的错误分类方面非常成功,同时保持了对干净数据的良好泛化和低误报率。
针对 EmberNN:使用 GradientSHAP 解释器对 EmberNN 运行相同系列的攻击,立即注意到神经网络通常对本文的攻击更具弹性。此外,这里触发器大小的影响至关重要。上图b 显示了在固定的 1% 投毒率下,随着触发器大小的增加,带水印恶意样本的准确性损失的进展。例如,在最有效的策略下,触发大小为 128 个特征时,Acc(Fb,Xb) 平均为 0.75%,而 Acc(Fb,Xb) 在 32 个特征时平均为 5.05%。区分 EmberNN 三种策略的一个关键因素是干净模型在干净和后门良性样本上的准确性之间的差异。而其他跟踪的指标表现出与 LightGBM 类似的行为,对干净数据的良好泛化,在大多数情况下 Acc(Fb,X) 接近原始的 99.11%,并且误报率较低(≈ FPb 平均增加 0.110.2%),一个干净的 Em berNN 模型通常几乎完全无法将后门良性点识别为良性软件。在这里,组合策略成为一个明显的“赢家”,既能非常有效地诱导错误分类,又能将上述差异最小化,平均绝对值约为 0.3%。有趣的是,还观察到 NN 模型的攻击性能与后门触发器的大小的相关性比与投毒样本池的大小相关性更强,导致较小的(0.5%)注入量导致可观的错误分类率。
B.限制攻击者
在这里考虑一个无法访问模型的传输攻击者。该威胁模型阻止攻击者计算受害者模型的 SHAP 值,因此必须使用共享相同特征空间的代理(或代理)模型生成后门。通过尝试在目标模型之间进行后门可转移性实验来模拟这种情况。将触发器大小固定为 16 个特征,使用从 EmberNN 代理模型中提取的 SHAP 值,使用由组合策略生成的后门攻击 LightGBM。然后通过使用独立策略创建后门重复类似的过程,分别结合 LargeAbsSHAP 和 Count AbsSHAP 进行特征和值选择,在 LightGBM 代理上计算,并用它来毒化 EmberNN 的训练集。两种情况下的 Acc(Fb,Xb) 损失如下图所示。观察到的经验证据支持本文攻击可以双向转移的结论。特别是,注意到两个模型中的行为与在不受限制的场景中看到的非常相似,LightGBM 通常更容易受到诱导错误分类的影响。在这种情况下,使用代理模型生成的触发器在后门恶意软件集上的准确度下降了约 82.3%,而投毒样本大小为训练集的 1%。
最后,评估了攻击者只能访问一小部分干净训练数据并使用与受害者相同的模型架构(即 data_limited)的场景。通过使用 20% 的训练数据训练 LightGBM 模型并使用它来生成触发器来执行此实验,然后用它来攻击在整个数据集上训练的 LightGBM 模型。使用具有超过 16 个特征的 LargeAbsSHAP 和 CountAbsSHAP 和 1% 投毒样本集大小的独立策略,注意到与在整个训练集上计算 SHAP 值的相同攻击相比几乎没有差异(≈ 4% ∆ Acc(Fb,Xb) ))。
0x05 Problem-Space Considerations
在上一节中,探讨了当攻击者完全控制特征时与模型无关的攻击策略。并且可以随意改变它们的值。受约束的攻击者必须付出不小的努力来确保在特征空间中生成的后门不会破坏语义或以其他方式损害问题空间中二进制文件的特征;后门恶意软件必须保留原始标签,而带水印的恶意软件则保留其恶意特征。
A.Windows PE
使用 pefile库实现了一个后门实用程序,以创建一个通用工具,尝试将给定的水印应用于任意 Windows 二进制文件。以足够通用的方式创建此实用程序需要 Windows 可移植可执行 (PE) 文件的文件结构的专业知识,尤其是在向二进制文件添加部分时。这样做需要使用适当的节、名称和特征来扩展节表,这反过来意味着重新定位节表之后的结构,例如数据目录和节本身,以允许任意增加节的数量添加。
还遇到了一些挑战需要放弃某些特征,并考虑限制它们可以采用的值的特征之间的依赖关系。首先意识到 EMBER 中的绝大多数特征都基于特征哈希,它通常用于将任意大空间向量化为固定长度的向量。例如,可以将二进制文件中未发现的字符串散列到少量桶中以创建固定数量的计数。鉴于散列函数的原像防御(Pre-Image resistance),通过篡改二进制直接操作这些特征将是极其困难的,因此丢弃了所有基于散列的特征,只剩下 35 个可直接编辑的非散列特征。接下来,考虑了非散列特征之间的依赖关系。
事实证明,许多特征源自二进制的相同底层结构和属性,并且可能导致无法同时实现的冲突水印。例如,num_sections 和 num_write_sections 特性是相关的,因为每次添加一个可写的部分,必然会增加部分的总数。为了处理这些依赖性,删除了其值受多个其他特征(例如,num_sections)影响的任何特征。这能够在不解决复杂的约束优化问题的情况下保持最大数量的特征。最后一个挑战来自如何处理问题空间的自然约束的问题,例如水印可能需要删除 URL 或减小文件大小的情况。在这里,攻击者有两种选择:减少可以成功加水印的文件集或通过向搜索算法添加约束以确保最大适用性来降低水印的有效性。攻击者最好牺牲Windows PE 样本,而不是失去攻击有效性。稍后将展示 Android 恶意软件的相反情况,其中对水印施加约束是更可取的解决方案。
在根据上述标准减少特征集后,剩下 17 个特征,通用水印实用程序可以在任意 Windows 二进制文件上成功操作这些特征。后门模式的示例可以在上表中找到。正如看到的,尽管可用特征的空间显着减少,但提出的攻击策略仍然显示出显着的有效性。虽然开发水印实用程序具有挑战性,但相信它完全在坚定的攻击者的能力范围内,并且随后可以被重复用于各种攻击活动。
攻击能力:如上图所示,当仅使用水印程序支持的 17 个可操作特征生成后门触发器时,攻击的有效性会略有下降。正如预期的那样,这样一个受约束的攻击者严格不如前文中探讨的不受限制的攻击者强大。 另一方面,尽管引入了强大的限制来简化实际实施,认为平均准确度损失仍然非常相关,因为安全关键应用程序。此外,如果允许投毒样本大小增加到整个训练集的 2%,获得的 Acc(Fb,Xb) 水平与 LightGBM 上 1% 的无限制投毒样本大小相当。
为了探索更多的现实场景,将特征控制的限制与无法访问原始模型、约束转移相结合。使用代理模型生成水印,使用之前确定的最有效的传输策略,但这次仅限于可控特征。观察到 LightGBM 和 EmberNN 的平均 Acc(Fb,Xb) 分别为 54.53% 和 56.76%。将先前攻击者的特征与有限的训练数据知识和组合策略的使用相结合,可以获得更弱和更隐蔽的攻击者。通过使用 EmberNN 代理计算的后门来评估这个受约束的传输数据限制攻击者的影响,只能访问 20% 的训练集并应用于 LightGBM 受害者。尽管对攻击者施加了极端限制,但对模型的影响仍然很显着,包含触发器的点的准确度下降范围从 ≈ 10.8%(1% 投毒率)到 ≈ 40%(4% 投毒率)。
最后查看了受约束的 black_box 场景,在该场景中,使用 SHAP KernelExplainer 仅为可操作特征生成了 SHAP 值,它纯粹通过将模型作为黑盒进行查询来运行。以 Light GBM 为目标,采用 LargeAbsSHAP x CountAbsSHAP 策略,使 1% 的训练集投毒。由此产生的模型表现出 44.62% 的平均 Acc(Fb,Xb),这使得该攻击者比能够访问模型特定 SHAP 解释器的攻击者稍微弱一些。这里需要注意的是,攻击者必须花费大量的计算时间来使用 SHAP KernelExplainer。
行为保护:从数据集中随机选择了 100 个好软件和 100 个恶意软件二进制文件,并用 LightGBM 和 Em berNN 模型的后门毒化了它们中的每一个,从而为每个模型产生了总共 200 个带水印的二进制文件。为了确定水印对二进制文件特征的影响,在动态分析沙箱中运行每个样本,该沙箱使用各种静态、动态和行为分析方法来确定二进制文件是否是恶意的。该实验有助于评估攻击在现实世界中应用时的三个重要方面:(i)在带水印的良性软件上保留原始标签的能力,(ii)保持带水印的恶意软件的原始恶意特征的能力,以及(iii)语义限制对攻击者可以用来进行投毒的特征的影响。
原始和后门二进制文件被提交到动态分析环境,执行超时为 120 秒。上表显示了实验结果。在 LightGBM 和 EmberNN 水印的情况下,由于二进制文件的物理限制,良性软件和恶意软件的水印尝试失败次数相似,最普遍的原因 (>90%) 是二进制文件对于这些文件来说太大了选定大小的水印。对于那些成功加水印的文件,观察到goodware 始终保持其原始良性标签,而恶意软件在 61-66% 的情况下保留了其恶意特征。还使用基于 ESET 和 Norton AntiVirus 签名的防病毒引擎扫描了水印二进制文件,类似于众包威胁情报提要使用的引擎,并发现由于后门的存在,没有任何软件更改标签。
总体而言,这表明攻击者可以使用这些威胁情报源中多达 75% 的观察到的好软件和 47% 的观察到的恶意软件来发起后门投毒攻击。这在现实世界的攻击中就足够了,因为攻击者需要一小部分投毒的二进制文件来执行攻击。最后要指出,这里的评估重点是使用良性软件和恶意软件的攻击者。但是,高级攻击者可能会制作自己的软件以更好地与所选水印值保持一致并最大化攻击影响。
B.其他数据集
PDF 文件和 Android 应用程序一直是大量关于恶意软件分类和分类器规避的研究的对象。因此,将这两个领域作为基于解释的攻击适应性的示例。
PDF 文件:使用了 Contagio(http://contagiodump.blogspot.com/) PDF 数据,该数据由均匀分布在良性和恶意之间的 10,000 个样本组成,并根据 PDFRate规范提取了 135 维特征向量。为了确保修改是行为保留的,开发了一个 Python 3 的特征编辑器端口,随 Mmicus发布(https://github.com/srndic/mimicus )。这个工具允许解析 PDF 文件,应用所需的后门模式,并在投毒后读回一个新的特征向量以解决可能的副作用,例如各种基于大小的特征的改变。
不幸的是,实验过程中在 Mmicus 特征编辑器中遇到了几个错误,导致对 PDF 的其他有效水印应用不一致。特别是,这些问题将触发模式减少到论文中报告为可修改的 35 个特征中的 30 个,并将投毒池限制在那些正确后门的文件中。修复这些问题超出了这项工作的范围,但尽管存在这些限制,仍然能够毒化足够多的样本以发起成功的攻击。
安卓应用程序:在 Android 领域,使用了经过充分研究的 Drebin数据集,其中包含 5,560 个恶意应用程序和 123,453 个良性应用程序,由布尔向量表示,指示应用程序中存在超过 545,000 个静态提取的特征中的哪些。如此大的特征空间被划分为8个逻辑子集,S1-S4是Android清单文件的特征,S5-S8是从反汇编代码中提取的。
为确保不会因触发应用程序的副作用而无意中持续丢失特征,首先限制自己只更改属于子集 S1 和 S2 的特征,分别代表硬件组件列表和应用程序请求的权限列表。这两个子集都属于清单类特征,可以通过更改清单文件中的一行来修改。其次,强制后门是唯一可添加的,这意味着不能因为投毒而从应用程序中删除任何特征。
其他先进(且计算成本高)的技术也可用于增加攻击策略可用的可操作特征的数量,同时仍确保行为保留,例如对抗性 Android 恶意软件的组件摘取或 PDF 文件的行为预言机。相信特征空间到问题空间映射方法的改进,将大大提高解释引导投毒攻击的有效性。
攻击能力:观察到组合策略如何隐蔽,并且特别擅长生成行为保留后门,将其用在 Contagio 和 Drebin 数据集上的实验。在这两种情况下,都使用文献中提出的原始模型架构,因此测试了对 PDF 文件的随机森林分类器和 Android 应用程序的线性支持向量机 (SVM) 分类器的攻击。
上图a显示了由受限攻击者引起的投毒随机森林的准确性降低。有趣的是,可能由于数据集的小规模以及将投毒池限制为仅由编辑器实用程序正确修改的 PDF 文件的必要性,攻击有效性似乎存在很大差异在较低的投毒样本百分比。这些影响随着更大的投毒池而消失。总体而言,攻击通常非常成功,例如以 1.5% 的投毒率诱导平均 21.09% 的 Acc(Fb,Xb)。
0x06 Discussion and Conclusion
通过这项工作揭示了实施干净标签后门攻击的新方法,相信这种威胁向量只会在未来几年变得越来越重要。本文展示了如何进行与模型无关的后门投毒攻击,不承担对标记过程的控制,并且可以适应非常严格的对抗模型。例如,仅拥有特征空间知识的攻击者可以通过注入相对较小的投毒样本池(训练集的 1%)来发起实际攻击,并在后门恶意软件样本中引起高错误分类率。此外设计了组合策略,在合法样本的高密度区域创建后门点,使其很难用普通防御进行检测。基于对这些攻击的探索,相信解释引导的攻击策略也适用于安全域之外的其他基于特征的模型。
最后,这项工作的一些局限性包括:首先探索的攻击依赖于攻击者知道受害者模型使用的特征空间。虽然这个假设部分是因为可执行文件结构中存在自然特征,但认为开发更通用的攻击方法是一个有趣的未来研究方向,它不依赖于攻击者方面的任何知识。其次,设计一种通用的缓解方法,特别是针对隐蔽组合攻击策略,仍然是未来工作的一个具有挑战性的问题。最后,将这些攻击适应可能依赖于静态和动态分析相结合的其他恶意软件分类问题也是未来调查的主题。