The invention discloses a Android platform application vulnerability mining automation system and method, which belongs to the technical field of software analysis, mainly divided into the application of static analysis dynamic module, application analysis module two parts, static analysis module is mainly aimed at the application installation package APK file to control flow analysis and data flow components permissions attribute information, and can reach the path analysis to solve the problem of communication between the components in the application, the dynamic analysis is based on the results of the static analysis to construct Fuzzing test case data, and then to decompile the Smali file Smali code instrumentation, and then run the application, the output information, combined with the static analysis results of the final get application vulnerabilities. The invention can automatically tap potential vulnerabilities of application programs, has a certain elasticity, solve the problem of time consuming in manual mining, and combine with static and dynamic analysis, it can greatly improve the accuracy.
【技术实现步骤摘要】
Android平台下应用程序漏洞自动化挖掘系统及方法
本专利技术属于软件分析
,尤其涉及一种Android平台下应用程序漏洞自动化挖掘系统及方法,主要包括静态分析与动态分析两个部分。
技术介绍
自2007年Google公司正式对外发布Android系统以来,由于其开源的特性受到了很多手机厂商的青睐,同时随着移动互联网市场的飞速增长,各式各样的基于Android平台的应用程序在大众的视野中,而这些带给大众便利的应用程序却常常存在很大的安全隐患,恶意第三方常常会利用这些安全隐患进行攻击,给用户带来了很大的威胁。众所周知,传统的PC端的安全技术已经相对成熟,但是在移动互联网领域的安全技术却比较落后,传统的主机安全技术已然不能够有效保障移动领域的安全,Android平台下的应用程序也面临严重的安全问题。针对Android应用程序的漏洞挖掘技术方面,主要分为静态挖掘和动态挖掘两种方式,其中:静态分析方法是指不通过运行代码,直接针对高级语言编写的源程序或依据源码进行逆向得到的代码分析以发现漏洞的方法,由于源代码或逆向代码中包含完整的程序语义信息,因此通过源代码静态分析能够较为全面地遍历程序路径,发现更多的安全漏洞。静态分析主要包括污点数据追踪技术,可达路径分析技术,符号执行技术等。污点数据追踪是根据数据以来关系对程序进行分析,通常用于检测数据相关的漏洞,在文献《CHEX:staticallyvettingAndroidappsforcomponenthijackingvulnerabilities》中,Lu等人通过静态分析中的污点追踪技术实现了工具CHEX。可达 ...
【技术保护点】
一种Android平台下应用程序漏洞自动化挖掘系统,其特征在于,应用程序漏洞自动化挖掘系统包括静态分析模块和动态分析模块,静态分析模块包括:应用程序安装包APK反编译模块:用于使用第三方工具对APK文件进行反编译得到易于分析的Smali文件;Android配置清单文件分析模块:用于针对AndroidManifest.xml文件进行分析,提取权限、组件名称、组件注册属性信息;控制流图构建模块:用于对Smali文件进行词法和语法分析,构建Smali文件中执行逻辑的控制流图;Intent可达路径分析模块:用于依据Anroid配置清单文件分析模块和控制流图构建模块输出的信息分析组件间通信问题,确定Intent的数据传递路径;污点数据追踪模块:用于依据控制流图构建模块构建的控制流图进行污点数据追踪,确定Smali文件中存在的数据流;API提取模块:用于提取与漏洞相关的API;动态分析模块包括:Fuzzing测试用例构造模块:用于依据静态分析模块的分析结果得到应用程序可能具有的漏洞特征,并将有效测试用例进行变异得到半有效测试用例,作为漏洞的触发点;Smali注入模块:根据数据流确定Smali代码插 ...
【技术特征摘要】
1.一种Android平台下应用程序漏洞自动化挖掘系统,其特征在于,应用程序漏洞自动化挖掘系统包括静态分析模块和动态分析模块,静态分析模块包括:应用程序安装包APK反编译模块:用于使用第三方工具对APK文件进行反编译得到易于分析的Smali文件;Android配置清单文件分析模块:用于针对AndroidManifest.xml文件进行分析,提取权限、组件名称、组件注册属性信息;控制流图构建模块:用于对Smali文件进行词法和语法分析,构建Smali文件中执行逻辑的控制流图;Intent可达路径分析模块:用于依据Anroid配置清单文件分析模块和控制流图构建模块输出的信息分析组件间通信问题,确定Intent的数据传递路径;污点数据追踪模块:用于依据控制流图构建模块构建的控制流图进行污点数据追踪,确定Smali文件中存在的数据流;API提取模块:用于提取与漏洞相关的API;动态分析模块包括:Fuzzing测试用例构造模块:用于依据静态分析模块的分析结果得到应用程序可能具有的漏洞特征,并将有效测试用例进行变异得到半有效测试用例,作为漏洞的触发点;Smali注入模块:根据数据流确定Smali代码插入位置,依据类型将Fuzzing测试用例以Smali代码的形式插入到Samli文件中,然后进行回编译,重打包;运行目标程序监控输出模块:通过运行目标程序得到输出信息;分析模块:结合静态分析模块的分析结果、漏洞特征库及目标程序的输出信息得到应用程序的分析报告。2.根据权利要求1所述的一种Android平台下应用程序漏洞自动化挖掘系统,其特征在于,还包括用户与系统交互界面。3.一种Android平台下应用程序漏洞自动化挖掘系统及方法,其特征在于,包括以下步骤:S1,获取需要交互的应用程序安装包APK文件,并对获取的APK文件进行反编译,得到Smali文件;S2,在步骤S1的基础上,进行操作以下步骤:S21,分析Android应用程序配置文件AndroidManifest.xml,提取组件、权限相关信息;S22,依据Smali语法进行smaili文件中执行逻辑的控制流图构建,得到smaili文件中执行逻辑的控制流图;S23,依据预设的漏洞因子提取关键API;S3...
【专利技术属性】
技术研发人员:张小松,牛伟纳,张林,胡若川,
申请(专利权)人:电子科技大学,
类型:发明
国别省市:四川,51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。