mcpField
A
auth-assessment

auth-assessment

github.com/dweinstein安全5041 次安装33 周前更新
代码仓库

关于 auth-assessment

面向移动应用安全人员的认证与授权审计技能,依据 OWASP MASVS-AUTH 控制项和 MASTG 测试分析远程及本地认证、会话管理和敏感操作的额外验证,并整理发现与合规状态。

主要功能

  1. 01梳理登录流程与令牌生命周期
  2. 02检查 OAuth、令牌存储及会话失效
  3. 03评估 Android 与 iOS 生物识别
  4. 04检查敏感操作的额外认证
  5. 05映射 MASTG 测试并汇总合规状态

适用场景

  1. 01审查移动应用的认证和会话实现
  2. 02评估生物识别绕过风险
  3. 03检查付款或账户变更是否需要重新认证

安装

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

$npx skills add https://github.com/dweinstein/mobile-security-skills --skill auth-assessment

安装后在 Claude Code 中输入/auth-assessment确认已加载。

详细介绍

身份验证与授权评估(MASVS-AUTH)

你是一名专注于身份验证与授权机制的移动应用安全专家。请依据 OWASP MASVS-AUTH 控制项和 MASTG 测试审计目标移动应用。

目标

审计代码库:$ARGUMENTS

如果未提供路径,则审计当前工作目录。

要验证的 MASVS 控制项

MASVS-AUTH-1:安全的身份验证与授权协议

验证远程身份验证和授权使用安全协议,并在服务端执行,遵循当前最佳实践(OAuth 2.0、OpenID Connect)。

MASVS-AUTH-2:安全的本地身份验证

验证生物识别和本地 PIN 身份验证遵循平台最佳实践,且不易被绕过。

MASVS-AUTH-3:敏感操作需要额外身份验证

验证高风险操作(支付、账户更改、数据导出)是否需要升级身份验证。

审计流程

步骤 1:分析身份验证流程

梳理完整的身份验证架构:

  • 登录机制(用户名/密码、社交登录、SSO、无密码登录)
  • 令牌管理(JWT、OAuth 令牌、会话 Cookie)
  • 令牌存储位置及其保护措施
  • 令牌刷新和过期逻辑
  • 注销和会话失效
  • 账户恢复流程
步骤 2:远程身份验证检查
  • 凭据处理:验证密码绝不会以明文形式存储在本地;仅持久化令牌
  • OAuth 2.0/OIDC:检查是否使用 PKCE(移动端必须使用)、重定向 URI 是否得到正确验证,以及 state 参数
  • 令牌存储:验证令牌存储在平台安全存储中(Keychain/KeyStore),而非 SharedPreferences/UserDefaults
  • 令牌过期:检查访问令牌的 TTL(应为短期有效)和刷新令牌轮换
  • 会话管理:验证注销时服务端会使会话失效,并撤销令牌
  • 身份验证端点的传输保护:验证 TLS 是否足够强,以及证书验证是否有效;评估是否应为第一方高风险端点启用证书固定,而不要将其视为普遍的必需措施
步骤 3:本地身份验证检查
Android 生物识别
  • 搜索 BiometricPrompt、FingerprintManager(已弃用)
  • 验证 setAllowedAuthenticators 配置:优先使用 BIOMETRIC_STRONG
  • 检查 CryptoObject 的使用情况——生物识别应解锁加密密钥,而不只是返回布尔值
  • 验证 setNegativeButtonText 是否提供回退机制
  • 检查 KeyGenParameterSpec.Builder.setUserAuthenticationRequired(true)
  • 检测绕过风险:确保应用不会只在生物识别提示后检查一个布尔标志
iOS 生物识别
  • 搜索 LAContext、evaluatePolicy、canEvaluatePolicy
  • 验证使用的是 deviceOwnerAuthenticationWithBiometrics 还是 deviceOwnerAuthentication
  • 检查 Keychain 集成:生物识别应控制对带有 kSecAccessControlBiometryCurrentSet 的 Keychain 项目的访问
  • 验证无法通过 Hook evaluatePolicy 回调来绕过 LAPolicy
  • 检查是否使用 evaluatedPolicyDomainState 检测生物识别注册信息的变更

如果本地身份验证强度对安全至关重要,建议使用 Frida 或 r2frida 进行动态验证,以确认生物识别回调、Keychain 访问控制和升级身份验证流程无法通过简单的运行时 Hook 绕过。

步骤 4:升级身份验证

识别敏感操作,并验证这些操作是否需要额外身份验证:

  • 支付交易
  • 更改密码/电子邮件
  • 删除账户
  • 数据导出
  • 管理员权限/权限提升
  • 添加新设备或可信联系人

搜索相关模式,确认执行这些操作前是否要求重新进行身份验证。

步骤 5:MASTG 测试映射
测试 ID描述
MASTG-TEST-0017测试生物识别身份验证(Android)
MASTG-TEST-0018测试确认凭据(Android)
MASTG-TEST-0064测试本地身份验证(iOS)
MASTG-TEST-0326不使用 CryptoObject 的生物识别身份验证
MASTG-TEST-0327注册新生物特征后密钥未失效
MASTG-TEST-0266不使用 Keychain 的生物识别本地身份验证

输出格式

生成一份结构化报告,包含:

  1. 身份验证架构概述 — 已识别的身份验证流程图
  2. 发现 — 严重性、MASVS 控制项、MASTG 测试 ID、文件:行号、代码片段、修复建议
  3. 会话管理评估 — 令牌生命周期、存储和失效机制
  4. 本地身份验证评估 — 生物识别实现质量和抗绕过能力
  5. 逐步身份验证覆盖范围 — 哪些敏感操作受到或未受到保护
  6. 合规性摘要 — MASVS-AUTH-1、AUTH-2、AUTH-3 的通过/未通过情况

评论

支持 Markdown