OWASP应用程序安全验证标准(OWASP Application Security Verification Standard,ASVS)为测试web应用程序技术安全控制提供了基础,还为开发人员提供了安全开发的要求列表。
1. 简介
OWASP应用安全验证标准,是一份测试应用安全的清单,可供架构师、开发人员、测试人员、安全专家、工具供应商和消费者参考,用于定义、构建、测试和验证安全的应用。当前最新版本是Version 4.0.3, 于2021年10月发布,具体文档可点此下载(访问密码:6277)。ASVS 5.0版本的计划和路线图已经公布,关注博主,后续会持续更新。
OWASP(Open Web Application Security Project)开放网络应用安全项目是一个全球自由开放的社区,通过其社区主导的开源软件项目、全球数百个分会、数万名成员以及举办本地和全球会议,致力于提高应用软件的安全性。
2. 主要应用场景
OWASP应用程序安全验证标准(ASVS)项目的主要目的是在使用商业上可行的开放标准执行Web应用程序安全性验证时,规范可用的覆盖范围和严格程度。该标准为测试应用程序技术安全控制以及环境中的任何技术安全控制提供了基础,这些技术安全控制用于防止跨站点脚本(XSS)和SQL注入等漏洞。此标准可用于建立Web应用程序安全性的置信度。制定这些要求时考虑到以下场景:
-
用作衡量标准:为应用程序开发人员和应用程序所有者提供一个衡量标准,用于评估他们的Web应用程序的信任程度,
-
用作指导:为安全控制开发人员提供指导,指导他们在安全控制中构建哪些内容,以满足应用程序安全要求;
在敏捷开发过程中,为了获得安全的产品,ASVS可以作为框架来定义团队需要实施的特定任务。 一种通用方法是:从 Level 1 开始,根据指定级别的 ASVS 要求,验证特定应用程序或系统,查找缺少哪些项目,并在待办事项中提出特定工单/任务。 这有助于对具体任务进行优先排序(梳理),并使安全在敏捷开发中可见。 这也可用于确定组织中审计和审查任务的优先;其中,特定的 ASVS 要求,可以作为团队成员审查、重构或审计的驱动因素,并可以记录到最终的待办清单中。
-
在采购过程中使用:为在合同中规定应用程序安全验证要求提供依据。ASVS 是一个很好的框架,可以帮助确保安全软件的采购或定制开发服务的采购。 买方可以简单地设定一个要求,即他们希望采购的软件必须按照 ASVS 的 Level x 来开发,并要求卖方证明该软件满足ASVS的x级。
3. 如何使用ASVS
简单总结,ASVS其实就两个主要目标:
- 1、帮助组织开发和维护安全的应用程序;
- 2、允许安全服务厂商、安全工具供应商和消费者调整他们的要求和产品。
3.1. 应用安全验证级别
用程序安全验证标准(ASVS)定义了三个安全验证级别,级别越高,要求越严格:
- ASVS Level 1: 适用于低保证级别,可通过渗透测试验证。如果一个应用程序能够充分防御 OWASP Top10 或其他类似检查表中提到的那些容易发现的安全漏洞,那么它就达到了ASVS Level 1。
- ASVS Level 2: 适用于包含敏感数据的应用程序(需要保护),是大多数应用程序的推荐级别。如果一个应用程序能够充分抵御当今与软件相关的大多数风险,那么它就达到了ASVS Level 2(级别或标准)。
- ASVS Level 3: 适用于最关键的应用程序:执行高价值交易、包含敏感医疗数据的应用程序,或任何需要最高级别信任的应用程序(例如军事、健康、安全和关键基础设施等领域的应用)。
每个ASVS级别都包含一个安全要求的列表。其中的每一项,都可以对应到开发人员必须在软件中建立的特定安全特性和功能。OWASP应用安全验证标准级别(4.0版)如下图所示:
3.2. 如何使用这个标准
使用应用程序安全验证标准(ASVS)的最佳方法之一,是将其作为一个蓝图,创建一个针对你的应用程序、平台或组织的安全编码检查表。 建议根据不同的项目场景,针对其中最重要的安全要求增加关注。
4. 具体内容
由于标准要求多达60页,在此不做展开,感兴趣的可以下载文档原件:
- 中文版本,共62页,点此下载(访问密码:6277)
- 英文版本,共73页,点此下载(访问密码:6277)
文章主要包含14章节内容:
- 1架构、设计和威胁建模
- 2认证
- 3会话管理
- 4访问控制
- 5验证、过滤和编码
- 6存储密码学
- 7错误处理和日志记录
- 8数据保护
- 9通讯
- 10恶意代码
- 11业务逻辑
- 12文件和资源
- 13API和Web Service
- 14配置
5. 参考
[1] https://owasp.org/www-project-application-security-verification-standard/