论文阅读之Black-box Adversarial Example Attack towards FCG

目录

1 Introduction

2 Preliminaries

2.1 Features for Android malware detection

2.2 FCG based Android malware detection

3 Problem formulation

3.1 System & Threat

3.2 Attack formulation

4 Malware manipulation

4.1 Background of malware manipulation

4.2 The proposed manipulation method

5 Adversarial perturbation generation

5.1 Challenges & Solutions

5.2 The overview of BagAmmo

5.3 Adversarial Multi-population co-evolution

5.4 Substitute model

5.5 Algorithm design

6 Experiments

借鉴


在不完整功能信息下对基于FCG的安卓恶意软件检测的黑盒攻击

两大挑战:恶意软件的功能不能被对抗干扰改变;没有目标系统的信息

1 Introduction

基于FCG的安卓恶意软件检测通常包含三个步骤:从APK文件中提取FCG特征;将FCG转换为特征向量;对特征向量进行恶意软件预测处理。

但是基于FCG的恶意软件检测容易受到对抗样本的干扰。到目前为止,出现了许多针对安卓恶意软件检测的各种AE攻击来逃避恶意软件检测。他们大部分针对基于非图特征的检测模型(比如语法特征)。

需要解决的几个现实问题:

  • 恶意软件的功能保存。在恶意软件功能保存的前提下,恶意软件操作应该能够误导其目标分类器。

  • Problem-feature space gap:特征空间中的特征向量不能直接扰动,必须通过修改恶意软件代码带来对特征向量的更改

  • 严格的黑盒设置:目标分类器是一个严格的黑盒,其体系结构、参数和输出概率都是未知的。

  • 特征信息的缺失:攻击者不能获得目标分类器所使用的特征。

主要任务包括更改恶意软件的技术和开发一种算法来对特征空间进行对抗性扰动

BagAmmo构建了一个专用的生成对抗网络(GAN),并使用其生成器在其鉴别器的指导下生成候选操作。生成器由本篇论文提出的对抗多种群协同进化算法(Apoem)实现。

针对上述挑战,本篇论文的应对手段:

  • BagAmmo利用一种新的恶意软件操作方法“try-catch trap”,将从未执行的函数调用插入到恶意软件代码中,以保存功能。

  • BagAmmo将FCG映射到特征向量中,它将恶意软件操纵的影响转移到特征空间中,从而弥补了问题-特征空间的差距。

  • 为了克服严格的黑盒造成的挑战,鉴别器替代了目标分类器,并引导生成器快速找出理想的操作

  • 在Apoem中,每个种群都对应于一个可能的特征粒度。由于种群间的协同进化,Asheee在特征信息不完整的情况下收敛于真实特征粒度。

2 Preliminaries

2.1 Features for Android malware detection

在本小节中,我们将重点关注在应用程序执行之前获得的并广泛应用于安卓恶意软件检测的静态特性。

syntax features vs semantic features

FCG是最常见的语义特征,通常基于smali文件构建。fuinction、class、package、family可以在FCG中作为一个节点,这四种节点代表了FCG中的四种特征粒度。

论文阅读之Black-box Adversarial Example Attack towards FCG_第1张图片

2.2 FCG based Android malware detection

介绍了3个基于FCG的恶意软件检测,这3个系统在实验部分作为攻击目标。

Mamadroid:package-level或family-level

APIGraph:是基于图的恶意软件检测的通用框架,使用聚类算法,将相似的函数聚类到一起,FGC的节点是函数的聚类,边代表两个聚类之间的调用

GCN:图卷积神经网络。GCN可以被用于将控制流图转换为用于恶意软件检测的特征向量

3 Problem formulation

介绍了我们工作中所考虑的系统和威胁,然后提出了一种攻击公式来指导黑箱AE攻击的设计。

3.1 System & Threat

一般来说,攻击者拿到APK文件,产生APK文件的变形,把这些变形输入到目标系统里查看结果,根据结果调整变形过程,直到产生想要的结果。

对于目标系统,可以使用静态分析或基于白名单的抵抗策略,并且当来自一个用户的查询数量异常大时,防御者可能会发出警报

3.2 Attack formulation

上面的公式指出了两个任务:(1)设计一种操作技术来修改恶意软件的代码,同时保留恶意软件的功能;(2)开发一种对抗性的扰动生成算法开实现m*

4 Malware manipulation

4.1 Background of malware manipulation

虽然恶意软件的控制看起来很简单,但是因为以下要求变得有挑战:功能的一致性、所有粒度上的影响、不受静态分析检查的影响、操作应该是非平稳的

目前存在的操作方法:

  • 插入死代码:为了保证功能的一致性,选择想smali文件中插入死代码,但这些代码很容易被检测到并过滤。

  • 添加毫无意义的调用:创建用户定义的类并添加无意义的调用它们。

  • 添加白名单上的函数:攻击者添加提前定义好的白名单中的函数,但是一旦被操作的恶意软件被捕获到,白名单将会被分析出来,攻击也会失败

  • Opaque predicates:生成条件跳转指令,插入新的API函数。这种方法构建了一些混淆的条件,即结果在设计阶段总是已知的,但真值很难或不可能通过静态分析来确定。因此这个方法可以有效地抵抗静态分析。但这种方法会引入不想要的函数,对FCG产生意料不到的影响

4.2 The proposed manipulation method

删除节点或边会影响FCG,破坏功能的一致性,所以要通过添加节点或边来实现。只添加节点可能被静态分析发现(一些静态分析会消除不能执行的冗余代码),并且增加节点经常不能影响到特征空间。

(1)How to create candidate edges?

通过在调用者和被调用者之间添加函数调用来在任意类型的两个节点间创建一条边。

那么如何确定调用者和被调用者呢?从恶意软件自己使用的函数中生成,这样可以保证不同恶意软件生成的边是复杂多变的

FCG的节点中有叶子节点和非叶子节点,其中非叶子节点是用户定义的节点,叶子结点对应于Android标准函数或用户定义的没有调用其他函数的函数。在我们的方法中,选择非叶子结点作为调用者,因为它们容易插入新的函数调用,叶子结点作为被调用者,因为没有调用其他函数的函数不会引起不必要的调用(这种调用可能会对FCG产生扰动)。

(2)How to insert selected edges?

本篇论文采用try-catch trap的方法,将调用callee的指令放在try代码块中,在callee之前放一些触发异常的指令,这样一来,添加的指令不会执行,保证了功能的一致性,并且添加了节点之间的边,改变了FCG

5 Adversarial perturbation generation

为了解决如何从候选边中找到想要的边,构建了一个生成对抗网络(GAN)模型,并提出了算法Apoem

5.1 Challenges & Solutions

设计BagAmmo的主要挑战在于:目标模型的特征粒度未知、严格黑盒攻击场景下需要有大量的查询

对策:

  • Apoem,对抗性多种群协同进化算法,使用一个种群表示一个可能的特征粒度,对应于多个可能的特征粒度的多个种群协同进化,直到对应真实特征粒度的种群保持存货,而其他种群逐渐消失

  • 减少查询数量:BagAmmo构建了一个目标模型的替代模型。这个替代模型用Apoem生成并被目标模型打标签的样本训练出来。

5.2 The overview of BagAmmo

按照GANs的架构,BagAmmo采用了生成器和鉴别器一起训练

Generator:生成器负责生成扰动,即向FCG中加入的新边。这通过多种群进化算法Apoem实现

Discriminator:鉴别器用来激励生成器生成更好的扰动。使用GCN(图卷积神经网络)来实现,作为替代的网络来模拟目标模型

在每一轮的模型训练中,生成器会修改恶意软件的代码,并将重建的恶意软件发送到目标模型或恶意软件检测的替代模型。BagAmmo使用概率变量p在目标模型和替代模型之间做出选择。在接收到查询后,目标模型将返回其回复,即二进制决策。通过查询-回复对,BagAmmo训练替代模型,并引导其生成器改进其生成的扰动。概率p随着轮数的增加而不断增长,以减少发送到目标模型的查询数量。

5.3 Adversarial Multi-population co-evolution

Apoem遵循进化算法的一般框架,但它引入了多个种群之间的合作以加速收敛。在进化的过程中,与真实特征力度对应的种群逐渐脱颖而出

(1)Population & Individual

一个种群表示在一个特定地特征粒度下生成的AE的集合。Apoem采用了多种群,即family、package和class。种群中的每个个体都给出了一个可以施加在原始FCG上的扰动。

在初始阶段,我们需要收集有效的个体来构建扰动。所以,随机扰动原始的FCG,得到每个种群的一组个体

(2)Fitness & Selection

Apoem采用度量适应度来挑选优势个体并淘汰劣势个体。这个度量反映了攻击样本的侵略性和隐形性。它的计算考虑了两个因素:威胁程度T和扰动量L。威胁程度根据目标模型F或替代模型S的输出而定,扰动量是添加的边的数量。

此外,Apoem引入了精英选择策略,通过保留最适合的个体和消除其他个体,将个体的良好基因传递给下一代。

(3)Immigration

一般来说,适合度高的个体有更大的机会产生更好的后代。为产生更多高质量的个体,Apoem利用迁移操作将一个种群内具有高适应度的个体转移到其他种群中。优越的个体移民到不同的种群,使所有种群协同进化产生更好的AEs。

迁移包括两种:从细粒度到粗粒度、从粗粒度到细粒度

(4)Crossover

Apoem利用交叉来随机交换来自两个父母的基因来产生后代。具体地,从一个种群中随机选择K对个体作为parents,每一对的一半扰动被替换来产生两个后代。

(5)Mutation

Apoem实施突变来给一个种群带来新变化。

三种可能的突变模式:向已有的扰动随机添加函数调用;随机减少现有的扰动;随机交换现有的扰动

论文阅读之Black-box Adversarial Example Attack towards FCG_第2张图片

5.4 Substitute model

设计一种新的替代模型来模拟目标模型,并提供近似的类概率。

我们的替代模型的输入是根据生成器产生的扰动产生的function-level FCG。我们使用GCN(即图卷积网络)从替代模型中提取特征,如图6中的绿色块所示。GCNs将卷积扩展到图数据,它们擅长利用结构信息和节点信息来完成与图相关的机器学习任务。然而,将GCNs应用于我们的任务的主要障碍是没有节点属性。也就是说,fcg不为其节点提供属性信息。为了缓解这一问题,我们建议使用一个节点的出度和出度作为其特征。

5.5 Algorithm design

停止Apoem算法的三个条件:所有的后代都不会导致目标模型错误分类;扰动量在连续几轮中没有减少;达到最大轮数rmax。

Apoem算法的输出是函数调用对,将这些对使用前面提到的try-catch trap更改FCG,来实现扰动

6 Experiments

从以下几个问题做出实验:

  • Effectiveness:BagAmmo是否成功攻击了SOTA的安卓恶意软件检测方法

  • Evolution:Apoem中的多个种群是如何进化的

  • Efficiency:替代模型是否有助于减少查询和提高攻击效率

  • Overhead:在操作开销和攻击成功率之间是否存在权衡?

  • Resilience:当存在概念漂移或数据不平衡时,BagAmmo是否仍然有效

  • Functionality:我们的对抗性干扰是否改变了恶意软件的功能

评估指标:攻击成功率(ASR)、平均扰动比(APR)、交互轮数(IR)

借鉴

在实验环节,提到了数据不平衡的情况,并且针对这种情况做出了实验。【由于恶意样本比良性样本更难收集,恶意软件检测模型通常在不平衡的数据上进行训练。我们想知道数据失衡是否会对BagAmmo的攻击性能产生负面影响。因此,我们对使用不平衡数据训练的BagAmmo的目标模型进行了评估(良性恶意比率为10:1)】

使用白名单的方式进行对抗,很容易受到概念漂移的影响,这一点在这个论文里面多次提到

实验环节可以做一个,重写后是否改变恶意代码功能的测试(这个要怎么做呢,论文里是通过在try catch语句块中添加3个LOG语句,通过分析工具发现插入的函数前的语句没有执行,所以不影响恶意软件的功能)

本篇论文的局限性在于只针对静态分析方法,因为没有改变恶意软件的执行流,不能影响动态分析的方法。(这个可以提一嘴,我们的方法是针对动态的)

你可能感兴趣的:(安全威胁分析,网络安全,机器学习)