为什么开发人员需要了解的缺陷不仅仅是OWASP前10名
我们生活在一个几乎所有业务应用程序和基础设施都直接或间接通过网络公开的时代。无论实施多么高的安全性防御,一旦没有从内部保护应用程序和基础设施,就有被泄露的风险。
OWASP Top 10是进行安全性防御的基础,但这还不够。尽管应用程序是最常受到攻击的资产之一,但对保护这些资产的关注还不够。安全要从开发人员开始。
为什么开发人员需要编写更安全的代码
应用程序安全性可以通过在构建应用程序时实施安全实践。开发人员通常首先专注于解决问题以及实现功能,然后再考虑安全性。这种方法不是很有效,尤其当我们转向持续集成和持续部署时。因此,对于开发人员来说,编写安全代码非常重要。
开发人员不是安全专家。编写安全代码并不意味着之后并不需要安全专家和安全测试。但开发人员有必要了解常见的编码实践,并在开发早期阶段来实行。安全专家仍需要审查应用程序,静态代码检测等提高代码安全性及软件安全性的安全测试仍需要进行。
OWASP前10名都有哪些?
开放 Web 应用程序安全项目 (OWASP) 发布了 Web 应用程序中的漏洞列表以及如何防止这些漏洞,称为OWASP Top 10。此列表列出了 Web 应用程序面临的 10 大安全漏洞,并考虑了严重性、频率和潜在影响。最新列表包括:
- 访问控制中断
- 加密故障
- 注入
- 不安全的设计
- 安全配置错误
- 易受攻击和过时的组件
- 识别和身份验证失败
- 软件和数据完整性故障
- 安全日志记录和监视失败
- 服务器端请求伪造
此列表是经过世界各国安全专家的一致同意后制定的。因此,如果刚刚开始学习web应用程序安全,这是一个很好的起点。
为什么开发人员需要了解更多?
尽管OWASP前10解决了最常见的问题,但它并没有涵盖所有的问题。缓冲区溢出、跨站点伪造请求等是前10个漏洞中未涉及的缺陷,但仍然会造成巨大的危害。攻击者并不只是坚持OWASP的前10名。它们会尝试除前10种方法外的其他方法来执行成功的攻击。因此,除了OWASP前10名,其他安全缺陷也需要了解。
构建OWASP Top 10下一步是什么?
安全设计
通过在设计体系结构时牢记安全性,可以增强组织的整体安全性。甚至在编写第一行代码之前,安全设计就已经成为了基础。使用最小特权和安全信任模型等实践将使攻击者难以侵入系统。威胁建模对理解威胁和安全需求有很大帮助。安全的设计将有助于减少攻击面。
DevSecOps
将安全活动集成到SDLC中可以加强应用程序的核心。使用DevSecOps,可以在开发的早期阶段识别漏洞,从而可以更快地解决安全问题。静态代码检测、动态测试等可以发现代码缺陷漏洞及应用运行时漏洞,有助于更快地解决问题。
左移会影响查找和修复安全问题的成本以及花费的时间。随着开发的进行,越向右,修复漏洞成本会更高。
安全CloudOps
安全的CloudOps对于解决云基础设施的外部和内部威胁非常重要。
大多数云提供商都有基本的安全级别。但不应该满足于此。组织需要一个对其来说更安全的配置。在云扩展、主动安全、备份和恢复方面还有很大的改进空间。由于大多数安全云提供商会负责基本的安全方面,例如定期修补,因此可以专注于特定于组织更重要方面。
安全软件供应链
Solarwinds和log4j是我们最近看到的两种严重的攻击。这两个都是第三方组件。使用现有的解决方案并将其集成到系统/应用程序中比从头开始构建更明智。然而,如果这些依赖关系存在安全问题,也会使系统变得脆弱。
评估所用依赖项的安全性非常重要。部署后进行持续测试和监控威胁。自动化工具在这里将有很大的帮助。一些高级 SAST 和 DAST 工具可以在开发和测试产品时检测修复漏洞。
合规
合规性很重要,主要有两个原因:
- 有助于增强安全性
- 避免罚款
大多数组织需要遵守某些法规。对于开发人员来说,在开发阶段考虑合规性有很多鼓励。当开发人员牢记合规性时,它会使整个合规性流程更加高效,从而避免重大更改。它还降低成本,创建了合规性一致性,并改善了跨职能团队内部的协作。
随着对安全性的更高需求,开发人员也开始在某种程度上成为安全专家。
来源:
https://www.softwaresecured.com/why-developer-security-awareness-is-more-than-just-owasp-top-10/