【论文】NCScope: Hardware-Assisted Analyzer for Native Code in Android Apps

NCScope: Android应用程序中本地代码的硬件辅助分析器

ABSTRACT

More and more Android apps implement their functionalities in native code, so does malware.

越来越多的Android应用使用原生代码实现其功能,恶意软件也是如此。

本机代码(Native Code)或称为原生代码,是指为特定类型的处理器(如x86、ARM等)直接编写的,可以直接被该处理器的硬件执行的机器语言代码或接近机器语言的汇编代码。这种代码不依赖于任何高级编程语言的运行时环境(如Java虚拟机JVM、Python解释器等),因此通常具有更高的执行效率和性能。

Although various approaches have
been designed to analyze the native code used by apps, they usually
generate incomplete and biased results due to their limitations in
obtaining and analyzing high-fidelity execution traces and memory
data with low overheads
.

尽管已经设计了各种方法来分析应用程序使用的本机代码,但由于它们在 获取和分析 高保真执行跟踪和低开销内存数据 方面的局限性,它们通常会生成不完整和有偏差的结果。

高保真(High-fidelity)通常指的是在数据获取或信号传输过程中,能够保持原始信息的高度准确性和完整性,尽量减少失真或损失。

高保真确保了数据的准确性和可靠性,而低开销则保证了这种数据获取方式不会对系统性能造成显著影响。这对于需要高效、准确地分析复杂软件系统的场景尤为重要。

然而,在实际应用中,同时实现高保真和低开销往往是一个挑战。高保真数据的获取可能需要更复杂的监控和记录机制,这可能会增加开销。因此,在设计分析和调试工具时,需要在保真度和开销之间找到一个平衡点,以满足特定场景下的需求。

在软件分析和调试中,需要同时关注数据的准确性和获取数据的效率。这要求开发者在设计相关工具时,充分考虑如何平衡这两个方面的需求,以实现对软件系统的有效监控和分析。

To fill the gap, in this paper, we propose
and develop a novel hardware-assisted analyzer for native code in
apps. We leverage ETM, a hardware feature of ARM platform, and
eBPF, a kernel component of Android system, to collect real execution traces and relevant memory data of target apps, and design new
methods to scrutinize native code according to the collected data.

为了填补这一空白,在本文中,我们提出并开发了一种新的硬件辅助分析仪,用于应用程序中的本机代码。我们利用ARM平台硬件特性ETMAndroid系统的内核组件eBPF收集目标应用程序的真实执行轨迹和相关内存数据,并根据收集到的数据设计新的方法来审查本机代码。

ARM平台指的是基于ARM架构的处理器和系统平台。

ARM架构的核心特点是其高效能和低功耗,这使得它非常适合于需要长时间运行且对能源消耗有严格要求的设备,如智能手机、平板电脑、可穿戴设备、物联网(IoT)设备、嵌入式系统以及许多其他类型的计算设备。

ARM平台的硬件特性中,ETM(Embedded Trace Macrocell,嵌入式跟踪宏单元)是一个关键组件,它为ARM微处理器提供了实时指令跟踪和数据跟踪的能力。

  1. 实时跟踪能力
    • ETM能够实时地跟踪处理器的指令执行和数据访问,这使得开发人员能够准确地了解程序的行为和性能瓶颈。
  2. 高灵活性
    • ETM支持多种配置选项,可以根据不同的调试需求进行定制。例如,可以设置过滤器来限制捕获的信息量,以减少调试过程中的数据量和复杂度。
  3. 非干预性
    • ETM的跟踪过程对处理器的正常运行影响极小,几乎不会引起性能下降或中断程序执行。这使得ETM成为嵌入式系统调试中的理想工具。

嵌入式系统是一种专用计算机系统,它以应用为中心,以计算机技术为基础,具备软件硬件可裁剪的特点,能够适应应用系统对功能、可靠性、成本、体积、功耗等严格要求。

Android系统的内核组件eBPF(extended Berkeley Packet Filter)是一个强大的技术,它允许在操作系统的内核中运行沙盒程序,以安全和有效地扩展内核功能。

eBPF是Android系统中一个非常重要的内核组件,它允许开发者以安全和有效的方式扩展内核功能。通过编写eBPF程序,开发者可以监控和调试系统性能、实现网络统计与管控、跟踪系统调用等,从而优化系统性能和提升用户体验。

沙盒程序是一种在计算机系统中使用的特殊程序或环境,它主要用于满足特定的测试、培训、运行演示、启用或概念验证(POC)等目的。

定义与特性

  • 定义:沙盒程序是一个隔离的环境,用于运行可能存在安全隐患或未知来源的程序或代码,以防止这些程序对系统核心部分造成损害。
  • 隔离性:沙盒程序的核心特性是隔离性。在沙盒中运行的程序无法直接访问系统资源和敏感数据,从而避免了应用程序之间的相互干扰和数据泄漏的风险。

工作原理

沙盒程序通过创建一个或多个独立的进程来运行应用程序,每个进程都拥有自己独立的内存空间和资源。这种隔离机制确保了即使沙盒中的程序出现崩溃或异常情况,也不会影响到系统或其他应用程序的正常运行。

安全性措施

  • 指令限制:沙盒程序通过限制执行指令来防止恶意行为。例如,限制跳转指令JMP的使用,防止恶意代码随意跳转到系统内存中的任意位置。
  • 资源限制:沙盒程序可以对应用程序的资源使用进行限制,如CPU利用率、内存使用量等。这可以防止某个应用程序占用过多的系统资源,导致其他应用程序运行缓慢。
  • 访问控制:沙盒程序通过访问控制列表(ACL)或用户权限来限制应用程序对系统资源的访问。这包括文件系统、网络接口等关键资源的访问权限控制。

结论

沙盒程序是一种重要的安全机制,它通过提供隔离的运行环境来保障系统的安全性和稳定性。无论是在安全测试、培训与开发还是在线代码编辑器等领域,沙盒程序都发挥着重要的作用。

To show the unique capability of NCScope, we apply it to four applications that cannot be accomplished by existing tools, including
systematic studies on self-protection and anti-analysis mechanisms

  • 22
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值