更新 - 2023 年 3 月 29 日
为了与行业趋势和最佳实践保持一致,应用防御联盟 (ADA) 工作组在 2023 年第 1 季度举行了审核会议,以更新、简化和标准化 CASA 测试程序。根据这些工作会议,CASA 要求和流程更新如下:
-
CASA 要求从 134 项更新为 73 项(详见下文)。
-
为了通过 CASA 评估,应用必须通过或满足所有 73 项 CASA 要求,无论 CWE 评级如何。
-
更新了层级说明,添加了实验室进行的 Tier 2。
-
为每个层级添加了保证信息。
-
小幅更新,简化了第 2 级自检流程。
CASA 要求更新
-
如需查看当前要求的更新列表,请点击此处
-
移除了以下要求
req_id |
工作组反馈 |
8.1.6 |
建议重新考虑此要求,使其更具可操作性(例如,备份应仅保留 X 时间,应监控备份是否被盗/损坏,应定期审核备份,以确认其能够恢复到生产环境)。当前假设过于宽泛,需要更明确的定义。 |
5.1.4 |
其他测试用例的副本。这是一个高投入低价值的测试用例。建议移除。 |
7.3.3 |
其他测试用例的副本。这是一个高投入低价值的测试用例。建议移除。 |
1.2.2 |
因其他要求(例如 4.1.1)中已涵盖而移除 |
2.2.4 |
移除了相应要求,因为 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 |
应用级实体 OTP 不是常见用例,但此请求是管理界面所必需的。不过,要求 4.3.1(验证管理界面是否使用适当的多重身份验证来防止未经授权的使用)涵盖了管理界面的 MFA,因此可以应对此风险 |
2.9.1 |
此要求涵盖了实体设备(加密安全密钥是智能卡或 FIDO 密钥,用户必须插入或配对 加密设备连接到计算机,以完成身份验证。 验证方将质询随机数发送给 加密设备或软件,并且该设备或软件根据安全 存储的加密密钥。)因此,此要求不在 CASA 的范围内,因为 MFA(实体或软件)的实体设备身份验证风险已在 4.3.1 中涵盖 |
2.9.3 |
此要求涵盖了实体设备(加密安全密钥是智能卡或 FIDO 密钥,用户必须插入或配对 加密设备连接到计算机,以完成身份验证。 验证方将质询随机数发送给 加密设备或软件,并且该设备或软件根据安全 存储的加密密钥。)因此,此要求不在 CASA 的范围内,因为 MFA(实体或软件)的实体设备身份验证风险已在 4.3.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 |
Req 已通过 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 中涵盖 |
-
添加了以下要求:
req_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 小程序。 |