wnagzihxa1n

wnagzihxa1n

iOS/Android Security

© 2021

大土豆安全笔记 2020.03.23

两百多集的视频,我已经两倍速看了一百集了,基础的知识复习起来很快的,目前的状态还是处于查漏补缺

已经挑选好了下一阶段的学习视频,大概能把自己的技能树点成下面这样,也就列个大概,没列出来的不代表我不会,列出来的也不一定就代表我会,逐渐梳理逐渐完善,最起码说起来得擅长Java嘛

IMAGE

我想周末早起读Paper,可惜醒来就是九点,于是在下午读了一篇Paper《EviHunter: Identifying Digital Evidence in the Permanent Storage of Android Devices via Static Analysis》,关于Android文件系统取证,发表于ACM CCS 2018,虽然是18年发表的,但也代表了一种自动化取证思路

Paper,Slides都已经公开,目前我已经读完Paper了,接下来思考一下具体实现

  • https://arxiv.org/pdf/1808.06137.pdf
  • https://drive.google.com/file/d/1BuVSfVueBKidzo8T1cYBQB9jjR7QJuXH/view?usp=sharing
  • https://github.com/paradox5566/EviHunter

对于Android系统取证这部分,因为一直没有接触过相关业务,所以我也没怎么关注,但是又觉得不接触不行,这一天天的行走江湖,万一哪天客户说要搞个取证,结果别的团队蹭蹭蹭就上了,最后留下我啥也不会只能一脸懵逼

鉴于没什么经验,先搜了一本书学习,老外写的,13年国内第一次印刷,这几天抓紧时间把这本看完,对Android系统取证有个初步认识

IMAGE

取证包含的技术还是挺有趣的,都是实打实的具体需求,我这里举一些我目前学习到的例子

  1. 微信聊天数据,比如照片,语音,视频
  2. 连接过的WiFi,比如WiFi名称,WiFi密码

这篇Paper所做的工作主要是自动化文件系统取证,也就是通过静态分析提取App获取数据并写出到文件的流程,然后生成一个App Evidence Database,再和需要进取证的系统进行文件数据匹配,就可以自动化形成一份初步的文件系统取证报告

作者说以前的文件系统取证依赖手动分析,以及关键词匹配,比较繁琐,咱以前没接触过,不敢说也不敢问呐

一个大概的流程如下,一股浓浓计算机老师用的PPT既视感

IMAGE

其实前面什么流程图都是可有可无的,就是静态分析创建AED,然后扫描匹配出报告,最关键的就是如何生成AED,主要还是数据流分析,有兴趣的同学可以参考Paper

我个人对这篇论文有如下一些看法:

  1. 优点:静态分析是一个比较好的方法,能够尽可能的分析所有的代码,动态运行会有相当多的分支不能触发,当然有很多其它技术可以解决路径触发的问题,但是我们这里只需要提取数量并不大的指定路径,静态分析应该是相对好的选择
  2. 缺点:没有对动态下发逻辑进行判断,我们知道,现在安卓平台大量使用动态下发文件进行更新,有不少逻辑都是通过下发的代码包进行执行,本文没有对这部分进行考虑
  3. 改进:如果是我来做这份工作,我会考虑动静结合,静态可以使用作者的这部分工作,同时多一部分动态加载和热补丁相关的代码静态分析,然后尽可能去触发动态下发文件并加载的逻辑,把下发的文件结合原有的文件一起分析,可以更全面的进行文件系统取证

关于Android逆向的知识点以及工具使用,我要是想起来就会分享

现在某个应用存在一个点击按钮发送数据的界面,我们想跟踪一下数据组包的流程,直接去硬刚代码肯定不行,头都要磕破,可以查看它当前运行界面最顶层的Activity,找到当前界面对应的Activity,就知道对应的入口,进而可以开始分析逻辑,需要怎么做呢?

7.0
MacOS/Linux
$ adb shell dumpsys activity | grep "mFocusedActivity"
    mResumedActivity: ActivityRecord{915f2ce u0 com.android.iotlauncher/.DefaultIoTLauncher t78}

Windows
$ adb shell dumpsys activity activities | findstr "mFocusedActivity"
    mResumedActivity: ActivityRecord{915f2ce u0 com.android.iotlauncher/.DefaultIoTLauncher t78}

8.0
MacOS/Linux
$ adb shell dumpsys activity activities | grep "mResumedActivity"
    mResumedActivity: ActivityRecord{915f2ce u0 com.android.iotlauncher/.DefaultIoTLauncher t78}

Windows
$ adb shell dumpsys activity activities | findstr "mResumedActivity"
    mResumedActivity: ActivityRecord{915f2ce u0 com.android.iotlauncher/.DefaultIoTLauncher t78}

说到这里,我想到了一个很有意思的UI自动化点击思路,我先记录一下,等我这段时间学习完,调研一波看看业界的研究进度

我最近发现一件事情:我跟不同年龄层的师傅们聊天,容易被刚毕业的DISS,但是跟比我毕业早的师傅们一起聊天就极其愉快了,可能是小盆友们觉得我都毕业好几年了比他们这群刚毕业的混得还差,优越感爆棚了吧:(

我想想,确实也是,好好学习呦,不然马上要被2020届的DISS了呦

人生真是起起落落落落落落,7000没到,兜兜转转回到6000的角落

最后,开开心心上岛

IMAGE