Android应用软件漏洞静态挖掘技术培训课件.ppt

Android应用软件漏洞静态挖掘技术培训课件.ppt

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Huazhong University of Science and Technology 针对Android应用软件的代码静态分析主要采用缺陷模式匹配和数据流分析技术,分析与用户隐私相关的敏感数据在应用代码中的使用和传播情况.Android应用与传统的Java程序不同,不存在唯一的Main函数,其运行是基于组件的生命周期和事件响应机制的 1,sink点和entrypoint进行检测;这些点是人工按照一定的安全经验知识定义的。source点是指敏感数据的获取点,主要是获取敏感数据的API函数(如getDeviceID等),sink点是指数据传出点,主要是对数据进行存储、传输等操作的函数,entrypoint是指包含source点的函数或代码段 2,通过分析应用的基本信息清单文件、布局文件和逆向分析得到的代码文件,获取了组件的回调函数和生命周期,然后以某个主页面作为入口,模拟某个事件为初始事件,找到首个触发的回调函数,以此作为应用的伪主函数. 4,从各个entrypoint出发,对过程间控制流图进行遍历,目的是进行污点传播路径的跟踪,最后分析得到敏感数据从source点流向sink点的传播路径.图1展示了污点跟踪的整个流程 根据ICFG,结合定义的source点和sink点信息,对图中的每个节点是否包含source点进行检测,确定数据流分析的入口点集合,即entrypoints.最后从入口点出发,对控制流图进行遍历,最终得到应用污点数据的传播信息. 根据应用生成的过程间控制流图,结合定义的source点和sink点信息,对图中的每个节点是否包含source点进行检测,确定数据流分析的入口点集合,即entrypoints。最后,从entrypoints出发,采用污点分析的方式对其控制流图进行遍历,得到应用污点数据的传播信息。 Android应用软件漏洞静态挖掘技术 汤俊伟 刘家帧 李瑞轩 李伟明 华中科技大学计算机科学与技术学院 华中科技大学网络与计算中心 精品文档 报告提纲 一,问题背景 二,二进制逆向分析 三,中间代码静态分析 四,漏洞检测 五,评价 精品文档 问题背景 漏洞危害:漏洞可能被攻击者用以实现拒绝服务攻击、 权限提升、窃取应用数据和用户隐私等 漏洞形式多样:组件间通信,网络通信,数据存储, 混合应用漏洞等 动态分析代码覆盖率低、静态分析速度快 代码混淆等对抗分析技术流行 Android程序独特的生命周期 …… 精品文档 二进制逆向分析 将应用安装文件成功转化为语义完整的可分析 代码是本研究关键的第一步 解析AndroidManifest文件:权限、组件信息 dex字节码文件 与 java字节码的转换 代码包的层次关系 SAAF,AXMLPrinter2,baksmali等一些 开源逆向项目 精品文档 中间代码静态分析 Android应用与通常的Java程序不同,不存在主函数,应用的运行以及函数之间的调用是通过事件回调函数来实现的,并且回调时机与组建的生命周期相关 Android应用程序生命周期图 精品文档 中间代码静态分析 设置source,sink,entrypoint 生成伪主函数(FlowDroid、soot) 构建过程间控制流图 遍历过程间控制流图(污点跟踪) 精品文档 中间代码静态分析 根据生成的应用伪主函数和应用的函数调用关系图,可以构建应用的ICFG(过程间控制流图),ICFG中每个节点表示一个函数或代码块,图中的边表示可能的节点之间的调用关系. 过程间调用关系图 精品文档 漏洞检测 基于指纹特征的Android应用软件漏洞检测 漏洞类别:数据泄露,未知代码执行,注入漏 洞,内容共享与代码加载,编码失效 检测方式:规则库匹配 研究其漏洞模式和产生的原理,提取漏洞特征,编 写漏洞检测规则. 覆盖15种常见漏洞 精品文档 常见漏洞类别 类别 子类别 特征 数据泄露 ? 敏感数据外部存储 敏感信息存储在sdcard 敏感数据明文存储 数据存储未经过加密处理 敏感数据明文传输 网络传输时,数据未经过加密处理 日志泄露敏感数据 敏感数据通过logcat以日志的形式输出 未知代码执行 WebView远程代码执行 WebView组件将本地对象暴露给JS脚本 Shell命令执行 使用Runtime.exec来执行shell命令 注入漏洞 SQL代码注入 sql语句接收未经校验的参数输入 Intent注入 包含export为true的组件,且存在可能被注入的Intent-filter 内容共享与代码加载 Package资源共享 存在Package contexts资源共享,使应用可以在运行时加载别的应用的资源文件和代码 ClassLo

文档评论(0)

liuxiaoyu98 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档