The invention discloses an intelligent fuzzy testing method for Android applications. This method includes application reverse symbol execution and Android application fuzzy testing. The Android application is modeled and analyzed with the Android vulnerability, and the Android application entry function, the sensitive operation point, the control flow and the function call information are obtained. The path constraint information is obtained by using the sensitive operating point as the entrance to obtain the path constraint information, and the path constraint information is solved to trigger the vulnerability. The path test case; use the generated path test case to make fuzzy test of Android application, monitor the running state of the program, analyze the program running information and generate the related vulnerability report. The invention can generate test cases satisfying the trigger vulnerabilities while avoiding the path explosion, and the fuzzy test guided by the method is more targeted. Compared with the traditional fuzzy testing method, this method overcomes the blindness of fuzzy testing and improves the efficiency of fuzzy testing.
【技术实现步骤摘要】
面向Android应用的智能模糊测试方法
本专利技术涉及一种Android应用软件安全性测试方法,尤其是涉及一种基于逆向符号执行指导模糊测试的方法,结合逆向符号执行和模糊测试两方面的优势分析软件的安全性。
技术介绍
随着移动互联网的大范围普及和Android智能手机的广泛使用,Android手机应用软件产业得到了飞速发展,已经开始影响到人们工作和生活的方方面面,例如:移动办公软件,移动游戏软件,移动社交软件,移动定位软件和移动支付软件等等。大量Android应用程序通过应用商店或第三方市场下载并安装到用户手机上使用。然而,应用程序大都来源于第三方开发者,这些应用程序可以不经检查就投放到市场上,其中就有可能包含带有漏洞的应用程序,对用户的隐私构成严重威胁。因此,为了尽早发现软件存在的漏洞,应该进行软件漏洞分析。模糊测试是目前软件漏洞分析的代表性技术,在软件漏洞分析领域占据重要地位。其基本想是通过构造非预期的输入数据并监视目标软件在运行过程中的异常结果发现软件故障的方法。模糊测试的基本流程为:1)确定目标程序。整个模糊测试过程中的第一步是确定测试目标,有了明确的目标才能决定使用的测试工具和测试方法。2)确定输入数据。绝大部分可利用的安全漏洞都是由于目标软件未对输入数据进行校验或未对不合法的输入做相应的出错处理。3)构建模糊测试用例。在分析目标软件数据规约的基础上,可以针对性地设计测试用例。4)监视执行并过滤异常。执行测试用例的过程往往与测试用例生成一起执行,即将测试用例输入给目标程序以监测程序的运行状态。5)异常分析与漏洞确认。在运行过程中对目标程序的状态进行 ...
【技术保护点】
1.一种面向Android应用的智能模糊测试方法,其特征在于包括如下步骤:1)ndroid应用程序进行建模分析;分析反编译后的代码,从而获取到该Android应用程序所有的入口函数、系统调用关系、方法的控制流信息和函数调用信息,使用Android漏洞特征来标记出所有可能存在漏洞的程序点,即敏感操作点;2)步骤1)中获取的敏感操作点作为逆向符号执行入口点,进行逆向符号执行初始化,取出相关操作变量存放到逆向符号执行符号表中,并且初始化路径约束;3)步骤1)中建模分析后获取的信息进行逆向符号执行;逆向分析过程中,当指令是输入、输出和赋值语句类型时,更新逆向符号执行符号表;当指令是条件语句类型时,更新并记录路径约束条件;当指令是调用语句类型时,调用相关API函数;4)执行步骤3)进行逆向符号执行,直到到达入口点为止,保存当前相关路径的符号表和路径约束条件;5)约束求解器对路径约束条件进行求解,生成满足该路径触发条件的测试用例;6)步骤5)中生成的漏洞触发测试用例作为输入对,Android应用进行模糊测试,收集该Android应用的运行状态、异常状态和漏洞信息;7)步骤6)中收集的异常信息进行分 ...
【技术特征摘要】
1.一种面向Android应用的智能模糊测试方法,其特征在于包括如下步骤:1)ndroid应用程序进行建模分析;分析反编译后的代码,从而获取到该Android应用程序所有的入口函数、系统调用关系、方法的控制流信息和函数调用信息,使用Android漏洞特征来标记出所有可能存在漏洞的程序点,即敏感操作点;2)步骤1)中获取的敏感操作点作为逆向符号执行入口点,进行逆向符号执行初始化,取出相关操作变量存放到逆向符号执行符号表中,并且初始化路径约束;3)步骤1)中建模分析后获取的信息进行逆向符号执行;逆向分析过程中,当指令是输入、输出和赋值语句类型时,更新逆向符号执行符号表;当指令是条件语句类型时,更新并记录路径约束条件;当指令是调用语句类型时,调用相关API函数;4)执行步骤3)进行逆向符号执行,直到到达入口点为止,保存当前相关路径的符号表和路径约束条件;5)约束求解器对路径约束条件进行求解,生成满足该路径触发条件的测试用例;6)步骤5)中生成的漏洞触发测试用例作为输入对,Android应用进行模糊测试,收集该Android应用的运行状态、异常状态和漏洞信息;7)步骤6)中收集的异常信息进行分析,评估其对系统的影响,确认每个监控到的真实的漏洞,生成漏洞相关报告。2.根据权利要求1所述的面向Android应用的智能模糊测试方法,其特征在于:步骤1)中,对已有...
【专利技术属性】
技术研发人员:俞研,邱煜,吴家顺,胡恒伟,黄兴远,孙贝,
申请(专利权)人:南京理工大学,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。