OWASP Top 10 项目始于 2003 年,是 Web 应用程序十大最关键安全风险类别的列表。需要注意的是,这份名单是经过协商一致制定的。
最初,该文档旨在提高开发人员和管理人员的意识,目前已成为应用程序安全的事实标准。
此外,在 Top 10 页面上,我们可以找到突出显示的短语:
被全球开发人员认可为迈向更安全编码的第一步。
以该文档的邀请为起点,将其纳入个人和组织的文化中,以确保开发安全,从而将其 Web 应用程序中的风险降至最低。
开发考虑到 Web 应用程序最关键风险的软件,除了对该行业的隐含认可外,还使我们能够在开发安全软件的道路上达到一个重要的里程碑。
2021 年版本的 OWASP Top 10 于 2021 年 9 月 24 日星期五推出,伴随着一系列总持续时间约为 24 小时的免费会议,从同一个星期五到下一个星期六举行。
该活动在 YouTube 上进行了直播,视频也在平台本身上录制,尽管有一段时间链接不会公开,需要注册才能获得链接。
生成风险类别及其分类的数据是通过混合方法获得的。
前八个类别是根据对大约 500,000 份应用程序的分析数据确定的,这些应用程序由各种组织和匿名捐赠者捐赠。
最后两个类别的决定是考虑到对组织进行的关于风险的调查结果,据他们说,这些风险应该被考虑在内。
影响 OWASP 分类的变化如下图所示:
如果您已经了解 OWASP,那么大多数类别都保留了 2017 版本中的功能,一些已经添加到其他类别中,并且已经创建了三个新类别,它们是:
请注意,在此版本中,在为类别分配名称时,已考虑根本原因而不是后果。
例如,在谈到 2017 年类别“ A03:2017 – 敏感数据泄露”时,我们指的是后果而非根本原因,因为敏感数据的泄露可能是由于在transit or at rest,所以更改了类别名称,现在称为“A02:2021-Cryptographic Failures”,这是根本原因。简而言之,要理解名称更改,可以说“加密故障”(2021)导致“敏感数据暴露”(2017)发生。
这个新版本的另一个变化,不影响分类本身,但值得欢迎的是,为每个类别设计了一个徽标,我们可以使用它来伴随我们对它们所做的参考或解释。这使我们能够以更直观的方式识别它们,例如在将它们传达给不同的受众或引用它们时。
接下来,我们将讨论 OWASP Top 10 2021 的三个新类别,因为它们是最近创建的,它们不像以前已经存在的类别那样广为人知或无法获得相同数量的信息。
强烈建议了解它们,以便尽快应用建议的建议,这将有助于我们避免新的风险。
在这类风险中,我们讨论与实施相关的一个方面,即设计。这是一个先验的描述性类别,尽管稍后我们将看到指标也可以分配给软件开发生命周期的不同阶段。
设计和实现不一定必须在安全领域相关,因为你可以有一个不安全的设计,你可以有一个安全的实现。这将是这样的情况,即设计的密码策略已经实施,代码已经过审查,并且可能已经检测到的安全相关问题已经得到纠正,但在设计中没有考虑到,例如,双重身份验证(A2F;英文为 2FA:Two-Factor Authentication)。
可能存在不安全的设计 ,而您可以拥有安全的实现。
在每个组织中,为什么在设计时没有考虑安全要求是有特殊原因的,但一般来说,安全谈判应该包括在项目的最早阶段,并在以后的阶段考虑。
因此,应在早期阶段编制安全要求,目的是为后期阶段预留资源。
根据OWASP提供的定义:
安全设计是一种不断评估威胁并确保代码经过稳健设计和测试 以防止已知攻击方法的文化和方法。
因此,必须时刻注意安全方面。除了考虑到它,我们还应该采取行动。
一种选择是在测试设计阶段采取行动,其中应包含验证是否满足安全要求的方法。例如,通过提供正确或不正确的输入数据,我们正在使用的信息系统必须继续以预期的方式运行,如果我们正在检查安全要求以进行身份验证,这可能会允许或不允许访问。
因此,必须将安全需求检查纳入我们已有的测试中。
正如已经看到的那样,安全开发不是可以添加到现有软件中的工具或附加组件,而是必须成为组织文化的组成部分。
安全软件开发生命周期(英文缩写为 CVDSS 或 SSDLC,Secure Software Development LifeCycle)需要将安全视为其中重要组成部分的元素,这是选择我们信息系统元素时的一个重要方面:安全组件库,安全的设计模式、强大的方法和工具,使我们能够对威胁进行建模。
软件成熟度保证模型,SAMM (软件保证成熟度模型)是 OWASP 提出的将安全实践纳入任何软件开发生命周期 (CVDS) 的建议。
这是 SAMM 最有趣的功能之一,因为它的应用程序独立于我们正在使用的 CVDS,通过用一个覆盖整个周期但不修改它的新层来补充它。
SAMM 允许在我们的 CVDS 之上创建一个 CVDSS, 而无需额外修改。
首先,我们将在我们当前的 CVDS 上对 SAMM 提出的不同安全实践进行第一次评估,我们将为自己分配一个从 0 到 3 的初始分数,即我们在其中确定的成熟度级别。
完成初步评估后,我们将了解我们 CVDS 的当前状态。该评估与我们之前进行的风险分析一起,将使我们能够确定要采取的行动。一旦完成,我们就已经有了一个安全的软件开发生命周期,CVDSS。
所有这些都将使我们能够根据我们的特定需求采取行动,逐步实施它,因为我们只需要提高每个安全实践的成熟度即可。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。