移动安全是移动端开发的重要一环,无论是对开发或测试来说,移动端的漏洞分析/测试等工作是不可或缺的一部分。我们总结了十余款移动安全相关工具,内含静态、动态分析框架,同时也有一些逆向工程和渗透测试框架。
1、Amandroid
Amandroid 是 Android 应用的静态分析框架,该框架对组件之间进行流和上下文敏感的数据流分析。
目前,使用静态分析解决 Android 应用程序安全的工作更多地关注特定问题,大多数工具也是为特定问题专门构建。而很大一部分 Android 安全问题都可以通过一个核心问题来解决 —— 捕获应用程序的语义行为,例如对象指向和控制 / 数据流信息。
Amandroid 正是直接处理组件间控制和数据流,因此它可用于解决不同应用程序的多个组件交互导致的安全问题。它可以通过对 Android 运行时和库进行明确指定和合理假设,来保证应用程序中不存在指定的安全问题。
Amandroid 框架非常灵活,易于扩展其他类型的 Android 安全问题分析。
项目地址:https://www.oschina.net/p/amandroid
2、APK Analyser
APKAnalyser 是一款 Android 静态、虚拟分析工具,用来测试和验证 Android 应用的开发工作。
ApkAnalyser 是个完整的工具链,可以修改二进制应用,用户可以改装,安装,运行,验证 logcat 的结果。ApkAnalyser 同时支持资源分析,可以解码 XML,查找资源指向和检测应用潜在问题。
ApkAnalyser 是个独立的 J2SE 应用,遵循 Apache 开源协议,完全使用 Java 编写。
注意:有时 ApkAnalyser 会消耗大量内存来分析 dalvik 字节码,很可能会耗尽内存,特别是在加载多个大的 odexed APK 文件时。此外,ApkAnalyse 是索尼公司十年前开发的工具,因此部分内容可能有些过时,感兴趣的朋友可以自行了解。
项目地址:https://www.oschina.net/p/apkanalyser
3、QARK
QARK 全称 Quick Android Review Kit :快速 Android 审查工具包,这个工具可用来检查 Android 应用的源代码和打包的 APK 中常见的安全漏洞。
QARK 自动使用多个反编译器,利用它们的组合输出,在反编译 APK 时产生出色的结果。QARK 不需要 root 测试设备,因为该工具专注于寻找在安全环境下能被利用的漏洞。
与传统工具相比,QARK 的主要优势在于它可以生成 ADB 命令,甚至是功能齐全的 APK,从而将假设的漏洞转化为有效的“POC”漏洞利用。此外,QARK 提供详细的漏洞报告,使安全审查人员能够找到对漏洞的精确且深入的解释,并从中学习。
注意:QARK 会将 Android 应用程序反编译回原始源代码,这在某些情况下可能属于违法行为,请谨慎使用。
项目地址:https://www.oschina.net/p/qark
4、APKLeaks
PKLeaks 是一个开源的 apk 文件敏感信息扫描工具,通过扫描 APK 文件来获取 URI、端点和 secret 信息。
PKLeaks 使用起来非常方便,通过简单的命令行即可完成 APK 文件的信息提取,而且支持通过配置 Json 文件来调整敏感信息的搜索规则,输出结果支持 txt 和 Json 两种格式(默认生成 txt 格式)。
APKLeaks 依赖于逆向工程工具 jadx,如果环境中没有,则会提示安装。
注意:这个包适用于 Python2,不适用 Python3。
项目地址:https://www.oschina.net/p/apkleaks
5、Infer
Infer 是 Facebook 开源的静态程序分析工具,用 OCaml 语言编写,用于在移动应用发布之前对其代码进行分析,找出潜在的问题。
目前 Infer 支持检测 Java、C++、Objective-C 和 C 四种语言的代码。对于 Android 和 Java ,Infer 主要检查代码中的空指针异常、资源泄漏、注释可读性、缺少的锁保护和并发竞争条件。对于 C、C++ 和 iOS/Objective-C ,Infer 则主要检查空指针的取消引用、内存泄漏、编码约定和不可用的 API 等问题。
目前 Infer 已在 Facebook 中全面部署,持续运行以验证 Facebook 应用程序的 Android 和 iOS、Facebook Messenger、Instagram 等应用的代码修改。
项目地址:https://www.oschina.net/p/infer
6、MobSF
移动安全框架 (MobSF) 是一个自动化、一体化的移动应用程序 (Android/iOS/Windows) 渗透测试、恶意软件分析和安全评估框架,能够执行静态和动态分析(动态分析目前只支持 Android)。
MobSF 支持检测移动应用程序二进制文件(APK、XAPK、IPA 和 APPX)以及压缩源代码。MobSF 提供 REST API ,可与 CI/CD 或 DevSecOps 管道无缝集成。其动态分析器则可帮助开发者执行运行时安全评估和交互式仪器测试。
MobSF 将数据保持在本地环境之中,所以不必担心应用和相关的数据被发送至云端,造成数据泄露。
项目地址:https://www.oschina.net/p/mobsf
7、Radare2
Radare2(又名 R2) 是一个用 C 语言编写的类 UNIX 逆向工程框架和命令行工具集。
R2 是功能强大的低级命令行工具(有一个被称为 Cutter 的 GUI 版本)支持脚本,一般被用作跨平台的二进制分析工具,用于分析、模拟、调试、修改和反汇编任何二进制文件。它支持在本地或通过远程 gdb 服务器编辑本地硬盘驱动器上的文件、查看内核内存和调试程序。
R2 支持 ARM、MIPS、X86 等多个平台,同时支持多种操作系统: Windows (since XP)、 Linux、 GNU/Hurd、iOS、 Android 、OpenBSD、 Z/OS、FirefoxOS 等。
项目地址:https://www.oschina.net/p/radare2
8、Adhrit
Adhrit 是一个开源的 Android APK 逆向和分析套件,可提取 APK 文件中的重要信息,并使用 Ghera 基准来识别 Android 应用程序中可能存在的漏洞。
Adhrit 深入分析 APK 文件的静态字节码,它依赖 Python3 和 JDK ,自带 GUI 界面,启动时会生成可以上传 APK 并生成报告的 Web 界面,分析完毕会生成 Json 格式的分析报告。
注意:Adhrit 分析带有两个“.”的文件名时(如 my.app.apk)可能会出错。这种情况请重命名 apk 为一个 “.” (如 myapp.apk) 即可解决。
项目地址:https://www.oschina.net/p/adhrit
9、Bytecode Viewer
Bytecode Viewer (字节码查看器) 是一个高级轻量级 Java/Android 逆向工程套件,可以分析 Java 8+ Jar 文件 和 Android APK 文件。
Bytecode Viewer 内置 6 个 Java 反编译器:Krakatau、CFR、Procyon、FernFlower、JADX、JD-GUI;和 3 个内置字节码反汇编器,包括 2 个汇编器:Krakatau 和 Smali/BakSmali ;以及 Dex2Jar 和 Enjarify 这两个 APK/DEX 转换器,同时拥有高级搜索、调试等功能。
Bytecode Viewer 支持含中文在内的 30 多种语言,支持解析 Class、Jar、XAPK、APK、DEX、WAR、JSP、图像资源、文本资源等多种格式的文件,使用起来非常简单。
项目地址:https://www.oschina.net/p/bytecode-viewer
10、Apktool
Apktool 是一个用于逆向工程第三方、封闭二进制 Android 应用程序的工具。它可以用来从 Android 的 apk 安装程序中提取各种资源,将资源分解为几乎原始的形式(比如resources.arsc、classes.dex和9.png.XMLs),并对这些资源进行修改和重新打包。
Apktool 可用于 也可将解码的资源重建回二进制 APK/JAR 文件,由于它支持自动化的 APK 构建,因此也可以用来完成一些重复的 APK 构建任务。
Apktool 可用于应用的本地化、往应用中添加一些功能、使应用支持自定义平台、或分析学习应用程序内部结构等用途,不适用于盗版和其他非法用途。
Apktool 依赖于:Java 8 (JRE 1.8)、 Android SDK、AAPT、smali 基础知识 。
项目地址:https://www.oschina.net/p/apktool
11、MARA
MARA 是一个移动应用程序逆向工程和分析框架。它将常用的移动应用逆向工程和分析工具组合在一起,用于测试移动应用,以抵御 OWASP(开放式 WEB 应用程序安全项目)的移动安全威胁。
MARA 支持 APK 逆向工程,比如将 Dalvik 字节码反汇编为 smali 字节码或 Java 字节码,同时还支持 APK 反混淆、APK 执行路径、IP 地址、URL、URI、电子邮件等基本信息的提取、APK 漏洞扫描、恶意软件分析、APK Manifest 分析等多种功能。
MARA 还提供基于 OWASP Top Mobile Top 10 和 OWASP Mobile Apps Checklist 的源代码静态分析,能够对 apk、dex 或 jar 文件执行单个或批量分析。
项目地址:https://www.oschina.net/p/mara
12、JADX
JADX 是一个 Dex 到 Java 的反编译器,用于从 Android Dex 和 Apk 文件生成 Java 源代码,有命令行和 GUI 两个版本。
JADX 的主要功能是从 APK、dex、aar、aab 和 zip 文件将 Dalvik 字节码反编译为 java 类,自带去混淆器。JADX-GUI 版本还支持以高亮语法查看反编译的代码、提供用法指引、全文检索和 smali 调试器等功能。
注意:在大多数情况下,jadx 无法对所有 100% 的代码进行反编译,因此可能会出现错误。出错时请查看故障排除指南,以获取解决方法。
项目地址:https://www.oschina.net/p/jadx
13、Androl4b
AndroL4b 是一个基于 ubuntu-mate 的安卓安全虚拟机,可用于逆向工程和恶意软件分析。
AndroL4b 包括来自不同信息安全极客和研究人员的最新框架、教程和漏洞实验室的集合,上文提到的 Radare2 、APKTools、ByteCodeViewer、Qark 、MARA 等工具,AndroL4b 均已内置。同时还有 Android Security Sandbox 、InsecureBankv2 等漏洞实验室,可提供最新 Android 漏洞的详细信息。
项目地址:https://www.oschina.net/p/androl4b
本文包含的开发工具已收录至 Awesome 软件系列之移动安全工具: https://www.oschina.net/project/awesome?columnId=14 。
小编对移动安全涉猎甚少,如本文对工具的描述有误,欢迎大伙在评论区批评指正。此外,若读者朋友还了解其他优质移动安全工具,欢迎在评论区推荐,小编将第一时间收录。
|