mcpField
M
Mobile Application Security

Mobile Application Security

github.com/masriyan安全527115 次安装1 周前更新
代码仓库

关于 Mobile Application Security

面向 Android 和 iOS 应用评估的 Claude 技能,依据 OWASP MASVS 与 MASTG 指导静态分析、动态测试及恶意应用排查。仅适用于自有或已获授权的应用。

主要功能

  1. 01APK 与 IPA 静态分析
  2. 02检查存储与密钥保护
  3. 03评估网络传输与证书固定
  4. 04使用 Frida 和 objection 指导动态测试
  5. 05审查平台交互与防篡改控制
  6. 06可疑 APK 恶意软件排查

适用场景

  1. 01检查 Android 应用清单、组件与硬编码密钥
  2. 02评估 iOS 应用配置和敏感数据存储
  3. 03在测试设备上排查 TLS 与运行时行为
  4. 04分析可疑 APK 的权限和潜在指标

安装

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

$npx skills add https://github.com/masriyan/claude-code-cybersecurity-skill --skill mobile-application-security

安装后在 Claude Code 中输入/mobile-application-security确认已加载。

附带文件examples/example_usage.mdscripts/apk_analyzer.py

详细介绍

移动应用安全

目的

帮助 Claude 根据 OWASP MASVS(移动应用安全验证标准)评估 Android 和 iOS 应用安全,并执行 OWASP MASTG(移动应用安全测试指南)中的测试。Claude 会对 APK/IPA 制品执行静态分析,指导动态插桩(Frida/objection),审查安全存储、传输和平台交互控制,并对可能存在恶意行为的移动应用进行分类。

需要授权:仅测试你拥有或已获明确授权评估的应用。反编译和修改第三方应用可能违反许可协议和法律。开始前请确认书面授权范围。


触发条件

用户询问以下内容时,将启用此技能:

  • Android(APK/AAB)或 iOS(IPA)应用安全测试
  • OWASP MASVS / MASTG 验证或移动渗透测试清单
  • 反编译、逆向或移动应用静态分析
  • 不安全的数据存储、硬编码密钥或 keystore/keychain 审查
  • 证书固定、SSL 绕过或移动 TLS/传输安全
  • Frida / objection 动态插桩或运行时 Hook
  • AndroidManifest.xml、导出组件、深层链接或 Info.plist 审查
  • 移动恶意软件分析或可疑 APK 分类
  • Root/越狱检测、篡改或反向工程控制

前置条件

pip install requests pyaxmlparser

可选增强功能:

  • apktool — APK 解码/重建
  • jadx — Dalvik → Java 反编译器
  • apkid — 加壳工具/混淆器/编译器指纹识别
  • frida / objection — 动态插桩
  • mobsf (MobSF) — 自动化静态和动态分析平台
  • Android SDK platform-tools (adb)、unzip、openssl

核心功能

1. APK 静态分析

收到 APK 分析请求时:

  1. 解包与解码 — apktool d app.apk;提取 AndroidManifest.xml、classes*.dex、resources.arsc、原生库(lib/)和资源文件。
  2. 审查清单 — 标记:
    • android:debuggable="true"、android:allowBackup="true"
    • 缺少权限保护的导出组件(带有 exported="true" 或通过 intent-filter 隐式导出的 activity/service/receiver/provider)
    • usesCleartextTraffic="true" / 过于宽松的 network_security_config
    • 危险/过多权限;protectionLevel 较弱的自定义权限
    • 深层链接 / android:autoVerify(应用链接劫持)、已导出的 ContentProvider 路径
  3. 查找密钥 — 扫描反编译后的源代码/资源文件/资产,查找 API 密钥、令牌、私钥、云凭据、硬编码的加密密钥/IV 和后端 URL。
  4. 反编译 — 使用 jadx 转换为 Java;审查身份验证、加密、WebView(addJavascriptInterface、setJavaScriptEnabled、使用不可信输入调用 loadUrl)和 SQL。
  5. 原生代码与加壳 — 使用 apkid 检查加壳工具/混淆器;检查 lib/*/*.so 中的 JNI 入口点和硬编码数据。
  6. 签名 — 验证签名方案(v1/v2/v3)、是否使用调试证书以及完整性。

使用 scripts/apk_analyzer.py 执行自动化初步分析。

2. iOS(IPA)静态分析

收到 IPA 分析请求时:

  1. 解压 IPA;找到 Payload/<App>.app/。
  2. Info.plist — 检查 NSAppTransportSecurity 例外(NSAllowsArbitraryLoads)、URL 方案、UIFileSharingEnabled 和权限用途说明字符串。
  3. 二进制检查 — 检查加密(cryptid)、PIE、栈保护和 ARC;使用 otool/class-dump 检测缺失的加固措施。
  4. 查找密钥 — 使用 strings 并扫描资源,查找密钥、端点和令牌。
  5. 数据存储 — 检查 NSUserDefaults、Core Data、Keychain 辅助功能类别(避免使用 kSecAttrAccessibleAlways)以及静态存储的 plist 数据。
  6. 内嵌配置描述文件 — 检查授权和分发方式(临时分发或企业分发)。
3. 不安全的数据存储(MASVS-STORAGE)

检查敏感数据静态存储的位置:

  • Android:SharedPreferences、SQLite、内部/外部文件、日志、WebView 缓存、剪贴板。确认敏感材料使用 Keystore 保护的密钥。
  • iOS:Keychain(访问权限设置正确),NSUserDefaults/plists 中不存储机密信息,应用快照/备份中不包含敏感数据。
  • 标记以明文或使用应用派生密钥存储的任何 PII、令牌或凭据。
4. 网络与传输(MASVS-NETWORK)
  • 确认所有流量均使用 TLS;不存在明文回退。
  • 存在并验证证书/公钥固定;记录使用 objection/Frida 绕过固定以进行测试的方法。
  • 使用拦截代理(Burp/mitmproxy)检查 API 流量;测试是否存在与 Web 相同的 API 漏洞(→ Skill 09):IDOR、认证失效、批量赋值。
5. 动态分析与插桩

指导在已 root/越狱的测试设备或模拟器上进行运行时测试:

  • objection 快速检查:android sslpinning disable、android root disable、导出 keystore/keychain、列出 activities、启动导出的组件。
  • 使用 Frida hook 加密 API、认证检查、root/越狱检测绕过,并跟踪敏感方法调用。
  • 使用过程中观察文件系统和 logcat,检查是否发生数据泄漏。
6. 平台交互与防篡改(MASVS-PLATFORM / RESILIENCE)
  • IPC:验证导出的组件、intent 处理、ContentProvider 权限、自定义 URL scheme/深层链接验证。
  • WebView:不需要时禁用 JS;绝不向不可信内容暴露特权 JS 接口。
  • 弹性(纵深防御,本身并非漏洞):root/越狱检测、反调试、反 hook、代码混淆、完整性检查。
7. 移动恶意软件初筛

对于可疑 APK:检查 apkid 加壳情况、请求的权限与所述功能是否相符、滥用辅助功能服务、短信/拨号器/悬浮层权限(银行木马标志)、字符串中的 C2 URL、动态代码加载(DexClassLoader)。将已确认的 IOC 提交至 → Skill 06,深入 RE 转至 → Skill 04/05。


输出规范

# Mobile App Security Assessment — [App / Package]
Date: [Date] | Platform: [Android/iOS] | Version: [x.y.z] | Analyst: [Name]

## Executive Summary
[Posture, count by severity, top risks]

## MASVS Coverage
| Category | Result | Notes |
|----------|--------|-------|
| STORAGE | Fail | Token in SharedPreferences plaintext |
| CRYPTO  | Pass  | ... |
| NETWORK | Partial | No pinning |
| PLATFORM | ... |
| CODE / RESILIENCE | ... |

## Findings
### [M-01] Hardcoded API Key in resources  (High)
- MASTG-TEST ref / MASVS-STORAGE
- Evidence: res/values/strings.xml:api_key=...
- Impact / Remediation: [rotate, move to backend, ...]

## Recommendations (Prioritized)

脚本参考

apk_analyzer.py
# Static triage of an APK: manifest flags, permissions, exported components, secrets
python scripts/apk_analyzer.py --apk app.apk --output apk_report.json

# Secret-scan the decoded sources too (point at an apktool/jadx output dir)
python scripts/apk_analyzer.py --apk app.apk --sources ./jadx_out --output apk_report.json

技能集成

下一步条件目标技能
后端 API 测试应用与 REST/GraphQL API 通信→ Skill 09
深入原生/二进制 RE.so / 混淆逻辑→ Skill 04
恶意软件分类可疑/加壳 APK→ Skill 05
IOC 关联分析发现 C2/恶意基础设施→ Skill 06
加密实现审查应用中使用自定义加密→ Skill 13

参考资料

评论

支持 Markdown