CASA 更新

更新时间:2023 年 3 月 29 日

为了与行业趋势和最佳做法保持一致,应用防御联盟 (ADA) 工作组于 2023 年第 1 季度进行了审核会议,以更新、简化和标准化 CASA 测试程序。根据这些工作时段,CASA 要求和流程已更新如下:

  • CASA 要求从 134 要求更新为 73(请参阅下文了解详情)。

  • 无论应用的 CWE 评级是多少,应用都必须通过或清除 73 项 CASA 要求,才能通过 CASA 评估。

  • 更新了层级说明,以包含实验室进行的层级 2。

  • 添加了每个层级的保证信息。

  • 进行了细微更新,以简化层级 2 自行扫描流程。

CASA 要求更新

  • 您可以在此处查看最新的要求列表

  • 已移除以下要求


要求 ID

工作组反馈

8.1.6

会将此要求重新视为更可行的做法(例如,备份仅应保留 X 次,应监控备份是否存在盗窃/损坏,应定期审核备份以确认其恢复到生产环境)。目前的假设过于宽泛,需要更多定义。

5.1.4

与其他测试用例重复。这是一个高价值、低价值的测试用例。建议移除。

7.3.3

与其他测试用例重复。这是一个高价值、低价值的测试用例。建议移除。

1.2.2

由于其他要求(例如 4.1.1)中的覆盖范围而被移除

2.2.4

移除了 Req,因为它在 4.3.1 的涵盖范围内

(4.3.1 验证管理接口是否使用适当的多重身份验证来

防止未经授权的使用。)涵盖可在管理界面和其他内部访问路径中防范钓鱼式攻击的内容

2.2.5

移除,因为大多数 CSP 都不支持 mTLS,而且针对 CASA 进行测试的大多数开发者都将使用基于密码的身份验证

2.4.3

书面标准不够具体,无法强制执行

2.4.5

ASVS V5 中已移除的要求以及 2.4.1 中建议的哈希算法无法满足此要求

2.7.5

该测试可能需要对第三方 OOB 提供商进行分析,因此不可行。由于身份验证代码的生命周期很短,因此此处的风险很低。

2.8.2

要求仅与自定义 MFA 解决方案相关,也受 6.4.2 和 6.4.1 的约束

2.8.5

移除要求(因为它在 2.7.6 的涵盖范围内),此外,尝试失败的尝试也受 ASVS 的日志记录要求的约束

2.8.6

应用级别的物理动态密码不是常见的用例,管理员需要此频率要求。但是要求 4.3.1 版(验证管理界面使用适当的多重身份验证以防止未经授权的使用。)涵盖管理界面的 MFA,将涵盖此风险

2.9.1

此要求适用于根据 ASVS 定义的实体设备(加密安全密钥是智能卡或 FIDO 密钥,用户必须插入或配对

完成设备身份验证。 验证程序向 Google 的

加密设备或软件,并且设备或软件根据

。{/1}

2.9.3 版

此要求适用于根据 ASVS 定义的实体设备(加密安全密钥是智能卡或 FIDO 密钥,用户必须插入或配对

完成设备身份验证。 验证程序向 Google 的

加密设备或软件,并且设备或软件根据

。{/1}

2.10.1

要求与 2.10.2 相矛盾

2.10.3

适用于 2.4.1(验证在为应用存储用户的密码时,是否使用了以下密码哈希函数之一:argon2id、scrypt、bcrypt 或 PBKDF2),这些函数会存在离线攻击和密码存储的风险。

2.10.4

在 6.4.2 的涵盖范围内。请验证密钥材料是否未暴露给应用,而是使用独立的安全模块(例如保险柜)进行加密操作。

3.2.3

在 3.4.1、3.4.2 和 3.4.3 的范围内

3.5.1

用户可以通过 OAuth 提供方撤消令牌

4.3.3

对于管理员界面和特许访问权限,要求由 MFA 涵盖

5.1.3

此要求受其他输入验证要求的约束,如果缺少验证并不会引入实际的业务逻辑漏洞,则严重级别可能较低。例如,如果未能正确验证电话号码,会导致电话号码无法在信息页面上正确显示,从而无法直接带来安全隐患。

5.1.4

此要求受其他输入验证要求的约束,如果缺少验证并不会引入实际的业务逻辑漏洞,则严重级别可能较低。例如,如果未能正确验证电话号码,会导致电话号码无法在信息页面上正确显示,从而无法直接带来安全隐患。

5.3.2

要求所有 Unicode 字符均有效这一要求可能会使测试变得困难。并非所有应用都包含足够大的文本文本,能够容纳每个 Unicode 字符。此外,整个 Unicode 空间还缺少对某些操作系统和黑客工具的支持,因此,即使服务器支持,您也无法对此进行测试。整体的安全性值有问题。最初包含在 Beta 版中,但由于测试出现问题而被移除。

6.2.5 版

在 6.2.4 和 6.2.3 的范围内

6.2.6 版

在 6.2.4 和 6.2.3 的范围内

6.3.1

在 6.2.4 和 6.2.3 的范围内

6.3.3

7.1.2

7.1.1 支持

7.1.3

7.1.1 支持

7.3.1

7.1.1 支持

7.3.3

7.1.1 支持

8.1.3

很难描述什么是可接受或必需的参数。并非可测试的情况。哪些要素是必要的?如何确定异常是否有效? 被视为不在 CASA 中

8.3.3

这不是一项可测试的要求,与隐私权政策和服务条款(而不是应用安全性)相关。这是法律和合规性审核,不在 CASA 的范围内

8.3.6

控件是系统特定的(Windows/Linux 变体)和设备专用,在大多数情况下不属于应用控件。

8.3.8

在 1.8.1、1.8.2 和 1.1.4 的涵盖范围内

9.2.5 版

第 8.3.5 节

10.1.1

涵盖架构审核,是推荐采用的最佳做法。要求不可测试

10.2.3

在合理的时间内无法做到。任何奇怪的代码都应予以记录和审核,不过,设置特定任务以确保不存在后门程序需要逐行深入审核代码,也不能保证后门程序不存在。

难以测试设计良好的恶意函数

10.2.4

无法进行测试。无法在合理的时间内完成。任何奇怪的代码都应予以记录和审核,不过,通过设置具体任务来确保没有后门程序这一功能,需要逐行深入审核代码,也不能保证后门程序不存在。

难以测试设计良好的恶意函数

10.2.5

无法进行测试。无法在合理的时间内完成。任何奇怪的代码都应予以记录和审核,不过,通过设置具体任务来确保没有后门程序这一功能,需要逐行深入审核代码,也不能保证后门程序不存在。

难以测试设计良好的恶意函数

13.1.1

在 5.2.6 和 5.3.9 的范围内

12.3.1

存在 ASVS 和 CASA 第 5 章(验证、排错和编码)中其他现有要求所涵盖的路径遍历风险

12.3.3

在 5.2.6 和 5.3.9 的范围内

12.3.6

在 10.3.2 12.4.1 和 12.4.2 的范围内

12.5.1

在 10.3.2 和 12.4.2 的范围内

12.5.2

在 10.3.2 12.4.1 和 12.4.2 的范围内

13.1.5

此要求受其他输入验证要求的约束,如果缺少验证并不会引入实际的业务逻辑漏洞,则严重级别可能较低。例如,如果未能正确验证电话号码,会导致电话号码无法在信息页面上正确显示,从而无法直接带来安全隐患。

13.2.2

此要求受其他输入验证要求的约束,如果缺少验证并不会引入实际的业务逻辑漏洞,则严重级别可能较低。例如,如果未能正确验证电话号码,会导致电话号码无法在信息页面上正确显示,从而无法直接带来安全隐患。

13.2.3

涵盖在 4.2.2 中

13.2.5

此要求受其他输入验证要求的约束,如果缺少验证并不会引入实际的业务逻辑漏洞,则严重级别可能较低。例如,如果未能正确验证电话号码,会导致电话号码无法在信息页面上正确显示,从而无法直接带来安全隐患。

13.3.1

此要求受其他输入验证要求的约束,如果缺少验证并不会引入实际的业务逻辑漏洞,则严重级别可能较低。例如,如果未能正确验证电话号码,会导致电话号码无法在信息页面上正确显示,从而无法直接带来安全隐患。

14.4.1

5.3.1 提供

14.4.2

此要求受其他输入验证要求的约束,如果缺少验证并不会引入实际的业务逻辑漏洞,则严重级别可能较低。例如,如果未能正确验证电话号码,会导致电话号码无法在信息页面上正确显示,从而无法直接带来安全隐患。

14.4.3

在 5.2.7 和 5.3.3 的范围内

14.4.5

在 6.2.1 和 9.2.1 的范围内

14.4.7

12.4.1 提供

14.5.3

14.5.2 提供

2.1.5

2.1.1 支持

2.1.6

2.1.1 支持

2.2.3

与 Casa 无关,因为相关风险可被其他反自动化控制覆盖

2.5.6

受其他密码保护

3.1.1

暴露风险较低,并受 ASVS 的其他控制的约束

3.2.1

暴露风险较低,并受 ASVS 的其他控制的约束

3.4.4

暴露风险较低,并受 ASVS 的其他控制的约束

3.4.5

暴露风险较低,并受 ASVS 的其他控制的约束

4.2.1

13.1.4 提供

5.2.8

在其他输入验证和清理检查的涵盖范围内

5.3.5 版

在其他输入验证和清理检查的涵盖范围内

7.4.1

由日志记录检查所涵盖

8.2.3

8.1.1 支持

9.1.1

在 6.2.1 和 9.2.1 的范围内

1.2.3

在 1.1.4、1.8.4 和 1.8.2 的范围内

1.4.4

在 1.1.4、1.8.4 和 1.8.2 的范围内

1.5.2

在 1.1.4、1.8.4 和 1.8.2 的范围内

1.5.3

在 1.1.4、1.8.4 和 1.8.2 的范围内

1.5.4

在 1.1.4、1.8.4 和 1.8.2 的范围内

1.9.1

在 1.1.4、1.8.4 和 1.8.2 的范围内

1.11.3

在 1.1.4、1.8.4 和 1.8.2 的范围内

1.14.1

在 1.1.4、1.8.4 和 1.8.2 的范围内

1.14.2

在 1.1.4、1.8.4 和 1.8.2 的范围内

1.14.3

在 1.1.4、1.8.4 和 1.8.2 的范围内

1.14.4

在 1.1.4、1.8.4 和 1.8.2 的范围内

1.14.5

在 1.1.4、1.8.4 和 1.8.2 的范围内

1.14.6

在 1.1.4、1.8.4 和 1.8.2 的范围内

6.1.2

在 6.1.1 版中

6.1.3

在 6.1.1 版中

2.10.2

涵盖范围:2.5.4

2.2.1

在 11.1.4 的涵盖范围内

2.7.3

在 2.7.2 版本中

2.7.4

在 2.7.2 版本中

5.1.2

在反自动化控制的适用范围内

6.2.2

未定义的已批准加密算法

8.2.1 版

在 8.1.1 的范围内

9.1.2 版

在 9.2.1 版本中

9.1.3

在 9.2.1 版本中

5.5.1

在 1.8.2 版本中

14.2.1

在 1.14.6 版本中

3.3.4

对于使用无状态 AuthN/Z 的应用来说并不是这样。同意 NCC Group 的移除建议。这应该包含在 3.3.3 中



  • 添加了以下要求:


要求 ID

说明

1.1.4

验证应用的所有信任边界、组件和重要数据流的文档和正当理由。

1.8.1

确认所有敏感数据均已识别并归类到保护级别

1.8.2

确认所有保护级别都有一组相关的保护要求,例如加密要求、完整性要求、保留、隐私权和其他机密性要求,并且这些要求

2.1.1

验证用户设置的密码长度至少为 12 个字符

2.5.4 版

确认不存在共享帐号或默认帐号(例如“root”、

“admin”或“sa”)。

4.2.1

验证敏感数据和 API 是否受到针对不安全的直接对象引用 (IDOR) 攻击(包括创建、读取、更新和删除记录,例如创建或更新其他人的记录、查看所有人的记录或删除所有记录)的保护。

1.14.6

确认应用未使用不受支持、不安全或已废弃

客户端技术,例如 NSAPI 插件、Flash、Shockwave、ActiveX、

Silverlight、NACL 或客户端 Java 小程序。