1. MobSF 介绍
Mobile Security Framework (MobSF) 是一个自动化、一体化、智能的移动应用(Android/iOS/Windows)安全分析平台,能够执行静态和动态分析。它支持各种移动应用程序二进制文件(APK、IPA、APPX)和压缩源代码。MobSF 可以作为一个移动应用安全评估的起点,帮助安全研究人员和开发人员发现移动应用中的常见漏洞。
MobSF 的主要特点包括:
-
静态分析:
对 APK、IPA、APPX 文件进行反编译和代码分析。
识别常见的安全漏洞,如不安全的数据存储、弱加密算法、权限滥用、硬编码敏感信息等。
提供详细的报告,包括文件结构、清单文件分析、代码分析、API 调用、字符串分析等。
-
动态分析:
通过集成 Frida 和 Genymotion/Android SDK 模拟器,在运行时分析应用程序行为。
捕获网络流量、API 调用、文件系统活动、运行时内存等。
帮助发现仅在运行时显现的漏洞,如逻辑缺陷、会话管理问题等。
-
API 和 CLI 支持:
提供 REST API,方便与其他安全工具或自动化流程集成。
支持命令行接口(CLI),可以进行批量扫描和自动化操作。
-
易于使用:
提供直观的 Web 界面。
部署相对简单。
2. MobSF 部署
MobSF 可以通过多种方式部署,最常见的是使用 Docker 或直接在 Linux/macOS 环境中安装。以下是基于 Docker 的部署指南,它通常更简单且可移植。
前提条件:
- 已安装 Docker 和 Docker Compose。
部署步骤:
-
克隆 MobSF 仓库(可选,但推荐): 如果您想获取最新的源代码或进行开发,可以克隆 MobSF 的 GitHub 仓库:
git clone https://github.com/MobSF/Mobile-Security-Framework-MobSF.git cd Mobile-Security-Framework-MobSF
如果您只是想快速部署,也可以直接使用 Docker Hub 上的镜像。
-
拉取 Docker 镜像并运行: 打开终端或命令提示符,执行以下命令:
docker pull opensecurity/mobsf docker run -it -p 8000:8000 opensecurity/mobsf:latest
docker pull opensecurity/mobsf
: 从 Docker Hub 拉取 MobSF 官方镜像。docker run -it -p 8000:8000 opensecurity/mobsf:latest
: 以后台模式运行 MobSF 容器,并将容器的 8000 端口映射到主机的 8000 端口。-it
用于交互式和伪终端。
访问 MobSF Web 界面: 容器启动后,在您的 Web 浏览器中访问
http://127.0.0.1:8000
或http://localhost:8000
。您应该能看到 MobSF 的欢迎页面。
注意:
如果您是在虚拟机或云服务器上部署,请确保防火墙已允许 8000 端口的传入连接。
对于动态分析,MobSF 需要与模拟器(如 Genymotion 或 Android Studio 的模拟器)或真实设备进行通信。这需要额外配置 ADB 连接,并且通常需要运行在 Linux 或 macOS 环境中进行,因为动态分析涉及到更多的系统级依赖。
3. MobSF 使用
MobSF 的使用主要分为上传待分析的 APP 文件和查看分析报告。
3.1 静态分析
-
上传 APP 文件:
打开 MobSF Web 界面 (
http://localhost:8000
)。在主页上,您会看到一个文件上传区域。
点击 "Upload & Analyze" 按钮,或者直接将您的 Android APK 文件或 iOS IPA 文件拖放到该区域。
MobSF 将开始上传并自动进行静态分析。分析时间取决于文件大小和您的系统性能。
-
查看静态分析报告:
分析完成后,页面会自动跳转到分析报告页面。
-
报告分为多个部分,包括:
基本信息: 应用名称、包名、版本、SDK 版本等。
签名信息: 应用的数字签名信息。
清单文件分析: AndroidManifest.xml 或 Info.plist 中的权限、组件、URL Scheme 等。
代码分析: 包含潜在漏洞的代码模式,如硬编码密钥、不安全的随机数生成、敏感信息泄露等。
文件系统分析: 识别不安全的文件权限。
网络安全: 检测不安全的网络配置(如信任所有证书)。
API 列表: 应用使用的所有 API 列表。
字符串分析: 从二进制文件中提取的字符串,可能包含敏感信息。
漏洞/弱点列表: 总结发现的所有安全问题及其风险等级。
* 您可以点击报告中的各个项来查看更详细的信息,并定位到对应的代码行。
* 报告可以导出为 PDF、JSON 或 CSV 格式。
3.2 动态分析(高级)
动态分析比静态分析更复杂,需要额外的配置。
-
环境配置:
模拟器/设备: 确保您有一个正在运行的 Android 模拟器(如 Genymotion、Android Studio AVD)或连接的真实 Android 设备。
ADB: 确保 ADB (Android Debug Bridge) 已正确安装并配置在 MobSF 所在的系统上。
Frida: MobSF 会自动在设备上部署 Frida Server,但需要确保设备已 root 或已配置 Frida 的免 root 模式。
-
启动动态分析:
在 MobSF 静态分析报告页面,如果您已经配置好动态分析环境,会看到 "Dynamic Analysis" 选项卡。
点击 "Start Dynamic Analysis" 按钮。
MobSF 会尝试连接到可用的设备/模拟器,并安装 APK。
-
执行测试用例:
应用程序在模拟器或设备上启动后,您需要手动与应用程序进行交互,执行各种功能,以触发不同的代码路径和网络请求。
-
MobSF 会在后台捕获这些运行时行为,例如:
网络流量: 捕获 HTTP/HTTPS 请求和响应。
API 监控: 监控应用程序的 API 调用。
文件系统: 记录文件读写操作。
内存分析: 捕获内存中的敏感信息。
-
生成动态分析报告:
完成交互后,回到 MobSF 界面,点击 "Stop Dynamic Analysis" 按钮。
MobSF 将收集所有运行时数据,并生成动态分析报告。
动态分析报告通常包含网络流量详情、API 调用日志、截屏、SSL Pinning 绕过尝试等。
3.3 常见问题和提示
端口占用: 如果 MobSF 无法启动,可能是 8000 端口被其他程序占用。您可以尝试修改 MobSF 配置文件或 Docker 命令中的端口映射。
依赖问题: 如果是非 Docker 部署,请确保所有 Python 依赖和操作系统依赖都已正确安装。
Android SDK/ADB: 对于静态分析,ADB 不是必需的。但对于动态分析,ADB 必须正确设置。
文档查阅: MobSF 官方文档是获取最新信息和解决复杂问题的好资源。
希望这份指南能帮助您开始使用 MobSF 进行 APP 漏洞扫描!