SuperAPI AI 工具集

secure-mobile-dev-guide

安全与审计

查看项目

更新于 10-17 16:19

技能介绍

该技能面向移动应用开发安全,充当一名资深移动安全工程师,依据 NowSecure《Secure Mobile Development Guide》、OWASP MASVS v2 和 MASTG,为开发者的具体问题提供可落地的安全指导。适用场景是开发者在实现移动端功能时询问如何做才安全,例如敏感数据存储、加密、登录与令牌管理、网络传输、组件暴露、输入处理、依赖管理和隐私合规等。

主要能力按指南数据库分为九类:

  1. 安全数据存储(MASVS-STORAGE-1/2):敏感数据须加密存放,Android 用 EncryptedSharedPreferences、iOS 用 Keychain 并设置合适的保护等级;数据库用 SQLCipher,避免明文 SQLite 存放个人身份信息;有意识地配置 Android 备份并排除敏感数据;iOS 敏感文件使用 NSFileProtectionComplete;禁止记录敏感日志,发布版剥离调试日志;及时清除内存中的敏感数据;敏感输入框禁用键盘缓存与自动补全。

  2. 密码学最佳实践(MASVS-CRYPTO-1/2):使用平台加密 API(AndroidKeyStore、iOS Keychain/CryptoKit);对称加密用 AES-256-GCM,非对称用 RSA-2048 以上配合 OAEP;禁止在源码中硬编码密钥、API Key 或机密;基于口令的密钥派生用 Argon2id 或 PBKDF2(600K 次以上迭代);用 SecureRandom 或 SecRandomCopyBytes 生成 IV/nonce,且同一密钥不得复用 IV;定期轮换密钥并实现版本管理。

  3. 认证与会话管理(MASVS-AUTH-1/2/3):移动端认证流程采用 OAuth 2.0 + PKCE;令牌存入平台安全存储而非本地存储;使用短时效访问令牌并轮换刷新令牌;生物识别须与 CryptoObject(Android)或 Keychain(iOS)绑定,不能只做布尔判断;敏感操作要求二次认证;登出时在客户端与服务端同时使会话失效;高风险应用支持多因素认证。

  4. 网络安全(MASVS-NETWORK-1/2):所有通信强制 TLS 1.2 以上;Android 配置 Network Security Config 并设 cleartextTrafficPermitted="false";iOS 启用 App Transport Security,生产环境不得将 NSAllowsArbitraryLoads 设为 true;针对自有高风险端点评估证书固定,并在运维取舍合理时实现带备用证书的固定;不得实现跳过证书校验的自定义 TrustManager,也不得实现无条件返回 true 的 HostnameVerifier;WebSocket 使用 wss://。

  5. 安全 IPC 与平台交互(MASVS-PLATFORM-1/2/3):非对外组件设置 exported="false";校验并净化来自深链、URL Scheme 和 Intent 的数据;内部通信用显式 Intent,敏感数据不走隐式 Intent;Content Provider 配好权限并使用参数化查询;WebView 非必要不启用 JavaScript,禁止对不可信内容使用 addJavascriptInterface;敏感界面防截屏(Android 用 FLAG_SECURE,iOS 用进入后台时的遮罩);PendingIntent 使用 FLAG_IMMUTABLE。

  6. 输入校验(MASVS-CODE-4):客户端与服务端双重校验;数据库操作全部使用参数化查询;加载进 WebView 前净化数据;处理深链前校验参数;实现反序列化控制;防目录穿越;校验并净化外部来源的文件名。

  7. 第三方依赖(MASVS-CODE-3):定期审计依赖漏洞;固定依赖版本并使用锁文件;尽量减少第三方 SDK;审查 SDK 权限与数据收集行为;用 SBOM 提升供应链可见性;优先选择维护良好、使用广泛的库。

  8. 隐私设计(MASVS-PRIVACY-1 至 4):只申请必要权限并说明理由;收集或共享数据前取得同意;提供数据删除与导出能力;尽量使用匿名化或假名化标识;遵守 iOS App Tracking Transparency 与隐私声明;减少与第三方 SDK 共享的数据;提供含细粒度控制的隐私设置页。

  9. 应用加固(MASVS-RESILIENCE-1 至 4,面向高风险应用):用多重检查检测 root/越狱;启用代码混淆(Android 用 ProGuard/R8,iOS 做符号剥离);运行时完整性校验;检测 Frida、Xposed 等调试与插桩工具;运行时校验签名;Android 可用 Play Integrity API 做设备认证;高价值应用可考虑商业 RASP 方案。

使用方式:开发者提出具体主题后,技能从对应类别给出指导,包含 MASVS 控制项引用和实用代码示例,优先面向开发者所用平台,必要时补充另一平台作对比。回答结构固定为:最佳实践摘要(含 MASVS 引用)、Android 实现(Kotlin/Java 示例)、iOS 实现(Swift 示例)、常见错误(附 MASTG 测试引用)、NowSecure 建议(按行业)、验证方法(如何测试确认实现正确)。

适用场景:移动应用安全开发评审、功能实现前的安全方案咨询、代码安全自查、MASVS/MASTG 对照学习。限制:资料仅给出方法论与示例框架,具体行业建议与验证手段的细节未在资料中完整展开;不涉及定价、授权方式等信息,资料暂未提供。