20165320 毕业设计 第一周总结

20165320 毕业设计 第一周总结

任务及完成情况

周一 周二 周三 周四 周五 周六 周天
Android运行及分析环境的搭建|
学习Android系统|
查阅Android系统安全相关文献 |
研究Android系统常见攻击与防护措施 |
根据现有资料制定学习计划 |
文献翻译、总结知识点 |
撰写总结博客 |
已完成|
已完成|
已完成 |
已完成|
已完成 |
已完成 |
已完成 |

内容总结

一、环境搭建

二、Android系统安全基础

1、Android系统分为四层结构(从上往下):
  • 应用层:负责与用户进行交互,即应用程序(QQ、微信啥的)。

  • 应用程序框架层:提供程序开发所会用到的各种API,包含四大组件,各组件之间通过Intent传递消息。

    • Activity(活动):与用户进行交互的界面。

    • Service(服务):处理一些后台任务,比如下载。

    • Broadcast Receiver(广播):接受并处理来自系统或应用的通知。

    • Content Provider(内容提供器):可以理解为各应用程序之间共享的数据库,比如通讯录。

  • 核心库和Dalvik虚拟机层:负责运行Android程序并将Dalvik虚拟机执行代码转换为Linux层能执行的C代码。

  • Linux内核层:负责管理硬件驱动。

2、各层对应的安全机制:
  • 应用层:权限控制。APP在安装使用时,只有经过用户授权,才会被赋予其申请的相应权限。

  • 应用程序框架层:签名机制。APP再打包成为APK之前,需要经过签名,通过签名可以实现对APP的身份验证与更新等功能。

  • 核心库和Dalvik虚拟机层:沙箱机制。每个APP运行时,使用的虚拟机是独立的。

  • Linux内核层:Android和Linux一样,都含有文件权限机制,不同点在于Android系统中每个APP就是一个用户,拥有独立的资源。

3、Android root:和Linux系统中的root用户一样,获取Android系统中超级用户权限的过程被成为root。主要有以下两种思路:
  • 找具有root权限的进程的漏洞进行提权。
  • 刷机。
4、APK的组成及生成过程
  • 组成如下:

    • assets:资源目录

    • lib:存放so库,由NDK编译得到。

    • META-INF:存放签名信息。

    • res:资源目录(与assets目录有一定区别)。

    • AndroidManifest.xml:配置属性文件。里面包含许多应用程序的关键信息。

    • classes.dex:Dalvik虚拟机的可执行文件。

    • resources.arsc:res目录下的资源索引文件。

    • PS:APK实质上就是一个zip格式的压缩包,其中有许多重要的文件,在之后学逆向的时候会用到,所以在下周会好好学一下一部分。

  • 生成过程如下:

    • 打包res目录下的资源文件,生成R.java。
    • 处理aidl文件(没听说过这个....暂时放这吧)
    • 编译项目,生成class文件。
    • 将class文件转换为Dalvik虚拟机可以执行的dex文件。
    • 最后就是打包、签名、对齐。

  • 参考资料:网络安全攻防技术:移动安全篇

三、Android系统安全现状

  • 现状:目前,Android系统经过一次又一次的版本更新,本身存在的许多系统安全漏洞已经被修复,但是由于其开源的特性,用户信息安全意识普遍缺乏,以及逆向技术的发展,导致安全形势仍不容乐观。(其中以破解版软件最常见)

  • 防护措施:用户提高自身信息安全意识、没事不要root自己手机、Android软件开发人员在开发过程中加入相应的保护手段(反打包、加壳等)。

  • 参考资料:

    • Android 系统安全现状分析
      高 度 昆明学院 云南 昆明 650214

    • Android 应用安全问题与对策思考研究
      郝晓东 孙二鑫 藏丹丹 李潇潇 天津卡达克数据有限公司
      300000

    • Android 系统存在的主要安全隐患及对策研究
      邓基亮 李镇均 王达浩 蔡敏

四:接下来的学习计划

  • 根据任务书以及导师的要求,以及自身实际情况,初步制定了以下学习计划:

    • 继续Android系统安全基础的学习

    • 实现一个简单的Android系统漏洞

    • 现有Android软件保护技术

    • 学习Dalvik指令与arm反汇编基础

    • Android程序的静动态分析

    • Android原生程序逆向分析、动态调试(先写上吧,学不会再说......)

    • 数据存储与数据通信安全

待解决的问题&下周的计划

  • 目前最大的问题还是关于Android系统的知识与理解不够深入,还需要大量的知识储备支撑后期的逆向学习。

  • 下周主要任务是在老师的指导下明确毕设方向,梳理好思路,写好开题报告,同时增加理论知识储备,为之后的实践做准备。

posted @ 2020-03-01 23:57  Gst丶Paul  阅读(296)  评论(0编辑  收藏  举报