一种安卓应用网络通信中隐私泄漏检测方法及系统技术方案

技术编号:16153617 阅读:40 留言:0更新日期:2017-09-06 18:41
本发明专利技术公开了一种安卓应用网络通信中隐私泄漏检测方法及系统,包括:爬取待测安卓应用,构建待测应用集合;构建中间人攻击服务器,并初始化各测试机环境,配置多测试机分布式运行调度系统;分析待测应用APK文件,安装与APK文件对应的应用程序,并驱动应用程序运行;分析Burp Suite生成的日志文件,获取存在SSL中间人攻击的应用集合;对收集的应用程序运行过程中产生的网络数据包文件进行分析,结合存在SSL中间人攻击的应用集合识别网络数据包文件中的隐私泄漏类型。本发明专利技术使用灵活,全程自动化,不需要修改安卓系统和安卓应用程序结构,能够更全面、更准确的检测安卓应用在网络通信过程中隐私泄露行为。

【技术实现步骤摘要】
一种安卓应用网络通信中隐私泄漏检测方法及系统
本专利技术属于移动安全和界面自动化测试
,更具体地,涉及一种安卓应用网络通信中隐私泄漏检测方法及系统。
技术介绍
安卓移动设备承载着用户越来越多的隐私数据,不安全的网络通信将导致用户隐私泄漏。据统计,安卓应用网络通信过程中约67%采用HTTP协议,约20%采用HTTPS协议。由于HTTP协议的明文传输,一旦HTTP网络请求中包含用户的隐私数据(如通讯录、短信、日历和照片等),将存在隐私泄漏。同时,SSL协议的错误使用也将导致用户面临中间人攻击、隐私泄漏的风险。目前针对安卓应用中隐私泄露问题,主要采用以下方式:(1)对安卓系统Dalvik虚拟机、Binder驱动和文件系统进行修改,以跟踪污点数据是否在网络传输、文件写入等泄漏点处传播。然而该系统需要修改安卓底层系统,且只能解决安卓原生应用中的网络传输的隐私泄露问题,具有一定的局限性。(2)在第一种方式的基础上集成模拟器伪装、事件触发、fuzzing测试、智能输入和智能搜索等功能实现大规模的、自动化的检测安卓应用内的隐私泄露行为。然而,该方式中主要以Monkey发送伪随机事件为主,由于伪随机事件的不确定性,存在效率低、覆盖率低等缺点。目前针对安卓应用中网络通信安全性问题,RFCs2818、2246和3280文档明确规定安卓SSL协议中证书链合法当且仅当满足如下三个条件:(1)证书链中的每个证书未过期;(2)根证书必须来自于可信的证书机构,且存在于客户端可信证书机构的列表中;(3)当证书链中存在多个证书时,需要验证每个证书的合法性。其规定主机名合法当且仅当:客户端连接的服务器的完全限定的DNS名称能够匹配证书中构建的服务器标识符列表。目前为检测安卓应用程序中错误使用SSL的情况主要有以下方式:通过扩展Androguard静态分析框架,提取安卓应用反编译后的代码中的URLS链接(HTTP和HTTPS)验证其域名证书的有效性从而判断应用是否存在SSL误用漏洞。然而,该方式基于静态提取URLS链接,不能有效获取动态URLS链接,同时需要安全专家运行应用手工确认从而避免误报。针对上述方式的高误报、人工验证的缺陷,出现了一种改进方式:结合动静态分析技术检测安卓应用能否抵抗中间人攻击来确认SSL调用的正确性。静态分析过程中,通过控制流、数据流分析技术构建可能存在SSL误用漏洞的目标组件集合与布局文件中所有的输入文本值类型集合;动态运行过程中,通过adb命令安装、启动应用后,循环发送“adbshellamstart-npackageName/targetActivity”命令跳转到指定的目标Activity组件并穷尽遍历该Activity组件的UI控件,同时开启MIMT代理(BurpSuiteproxy)监控所有HTTPS流量并且尝试去发起一个MIMT攻击,记录攻击结果。该系统侧重分析安卓应用SSL安全性,由于直接跳转到指定Activity组件,缺乏一定的上下文信息导致一部分的Activity组件跳转失败。综上所述,目前关于安卓应用网络通信过程中隐私泄漏的检测分别从HTTP和HTTPS展开,已有的解决方案均能在一定程度上检测。但从实施的角度来看,已有的解决方案依赖于修改安卓系统或安卓应用程序结构;动态分析依赖于静态反编译技术指导;不能有效检测加固应用。因此,从实施性和通用性角度来看,已有的解决方案有待改进。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术的目的在于提供了一种安卓应用网络通信中隐私泄漏检测方法及系统,由此解决现有技术中的隐私泄漏检测在实施性和通用性方面存在的局限性。为实现上述目的,按照本专利技术的一个方面,提供了一种安卓应用网络通信中隐私泄漏检测方法,包括:S1、爬取待测安卓应用,构建待测应用集合;S2、构建中间人攻击服务器,并初始化各测试机环境,配置多测试机分布式运行调度系统;S3、分析所述待测应用集合中的APK文件,获取与所述APK文件对应的应用程序的包名和主Activity信息;S4、根据所述包名和主Activity信息,安装与所述APK文件对应的应用程序,并基于UI自动化遍历框架驱动所述应用程序运行;S5、分析BurpSuite生成的日志文件,获取存在SSL中间人攻击的应用集合;S6、对收集的当前应用程序运行过程中产生的网络数据包文件进行分析,结合所述存在SSL中间人攻击的应用集合识别所述网络数据包文件中的隐私泄漏类型。优选地,步骤S1具体包括以下子步骤:S1.1、选取M个目标应用市场,分析各目标应用市场按照类别划分的列表页URL特征、详细应用页面URL特征、应用下载URL特征,其中,M为正整数;S1.2、分析所述列表页URL特征、所述详细应用页面URL特征以及所述应用下载URL特征,基于ID或包名探测方式构建HTTP请求,下载各目标应用市场中各类别的N个待测安卓应用,其中,N为正整数;S1.3、将所述N个待测安卓应用的APK文件采用FASTDFS文件框架分布式存储到不同的服务器上,并将安卓应用相关信息存储到数据库中。优选地,步骤S3具体包括以下子步骤:S3.1、基于AndroidSDK自带的AAPT工具分析各待测安卓应用;S3.2、提取待测安卓应用的权限集合,判断是否存在联网权限;S3.3、若存在联网权限,则提取待测安卓应用的包名与主Activity名。优选地,步骤S4具体包括以下子步骤:S4.1、基于AccessibilityService提供的接口获取当前待测安卓应用运行过程中的GUI界面信息,并根据预先制定的GUI界面分类规则识别与所述GUI界面信息对应的GUI界面类型;S4.2、采用与所述GUI界面类型对应的控件集处理方式,并将最终处理后的可操作控件事件投入任务列表;S4.3、采用启发式深度优先遍历算法,对所述任务列表中的控件事件进行用户动作模拟,并判断当前GUI界面状态是否发生变化,若发生变化,则跳转执行步骤S4.1;若没有变化,则判断所述任务列表是否为空,若为空,表示当前GUI界面处理完毕,返回到上一层界面继续任务列表中的控件事件,若不为空,继续执行所述任务列表中的控件事件。优选地,步骤S5具体包括以下子步骤:S5.1、实时监控SSLListener插件生成的日志信息,提取BurpSuite监听端口、HTTPS请求成功的网络数据包的时间戳与主机域名信息;S5.2、根据所述监听端口、所述时间戳和所述主机域名信息,采用模糊正则匹配的方式获取目标待测安卓应用包名,作为存在SSL中间人攻击的应用集合,其中,所述目标待测安卓应用包名对应的应用存在中间人攻击风险。优选地,步骤S6具体包括以下子步骤:S6.1、采用jnetpcap.jar包对生成的网络数据包文件进行解析,构建HTTP请求数据包,以JOSN的数据格式保存;S6.2、采用词袋模型对JSON格式的网络数据包进行预处理;S6.3、采用TF-IDF方法进行特征提取,过滤掉停用词和低频词;S6.4、根据选择的特征、特征出现的词频以及隐私泄漏标签,生成ARFF文件,并由训练好的分类器对各待测安卓应用的网络数据包进行预测是否存在隐私泄漏;S6.5、针对存在隐私泄漏的待测安卓应用,采用基于模糊正则匹配的方式判断隐私泄漏类型。优选地,所述预先本文档来自技高网
...
一种安卓应用网络通信中隐私泄漏检测方法及系统

【技术保护点】
一种安卓应用网络通信中隐私泄漏检测方法,其特征在于,包括:S1、爬取待测安卓应用,构建待测应用集合;S2、构建中间人攻击服务器,并初始化各测试机环境,配置多测试机分布式运行调度系统;S3、分析所述待测应用集合中的APK文件,获取与所述APK文件对应的应用程序的包名和主Activity信息;S4、根据所述包名和主Activity信息,安装与所述APK文件对应的应用程序,并基于UI自动化遍历框架驱动所述应用程序运行;S5、分析Burp Suite生成的日志文件,获取存在SSL中间人攻击的应用集合;S6、对收集的当前应用程序运行过程中产生的网络数据包文件进行分析,结合所述存在SSL中间人攻击的应用集合识别所述网络数据包文件中的隐私泄漏类型。

【技术特征摘要】
1.一种安卓应用网络通信中隐私泄漏检测方法,其特征在于,包括:S1、爬取待测安卓应用,构建待测应用集合;S2、构建中间人攻击服务器,并初始化各测试机环境,配置多测试机分布式运行调度系统;S3、分析所述待测应用集合中的APK文件,获取与所述APK文件对应的应用程序的包名和主Activity信息;S4、根据所述包名和主Activity信息,安装与所述APK文件对应的应用程序,并基于UI自动化遍历框架驱动所述应用程序运行;S5、分析BurpSuite生成的日志文件,获取存在SSL中间人攻击的应用集合;S6、对收集的当前应用程序运行过程中产生的网络数据包文件进行分析,结合所述存在SSL中间人攻击的应用集合识别所述网络数据包文件中的隐私泄漏类型。2.根据权利要求1所述的方法,其特征在于,步骤S1具体包括以下子步骤:S1.1、选取M个目标应用市场,分析各目标应用市场按照类别划分的列表页URL特征、详细应用页面URL特征、应用下载URL特征,其中,M为正整数;S1.2、分析所述列表页URL特征、所述详细应用页面URL特征以及所述应用下载URL特征,基于ID或包名探测方式构建HTTP请求,下载各目标应用市场中各类别的N个待测安卓应用,其中,N为正整数;S1.3、将所述N个待测安卓应用的APK文件采用FASTDFS文件框架分布式存储到不同的服务器上,并将安卓应用相关信息存储到数据库中。3.根据权利要求2所述的方法,其特征在于,步骤S3具体包括以下子步骤:S3.1、基于AndroidSDK自带的AAPT工具分析各待测安卓应用;S3.2、提取待测安卓应用的权限集合,判断是否存在联网权限;S3.3、若存在联网权限,则提取待测安卓应用的包名与主Activity名。4.根据权利要求1所述的方法,其特征在于,步骤S4具体包括以下子步骤:S4.1、基于AccessibilityService提供的接口获取当前待测安卓应用运行过程中的GUI界面信息,并根据预先制定的GUI界面分类规则识别与所述GUI界面信息对应的GUI界面类型;S4.2、采用与所述GUI界面类型对应的控件集处理方式,并将最终处理后的可操作控件事件投入任务列表;S4.3、采用启发式深度优先遍历算法,对所述任务列表中的控件事件进行用户动作模拟,并判断当前GUI界面状态是否发生变化,若发生变化,则跳转执行步骤S4.1;若...

【专利技术属性】
技术研发人员:李瑞轩李晶晶辜希武李玉华章衡韩洪木汤俊伟李水祥
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1