程序分析:Android漏洞挖掘技术

本文深入探讨了Android漏洞挖掘技术,包括静态分析、动态分析和污点传播分析。重点介绍了静态分析工具如FlowDroid、AppAudit和TaintDroid,并讲解了Android操作系统的安全机制。此外,还讨论了敏感数据的隐私泄露检测方法,如网络连接、短信发送和内部数据泄露,并阐述了自动化检测工具的工作流程和污点分析原理。
摘要由CSDN通过智能技术生成

           

Android漏洞挖掘技术

静态分析(控制流分析、数据流分析、结构分析)、动态分析、污点传播分析

过程内分析、过程间分析(函数调用)

漏洞挖掘开源工具:FlowDroid、AppAduit  、TaintDroid、AppIntent

反编译:Apk=>伪代码=>三地址码

Apktool(apk转换为smali)-dex2jar(dex转换为jar)-smali/baksmali(dex转换为smali)

aDFAer:基于过程间分析的Android程序隐私泄露检测的研究

Android操作系统结构:应用程序结构-安全机制(权限管理机制,沙箱机制)

隐私数据PII:日志信息,设备相关信息IMEI/SIM,通讯录和通话记录,短消息纪录,地理位置信息

隐私泄露:网络连接泄露,短信息发送泄露,向手机内部泄露

自动化隐私泄露检测工具预处理(字节码>伪代码)、控制流分析(控制流图|调用信息图)、数据流分析(到达-定值分析、常量分析、别名分析、类型分析)、污点分析传播路径(源点,锚点)

控制流分析(逻辑控制关系):控制流图CFG(基本块起始语句>生成基本块>添加控制流边)-调用关系图(Worklist算法)

     基本块起始语句:第一条语句,调转语句的跳转目标,所有跳转语句的下一条语句

数据流分析(程序数据传递关系):

污点分析源点(发送程序的数据点)-锚点(接收数据的程序点)-传播路径

动态污点分析:污点数据(对源点的数据加上特定标记)->运行程序->检测锚点的数据中是否包含有污点数据->只覆盖主要数据传播路径)

静态污点分析:正向污点分析(所有依赖污点源点的数据全都标记为被污染的数据)、逆向污点分析(可能污点锚点的数据标记为污点数据)

检测技术框架

静态程序分析检测技术:预处理、控制流和数据流分析、污点分析

过程内分析:每一个函数的到达定值、常量、别名和类型进行分析

过程间分析(函数调用之间的数据流合并):自底向上重复操作语句 S<-> IN [S](输入)-OUT [S](输出)-GEN [S](产生集)-KILL [S](消除集)

污点检测规则API匹配规则statement、API危险程度risklevel(0,1,2)、API功能描述state-description

         检测工具静态逻辑视图Analyzer(总控模块,图形化显示界面|检测工具的驱动类)、Dedexer

(伪代码反编译模块)、EntryPointAnalyzer(分析入口提取模块)、InterAnalyzer(过程间分析模块)、ControlFlowAnalyzer(控制流分析模块) 、DataFlowAnalyzer(数据流分析模块:常量分析、别名分析、反射分析、数据依赖分析、类型分析子模块)、TaintAnalyzer(污点分析模块)、TaintGraphBuilder(可视化生成模块)

APPAudit:基于静态程序分析方法的ANDROID应用程序行为审计

敏感信息:短信、通话记录、位置信息、浏览器历史记录

AppAudit系统:Dalvik字节码和Manifest文件=>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值