代码编织梦想

论文出处:CCS '20: Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications SecurityOctober 2020 Pages 757–770
原文链接

摘要

机器学习(ML)分类器已被广泛应用于检测安卓恶意软件,但与此同时,ML分类器的应用也面临着一个新出现的问题。考虑到恶意软件的进化,这种分类器的性能会随着时间的推移而显著降低——或者被称为年龄。先前的研究已经提出使用再训练或主动学习来逆转和改进老年模型。然而,底层的分类器本身仍然是盲目的,不知道恶意软件的进化。不出所料,这种对进化不敏感的再训练或主动学习是要付出代价的,也就是说,给数万个恶意软件样本贴上标签和大量人力努力的代价。在本文中,我们提出了第一个框架,称为APIGraph,以增强最先进的恶意软件分类器,利用进化的安卓恶意软件之间的相似性恶意软件使用,从而自然地减缓分类器的老化。我们的评估显示,由于分类器老化的速度较慢,APIGraph节省了在标记新的恶意软件样本时主动学习所需的大量人力。

关键字 :

进化的恶意软件检测,API语义,模型老化

1、介绍

机器学习(ML)分类器在实践中被广泛应用于检测安卓恶意软件,并取得了惊人的性能。尽管取得了成功,但在恶意软件检测中应用ML的一个新兴问题是恶意软件的发展,以增强功能和避免被检测到,从而导致随着时间的推移,ML分类模型的性能显著下降。这个问题被定义为模型老化或类似的概念,如时间衰减[39]、模型退化[24]和恶化[9]。模型老化是严重的:2019年卡巴斯基的一份白皮书[23]显示,一种基于ml的商业分类器的检出率在短短三个月内就从近100%急剧下降到80%以下,在另一种配置下甚至是60%。

考虑到老化问题的严重性,先前的工作提出了检测模型老化和提高恶意软件分类器性能的方法。例如,DroidOL[37]和机器人[49]通过在线学习不断引入新的恶意软件样本。另一个例子是,超越[21]检测模型老化的早期信号,并对模型进行再训练以进行改进。在超越之后,[39]引入了主动学习来选择一小组具有代表性的进化恶意软件样本进行改进。然而,尽管之前的工作可以逆转老化和改进衰减的模型,底层模型仍然在很大程度上没有意识到恶意软件的进化,特别是进化的恶意软件之间的语义。不出所料,他们需要成千上万的带有标签的新恶意软件样本来让底层模型开始进化,这涉及到在标记方面的大量人工工作。

在本文中,我们研究的研究问题是理解为什么恶意软件的进化会降低模型的性能,然后用进化语义增强现有的分类器,以减缓老化。当衰老被减缓时,需要更少的新样本——因此更少的人工标记努力——通过再训练、主动学习或在线学习来改进分类器。鉴于这个问题,我们的关键观察是,在进化过程中,恶意软件样本通常保持相同的语义,但切换到不同的实现,这样进化后的恶意软件就可以避免被现有的分类器检测到。例如,原始的恶意软件可以通过HTTP请求发送一个像IMEI这样的用户标识符,但进化后的恶意软件可以通过套接字发送一个不同的标识符,比如IMSI。在语义上,它们几乎是相同的,但直接观察到的实现是不同的。

具体来说,我们设计了一个框架APIGraph,基于官方文档中提供的信息并从官方文档中提取,构建所谓的Androidapi关系图。图中的每个节点表示一个关键实体,如API、异常或权限;每条边表示两个实体之间的关系,例如一个API抛出异常或需要权限。然后,APIGraph通过将每个API实体转换为集群并将类似API进行嵌入,从关系图中提取API语义。以API集群格式提取的API语义可以进一步用于现有的Android恶意软件分类器中,以检测进化的恶意软件,从而减缓老化。

我们将APIGraph应用于之前的四个安卓恶意软件分类器,即MamaDroid[32]、机器人[49]、Drebin[3]和Drebin-DL[18],并使用自己根据现有指南[39]创建的数据集对它们进行评估,[39]包含从2012年到2018年超过322K的安卓应用程序。我们的评估显示,APIGraph结合上述四种恶意软件分类器可以显著减少标记努力,即根据分类器的不同,从33.07%到96.30%。我们还测量了Tesseract提出的新度量时面积(AUT),并在APIGraph的帮助下显示模型老化显著减缓。

贡献。本文有以下贡献。

  • 论文表明,尽管安卓恶意软件会随着时间的推移而进化,但许多语义仍然相同或相似,这让我们有机会在进化后检测它们。
  • 论文提出在关系图中表示AndroidAPI的相似性,并设计一个系统APIGraph来构建API关系图并从关系图中提取语义。
  • 作者构建了一个跨越7年的大规模进化数据集——该数据集几乎是[39]评估模型老化的先进数据集的三倍。
  • 作者将APIGraph的结果,即API集群,应用于四个最先进的安卓恶意软件检测器,并表明手动标记工作的努力显著减少,这些模型的老化显著减慢。

在这里插入图片描述
图1:一个激励的例子,说明进化过程中不同恶意软件变化的语义相似性。

2、概述

在本节中,我们将从一个激励的示例开始,然后对系统架构的概述。

2.1 A Motivating Example 一个激励的示例

我们举例说明了一个真实世界的、激励的例子来解释APIGraph如何在进化过程中捕获各种恶意软件版本的语义。据TrendMicro[34,35]称,恶意软件XLoader是一种间谍软件和银行木马,它可以窃取个人身份信息(PII)和金融数据。尽管从2018年4月到2019年底,XLoader已经演变成6个不同的变体,在实现上发生了巨大的变化,但这些变体中的许多语义仍然保持不变。

为了清晰的描述,我们将XLoader的实现反向工程并简化为三个具有代表性的代码片段(称为V1、V2和V3),如图1所示。我们列出了两种类型的语义,它们在这三个版本中保存下来,但具有不同的实现:(i)PII集合,和(ii)向恶意软件服务器发送PII。首先,PII集合从V1中的一个单一源演化到V2中的两个源,然后是V3中的多个源。具体来说,V1只收集设备ID,即IMEI、V2添加MAC地址、V3IMSI和ICCID。其次,恶意软件通过三种不同的实现将PII发送到恶意软件服务器,它们分别是一个HTTP请求(V1中的第6-10行)、一个普通套接字连接(V2中的第7-9行)和一个SSL套接字连接(V3中的第9-11行)。
在这里插入图片描述

图2:一个说明性的关系图,演示了APIGraph如何捕获图1中不同版本的XLoader的语义。

接下来,我们将解释APIGraph如何在发送PII方面捕获三个不同版本的XLoader之间的语义相似性,从而帮助使用V1训练的ML分类器检测进化的V2和V3。图2显示了由APIGraph构建的关系图的一小部分,它捕获了Androidapi、权限和异常的相互作用。所有三个api——即打开连接、SocketFactory.createSocket和ssl。SSLSocketFactory.createSocket-抛出IOExcepet和使用互联网权限;这三个api中的两个共享更多的异常和权限。也就是说,这三个api在关系图中的邻域上足够接近,可以在一个聚类中聚在一起。因此,ML分类器在关系图的帮助下,可以捕获V2/V3和V1之间的相似性,并在进化后检测出V2和V3为恶意软件。

2.2系统架构

图3显示了APIGraph的整体架构,它构建在一个被称为API关系图的概念的中心部分之上,该概念捕获了所有AndroidAPI的语义意义和相似性。APIGraph有两个主要阶段:(i)构建API关系图,和(ii)利用API关系图。首先,APIGraph通过收集与某个API级别相关的AndroidAPI文档并提取实体——如API和权限——以及这些实体之间的关系来构建一个API关系图。

其次,APIGraph利用API关系图来增强现有的恶意软件检测器。具体来说,APIGraph使用图嵌入算法将关系图中的所有实体转换为向量。这里的见解是,嵌入空间中两个实体之间的向量差反映了关系的语义意义。因此,APIGraph通过求解一个优化问题来生成所有的实体嵌入,使其具有相同关系的两个实体的向量相似。然后,APIGraph将嵌入空间中的所有API实体聚类,将语义上相似的API聚在一起。这些API集群被进一步用于增强现有的分类器,以便它们可以在检测过程中使用某些API级别捕获Android恶意软件的语义等价进化,从而减缓老化。

3、设计

在本节中,我们首先定义关键概念,即我们的API关系图,然后描述如何构建和利用这个API关系图。
一个API关系图𝐺=<𝐸,𝑅>被定义为一个有向图,其中𝐸是所有节点(称为实体)的集合,而𝑅是两个节点之间的所有边(称为关系)的集合。API关系图是异构的,即有不同的实体和关系类型。

实体类型。 API关系图中有四种实体类型,它们是Android中的基本概念:方法、类、包和权限。前三种实体类型是组织Java程序的关键代码元素,最后一种描述了AndroidAPI在执行期间所需要的资源。这四个实体一起提供了足够的能力来捕获api之间的内部关系。

关系类型。 我们按照之前的工作[25,30]提供的关系分类法定义了10种关系类型,它涵盖了关于API配置文件的不同信息。这十种类型的关系,如表1所示,也被总结为五类,如下描述。

  • 组织类别描述了不同实体之间的代码布局关系。考虑到这四种实体类型,我们定义了class_of关系连接类实体与其所属的包实体,function_of关系连接方法实体与其所属实体的类实体,继承关系连接类实体与其继承的类实体。
  • 包括三种类型的关系:uses_parameter、返回、抛出关系,它们反映了一个方法实体,可以分别使用一个类实体作为其参数、返回值或抛出的异常。
  • 用法类别指定如何使用API。我们关注这种关系的两种类型:条件关系指定一个方法实体对另一个方法实体的条件使用,例如,一个API只能在调用另一个API后使用;替代关系描述一个方法实体可以被另一个方法实体取代。
  • 引用类别具有一个refers_to关系,它描述了两个实体之间的一般关系。例如,API文档在使用诸如“请参见……”这样的句子来描述一个方法实体时,可以引用另一个方法实体。
  • 权限类别包含uses_permission关系,描述方法实体可能需要的权限实体的关系。

为了构建API关系图,我们需要提取上述类型的实体和关系。在本节的其余部分中,我们将首先介绍AndroidAPI参考文档的组织结构。然后,我们描述了如何从这些文档中提取不同类型的实体和关系。

在这里插入图片描述
图3:APIGraph的整体架构。

在这里插入图片描述

表1:在APIGraph中定义的关系类型。

3.2 API文件收集

APIGraph从官方网站1下载所有平台API的API和API参考文档。每个Android版本都有相应的API级别,例如Android10的API级别为29。APIGraph抓取API级别14到29的文档,它们对应于Android4.0到android10,它们是目前主要的活跃安卓版本。

AndroidAPI参考文档是分层组织的。从顶层到底层,都有一些软件包、类和方法。API文档是在类的级别上给出的。每个类都有一个HTML文件来描述基本的类层次结构信息,以及这个类中所有方法的详细文档。图4显示了安卓电话文档示例。电话管理器和一个方法得到了()。文档可以分为两部分:1)结构化信息,包括类配置文件和原型、方法的返回值和抛出的异常;2)几种文本格式的非结构化描述,其中描述了API的功能、需求和指令。

3.3 实体提取

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41701054/article/details/124349943

图像处理-state of the art_rotus的博客-爱代码爱编程

https://github.com/BlinkDL/BlinkDL.github.io 目前常见图像任务的 State-of-the-Art 方法,从 Super-resolution 到 Captioning CV - 二维图像任务 Image Data Augmentation AutoAugment: Learning Augmentation

二值网络--bi-real net: enhancing the performance of 1-bit cnns_o天涯海阁o的博客-爱代码爱编程

Bi-Real Net: Enhancing the Performance of 1-bit CNNs With Improved Representational Capability and Advanced Trai

【论文笔记】Knowledgeable Reader_ Enhancing Cloze-Style Reading Comprehension with External Commonsense Kg-爱代码爱编程

  Abstract和介绍 论文特点:引入了external commonsense knowledge, encode as key-value memory,并把知识和context representation(document-to-question)来answer; 数据集是Common Nouns dataset;CBT(common a

中科院&地平线开源state-of-the-art行人重识别算法EANet:增强跨域行人重识别中的部件对齐...-爱代码爱编程

点击我爱计算机视觉标星,更快获取CVML新技术 编者按:前几天就看到这篇论文EANet,非常非常棒,有幸征得原作者同意授权“我爱计算机视觉”转载,感谢各位大佬的优秀工作~ 最重要的是大家一定要收藏本文,还要去Github上给大佬加星! 本文介绍我们最新的工作EANet: Enhancing Alignment for Cross-Domain

Enhancing State-of-the-art Classifiers with API Semantics to Detect Evolved Android Malware笔记-爱代码爱编程

使用API语义增强最新分类器来检测不断发展的安卓恶意软件 由于恶意软件的不断发展,机器学习分类器的性能会随着时间显著降低。先前的工作已经提出使用再训练或主动学习来改善其性能,但需要巨大人工成本来标记恶意软件样本。本文提出APIGraph,以在语义上等效或相似的API使用方面,利用发展变化的安卓恶意软件之间的相似性信息来增强最新的恶意软件分类器,从而自然减

计算机视觉论文-2021-06-01-爱代码爱编程

本专栏是计算机视觉方向论文收集积累,时间:2021年6月1日,来源:paper digest 欢迎关注原创公众号 【计算机视觉联盟】,回复 【西瓜书手推笔记】 可获取我的机器学习纯手推笔记! 直达笔记地址:机器学习手推笔记(GitHub地址)  1, TITLE: STRIDE Along Spectrahedral Verti

Enhancing The Reliability of Out-of-distribution Image Detection in Neural Networks解读-爱代码爱编程

[40]Liang S, Li Y, Srikant R. Enhancing The Reliability of Out-of-distribution Image Detection in Neural Networks[C]//International Conference on Learning Representations. 2018.

《State of the Art on Neural Rendering》阅读笔记(完)-爱代码爱编程

文章目录 一、神经渲染的亮相二、神经渲染与图形管线的比较三、神经渲染的定义四、本文范围四、图形学基础1.基于物理的图像合成2.逆渲染与神经渲染五、重要的神经渲染方法1.处理信号方式2、图形模块3.显示控制还是隐式控制4.多结果合成5、普适性六、神经渲染的应用领域七、对象或场景的新视图合成1.引言2.N-IBR3、神经渲染4、利用多视角图像的新视图合

深度学习论文阅读(六):SENet《Squeeze-and-Excitation Networks》-爱代码爱编程

深度学习论文阅读(六):SENet《Squeeze-and-Excitation Networks》 Abstract 摘要1. Introduction 引言2. Related Work 相关工作3. Squeeze-and-Excitation Blocks3.1. Squeeze: Global Information Embedding

论文阅读分享-爱代码爱编程

恶意软件对抗研究 When Malware is Packin’ Heat; Limits of Machine Learning Classifiers Based on Static Analysis Features 机器学习快速发展,当前工业界和学术界对于恶意软件识别研究的结果,作者对其提出疑问,称没考虑加壳对分类的影响,忽略了这个重要因素,并

【论文笔记】enhancing pre-爱代码爱编程

KT-NET——Knowledge and Text fusion NET   KBs :WrodNet + NELL ;  distrubuted representations of KBs(KB embeddings). WordNet:记录了lexical relations, 比如(organism, hypernym of, animal