We address the problem of discovering communication links between applications in the popular Android mobile operating system, an important problem for security and privacy in Android. Any scalable static analysis in this complex setting is bound to produce an excessive amount of false-positives, rendering it impractical. To improve precision, we propose to augment static analysis with a trained neural-network model that estimates the probability that a communication link truly exists. We describe a neural-network architecture that encodes abstractions of communicating objects in two applications and estimates the probability with which a link indeed exists. At the heart of our architecture are type-directed encoders (tde), a general framework for elegantly constructing encoders of a compound data type by recursively composing encoders for its constituent types. We evaluate our approach on a large corpus of Android applications, and demonstrate that it achieves very high accuracy. Further, we conduct thorough interpretability studies to understand the internals of the learned neural networks.
我们解决在流行的安卓移动操作系统中发现应用程序之间通信链路的问题,这是安卓安全和隐私方面的一个重要问题。在这种复杂环境下的任何可扩展静态分析必然会产生大量误报,使其不切实际。为了提高精度,我们提议用一个经过训练的神经网络模型来增强静态分析,该模型可估计通信链路确实存在的概率。我们描述了一种神经网络架构,它对两个应用程序中通信对象的抽象进行编码,并估计链路确实存在的概率。我们架构的核心是类型导向编码器(tde),这是一个通过递归组合其组成类型的编码器来巧妙构建复合数据类型编码器的通用框架。我们在大量安卓应用程序语料库上评估我们的方法,并证明它能达到非常高的准确性。此外,我们进行了全面的可解释性研究,以了解所学习的神经网络的内部情况。