Inter-Component Communication (ICC) is a key mechanism in Android. It enables developers to compose rich functionalities and explore reuse within and across apps. Unfortunately, as reported by a large body of literature, ICC is rather "complex and largely unconstrained", leaving room to a lack of precision in apps modeling. To address the challenge of tracking ICCs within apps, state of the art static approaches such as Epicc, IccTA and Amandroid have focused on the documented framework ICC methods (e.g., startActivity) to build their approaches. In this work we show that ICC models inferred in these state of the art tools may actually be incomplete: the framework provides other atypical ways of performing ICCs. To address this limitation in the state of the art, we propose RAICC a static approach for modeling new ICC links and thus boosting previous analysis tasks such as ICC vulnerability detection, privacy leaks detection, malware detection, etc. We have evaluated RAICC on 20 benchmark apps, demonstrating that it improves the precision and recall of uncovered leaks in state of the art tools. We have also performed a large empirical investigation showing that Atypical ICC methods are largely used in Android apps, although not necessarily for data transfer. We also show that RAICC increases the number of ICC links found by 61.6% on a dataset of real-world malicious apps, and that RAICC enables the detection of new ICC vulnerabilities.
翻译:计算机间通信(ICC)是Android的关键机制。 它使开发者能够构建丰富的功能,并探索在应用程序内部和相互之间再利用。 不幸的是,正如大量文献机构所报告的那样,国际商会相当“复杂,而且基本上不受约束 ”, 使得应用程序模型缺乏精确性。 为了应对在应用程序中跟踪国际商会的挑战,如Epic、ICCTA和Amandroid等最新静态方法侧重于有文件记录的ICC方法框架(例如,开始行动),以建立自己的方法。 在这项工作中,我们表明在这些艺术工具状态中推断的ICC模型可能实际上不完整:该框架提供了其他典型的履行ICC的方法。为了解决这种在工艺状态中的局限性,我们建议RAICC采用静态方法来模拟新的ICC链接,从而提升以前的分析任务,如Epicec、ICTA和Amandroid 等。 我们已经在20个基准应用程序中对RAICC进行了评估,表明它提高了在艺术工具状态中发现的未发现的泄漏的精确度和记忆。 我们还开展了一个大型的ICC检测方法,尽管在61个国际中心中,我们用了大量的经验性调查显示, 也必然地使用了ARC 。