面向 DevSecOps 的 API 安全性
API 安全性对于 DevSecOps 至关重要
Akamai 在 2024 年 6 月收购了 Noname Security。Noname Security 产品现已更名为 Akamai API Security,但这篇归档的博客文章最初发布于 2022 年 9 月 29 日,其中使用的依然是最初发布之日的产品和功能名称。
DevSecOps 是 DevOps(开发和运营)的一种变体,将安全性添加到软件开发工作流之中。应用程序编程接口 (API) 安全性必须成为 DevSecOps 的一部分。
这篇博客文章探讨了 DevSecOps 的工作原理,以及在遵循 DevSecOps 流程开发的应用程序中,API 安全性在尽可能提升应用程序安全性方面的作用。
什么是 DevSecOps?
要想理解 DevSecOps 的要义,首先必须熟悉 DevOps,即作为 DevSecOps 基础的原始模式。DevOps 指的是软件开发 (dev) 和 IT 运营 (ops) 这两个既往彼此独立的流程的结合体。传统上,开发人员编写代码,然后交给 IT 运营部门以部署到生产环境中。在瀑布式开发时代,完成一个应用程序的新版本需要花费数月乃至数年的时间,这种方法在当时非常有效。
随着敏捷开发方法和代码的持续集成/持续部署 (CI/CD) 的出现,原本那种开发/运营相互分离的方法已不再可行。每天(甚至是每个小时),都有新的代码交给运营人员发布。
要想在不造成灾难的情况下完成任何工作,唯一的方法就是统合开发和运营工作流。合并后的流程需要一支联合团队。
在新的 DevOps 环境中,开发人员和运营人员彼此协作,将代码快速发布到生产环境。这并不是一种自然产生的合作关系;开发团队与运营团队之间往往互不往来,或者关系十分紧张,“各人自扫门前雪”(以及传统的)思维方式导致工作效率难以提高。DevOps 引入了责任分担模式,改变了这种动态。
随着网络威胁日趋严重,将安全性纳入 DevOps 工作流完全合情合理。因此,DevOps 就变成了 DevSecOps。这又一次带来了关系的缓和——这一次缓和的是安全与开发团队之间时而紧张的关系,因为安全团队经常被视为导致开发过程减速的“交通警察”。DevSecOps 代表了一种全新的合作方式。如今,安全性已成为更高效但更安全的开发周期的支持因素。
DevSecOps 的关键成功因素
在 DevSecOps 中取得成功并不简单。它涉及到各自追求不同目标的多个团队和工作流的协调。为了保证 DevSecOps 中错综复杂的人员和流程协调发挥作用,需要巧妙融合多种工具和流程。技术必须能为双方提供支持,并通过在流程中适当作出妥协来达到平衡。这也包括领导层。
要在 DevSecOps 方面取得成功,安全团队必须调整测试方法,以适应全新的 CI/CD 世界。而 DevOps 团队至少要以对待功能问题时同样严谨的态度来对待安全问题。事实上,在成熟度较低的计划中,很多安全问题会在待办事项中长期积压,最终被搁置。要想取得成功,还需要采取“左移”策略,将安全工作置于 DevOps 工作流中尽可能早的位置。
在 DevSecOps 工作流中确保 API 安全性
要在 DevSecOps 中确保 API 安全性,就需要在开发过程中执行 API 安全测试,并在 API 投入生产环境后进行 API 监控。API 安全测试与 DevSecOps 中其他形式的安全测试类似,但存在一些显著的区别。例如,静态测试或许有助于发现代码中的漏洞,但它并不能有效识别所有 API 漏洞。
相反,DevSecOps 的 API 安全测试应侧重于使用业务逻辑运行黑盒类型的测试。这种方法可以揭示 API 在部署应用程序时的实际工作方式。
API 安全测试工具(如 Noname Active Testing)可执行此类测试。它可以检测开放式 Web 应用程序安全项目 (OWASP) API 安全十大风险中强调的漏洞,如失效的对象级授权、不受限制的资源消耗、安全配置错误、清单管理不当等。如果这些漏洞存在且未得到缓解,将 API 作为目标的攻击者就可以在未经授权的情况下访问敏感数据。
Noname Active Testing 支持高度可配置的测试套件,因此可集成到 CI/CD 管道中。它还支持左移式测试,内置对多个 CI/CD 系统的集成。有了这两个因素,该工具就可以在 API 方面将“Sec(安全)”纳入 DevSecOps。CI/CD 集成必不可少,因为它可以实现持续、快速的 API 安全测试,从而确保现代应用程序安全无忧。
面向 DevSecOps 的 API 安全性并不局限于开发。最佳实践是将 API 安全流程延续到生产环境之中。通过在生产环境中监控 API,DevSecOps 的“Sec(安全)”部分即可检测到受漏洞影响的 API,例如,由于在生产过程中被管理员重新配置或错误配置而产生漏洞的 API。一旦检测到 API 漏洞,即可在 DevSecOps 工作流中加以修正。
结论
DevSecOps 的实施非常困难,需要大量的人员和流程相互协调一致,以确保每个人和每件事都能快速推进。API 安全性有可能增加 DevSecOps 的复杂性,并导致其无法顺利运行。然而,API 安全测试对于开发安全的应用程序至关重要。为确保 API 安全性与 DevSecOps 顺畅配合,必须使用专门的 API 安全测试和监控工具。