跳过内容

推出新的移动应用安全漏洞枚举 (MASWE)

OWASP MAS 项目继续引领移动应用安全领域,为开发人员和安全专业人员提供强大且最新的资源。我们的团队一直与 MAS 社区和行业密切合作,以重构 移动应用安全验证标准 (MASVS)移动应用安全测试指南 (MASTG)。在这篇博文中,我们将向您介绍 MAS 项目的最新成果:全新的 移动应用安全弱点枚举 (MASWE)

重构 MASTG

我们于2021年开始重构过程,首先关注 MASVS,然后是 MASTG。我们的主要目标是将 MASTG v1 拆分为模块化组件,包括测试、技术、工具和应用程序。

这种模块化的方法使我们能够独立维护和更新每个组件,确保 MASTG 保持最新和相关性。例如,在我们之前的结构中,MASTG 由单个 markdown 文件中的大型测试用例组成。这不仅难以维护,而且难以引用特定测试;并且不可能为每个测试提供元数据。

新的结构将测试划分为单独的页面(带有元数据的 Markdown 文件),每个页面都有自己的 ID (MASTG-TEST-****) 以及指向相关技术 (MASTG-TECH-****) 和工具 (MASTG-TOOL-****) 的链接。这种封装确保每个测试都易于引用并提高所有 MAS 组件的重用性。例如,您可以打开一个测试,查看正在使用的工具和技术,并且很快您就可以反过来操作:打开一个工具或技术,查看所有使用它的测试。在探索 MASTG 时,这种深入的交叉引用非常强大。

介绍 MASWE

我们项目的一个重要补充是引入 MASWE,旨在填补高层 MASVS 控制和低层 MASTG 测试之间的空白。MASWE 识别移动应用程序中的特定弱点,类似于更广泛的软件安全行业中的常见弱点枚举 (CWE)。这个新层提供了每个弱点的详细描述,弥合了概念差距并使测试过程更加连贯。

现在 MASVS、MASWE 和 MASTG 都无缝连接。我们从高级要求开始,深入研究特定漏洞,然后低级别地进行测试并实际操作演示。工作方式如下:

  1. MASVS 控制:高级别的平台无关要求。

    例如,“应用采用当前加密技术并根据最佳实践使用它。”(MASVS-CRYPTO-1)。

  2. MASWE 漏洞:特定漏洞,通常也是平台无关的,与控制相关。

    例如,“使用可预测的伪随机数生成”(MASWE-0027)。

  3. MASTG 测试:通过执行测试来评估每个漏洞,这些测试指导测试人员使用各种工具和技术在每个移动平台上识别和缓解问题。

    例如,测试“Android 上不安全的随机 API 使用”(MASTG-TEST-0204)。

  4. MASTG 演示:包括工作代码示例和测试脚本的实际演示,以确保可重现性和可靠性。

    例如,一个使用 Java 的 Random() 而不是 SecureRandom() 的示例 (MASTG-DEMO-0007)。

实际应用和演示

为了确保我们的指南实用可靠,我们开发了适用于 Android 和 iOS 的新 MAS 测试应用。

这些简单的骨架应用程序旨在直接嵌入代码示例,允许用户验证和试验提供的演示。这种方法确保所有代码示例都是功能正常且最新的,从而培养动手学习体验。

例如,为了测试安全存储,MASTG-DEMO-0002 展示了如何使用 Frida 进行动态分析来识别代码中的问题。该演示包括

  • 一个 Kotlin 代码示例(可直接复制到应用程序中并在设备上运行)
  • 使用 Frida 进行此案例的具体测试步骤
  • 包含 Frida 命令的 shell 脚本
  • 要注入的 Frida 脚本
  • 带解释的输出
  • 测试的最终评估

您可以在自己的设备上运行所有内容并自行验证结果!只需克隆存储库并导航到 演示文件夹,在您的 计算机 和您的 Android 设备上安装 Frida,然后按照步骤操作。

🧪 这些演示也可以用作实验性游乐场,以提高您的技能并在使用 MASTG 研究移动应用安全时练习不同的案例。例如,您可以尝试逆向工程该应用程序,看看是否能够找到与演示相同的问题,或者您可以尝试修复这些问题,看看是否能够验证该修复。

它们也非常适合高级研究人员和渗透测试人员快速验证某些场景。例如,很常见的情况是,Android 的行为因版本或制造商而异。借助这些演示,您可以快速验证特定问题是否存在于特定设备或 Android 版本上。

使用 GitHub Actions 自动化

展望未来,我们希望自动化创建和验证新演示的过程,并确保测试随着时间的推移保持功能正常。我们将使用 GitHub Actions 来实现这一点。以下是计划:

  1. 构建应用程序:自动为 Android 和 iOS 构建 APK/IPA。
  2. 将应用程序部署到虚拟设备:在虚拟设备上安装并运行生成的应用程序。
  3. 执行测试并验证结果:使用 semgrep 或 radare2 等工具执行静态测试,并使用 Frida 和 mitmproxy 在目标设备上执行动态测试。最后,将测试结果与预期输出进行比较。

我们目前已经实施了第一步的 PoC(仅适用于 Android APK),并且正在研究后续步骤。如果您有兴趣为此做出贡献,请告诉我们

欢迎反馈

我们鼓励您探索新的 MASWEMASTG 测试MASTG 演示。您的见解和经验对我们来说非常宝贵,我们邀请您在我们的 GitHub 讨论分享您的反馈,以帮助我们继续改进。这样我们才能确保我们的资源在实际应用中实用、可靠和有价值。

您也可以通过创建新的漏洞、测试、技术、工具或演示来为项目做出贡献。我们欢迎所有贡献和反馈,我们期待与您合作,使 MAS 项目达到最佳状态。

:simple-github: 访问我们的 GitHub 仓库,查看我们的 [里程碑](https://github.com/OWASP/mastg/milestones) 和 [GitHub 讨论区](https://github.com/OWASP/mastg/discussions/categories/maswe-mastg-v2-beta-Feedback)。