Android安全测试初探【转】 LuminousCL

Android安全测试

本文章转自@kasi


一、安全测试第一部分

序章:

Android 安全测试,跟 pc 安全测试一样分为

  • 客户端
  • 服务端

服务端的安全测试其实很多都跟 pc 端一样,这里不多阐述。

对于应用安全性,从大的方面来说可以分为 2 类,检查扫描

检查包含较多,如:

  • 文件权限
  • apk运行权限
  • apk权限
  • 日志
  • 报文

扫描包含较少,如

  • 端口扫描
  • 病毒扫描
  • 木马扫描
  • 广告查杀

说到这里需要补充2点,除了以上那些,我们还得学会使用 drozer 这个工具,比较利于查杀一些隐蔽的漏洞及其他安全方面的缺陷

除了工具外,还得善于网上寻找相关的安全知识了

看到这里,各位应该对于移动端的安全测试有了一些了解,后续会进行细则讲解。


二、安全测试第二部分

上回大体介绍了下安全测试的一些基本测试项,现在我们就细则方面来一一阐述

首先我们来说说检查这个大项,可能大家看到检查项只有寥寥的几个,但是要查的东西还真不少

文件权限

一般我们需要检查 apk 所生成的文件,这里我们需要检查 2 种模式下安装的apk

  • adb install
  • adb push

使用一段时间,需要遍历所有功能,这样才会生成所有需要检查的文件,一般检查文件路径如下 2 个

  • /data/data/packageName
  • /sdcard/Android/data/packageName

当然有些 apk 还会在 sdcard 上面的其他路径生成文件,这个也是需要检测的,这里我们对文件做如下检测:

  • 权限检测 —— 检测文件的权限所属关系,通过 ls-l 来遍历,查看有哪些文件是否包含允许第三方读写权限
  • 内容检测 —— 打开所有文件,查看内容是否涉及到个人数据及隐私数据,是否加密处理

apk 运行权限

这里我们需要安装apk后,安装方法有 2 种,如上所述,运行apk后,通过 ps 来查看 apk 的运行用户是什么

apk 权限

这里可以使用反编译的方式查看 apk 申请了哪些权限

日志

这里查看 apk 运行期间所打印的日志,通过 logcat 命令来查看

报文

这里查看 apk 在运行期间所有跟网络交互产生的报文,通过 tcpdump、fiddle2、wireshake 等工具均可


三、安全测试第三部分

大家听到扫描,可能立马会想起来用工具,对,大部分扫描都是通过工具,但是工具本身也会存在误报等,还需要人手工校验。

端口扫描

一般使用 nmapnetstat 来进行的。nmap 用于扫描服务器,netstat 用来扫描客户端本身

病毒、木马扫描

一般使用国际四大杀毒厂商提供的移动版来进行扫描,分别扫描 apk 安装文件和 apk 安装后使用一段时间内产生的文件

广告查杀

这个一般都是平台会做的检测项,一般也是用各类查杀广告类的 apk 来进行扫描,目前已知的原理是可以通过 adb shell dumpsys notification 来查杀,至于应用内部的广告查杀原理未知,只能靠软件辅助,如果对方不认可,可以祭出大杀器,反编译找到源码

到这里,扫描也说完了,下面简单的说下 drozer 这个工具

drozer 是一款非常强悍的工具,适合深入挖掘应用底层方面的安全威胁,可以查杀漏洞及木马,以及暗码(有了暗码,很多事情就很好办了~~),drozer搭建好环境后,通过命令行的方式进行运行,命令方面的讲解大家可以移步官方的doc文档

最后还有一个大杀器 —— fuzz测试,可能大家在pc端并不陌生,但是移动端的fuzz测试并不是传统意义的fuzz,而是通过频繁调用空intent来遍历调用apk的各个activity来验证是否会产生崩溃,死机等方面的问题,甚至安全方面的隐患。