论文部分内容阅读
Android应用间能力泄露漏洞是一种危害性非常大的Android组件间漏洞,其他应用或者攻击者可以利用其非法地使用该应用的特殊能力,因此对Android安全造成了巨大的危害。目前Android组件间安全工作更多的是关注Android组件间漏洞的检测方法,而忽略了漏洞利用的重要性。漏洞利用可以帮助开发者确认bug,减少漏洞的分析时间。因此本文先后提出了两个Android应用间能力泄露漏洞利用的自动化生成工具,两者可以自动化检测Android应用间能力泄露漏洞,并生成触发漏洞的利用,帮助开发者确认bug。(1)基于符号执行的Android应用间能力泄露漏洞利用的自动化生成。将符号执行技术引入到Android应用间能力泄露漏洞的检测工作中,精确计算每条可能触发漏洞路径的路径条件;并根据能力泄露漏洞检测工作的问题特性,从多个方面对本文的符号执行进行优化,使符号执行适用于实际应用的能力泄露漏洞检测工作;使用符号执行工具检测豌豆荚各类别611个APP,共发现16种共6566个能力泄露缺陷;根据本文实验评估可知,本文符号执行技术可以产生高精度的测试用例,平均路径条件计算准确率为85.3%;相比同类型工作IntentFuzzer,本文符号执行工具漏报率要好14.97%;符号执行工具的平均APP分析时间为7.16 minutes,满足实际应用场景的时间需求。(2)基于动态反馈的Android应用间能力泄露漏洞利用的自动化生成。通过对Android应用插桩,获取程序的动态运行信息产生测试用例。相比静态分析提取获取路径条件,其可以获取更精确有效的路径条件信息;同时使用上下文敏感、流敏感的过程间数据流分析精确找到每一个包含路径条件信息的变量和插桩位置点,保证动态获取路径条件信息的完备性;并针对获取的路径条件信息进行变异,提高代码覆盖率;使用动态反馈工具检测豌豆荚各类别611个APP,共发现1 7种7143个能力泄露缺陷;相比同类型工作IntentFuzzer,漏报率要好19.39%,相比本文第一个工作漏报率要好5.30%;动态反馈工具的平均APP分析时间为9.04 minutes,满足实际应用场景的时间需求。