1.一种隐私泄露检测方法,其特征在于,所述方法包括:
构建敏感数据源、泄露点的应用程序接口表和回调函数的应用程序接口表;
根据构建的敏感数据源、泄露点的应用程序接口表和回调函数的应用程序接口表查找安装包中的敏感数据源、泄露点和回调函数的应用程序接口,得到所述安装包中的敏感数据源、泄露点和回调函数,由所述安装包中的敏感数据源、泄露点和回调函数建立组件生命周期模型;
通过所述安装包中的回调函数及所述组件生命周期模型生成虚拟主函数;
将所述虚拟主函数经过变换生成函数间控制流图,以所述安装包中的敏感数据源为分析起点,根据数据流污点分析算法对所述函数间控制流图进行分析,得到隐私泄露的可疑路径;
输出隐私泄露的可疑路径。
2.根据权利要求1所述的方法,其特征在于,所述输出隐私泄露的可疑路径的步骤之后还包括:
通过预设的开源测试工具对所述可疑路径进行检测,评估所述方法的有效性和正确性。
3.根据权利要求1所述的方法,其特征在于,所述构建敏感数据源、泄露点的应用程序接口表和回调函数的应用程序接口表的步骤包括:
构建回调函数的应用程序接口表;
由权限与敏感数据源的应用程序接口表、权限与泄露点的应用程序接口表构建敏感数据源、泄露点的应用程序接口表。
4.根据权利要求1所述的方法,其特征在于,所述将所述虚拟主函数经过变换生成函数间控制流图,以所述安装包中的敏感数据源为分析起点,根据数据流污点分析算法对所述函数间控制流图进行分析,得到隐私泄露的可疑路径的步骤包括:
将所述安装包中的敏感数据源作为起点进行正向分析,查找所述安装包中的敏感数据源的别名,并标记为污点,标记为污点的别名为未激活状态;
再将上述别名作为分析的起点,同时进行反向分析和正向分析,所述反向分析中加入正向分析的上下文环境,查找所述别名的新的别名,并标记为污点,新的污点别名仍为未激活状态;
在所述正向分析的上下文环境中进行反向分析,当产生了正向分析在执行到所述安装包中的敏感数据源或泄露点的应用程序接口时,所述新的污点别名由未激活状态转变为激活状态;
对找到的所有处于未激活状态的新的污点别名重复上述步骤进行分析得到其他处于激活状态的污点别名;
记录处于激活状态的污点别名到所述安装包中的泄露点的路径,所述路径为所述可疑路径。
5.根据权利要求1所述的方法,其特征在于,所述将所述虚拟主函数经过变换生成函数间控制流图,以所述安装包中的敏感数据源为分析起点,根据数据流污点分析算法对所述函数间控制流图进行分析,得到隐私泄露的可疑路径的步骤包括:
将所述虚拟主函数通过Soot静态分析框架转换为由中间件语言表示的字节码文件;
通过所述字节码文件及Soot静态分析框架得到所述函数间控制流图。
6.一种隐私泄露检测系统,其特征在于,所述系统包括:
构建模块,用于构建敏感数据源、泄露点的应用程序接口表和回调函数的应用程序接口表;
预处理模块,用于根据构建的敏感数据源、泄露点的应用程序接口表和回调函数的应用程序接口表查找安装包中的敏感数据源、泄露点和回调函数的应用程序接口,得到所述安装包中的敏感数据源、泄露点和回调函数,由所述安装包中的敏感数据源、泄露点和回调函数建立组件生命周期模型;
处理模块,用于通过所述安装包中的回调函数及所述组件生命周期模型生成虚拟主函数;
控制流与数据流分析模块,用于将所述虚拟主函数经过变换生成函数间控制流图,以所述安装包中的敏感数据源为分析起点,根据数据流污点分析算法对所述函数间控制流图进行分析,得到隐私泄露的可疑路径;
分析结果输出模块,用于输出隐私泄露的可疑路径。
7.根据权利要求6所述的系统,其特征在于,所述系统还包括:
检测模块,用于通过预设的开源测试工具对所述可疑路径进行检测,评估所述系统的有效性和正确性。
8.根据权利要求6所述的系统,其特征在于,所述构建模块构建敏感数据源、泄露点的应用程序接口表和回调函数的应用程序接口表的方式包括:
构建回调函数的应用程序接口表;
由权限与敏感数据源的应用程序接口表、权限与泄露点的应用程序接口表构建敏感数据源、泄露点的应用程序接口表。
9.根据权利要求6所述的系统,其特征在于,所述控制流与数据流分析模块将所述虚拟主函数经过变换生成函数间控制流图,以所述安装包中的敏感数据源为分析起点,根据数据流污点分析算法对所述函数间控制流图进行分析,得到隐私泄露的可疑路径的方式包括:
将所述安装包中的敏感数据源作为起点进行正向分析,查找所述安装包中的敏感数据源的别名,并标记为污点,标记为污点的别名为未激活状态;
再将上述别名作为分析的起点,同时进行反向分析和正向分析,所述反向分析中加入正向分析的上下文环境,查找所述别名的新的别名,并标记为污点,新的污点别名仍为未激活状态;
在所述正向分析的上下文环境中进行反向分析,当产生了正向分析在执行到所述安装包中的敏感数据源或泄露点的应用程序接口时,所述新的污点别名由未激活状态转变为激活状态;
对找到的所有处于未激活状态的新的污点别名重复上述方式进行分析得到其他处于激活状态的污点别名;
记录处于激活状态的污点别名到所述安装包中的泄露点的路径,所述路径为所述可疑路径。
10.根据权利要求6所述的系统,其特征在于,所述控制流与数据流分析模块将所述虚拟主函数经过变换生成程序控制流图,以所述安装包中的敏感数据源为分析起点,根据数据流污点分析算法对所述函数间控制流图进行分析,得到隐私泄露的可疑路径的方式还包括:
将所述虚拟主函数通过Soot静态分析框架转换为由中间件语言表示的字节码文件;
通过所述字节码文件及Soot静态分析框架得到所述函数间控制流图。