中文

ReuNify:迈向 React Native Android 应用全程序分析的一步

软件工程 2023-09-08 v1

摘要

React Native 是一个广泛使用的开源框架,便于开发跨平台移动应用。该框架使 JavaScript 代码能够通过 React Native 提供的通信机制与原生端代码(如 iOS 的 Objective-C/Swift 和 Android 的 Java/Kotlin)交互。然而,以往的研究和工具忽视了这一机制,导致对 React Native 应用代码的分析不完整。为弥补这一局限,我们开发了原型工具 REUNIFY,将 React Native 应用的 JavaScript 与原生端代码集成到一种可由 Soot 静态分析框架处理的中间语言。借此,REUNIFY 能够生成应用行为的综合模型。我们的评估表明,借助 REUNIFY,基于 Soot 的框架可提升其对 1,007 个最热门 React Native Android 应用的静态分析覆盖率,使 Jimple 代码行数增加 70%。此外,在集成 REUNIFY 后,这些应用的调用图中新到达节点的数量平均增加了 84%。当将 REUNIFY 用于污点流分析时,平均可额外识别出两个隐私泄露。总体而言,我们的结果表明 REUNIFY 显著增强了基于 Soot 的框架分析 React Native Android 应用的能力。

关键词

引用

@article{arxiv.2309.03524,
  title  = {ReuNify: A Step Towards Whole Program Analysis for React Native Android Apps},
  author = {Yonghui Liu and Xiao Chen and Pei Liu and John Grundy and Chunyang Chen and Li Li},
  journal= {arXiv preprint arXiv:2309.03524},
  year   = {2023}
}