performing-android-app-static-analysis-with-mobsf
使用移动安全框架(Mobile Security Framework,MobSF)对 Android 应用程序执行自动化静态分析, 在不运行程序的情况下识别硬编码密钥、不安全权限、存在漏洞的组件、弱加密算法 和代码层面的安全缺陷。适用于在部署前对 Android APK/AAB 文件进行安全评估、 渗透测试期间,或作为 CI/CD 安全门禁的一部分。当请求涉及 Android 静态分析、 MobSF 扫描、APK 安全评估或移动应用代码审查时触发。
Best use case
performing-android-app-static-analysis-with-mobsf is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
使用移动安全框架(Mobile Security Framework,MobSF)对 Android 应用程序执行自动化静态分析, 在不运行程序的情况下识别硬编码密钥、不安全权限、存在漏洞的组件、弱加密算法 和代码层面的安全缺陷。适用于在部署前对 Android APK/AAB 文件进行安全评估、 渗透测试期间,或作为 CI/CD 安全门禁的一部分。当请求涉及 Android 静态分析、 MobSF 扫描、APK 安全评估或移动应用代码审查时触发。
Teams using performing-android-app-static-analysis-with-mobsf should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/performing-android-app-static-analysis-with-mobsf/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How performing-android-app-static-analysis-with-mobsf Compares
| Feature / Agent | performing-android-app-static-analysis-with-mobsf | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
使用移动安全框架(Mobile Security Framework,MobSF)对 Android 应用程序执行自动化静态分析, 在不运行程序的情况下识别硬编码密钥、不安全权限、存在漏洞的组件、弱加密算法 和代码层面的安全缺陷。适用于在部署前对 Android APK/AAB 文件进行安全评估、 渗透测试期间,或作为 CI/CD 安全门禁的一部分。当请求涉及 Android 静态分析、 MobSF 扫描、APK 安全评估或移动应用代码审查时触发。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 使用 MobSF 执行 Android 应用静态分析
## 适用场景
在以下情况下使用本技能:
- 在生产发布前对 Android APK 或 AAB 文件进行安全评估
- 将自动化移动安全扫描集成到 CI/CD 流水线中
- 在渗透测试过程中对 Android 应用进行初步分诊
- 审查第三方 Android 应用的供应链安全风险
**不适用于** 替代人工代码审查或动态分析——MobSF 静态分析只能发现基于模式的漏洞,无法捕获运行时逻辑缺陷。
## 前置条件
- 通过 Docker 安装 MobSF v4.x(`docker pull opensecurity/mobile-security-framework-mobsf`)或本地部署
- 目标 Android APK、AAB 或源码 ZIP 文件
- Python 3.10+ 用于 MobSF REST API 集成
- JADX 反编译器(已内置于 MobSF)用于恢复 Java/Kotlin 源代码
- 可访问 MobSF Web 界面的网络连接(默认:http://localhost:8000)
## 工作流程
### 步骤 1:部署 MobSF 并获取 API 密钥
使用 Docker 启动 MobSF,确保隔离、可重现的扫描环境:
```bash
docker run -it --rm -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
```
从 `http://localhost:8000/api_docs` 的 MobSF Web 界面或启动控制台输出中获取 REST API 密钥。API 密钥用于程序化扫描。
### 步骤 2:上传 APK 进行静态分析
使用 MobSF REST API 上传目标 APK:
```bash
curl -F "file=@target_app.apk" http://localhost:8000/api/v1/upload \
-H "Authorization: <API_KEY>"
```
响应中包含用于后续 API 调用的 `hash` 标识符。MobSF 会自动使用 JADX 反编译 APK,提取 AndroidManifest.xml 并对所有资源建立索引。
### 步骤 3:触发并获取静态扫描结果
启动静态扫描并获取结果:
```bash
# 触发扫描
curl -X POST http://localhost:8000/api/v1/scan \
-H "Authorization: <API_KEY>" \
-d "scan_type=apk&file_name=target_app.apk&hash=<FILE_HASH>"
# 获取 JSON 报告
curl -X POST http://localhost:8000/api/v1/report_json \
-H "Authorization: <API_KEY>" \
-d "hash=<FILE_HASH>"
```
### 步骤 4:分析关键发现
MobSF 静态分析覆盖以下映射到 OWASP Mobile Top 10 2024 的类别:
**清单分析(M8 - 安全配置错误)**:
- 无权限保护的导出 Activity、Service、Receiver 和 Content Provider
- 遗留开启的 `android:debuggable="true"`
- 启用 `android:allowBackup="true"` 允许通过 ADB 提取数据
- 缺少用于证书固定的 `android:networkSecurityConfig`
**代码分析(M1 - 凭据使用不当)**:
- Java/Kotlin 源码中硬编码的 API 密钥、密码和令牌
- 使用 SharedPreferences 以不安全方式存储敏感数据
- 弱加密或已损坏的加密实现(ECB 模式、静态 IV、硬编码密钥)
**网络安全(M5 - 通信不安全)**:
- 缺少证书固定配置
- 接受所有证书的自定义 TrustManager
- 未配置例外域名而允许明文 HTTP 流量
**二进制分析(M7 - 二进制保护不足)**:
- 缺少 ProGuard/R8 混淆
- 原生库漏洞(栈金丝雀、NX 位、PIE)
- 缺少调试器检测
### 步骤 5:生成并导出报告
以多种格式导出发现结果用于干系人沟通:
```bash
# PDF 报告
curl -X POST http://localhost:8000/api/v1/download_pdf \
-H "Authorization: <API_KEY>" \
-d "hash=<FILE_HASH>" -o report.pdf
# JSON 格式用于程序化处理
curl -X POST http://localhost:8000/api/v1/report_json \
-H "Authorization: <API_KEY>" \
-d "hash=<FILE_HASH>" -o report.json
```
### 步骤 6:集成到 CI/CD 流水线
将 MobSF 扫描作为构建门禁添加:
```yaml
# GitHub Actions 示例
- name: MobSF Static Analysis
run: |
UPLOAD=$(curl -s -F "file=@app/build/outputs/apk/release/app-release.apk" \
http://mobsf:8000/api/v1/upload -H "Authorization: $MOBSF_API_KEY")
HASH=$(echo $UPLOAD | jq -r '.hash')
curl -s -X POST http://mobsf:8000/api/v1/scan \
-H "Authorization: $MOBSF_API_KEY" \
-d "scan_type=apk&file_name=app-release.apk&hash=$HASH"
SCORE=$(curl -s -X POST http://mobsf:8000/api/v1/scorecard \
-H "Authorization: $MOBSF_API_KEY" -d "hash=$HASH" | jq '.security_score')
if [ "$SCORE" -lt 60 ]; then exit 1; fi
```
## 核心概念
| 术语 | 定义 |
|------|------|
| **静态分析(Static Analysis)** | 在不执行程序的情况下检查应用代码和资源;捕获结构性和基于模式的漏洞 |
| **APK 反编译(APK Decompilation)** | 使用 JADX 或 apktool 等工具从已编译的 Dalvik 字节码中恢复 Java/Kotlin 源代码的过程 |
| **AndroidManifest.xml** | 声明应用组件、权限和安全属性的配置文件;是清单分析的主要目标 |
| **证书固定(Certificate Pinning)** | 将应用与特定服务器证书绑定的技术,用于防止通过流氓 CA 进行的中间人攻击 |
| **ProGuard/R8** | 代码混淆和压缩工具,通过重命名类和删除未使用的代码使逆向工程更加困难 |
## 工具与系统
- **MobSF**:支持 Android/iOS 应用静态和动态分析的自动化移动安全分析框架
- **JADX**:Dex 转 Java 反编译器,用于从 Android APK 文件中恢复可读源代码
- **apktool**:Android APK 文件逆向工程工具,可将资源解码为接近原始形式
- **Android Lint**:Google 针对 Android 特定代码质量和安全问题的静态分析工具
- **Semgrep**:基于模式的静态分析引擎,配备适用于移动端的规则包,用于自定义漏洞检测
## 常见陷阱
- **忽视误报**:MobSF 会标记变量名中含有 `password` 的模式,即使并未存储真实凭据。在报告前需人工分诊所有 HIGH 发现。
- **遗漏混淆代码**:对于使用 DexGuard 或自定义加壳的应用,静态分析的准确性会大幅下降。需结合动态分析进行补充。
- **MobSF 规则过时**:安全规则随 Android API 级别不断演进。确保 MobSF 已更新,与目标应用的 `targetSdkVersion` 相匹配。
- **跳过原生代码分析**:MobSF 分析 Java/Kotlin,但对原生 C/C++ 库的覆盖有限。应使用 `checksec` 对 `.so` 文件进行人工审查。Related Skills
testing-android-intents-for-vulnerabilities
测试 Android 进程间通信(IPC)中 Intent 的安全漏洞,包括 Intent 注入、未授权组件访问、 广播嗅探、PendingIntent 劫持和 ContentProvider 数据泄露。适用于评估 Android 应用导出组件 攻击面、测试 Intent 数据流或评估 IPC 安全性的场景。适合涉及 Android Intent 安全、IPC 测试、 导出组件分析或 Drozer 评估的相关请求。
reverse-engineering-android-malware-with-jadx
使用 JADX 反编译器对恶意 Android APK 文件进行逆向工程,分析 Java/Kotlin 源代码,识别包括数据窃取、C2 通信、权限提升和覆盖攻击在内的恶意功能。检查 Manifest 权限、Receiver、Service 及原生库。适用于 Android 恶意软件分析、APK 逆向工程、移动端恶意软件调查或 Android 威胁分析等请求。
performing-yara-rule-development-for-detection
通过识别可执行文件中的唯一字节模式、字符串和行为指标,开发精准的 YARA 恶意软件检测规则,同时将误报率降至最低。
performing-wireless-security-assessment-with-kismet
使用 Kismet 通过被动射频监控进行无线网络安全评估,检测流氓接入点(Rogue AP)、隐藏 SSID、弱加密和未授权客户端。
performing-wireless-network-penetration-test
执行无线网络渗透测试,通过捕获握手包、破解 WPA2/WPA3 密钥、检测流氓接入点以及使用 Aircrack-ng 和相关工具测试无线网络分段,评估 WiFi 安全性。
performing-windows-artifact-analysis-with-eric-zimmerman-tools
使用 Eric Zimmerman 的开源 EZ Tools 套件(包括 KAPE、MFTECmd、PECmd、LECmd、JLECmd 和 Timeline Explorer)执行全面的 Windows 取证制品分析,解析注册表 hive、预取文件、事件日志和文件系统元数据。
performing-wifi-password-cracking-with-aircrack
在授权无线安全评估中捕获 WPA/WPA2 握手包,并使用 aircrack-ng、hashcat 和字典攻击进行离线密码破解, 以评估密码短语强度和无线网络安全状况。
performing-web-cache-poisoning-attack
在授权安全测试期间,通过未纳入缓存键的头部和参数毒化缓存响应,利用 Web 缓存机制向其他用户投递恶意内容。
performing-web-cache-deception-attack
通过利用 CDN 缓存层与源服务器之间的路径规范化差异,执行 Web 缓存欺骗攻击,从而缓存并获取敏感的已认证内容。
performing-web-application-vulnerability-triage
使用 OWASP 风险评级方法论对 DAST/SAST 扫描器的 Web 应用程序漏洞发现进行分类,区分真阳性和假阳性,并确定修复优先级。
performing-web-application-scanning-with-nikto
Nikto 是一款开源 Web 服务器和 Web 应用程序扫描器,可针对超过 7,000 个潜在危险文件/程序进行测试,检查超过 1,250 个服务器的过期版本,并识别超过 270 个服务器的版本特定问题。
performing-web-application-penetration-test
遵循 OWASP Web 安全测试指南(WSTG)方法论,对 Web 应用程序执行系统化安全测试,识别认证、授权、 输入验证、会话管理和业务逻辑中的漏洞。测试人员以 Burp Suite 作为主要拦截代理,结合手动测试技术 发现自动化扫描器遗漏的缺陷。适用于 Web 应用渗透测试、OWASP 测试、应用安全评估或 Web 漏洞测试等请求场景。