咨询与建议

看过本文的还看了

相关文献

该作者的其他文献

文献详情 >Android应用界面数据丢失缺陷的分析与检测 收藏
Android应用界面数据丢失缺陷的分析与检测

Android应用界面数据丢失缺陷的分析与检测

作     者:周宇豪 

作者单位:南京理工大学 

学位级别:硕士

导师姓名:宋巍

授予年度:2022年

学科分类:0839[工学-网络空间安全] 08[工学] 081201[工学-计算机系统结构] 0812[工学-计算机科学与技术(可授工学、理学学位)] 

主      题:Android应用 数据丢失 数据流分析 缺陷检测 保存-恢复二分图 

摘      要:Android应用中的数据丢失缺陷通常是由activity restart或者app relaunch引起的。这两个原因会导致应用经历一系列的生命周期变化,如果开发者没有在变化中妥善管理这些数据,数据丢失就会发生,导致已有界面控件的消失、用户输入的丢失,甚至是应用崩溃,极大影响了用户体验和应用质量。虽然针对数据丢失的检测工作已经得到广泛关注,但现有的最先进方法主要使用动态分析来检测,这通常非常耗时,并且由于自动化探索的限制,可能会错过许多未探索到的页面上的数据丢失缺陷。 针对现有方法的不足,本文提出一种基于保存-恢复二分图(SRBG)的数据流分析静态检测方法,用于自动化检测Android应用中的数据丢失缺陷。该方法首先识别出需要保存的变量和需要恢复的变量,并分别放入两个集合中。然后根据变量所关联的载体控件确定需要保存的变量与需要恢复的变量之间的对应关系,即一个需要保存的变量的值会被用于另一个需要恢复的变量的恢复时输入。这两个互相独立的变量集合以及它们之间的关系集合构成了一个二分图SRBG。然后,进行数据流分析以判断这些变量的保存和恢复操作的正确性,即这些变量是否正确地存储到存储空间和从存储空间加载。最后,根据SRBG中的变量配对关系和数据流信息,分析出哪些数据没有被妥善保存或恢复,从而检测出数据丢失缺陷。 基于提出的静态检测方法,实现了一个原型工具DDLDroid。DDLDroid包含三个分析器,分别是预分析器、静态分析器和缺陷检测器。预分析器负责解析APK文件得到资源文件和中间层代码;静态分析器包含二分图构建模块和数据流构建模块,前者负责识别需要保存的变量、需要恢复的变量以及变量之间的关系,后者负责构建保存与恢复操作的数据流;缺陷检测器负责分析SRBG和数据流的构建结果,从中报告出缺乏保存与恢复操作或者保存与恢复不正确的变量所对应的数据丢失缺陷。 本文采用一个包含66个真实世界Android应用的数据集对DDLDroid的有效性和时间性能进行了实验评估。实验结果表明,DDLDroid在73分钟内成功检测到了302个真实的数据丢失缺陷,其中的180个是以前未知的。同时,和现有的最先进检测工具相比,DDLDroid不仅可以检测出更多的真实数据丢失缺陷,在时间开销上也具有优势。

读者评论 与其他读者分享你的观点

用户名:未登录
我的评分