关于 owasp-mobile-security-checker
面向 Flutter 移动应用的安全审查技能,依据 OWASP Mobile Top 10(2024)检查风险。它结合四种自动扫描器与针对其余类别的人工审查参考资料。
主要功能
- 01扫描硬编码密钥与凭据
- 02检查依赖版本及已知 CVE
- 03检查网络通信安全
- 04分析敏感数据存储
- 05提供人工审查与修复参考
适用场景
- 01发布前审查 Flutter 应用安全
- 02在提交前检查源码中的密钥
- 03拉取请求中运行自动安全扫描
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ harishwarrior/ flutter-claude-skills --skill owasp-mobile-security-checker安装后在 Claude Code 中输入/owasp-mobile-security-checker确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/owasp_mobile_top_10_2024.mdscripts/analyze_storage_security.pycheck_dependencies.pycheck_network_security.pyscan_hardcoded_secrets.py详细介绍
OWASP 移动安全检查器
要求
- Python 3.7+
- Flutter/Dart 项目,包含
pubspec.yaml - Android 和/或 iOS 目标平台
- 从项目根目录运行脚本
基于 OWASP Mobile Top 10 (2024),对 Flutter 和移动应用进行全面的安全分析。
自动化扫描器
四个 Python 扫描器覆盖了最适合自动化检查的风险类别。将 <skill-dir> 替换为技能的安装路径(例如 ~/.claude/skills/owasp-mobile-security-checker):
M1 — 硬编码机密
python3 <skill-dir>/scripts/scan_hardcoded_secrets.py /path/to/project
检测 Dart 代码和配置文件中的 API 密钥、令牌、密码、AWS 凭据和 Firebase 密钥。
M2 — 依赖项漏洞
python3 <skill-dir>/scripts/check_dependencies.py /path/to/project
分析 pubspec.yaml 中过时的软件包、any 版本约束和已知 CVE。
M5 — 网络安全
python3 <skill-dir>/scripts/check_network_security.py /path/to/project
检查 HTTP 与 HTTPS 的使用、证书固定、Android Network Security Config 和 iOS ATS 设置。
M9 — 不安全存储
python3 <skill-dir>/scripts/analyze_storage_security.py /path/to/project
识别未加密的 SharedPreferences、明文文件存储、未加密的数据库和不安全的备份配置。
手动分析
M3、M4、M6、M7、M8 和 M10 需要代码审查。请参阅 references/owasp_mobile_top_10_2024.md,了解每个类别的 Flutter 特定漏洞模式、攻击流程和修复方法。
工作流
Is this a comprehensive audit?
├─ YES → Run all 4 scanners → Review JSON outputs → Manual analysis (M3/M4/M6/M7/M8/M10) → Generate report
└─ NO → Continue...
Specific risk category?
├─ M1 → scan_hardcoded_secrets.py
├─ M2 → check_dependencies.py
├─ M5 → check_network_security.py
├─ M9 → analyze_storage_security.py
└─ M3/M4/M6/M7/M8/M10 → references/owasp_mobile_top_10_2024.md → manual analysis
Quick pre-release check?
└─ YES → Run all 4 scanners → Fix CRITICAL and HIGH findings only
快速入门:完整审计
# Run all automated scanners from the project root
python3 <skill-dir>/scripts/scan_hardcoded_secrets.py .
python3 <skill-dir>/scripts/check_dependencies.py .
python3 <skill-dir>/scripts/check_network_security.py .
python3 <skill-dir>/scripts/analyze_storage_security.py .
# Outputs produced:
# owasp_m1_secrets_scan.json
# owasp_m2_dependencies_scan.json
# owasp_m5_network_scan.json
# owasp_m9_storage_scan.json
- 按严重性确定优先级 — 发布前修复 CRITICAL 和 HIGH 问题
- 对于 M3、M4、M6、M7、M8、M10 — 请参阅
references/owasp_mobile_top_10_2024.md - 制定修复计划,包含代码示例和时间表
OWASP Mobile Top 10 (2024) — 快速参考
| 风险 | 问题 | 自动化? | 重点检查项 |
|---|---|---|---|
| M1 | 硬编码凭据 | ✅ 扫描器 | 源代码/配置中的 API 密钥、令牌 |
| M2 | 易受攻击的依赖项 | ✅ 扫描器 | 过时或未约束版本的软件包 |
| M3 | 身份验证薄弱 | 手动 | 令牌存储、MFA、会话过期 |
| M4 | 输入验证 | 手动 | SQL 注入、WebView 中的 XSS、IDOR |
| M5 | 通信不安全 | ✅ 扫描器 | 使用 HTTP、缺少证书固定 |
| M6 | 违反隐私 | 手动 | 日志/分析中的 PII、过多权限 |
| M7 | 缺少二进制保护 | 手动 | 缺少 --obfuscate、未进行 root 检测 |
| M8 | 配置错误 | 手动 | 生产环境中启用调试标志、日志过于详细 |
| M9 | 不安全存储 | ✅ 扫描器 | SharedPreferences 中的敏感数据 |
| M10 | 加密薄弱 | 手动 | 使用 MD5/SHA1/ECB、硬编码密钥 |
了解扫描结果
| 严重性 | 含义 | 操作 |
|---|---|---|
| CRITICAL | 可立即利用 | 立即修复 — 不要发布 |
| HIGH | 严重漏洞 | 发布前修复 |
| MEDIUM | 应当处理 | 规划在下个迭代中处理 |
| LOW | 最佳实践改进 | 视时间安排处理 |
常见误报
- M1:测试/示例密钥、
YOUR_API_KEY等占位符 - M2:仅用于开发的依赖项(代码检查器、测试工具)
- M5:开发期间用于
localhost/127.0.0.1的 HTTP - M9:SharedPreferences 中的非敏感数据(主题偏好、语言)
在将发现的问题判定为漏洞之前,务必结合具体情况进行核实。
不适用场景
- Web 应用安全审计 — 此技能专用于移动应用/Flutter
- 后端 API 或服务端安全审查
- 不能替代专业渗透测试或正式安全审计
- 不使用 Flutter/Dart 或
pubspec.yaml的项目
参考文档
references/owasp_mobile_top_10_2024.md 按风险类别提供详细信息:
- 真实攻击场景和示例
- Flutter 特定漏洞模式(Dart 代码)
- 不安全与安全的代码示例
- 平台特定指南(Android Keystore/NSC、iOS Keychain/ATS)
- 完整的缓解策略
集成节点
| 阶段 | 操作 |
|---|---|
| 提交前 | 运行 scan_hardcoded_secrets.py,作为轻量级密钥检查关卡 |
| 拉取请求 | 运行全部 4 个扫描器,并将发现的问题作为 PR 评论发布 |
| 发布构建 | 对全部 10 个类别进行完整审计,包括手动分析 |
| 事件响应 | 针对报告的漏洞类别运行指定扫描器 |
评论
支持 Markdown