一句话:提出基于属性的模糊测试方法并实现 PBFDroid,用于自动发现 Android 应用中的数据操纵错误。
Android 应用广泛包含数据操纵功能(DMF),用于对应用数据执行 CRUD 操作,但相关数据操纵错误(DME)尤其是非崩溃逻辑错误难以发现。本文提出基于属性的模糊测试方法:针对某类数据,随机交错执行相关 DMF 与其他事件以探索多样应用状态;将 DMF 建模为数据模型属性,并利用数据模型与 UI 布局的一致性进行属性检查,属性由人工按应用特性指定。作者实现自动化 GUI 测试工具 PBFDroid,在 20 个真实应用中测试,发现 30 个未知缺陷,其中 29 个为 DME(22 个非崩溃逻辑错误、7 个崩溃),19 个已确认、9 个已修复。现有技术无法发现全部 22 个非崩溃 DME;用户研究显示属性指定成本可接受,且给定准确属性时方法可无误报发现 DME。
Like many software applications, data manipulation functionalities( DMFs ) are prevalent in Android apps, which perform the common CRUD operations (create, read, update, delete) to handle app-specific data. Thus, ensuring the correctness of these DMFs is fundamentally important for many core app functionalities. However, the bugs related to DMFs (named as data manipulation errors, DMEs ), especially those non-crashing logic ones, are prevalent but difficult to find. To this end, inspired by property-based testing, we introduce a property-based fuzzing approach to effectively finding DMEs in Android apps. Our key idea is that, given some type of app data of interest, we randomly interleave its relevant DMFs and other possible events to explore diverse app states for thorough validation. Specifically, our approach characterizes DMFs in (data) model-based properties and leverage the consistency between the data model and the UI layouts as the handler to do property checking. The properties of DMFs are specified by human according to specific app features. To support the application of our approach, we implemented an automated GUI testing tool, PBFDroid. We evaluated PBFDroid on 20 real-world Android apps, and successfully found 30 unique and previously unknown bugs in 18 apps. Out of the 30 bugs, 29 of which are DMEs (22 are non-crashing logic bugs, and 7 are crash ones). To date, 19 have been confirmed and 9 have already been fixed. Many of these bugs are non-trivial and lead to different types of app failures. Our further evaluation confirms that none of the 22 non-crashing DMEs can be found by the state-of-the-art techniques. In addition, a user study shows that the manual cost of specifying the DMF properties with the assistance of our tool is acceptable. Overall, given accurate DMF properties, our approach can automatically find DMEs without any false positives. We have made all the artifacts publicly available at:https:// github.com/ property-based-fuzzing/ home.
@inproceedings{Sun0JWP023,
title = {Property-Based Fuzzing for Finding Data Manipulation Errors in Android Apps},
author = {Jingling Sun and Ting Su and Jiayi Jiang and Jue Wang and Geguang Pu and Zhendong Su},
booktitle = {FSE},
year = {2023},
doi = {10.1145/3611643.3616286}
}