跳过内容

2024

推出新的移动应用安全漏洞枚举 (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)。

移动应用安全交易新标准

新加坡网络安全局 (CSA) 于 2024 年 1 月 10 日发布了 “安全应用标准”。该指南专为本地应用开发者和服务提供商量身定制,基于 OWASP 移动应用安全验证标准 (MASVS),侧重于身份验证和授权 (MASVS-AUTH)、数据存储 (MASVS-STORAGE) 和防篡改 (MASVS-RESILIENCE) 等关键领域。该计划旨在保护应用程序免受常见的网络威胁,并确保为用户提供更安全的数字空间。

虽然安全应用标准是确保移动应用安全的重要一步,但我们鼓励开发者考虑完整的 MASVS 并选择合适的 MAS 配置文件,以实现全面保护。这种全面的应用安全方法可确保应用不仅满足基准,而且还能抵御更广泛的网络威胁,从而为最终用户提供强大的安全性。

移动应用风险评分问答

我们收到了许多评论和出色的问题,我们已将其汇总并总结,并附上作者的回答。我们感谢所有花时间阅读文档的人,尤其是那些提出了宝贵问题的人。

请参阅移动应用风险评分问答