
如何编写API文档:14条基本准则
近年来,API 的激增极大地改变了企业的运营方式。API 使不同的应用程序能够相互通信和交换数据,从而实现更高效、更有效的业务流程和软件开发。
然而,随着 API 的使用增加,API 蔓延的风险也随之而来,即 API 是在分布式团队和架构中创建和部署的,通常没有适当的监督和管理。这可能会给企业带来一系列新的安全风险,因为每个 API 都代表着攻击者未经授权访问敏感数据和系统的潜在入口点。
API 蔓延的主要驱动因素之一是微服务的激增。微服务架构将大型应用程序分解为较小的单个应用程序,这些应用程序通过 API 相互通信。这将复杂的应用程序分解为可由各个团队管理的独立部分,并可彼此独立扩展以满足流量需求。
微服务为开发人员提供了许多优势,包括更高的灵活性和可扩展性。然而,这些好处也伴随着一些代价,包括额外的复杂性。因此,许多企业采用API 优先的方法来构建微服务。在这种策略中,应用程序和服务的设计过程从 API 契约开始,该契约概述了 API 的工作方式,直至请求和响应的格式。
如果未能认真对待 API 安全性(尤其是在设计和部署期间),则 API 优先软件开发的优势很容易受到破坏。从最基本的层面上讲,API 越多,攻击面就越大。虽然 API 在现代软件开发中发挥着至关重要的作用,但同时也变得越来越容易被利用。
2018 年,Gartner 预测,到 2022 年,API 将成为应用程序最常见的攻击媒介。如果非要说的话,他们对延迟时间的预测过于乐观了。影响数百万用户的大型公司 API 泄露事件早已发生,而且只会变得更加普遍:
这些攻击的广度和种类揭示了安全和工程领导者面临的挑战。一些攻击利用了错误地暴露在互联网上的 API。其他攻击使用错误地暴露在代码存储库中的 API 密钥或其他身份验证方法。或者攻击者通过 VPN 漏洞访问内部环境并使用内部 API 窃取数据。
防范 API 威胁的最常见方法是将传统的 Web 应用程序安全策略与现代 API 安全技术相结合。面对当今各种 API 威胁,传统策略往往显得力不从心。自动 API 发现和 API 对比测试等现代技术试图弥补这些差距。
对于企业来说,至关重要的是采取正确的防护措施(实施全局控制和安全策略来保护已部署的应用程序和 API)和向左移动(在代码中构建安全性以在应用程序和 API 投入生产之前消除漏洞)。这两种策略都无法单独提供全面的 API 安全性,因此防止违规的关键是采取涵盖三类 API 安全实践的整体方法:
通过将正确的策略与正确的工具相结合,组织可以更好地保护其 API 免受攻击并确保其软件系统的安全。让我们来看看平台工程领导者需要实施哪些重要功能和工具来保护整个生命周期的 API。
API 安全态势管理可让您了解 API 公开的数量、类型、位置和数据。这些信息可帮助您了解与每个 API 相关的风险,以便您采取适当的措施来保护它。
主要功能:
代表性技术:
重要的是要记住,没有任何技术可以可靠地找到架构中的每个 API。大多数发现技术依赖于现有负载均衡器、API 网关和 Ingress 控制器提供的可见性,并且不太可能捕获绕过这些架构组件的错误配置。
最终,代码审查和遵循 API 优先最佳实践可以提供更有效的长期预防。但自动化 API 发现工具仍然有助于快速构建安全态势视图并捕获可能不受管理和不安全的 API。
虽然 API 安全态势管理与整个企业的安全有关,但 API 安全测试则主要针对单个 API。从最基本的方面来说,API 安全测试通过测试 API 运行时(即在 API 后面运行的应用程序)来帮助识别和预防漏洞及其相关风险。它有助于确保满足基本安全要求,包括身份验证、授权、速率限制和加密的条件。
主要功能:
代表性技术:
有开源契约测试工具,也有专门的 API 安全供应商提供的商业产品。应用程序安全测试 (AST) 市场已经存在了几十年,越来越多的供应商提供专门的 API 扫描和测试工具。
API 运行时保护是指在 API 运行和管理请求时对其进行保护。它优先考虑在平台基础架构以及 API 本身的代码中构建安全性。目标是识别和阻止部署后出现的恶意 API 请求。
主要功能:
代表性技术:
并非所有 API 网关和 WAF/WAAP 都生来平等。某些服务(尤其是云和其他平台上提供的原生解决方案)缺乏多云和混合架构所需的全球可视性和标准化。
鉴于保护 API 的重要性,以有组织的方式处理 API 安全问题至关重要。平台工程和安全领导者必须共同努力,解决整个 API 生命周期的安全要求。正如我们之前所探讨的,这大致涉及三个主要实践领域:API 安全态势管理、API 安全测试和 API 运行时保护。换句话说,您需要专注于了解您有多少个 API、如何测试它们是否存在错误以及如何在代码中构建安全性。
与所有网络安全一样,API 安全是一个持续的过程,需要与许多利益相关者合作,包括网络工程师、安全运营负责人、平台工程负责人和软件开发工程师。好消息是,如何保护 API 并不是什么难事。
大多数组织已经采取措施来对抗众所周知的攻击,例如跨站点脚本、注入、分布式拒绝服务以及其他可以针对 API 的攻击。上述许多最佳实践对于经验丰富的安全专业人员来说可能非常熟悉。无论您的组织运营多少个 API,您的目标都是建立可靠的 API 安全策略并随着时间的推移主动管理它们。
文章来源:Prevent API Attacks with Essential Tools and Best Practices for API Security