Mobile application security has been a major area of focus for security research over the course of the last decade. Numerous application analysis tools have been proposed in response to malicious, curious, or vulnerable apps. However, existing tools, and specifically, static analysis tools, trade soundness of the analysis for precision and performance and are hence soundy. Unfortunately, the specific unsound choices or flaws in the design of these tools is often not known or well-documented, leading to misplaced confidence among researchers, developers, and users. This paper describes the Mutation-based Soundness Evaluation ($\mu$SE) framework, which systematically evaluates Android static analysis tools to discover, document, and fix flaws, by leveraging the well-founded practice of mutation analysis. We implemented $\mu$SE and applied it to a set of prominent Android static analysis tools that detect private data leaks in apps. In a study conducted previously, we used $\mu$SE to discover $13$ previously undocumented flaws in FlowDroid, one of the most prominent data leak detectors for Android apps. Moreover, we discovered that flaws also propagated to other tools that build upon the design or implementation of FlowDroid or its components. This paper substantially extends our $\mu$SE framework and offers an new in-depth analysis of two more major tools in our 2020 study, we find $12$ new, undocumented flaws and demonstrate that all $25$ flaws are found in more than one tool, regardless of any inheritance-relation among the tools. Our results motivate the need for systematic discovery and documentation of unsound choices in soundy tools and demonstrate the opportunities in leveraging mutation testing in achieving this goal.
翻译:过去十年来,移动应用安全一直是安全研究的一个主要重点领域。许多应用分析工具都是针对恶意、好奇或脆弱的应用程序而提出的。然而,现有的工具,特别是静态分析工具,以及精确和性能分析的贸易健全性,因此是健全的。不幸的是,这些工具设计中的具体不健全的选择或缺陷往往不为人知或没有详细记录,导致研究人员、开发者和用户之间缺乏信心。本文描述了基于静态的稳健度评估(mu$SE)框架,该框架系统地评估了用于发现、记录和弥补缺陷的静态文件分析工具,利用现有的变异分析方法,特别是静态分析工具、静态分析工具,特别是静态分析工具、精确和性分析的贸易健全性分析工具,因此这些工具的设计往往不为人知或记录得通,因此,我们用$muSE找出了13美元以前没有记录的错误,这是Android App公司最突出的数据渗漏探测器之一。 此外,我们发现,在设计或实施新的变现工具过程中,我们找到了一个错误性工具,在设计或变现工具中,我们找到了一个新的变现工具中发现,我们更多的变现工具。