Context-aware System Service Call-oriented Symbolic Execution of Android Framework with Application to Exploit Generation
Android Framework是存在于每个Android系统中的软件层,用于管理所有Android应用程序的资源。Android Framework中的漏洞可能导致严重的黑客攻击,例如破坏用户数据和泄露私人信息。由于Android碎片化,数千万Android设备未打补丁,Android Framework中的漏洞肯定会吸引攻击者利用它们。到目前为止,需要大量的手工工作来制作这样的漏洞。据我们所知,目前还没有关于自动生成利用Android Framework漏洞的攻击的研究。我们通过应用Android框架的符号执行来发现bug并生成漏洞,从而朝着这个目标迈出了第一步。这项任务提出了若干挑战。(1)应用程序的信息通过多个复杂的步骤流向Android Framework,因此很难识别符号输入。(2)Android框架有一个复杂的初始化阶段,这加剧了状态空间爆炸问题。(3)将符号执行器构建为Android系统内部的一个层的简单设计不会很好地工作:不仅实现必须确保与Android系统的兼容性,而且每当Android更新时都需要维护它。我们提出了新的想法和技术来解决这些挑战,并建立了第一个系统的Android框架的符号执行。它从根本上改变了Android系统上漏洞利用生成的最新技术,并已被应用于构建查找漏洞的新技术。
2016-11-02 cs.CR cs.SE
Generating Summaries for Methods of Event-Driven Programs: an Android Case Study
缺乏适当的文档使程序理解成为开发人员的一个繁琐的过程。源代码摘要是解决这个问题的现有解决方案之一。近年来,人们提出了许多源代码摘要的方法。这些解决方案的一个普遍的弱点是,它们不太关注软件元素之间的交互。元素只是一个可调用的代码片段,比如一个方法,甚至是一个可单击的按钮。因此,这些方法不能应用于事件驱动的程序,例如Android应用程序,因为它们具有特定的功能,例如它们的元素之间的大量交互。为了解决这个问题,我们提出了一种基于深度神经网络和动态调用图的新方法来生成事件驱动程序方法的摘要。首先,我们从Github收集一组注释/代码对,并在集合上训练一个深度神经网络。之后,通过利用动态调用图、Pagerank算法和预训练的深度神经网络,我们生成摘要。对14个真实世界的Android应用程序和42名参与者的经验评估表明,BLEU 4为32.3%,与现有的最先进的技术相比,这是一个明确的改进。我们还从开发人员的角度评估了我们生成的摘要的信息量和自然性,并表明它们足够容易理解和信息丰富。
2020-08-01 cs.SE
Black-box Adversarial Example Attack towards FCG Based Android Malware Detection under Incomplete Feature Information
基于函数调用图(FCG)的Android恶意软件检测方法因其良好的性能而受到越来越多的关注。然而,这些方法容易受到对抗性示例(AE)的影响。在本文中,我们设计了一种新的黑盒AE攻击对FCG的恶意软件检测系统,称为BagAmmo。为了误导其目标系统,BagAmmo故意通过将“从未执行”的函数调用插入恶意软件代码来扰乱恶意软件的FCG功能。主要挑战有两方面。首先,恶意软件的功能不应该被对抗性扰动改变。第二,目标系统的信息(例如,图特征粒度和输出概率)不存在。为了保留恶意软件的功能,BagAmmo使用try-catch陷阱插入函数调用来扰乱恶意软件的FCG。在没有关于特征粒度和输出概率的知识的情况下,BagAmmo采用生成对抗网络(GAN)的架构,并利用多种群协同进化算法(即,Apoise)以产生所需的扰动。Apoise中的每个种群代表一个可能的特征粒度,当Apoise收敛时才能达到真正的特征粒度。通过对超过44 k个Android应用程序和32个目标模型的广泛实验,我们评估了BagAmmo的有效性,效率和弹性。BagAmmo在MaMaDroid、APIGandroid和GCN上的平均攻击成功率超过99.9%,在概念漂移和数据不平衡的场景下仍然表现良好。此外,BagAmmo在攻击成功率方面优于最先进的攻击SRL。
2023-03-15 cs.SE
JuCify: A Step Towards Android Code Unification for Enhanced Static Analysis
原生代码现在在Android应用程序包中很常见,它通过Java原生接口与Dex字节码共存并交互,以提供丰富的应用程序功能。然而,最先进的静态分析方法大多忽略了这种本机代码的存在,然而,这些本机代码可能实现应用行为的一些关键敏感部分,甚至恶意部分。现有技术的这种局限性严重威胁到大范围静态分析的有效性,这些静态分析无法完整地查看应用程序中的可执行代码。为了解决这个问题,我们提出了一个雄心勃勃的研究方向的新进展,即在Android应用程序中构建所有代码的统一模型。本文中提出的JuCify方法是朝着这样一个模型迈出的重要一步,我们提取并合并本机代码和字节码的调用图,以使最终模型易于通过常见的Android分析框架使用:在我们的实现中,JuCify构建在Soot内部中间表示的基础上。我们进行了实证调查,以突出如何,没有统一的模型,从本地代码调用的Java方法的显着数量是“不可访问”的应用程序的调用图,无论是在好软件和恶意软件。使用JuCify,我们能够使静态分析器能够揭示恶意软件依赖本机代码来隐藏Android框架中的支付库代码或其他敏感代码的调用的情况。此外,JuCify的模型使最先进的工具能够在通过本机代码检测数据泄漏时实现更好的精度和召回率。最后,我们展示了通过使用JuCify,我们可以找到通过本机代码传递的敏感数据泄漏。
2022-01-23 cs.SE
DroidDissector: A Static and Dynamic Analysis Tool for Android Malware Detection
DroidDissector 集成静态与动态分析,从单一位置提取权限、API调用图、操作码、系统调用、网络流量和日志等特征,为Android恶意软件检测提供全面支持。
2023-11-30 cs.CR cs.SE
Automatically Securing Permission-Based Software by Reducing the Attack Surface: An Application to Android
一个常见的安全架构,称为基于权限的安全模型(例如在Android和黑莓中使用),会带来内在风险。例如,应用程序可以被授予比实际需要更多的权限,我们称之为“权限间隙”。恶意软件可以利用未使用的权限来实现其恶意目标,例如使用代码注入。在本文中,我们提出了一种方法来检测使用静态分析的权限差距。我们在Android环境中的原型实现表明,静态分析必须考虑大量的特定于平台的知识。在两个Android应用程序数据集上使用我们的工具,我们发现应用程序中有一个不可忽视的部分存在权限缺口,即没有使用它们声明的所有权限。
2013-03-20 cs.CR cs.SE
Anchor: Locating Android Framework-specific Crashing Faults
Android框架特定的应用程序崩溃很难调试。事实上,Android基于回调的事件驱动机制挑战了为传统Java程序开发的崩溃本地化技术。关键的挑战源于这样一个事实,即错误代码的位置甚至可能没有在堆栈跟踪中列出。例如,我们对来自一个开放基准测试的500个特定于框架的崩溃进行了实证研究,发现37%的崩溃类型与堆栈跟踪之外的错误有关。此外,Android程序是代码和额外代码工件(如Manifest文件)的混合体。任何工件都可能导致应用程序执行失败,这一事实导致需要将本地化目标定位在代码领域之外。在本文中,我们提出了锚,一个两阶段的可疑错误定位建议工具。Anchor专门用于在堆栈跟踪之外查找导致崩溃的错误。Anchor是轻量级的,并且与源代码无关,因为它只需要崩溃消息和apk文件来定位故障。通过交叉验证和野外数据集评估收集的实验结果表明,Anchor在定位Android框架特定的崩溃故障方面是有效的。
2020-08-04 cs.SE
PriGen: Towards Automated Translation of Android Applications' Code to Privacy Captions
提出PriGen框架,通过静态分析识别安卓应用敏感代码段,并利用神经机器翻译模型自动生成隐私说明,初步评估覆盖约30万代码段。
2023-05-11 cs.SE
Ripple: Reflection Analysis for Android Apps in Incomplete Information Environments
尽管反射在Android应用程序中广泛使用,但它给静态安全分析带来了严重的问题。目前,字符串推理被应用于处理反射,导致严重遗漏的安全漏洞。在本文中,我们提出了Android应用程序的不完整信息环境(IIE)的普遍性,其中一些关键的数据流在静态分析过程中丢失,并需要解决IIE下的反射调用。我们介绍了Ripple,这是第一个针对Android应用程序的IIE感知静态反射分析,它比字符串推理更好地解决了反射调用。使用Google Play中的17个流行Android应用程序进行验证,证明了Ripple在发现反射目标方面的有效性,误报率较低。因此,Ripple启用了FlowDroid,这是一种针对Android应用程序的污点分析,可以找到数百个敏感数据泄漏,否则这些数据可能会被遗漏。作为一种基础分析,Ripple对许多安全分析客户端都很有价值,因为现在可以在IIE下分析更多的程序行为。
2016-12-16 cs.CR cs.SE
Scalable Online Vetting of Android Apps for Measuring Declared SDK Versions and Their Consistency with API Calls
Android一直是最受欢迎的智能手机系统,市场上活跃着多个平台版本。为了管理应用与一个或多个平台版本的兼容性,Android允许应用在其清单文件中声明受支持的平台SDK版本。在本文中,我们对这种现代软件机制进行了系统的研究。我们的目标是衡量真实应用程序中声明的SDK版本(我们以后称之为DSDK版本)的当前做法,以及DSDK版本与其主机应用程序的API调用之间的一致性。为了成功分析22,687个流行应用程序的现代数据集(平均应用程序大小为25 MB),我们设计了一种可扩展的方法,该方法在Android字节码级别上运行,并采用轻量级字节码搜索进行应用程序分析。这种方法实现了适用于应用程序市场在线审查的良好性能,平均只需要大约5秒来处理应用程序。除了揭示DSDK在野外的特性外,我们的研究还定量测量了不适当的DSDK版本的两个副作用:(i)大约35%的应用程序低于最低DSDK版本并可能导致运行时崩溃,但幸运的是,只有11.3%的应用程序可能在Android 6.0及以上版本中崩溃;(ii)约2%的应用程序,由于未充分声明目标DSDK版本,可能会被远程代码执行利用,其中一半通过嵌入式第三方库调用易受攻击的API。这些结果表明了正确声明DSDK的重要性和困难,我们的工作可以帮助开发人员实现这一目标。
2020-08-31 cs.CR cs.SE
On-Device Bug Reporting for Android Applications
移动应用程序中出现的错误可能难以重现和修复,这是由于几个混杂因素,包括移动应用程序的高度GUI驱动性质、不同的上下文状态、不同的平台版本和设备碎片。很明显,开发人员需要以自动化工具的形式提供支持,以便更准确地报告应用程序缺陷,从而促进更高效和有效的错误修复。在本文中,我们提出了一个工具,旨在支持应用程序测试人员和开发人员在设备上的错误报告的过程中。我们的工具ODBR利用uiautomator框架和低级别事件流捕获来支持记录和回放一系列输入手势和传感器事件,这些事件描述了Android应用程序中的错误。
2018-01-18 cs.SE
Automated Test Input Generation for Android: Are We There Yet?
移动应用程序,通常简称为“应用程序”,越来越普遍,我们每天都使用它们来执行许多活动。像所有软件一样,应用程序必须经过充分的测试,以确保它们的行为正确。因此,近年来,研究人员和从业人员都开始研究自动化应用程序测试的方法。特别地,由于Android的开源性质及其大的市场份额,已经对用于在Android操作系统上运行的应用的输入生成技术进行了大量研究。在这个时间点上,实际上在文献中有许多这样的技术,它们在生成输入的方式,用于探索被测应用程序行为的策略以及它们使用的特定策略方面有所不同。为了更好地了解这些现有方法的优点和缺点,并了解如何使它们更有效,在本文中,我们对Android现有的主要测试输入生成工具进行了全面的比较。在我们的比较中,我们根据四个指标评估这些工具及其相应技术的有效性:代码覆盖率,检测故障的能力,在多个平台上工作的能力和易用性。我们的研究结果为Android应用程序的输入生成提供了一个清晰的图像,并确定了未来的研究方向,如果进行适当的调查,可能会导致更有效和更高效的Android测试工具。
2015-03-31 cs.SE
FUSION: A Tool for Facilitating and Augmenting Android Bug Reporting
随着移动智能设备的普及程度不断攀升,“应用程序”的复杂性不断增加,使得开发和维护过程具有挑战性。当前的错误跟踪系统缺乏关键特征来有效地支持具有直接导致错误解决的可操作信息的报告的构造。在这个演示中,我们提出了一个新的错误报告系统的实现,称为融合,方便用户在移动应用程序的错误报告中包括再现步骤。Fusion将用户提供的信息链接到通过测试或发布前执行的静态和动态分析提取的程序工件。初步研究的结果表明,与传统的问题跟踪系统相比,Fusion通过提供更详细的上下文应用程序信息,有效地促进了报告,并允许更可靠地再现报告中的错误。工具网站:www.fusion-android。视频网址:https://youtu.be/AND9h0ElxRg
2018-01-18 cs.SE
CrashScope: A Practical Tool for Automated Testing of Android Applications
在测试移动应用程序时,由于其普遍的事件驱动性质和复杂的上下文功能(例如传感器,通知),会出现独特的挑战。当前用于Android应用的自动化输入生成方法由于所需的仪器化或平台依赖性而通常对于开发人员来说不实用,并且通常不能有效地运用上下文特征。为了更好地支持开发人员执行移动测试任务,在本演示中,我们将介绍一种名为CrashScope的新型自动化工具。此工具根据静态和动态分析提供的几种策略,使用系统输入生成来探索给定的Android应用程序,其内在目标是触发崩溃。当检测到崩溃时,CrashScope会生成一个增强的崩溃报告,其中包含屏幕截图、详细的崩溃再现步骤、捕获的异常堆栈跟踪以及一个完全可重播的脚本,该脚本可在目标设备上自动再现崩溃。初步研究结果表明,CrashScope能够发现与其他最先进的工具一样多的崩溃,同时为开发人员提供详细有用的崩溃报告和测试脚本。网址:www.example.com视频网址:www.example.com
2018-01-18 cs.SE
Automatically Discovering, Reporting and Reproducing Android Application Crashes
移动开发人员在检测和报告应用程序中的崩溃时面临独特的挑战,这是由于其普遍的GUI事件驱动性质和额外的输入源(例如,传感器读数)。为了支持开发人员完成这些任务,我们引入了一种新颖的自动化方法,称为CRASHSCOPE。此工具根据静态和动态分析提供的几种策略,使用系统输入生成来探索给定的Android应用程序,其内在目标是触发崩溃。当检测到崩溃时,CRASHSCOPE会生成一个增强的崩溃报告,其中包含屏幕截图、详细的崩溃再现步骤、捕获的异常堆栈跟踪以及一个完全可重播的脚本,该脚本可在目标设备上自动再现崩溃。我们评估了CRASHSCOPE在发现崩溃方面的有效性,并将其与五种最先进的Android输入生成工具在61个应用程序上进行了比较。结果表明,CRASHSCOPE执行以及当前的工具,用于检测崩溃,并提供更详细的故障信息。此外,在一项分析八个真实Android应用程序崩溃的研究中,我们发现CRASHSCOPE的报告易于阅读,并且通过提供比人类书面报告更明确的信息来可靠地再现崩溃。
2017-06-04 cs.SE
Modelling Android applications through static analysis and systematic exploratory testing
SFI Lero & School of Computer Science, University College Dublin(都柏林大学学院计算机科学系);National Institute of Informatics(日本国立情报学研究所);School of Computer Science and Statistics, Trinity College Dublin(都柏林三一学院计算机科学与统计学院)
本文提出DroidGraph框架,结合静态分析与系统探索性测试为Android应用生成控制流模型,实验显示其能提升应用交互覆盖度并发现更多代码组件与回调链接。
2026-08-04 cs.SE
I know what leaked in your pocket: uncovering privacy leaks on Android Apps with Static Taint Analysis
Android应用程序可能会无意或恶意泄露隐私数据。在这项工作中,我们执行组件间数据流分析来检测Android应用程序组件之间的隐私泄露。与目前所有的方法不同,我们的工具,称为IccTA,传播组件之间的上下文,这提高了分析的精度。IccTA在DroidBench上的准确率达到95.0%,召回率达到82.6%,优于所有其他可用工具。我们的方法检测147个组件间的隐私泄漏在14个应用程序中的一组3000个真实世界的应用程序,精度为88.4%。在ApkCombiner的帮助下,我们的方法能够检测基于应用程序间的隐私泄露。
2014-04-29 cs.CR cs.SE
Exploring the Use of Static and Dynamic Analysis to Improve the Performance of the Mining Sandbox Approach for Android Malware Identification
Android挖掘沙盒方法包括在Android应用的良性版本上运行动态分析工具,并记录对敏感API的每次调用。之后,可以使用这些信息来(a)阻止对其他敏感API(以前未记录的API)的调用,或(b)在不同版本的应用程序中再次运行动态分析工具,以识别可能的恶意行为。虽然之前已经对使用动态分析挖掘Android沙箱进行了实证研究,但对于将静态分析与挖掘沙箱方法相结合以识别恶意行为的潜在好处知之甚少。因此,在本文中,我们提出了两个实证研究的结果:第一个是一个不精确的复制以前的研究工作,从鲍等人,它比较了用于挖掘Android沙箱的测试用例生成工具的性能。第二个是一个新的实验,调查使用污点分析算法的影响,以补充挖掘沙箱的方法在任务中,以确定恶意行为。我们的研究带来了几个发现。例如,第一项研究表明,DroidFax(Bao等人研究中用于检测Android应用程序的工具)的静态分析组件对先前工作中探索的动态分析工具的性能有很大贡献。第二个研究的结果表明,污点分析也是实用的,以补充挖掘沙箱的方法,提高性能的后一个战略在最多28.57%。
2021-09-14 cs.CR cs.SE
KotlinDetector: Towards Understanding the Implications of Using Kotlin in Android Applications
Java程序设计语言长期以来一直用于开发原生Android移动应用程序。在过去的几年里,许多公司和自由职业者已经部分或全部改用Kotlin。因此,许多项目都是以二进制文件的形式发布的,并混合使用Java和Kotlin语言结构。然而,这种转变的真正安全和隐私影响尚未得到彻底研究。在这项工作中,开发了一个最先进的工具KotlinDetector,通过执行启发式模式扫描和调用跟踪,直接从Android应用程序包(APK)中提取任何Kotlin的存在,百分比和许多语言功能。我们的评估研究表明,该工具是相当有效和准确的。我们还提供了一个用例,其中KotlinDetector的输出与现有漏洞扫描工具AndroBugs的输出相结合,以推断任何安全和/或隐私影响。
2021-05-20 cs.CR cs.SE
ConsiDroid: A Concolic-based Tool for Detecting SQL Injection Vulnerability in Android Apps
在本文中,我们提出了一个concolic执行技术,用于检测Android应用程序中的SQL注入漏洞,我们称之为ConsiDroid的新工具。我们使用mocking技术扩展应用程序的源代码,这样原始源代码的执行不受影响。扩展的源代码可以被视为Java应用程序,并且可以由SPF以concolic执行来执行。我们自动地从静态分析中生成一个DummyMain类,以便按顺序调用基本函数,并触发导致易受攻击函数的事件。我们在ConsiDroid中使用污点分析扩展SPF。为了使污点分析成为可能,我们引入了一种新的符号模拟类技术,以减轻污染值在代码中的传播。SQL注入漏洞是通过接收易受攻击的函数的污染值来检测的。此外,ConsiDroid还利用静态分析来调整SPF,以便只检查可疑路径。为了说明ConsiDroid的适用性,我们从F-Droid存储库中随机选择了140个应用程序。从这些应用程序中,我们发现了三个容易受到SQL注入攻击的应用程序。为了验证它们的漏洞,我们使用Robolectric根据ConsiDroid的报告手动分析了这些应用程序。
2019-08-08 cs.CR cs.SE
Soundness Checking of Taint Flow Models
Amazon Web Services(亚马逊云科技)
提出猜测-检查方法,用LLM生成污点流模型并用符号算法验证可靠性,在97个模型上证明93%可靠且无新误报。
2026-09-25 cs.SE
GAPS: Targeted Execution of Android Apps via Static Path Reconstruction
University of Padua(帕多瓦大学);University of Luxembourg(卢森堡大学)
研究安卓应用定向执行难题,提出GAPS方法,结合静态程序分析与动态GUI探索,通过反向遍历调用图和数据流推理识别路径并转化为策略,在基准测试和热门应用评估中表现出色,有效且可扩展地解决了定向方法执行问题。
2026-07-20 cs.SE
ReuNify: A Step Towards Whole Program Analysis for React Native Android Apps
针对 React Native 应用分析不完整的问题,提出原型工具 REUNIFY,将 JavaScript 与原生端代码集成至 Soot 框架的中间语言,显著提升了静态分析覆盖率、调用图节点数及隐私泄露检测能力。
2023-09-07 cs.SE
Seneca: Taint-Based Call Graph Construction for Java Object Deserialization
本文提出Seneca方法,通过污点分析与API建模在调用图构建中支持Java对象序列化/反序列化,以健全地揭示回调方法路径,并验证其在检测不可信反序列化漏洞方面的有效性。
2024-09-02 cs.SE
Convert any android device into a programmable IoT device with the help of IoT Everywhere Framework
本文提出 IoT Everywhere 框架与 Origin 语言,可将任意安卓手机变为可编程物联网设备,降低硬件成本与编程门槛,帮助不同层次学生学习物联网与编程。
2024-04-14 cs.SE
Too Quiet in the Library: An Empirical Study of Security Updates in Android Apps' Native Code
Android应用包含第三方原生库,以提高性能和重用功能。原生代码通过Java原生接口或Android原生开发工具包直接从应用执行。Android开发人员将预编译的原生库添加到他们的项目中,以启用它们的使用。不幸的是,开发人员经常努力或干脆忽视及时更新这些库。这导致在补丁可用多年后,仍继续使用过时的本机库,这些本机库具有未修补的安全漏洞。为了进一步了解这种现象,我们研究了9月10日以来Google Play上最受欢迎的200个免费应用程序中原生库的安全更新。2013年至2020年5月。我们在这项研究中面临的一个核心困难是图书馆及其版本的识别。开发人员经常重命名或修改库,使其识别具有挑战性。我们创建了一种名为LibRARIAN(LibRAry veRsion IdentificAtioN)的方法,该方法基于我们新颖的相似性度量bin 2sim准确识别Android应用中的原生库及其版本。LibRARIAN利用了基于元数据从库中提取的不同特征,并在只读部分中识别字符串。我们发现,在2009年9月20日至2011年9月30日期间,200个流行应用程序中有53个(26.5%)存在已知CVE的易受攻击版本。2013年和2020年5月,其中14个应用程序仍然存在漏洞。我们发现,应用程序开发人员平均需要528.71天来应用安全补丁,而库开发人员在54.59天后发布安全补丁-更新速度慢了10倍。
2021-03-03 cs.CR cs.SE
A Preliminary Study On the Sustainability of Android Malware Detection
Washington State University(华盛顿州立大学)
基于机器学习的恶意软件检测主导了当前Android应用的安全防御方法。然而,由于Android平台和恶意软件的发展,现有的这种技术受到其对成本高昂的持续再训练的需要以及对可能无法及时获得的新恶意软件样本的依赖的广泛限制。因此,新的和新兴的恶意软件溜过,从恶意软件在野外的持续激增可以看出。因此,一个更实用的探测器不仅需要精确,更重要的是,它要能够在不频繁重新训练的情况下长期保持其能力。在本文中,我们研究了Android应用程序如何随着时间的推移而演变为一个群体,在他们的行为相关的访问敏感信息和操作。我们首先对七年来开发的6K良性和恶意应用程序进行纵向表征,重点关注应用程序执行中的这些敏感访问。我们的研究表明,在长期的演变过程中,恶意软件和良性应用程序之间关于此类访问的一致,明确的区别,通过相关方法调用的相对统计数据来衡量。根据这些发现,我们开发了DroidSpan,这是一种基于Android应用程序新行为特征的新型分类系统。通过广泛的评估,我们发现DroidSpan不仅可以有效地检测恶意软件,而且可以在四年内保持高检测准确率(93%的F1测量值)(五年内81%的F1测量值)。通过一项专门的研究,我们还展示了它对复杂规避方案的弹性。通过与最先进的恶意软件检测器进行比较,我们证明了我们的方法在合理的成本下具有很大程度上优越的可持续性。
2018-08-03 cs.CR cs.LG cs.SE
FCGHunter: Towards Evaluating Robustness of Graph-Based Android Malware Detection
提出FCGHunter框架,通过识别关键区域、依赖感知交叉变异和多目标反馈优化扰动搜索,有效评估基于FCG的Android恶意软件检测器的鲁棒性,平均攻击成功率达87.9%。
2025-04-28 cs.CR cs.SE
MASKDROID: Robust Android Malware Detection with Masked Graph Representations
National University of Singapore(新加坡国立大学)
本文提出 MASKDROID,通过在 GNN 框架中引入图掩码重建机制和对比学习模块,增强安卓恶意软件检测器对对抗攻击的鲁棒性和判别能力。
2024-09-29 cs.AI cs.CR cs.SE
A Multi-view Context-aware Approach to Android Malware Detection and Malicious Code Localization
Nanyang Technological University(南洋理工大学)
现有的Android恶意软件检测方法结合机器学习分类器使用各种特征(诸如安全敏感API、系统调用、控制流结构和信息流)来实现准确的检测。这些功能集中的每一个都提供了应用行为的独特语义视角(或视图),具有固有的优势和局限性。也就是说,有些视图更适合检测某些攻击,但可能不适合检测其他几种攻击。大多数现有的恶意软件检测方法仅使用上述特征集中的一个(或选定的几个),这阻止了它们检测绝大多数攻击。针对这一限制,我们提出了MKLDroid,一个统一的框架,系统地集成了应用程序的多个视图,用于执行全面的恶意软件检测和恶意代码本地化。理由是,虽然恶意软件应用程序可以在某些视图中伪装自己,但在保持恶意意图的同时在每个视图中伪装将更加困难。MKLDroid使用图形内核从应用程序的依赖关系图中捕获结构和上下文信息,并识别每个视图中的恶意代码模式。随后,它采用多核学习(MKL)来找到产生最佳检测精度的视图的加权组合。除了多视图学习,MKLDroid的独特和突出的特点是它能够在依赖图中定位细粒度的恶意代码部分(例如,方法/类)。通过我们在几个数据集上的大规模实验(包括野生应用程序),我们证明了MKLDroid在准确性方面始终优于三种最先进的技术,同时保持相当的效率。在我们对重新打包的恶意软件数据集进行的恶意代码本地化实验中,MKLDroid能够以94%的平均召回率识别所有恶意类别。
2017-04-08 cs.AI cs.CR cs.SE