mcpField
P
performing-android-app-static-analysis-with-mobsf

performing-android-app-static-analysis-with-mobsf

github.com/mukul975安全35.2k129 次安装8 周前更新
代码仓库

关于 performing-android-app-static-analysis-with-mobsf

面向安全团队的 Android 静态分析流程技能,使用 MobSF 检查 APK、AAB 或源代码压缩包。内容包括 API 扫描、常见漏洞类别审查、报告导出和 CI/CD 集成。

主要功能

  1. 01扫描 APK、AAB 和源代码 ZIP
  2. 02分析清单文件与应用代码
  3. 03检查网络及二进制安全
  4. 04导出 PDF 和 JSON 报告
  5. 05将扫描加入 CI/CD 流程

适用场景

  1. 01发布前评估 Android 应用
  2. 02渗透测试期间进行初步筛查
  3. 03审查第三方应用的供应链风险

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill performing-android-app-static-analysis-with-mobsf

安装后在 Claude Code 中输入/performing-android-app-static-analysis-with-mobsf确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
assets/
template.md
references/
api-reference.md
standards.md
workflows.md
scripts/
agent.py
process.py

详细介绍

使用 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,以实现隔离且可复现的扫描:

docker run -it --rm -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest

从 MobSF Web 界面 http://localhost:8000/api_docs 或启动控制台输出中获取 REST API 密钥。该 API 密钥可用于以编程方式执行扫描。

步骤 2:上传 APK 进行静态分析

使用 MobSF REST API 上传目标 APK:

curl -F "file=@target_app.apk" http://localhost:8000/api/v1/upload \
  -H "Authorization: <API_KEY>"

响应中包含用于后续 API 调用的 hash 标识符。MobSF 会使用 JADX 自动反编译 APK,提取 AndroidManifest.xml,并索引所有资源。

步骤 3:触发并获取静态扫描结果

启动静态扫描并获取结果:

# Trigger scan
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>"

# Retrieve JSON report
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:

Manifest 分析(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 混淆
  • 原生库漏洞(栈保护 canary、NX 位、PIE)
  • 缺少调试器检测
步骤 5:生成并导出报告

以多种格式导出发现,便于与利益相关方沟通:

# PDF report
curl -X POST http://localhost:8000/api/v1/download_pdf \
  -H "Authorization: <API_KEY>" \
  -d "hash=<FILE_HASH>" -o report.pdf

# JSON for programmatic processing
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 扫描添加为构建门禁:

# GitHub Actions example
- 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

关键概念

术语定义
静态分析在不执行程序的情况下检查应用代码和资源;可发现结构和基于模式的漏洞
APK 反编译使用 JADX 或 apktool 等工具,从编译后的 Dalvik 字节码中还原 Java/Kotlin 源码的过程
AndroidManifest.xml声明应用组件、权限和安全属性的配置文件;是 Manifest 分析的主要目标
证书固定将应用绑定到特定服务器证书的技术,用于防止通过恶意 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++ 库的覆盖有限。对于 .so 文件,请使用 checksec 并进行人工审查。

评论

支持 Markdown