API 无处不在,几乎为一切提供支持。由于大量 SaaS 和其他基于 Web 的服务占据了现代软件领域,随着应用程序变得更加分散,API 的使用和流量持续增长。API 为开发人员提供了显著的优势,使他们能够利用现有功能、加速应用程序开发并释放新的可能性。然而,随着应用程序和 API 产品组合变得越来越复杂,保持对所有现有 API 的全面了解已成为一项重大挑战。在庞大的微服务和互连系统环境中,API 很快就会变得模糊或被遗忘。
这种缺乏可见性的情况会产生潜在的问题。如果隐藏或未记录的 API 包含漏洞,它可能会导致多余的开发工作、阻碍有效的代码重用并带来安全风险。这时,API 发现可以提供帮助。API 发现是开发人员和安全团队识别、分类和评估 API 的关键过程。利用 API 发现的好处包括更好的 API 治理、支持有关 API 使用的明智决策以及帮助主动缓解安全威胁。
在本博客中,我们将探讨 API 发现的基础知识,包括其含义、识别已记录和隐藏 API 的技术以及发现对于安全性和效率的重要性。最后,我们将简要介绍简化该过程的工具,包括 StackHawk 的 API 发现功能。让我们开始吧!
API 发现意味着什么?
从最基本的意义上讲,API 发现是识别、记录和理解特定环境中的 API 的过程。发现的 API 可能是内部开发的 API、第三方提供商提供的 API,最重要的是,可能是隐藏或未记录的 API。
可以将 API 发现视为创建所有 API 的最新清单,或者更广泛地说,创建系统内的数字“连接点”。API 发现过程涉及发现以下详细信息:
- 端点:应用程序用来与 API 交互的 URL。
- 方法:支持的操作(GET、POST、PUT、DELETE 等)。
- 参数: API 可以接受的数据和它生成的响应。
- 身份验证/授权: API 如何确保只有获得许可的用户或应用程序才能访问它。
为什么这对开发人员很重要
关于 API 发现为何如此重要,有很多理由可以证明它对开发人员和组织有帮助。其中一些好处包括:
- 防止重新发明轮子: Discovery 可以增强 API 可见性,揭示解决您正在解决的问题的现有 API,从而节省您的开发时间和资源。
- 促进创新:了解可用的 API 可以为应用程序和集成解锁新的想法。
- 简化协作:共享 API 目录允许团队跨项目重用明确定义的 API,从而促进团队合作。
此外,拥有完整的 API 清单可让组织了解哪些 API 正在使用,哪些 API 未使用。如果某个 API 未被使用且未维护,则可能会带来重大安全风险,如果未在发现过程中发现该 API,则该风险可能不为人所知。无论大小,如果您正在使用和构建 API,API 发现应成为您的工具包的一部分。
什么使得 API 可被发现?
发现 API 涉及许多潜在过程,我们将在下一节中讨论这些过程。但是,首先考虑一些使 API 可发现的因素很重要。让我们来看看一些使 API 可发现的最佳实践和关键方面。
清晰全面的文档
精心编写的文档是 API 可发现性的基石。它应该提供 API 用途、使用方法、支持的不同方法、接受的参数、预期响应、潜在错误代码,甚至是说明性示例的全面概述。将此文档视为 API 的用户友好指南。这一点还包括遵循众所周知的文档实践,例如为您的 API 创建 OpenAPI 规范 (OAS)。
开发者门户
如果您想让 API 易于发现,通过开发者门户公开它是个好主意。开发者门户就像是 API 的中央市场。它列出了可用的 API,提供了强大的搜索功能,并且通常包含以交互方式试用 API 的功能,例如 Swagger UI。这使开发人员能够快速找到所需的 API 并轻松试用它。
描述性和标准化命名约定
端点和参数的一致命名约定可显著提高可发现性。命名和参数应该是可预测的,并让开发人员轻松了解 API 的结构。除了一致性之外,使用有意义的名称还可以帮助开发人员在阅读完整文档之前预测 API 的功能。
遵守设计标准
采用广泛采用的标准(例如 REST 或 GraphQL)可让您的 API 对开发人员来说更具可预测性。这些标准列出了常见的模式和期望,缩短了开发人员集成和使用您的 API 的学习曲线,并提高了可发现性。
这些观点更多地反映了 API 发现的手动方法。在这些情况下,遵循上述指南可让内部或外部开发人员快速查看可用的 API,并使他们能够有效地使用这些 API。但是如何发现隐藏的 API?这就是自动化可以派上用场的地方。接下来,让我们比较一下自动和手动 API 发现。
手动与自动 API 发现
如上所述,有两种主要方法可以实现 API 发现。两者都有特定的用例和方法。让我们看看手动和自动 API 发现工具和技术之间的区别。
手动方法
使用 API 的开发人员可能熟悉手动方法。其中许多方法需要技术背景,并专注于在使用 API 之前发现它们或找出代码库中当前正在使用的 API。以下是开发人员可以手动发现可用或正在使用的 API 的几种方法。
- 代码审查:仔细检查源代码以确定 API 的定义和使用方式。
- 网络流量分析:检查网络数据包以追踪应用程序之间的通信模式,揭示 API 的使用情况。
- 参考现有文档:查看任何可用的 API 文档、系统架构图或开发人员说明。
这些手动技术在特定场景下很有用,但也有局限性。它们可能非常耗费人力和时间,而且很容易遗漏不会在代码或网络流量中留下明显痕迹的隐藏 API。
自动化方法
需要使用专门的 API 发现工具来实现 API 发现的自动化方法。这些工具可能包括内置于 API 管理平台、API 安全平台和其他支持可发现性的工具。这些工具用于扫描系统、分析网络模式,甚至探测端点以主动发现 API。它们提供了一种全面、可扩展且有效的方法来识别已记录和隐藏的 API。
可用于利用自动 API 发现的大多数工具都位于 API 管理和安全平台内。
- API 管理平台和网关:网关(例如 Kong 或 Apigee)通常包含 API 发现功能,因为它们可以控制流量并提供对 API 使用情况的洞察。
- 安全扫描程序: StackHawk 等专用工具会主动扫描漏洞并映射您的 API 端点,从而暴露以前未知的漏洞。
自动化 API 发现工具通常为组织提供显著优势,使其能够全面、及时地了解 API 清单,并改善 API 安全状况。接下来,让我们进一步探索 API 发现对现代组织的重要性。
API 发现的重要性
API 发现在管理、保护和最大程度发挥 API 基础架构的潜力方面发挥着至关重要的作用。从开发人员到企业业务和合规方面的人员,API 发现都提供了广泛的好处。下面是 API 发现可以产生影响的一些关键领域的细分。
- 安全漏洞检测: API 发现让您可以全面了解环境中使用的所有 API。这包括未记录或被遗忘的端点(“影子 API”),它们是攻击的主要目标。维护准确的 API 清单可减少攻击面并主动解决潜在的 BFLA、BOLA 和 OWASP API Top Ten 中概述的其他漏洞。
- 提高合规性:受法规约束的行业(例如受 HIPAA 约束的医疗保健或受 PCI DSS 约束的金融)通常对敏感数据访问和控制有严格的要求。API 发现可帮助您映射 API 内的数据流,从而简化证明符合这些不同法规的过程。
- 减少开发摩擦: API 发现有助于更快、更有效地进行开发。通过让开发人员轻松找到和了解现有的 API 功能(包括内部和第三方),他们可以避免重新设计轮子和重复 API 功能。
- 加速创新:可发现的 API 目录使开发人员能够快速在服务之间建立连接,并允许开发人员和架构师了解企业内现有的可用功能。了解可用的 API 及其功能可以更快、更轻松地实现创新。
- 合作伙伴关系和生态系统开发:如果您的 API 有第三方用户,那么 API 发现对于吸引合作伙伴至关重要。记录良好且易于发现的 API 可以打开商机,并使外部开发人员能够使用它们并与您的组织无缝协作。
将 API 发现纳入 API 开发生命周期和安全实践对于构建强大且安全的应用程序至关重要。从安全角度来看,不使用 API 发现工具的最大缺点之一是隐藏的 API 可能会暴露您不知道的漏洞。接下来,让我们看看隐藏 API 有哪些不同类型以及它们可能产生的影响。
隐藏 API 有哪些不同类型?
隐藏 API 是存在于系统内但未编目或包含在官方文档中的 API。此类 API 可能会成为重大的安全和管理问题,因为它们可能会在安全测试和修补中漏网。以下是一些需要注意的常见隐藏 API 类型:
影子 API
这些是无意中暴露的 API,通常由开发人员在测试期间或出于临时目的而创建。影子 API 可能不遵循既定的安全标准或文档实践,从而导致攻击者利用潜在漏洞。
僵尸 API
这些是过时或弃用的 API,旨在停用但仍在系统中处于活动状态。不良的版本控制实践和停用流程跟踪导致这些 API 仍留在可用 API 中,如果没有正确修补或删除,则会带来潜在的安全风险。
恶意 API
这些 API 是故意创建和隐藏的,通常带有恶意。作为通过 API 进入系统的后门,恶意 API 可能被设计用于绕过安全控制或未经授权窃取数据。
API 发现工具可以帮助发现隐藏的 API 并修复其中存在的任何安全漏洞。这些 API 的安全风险可能非常普遍,并会给您的安全工作留下巨大漏洞。考虑到这一点,让我们在下一节中进一步探讨这些特定的安全风险。
隐藏 API 的安全风险
如上所述,隐藏 API 带来了重大的 API 安全挑战,因为它们通常存在于标准安全监控和治理实践之外。如果某些 API 完全脱离了保护范围,即使是最好的安全实践也将无效。如果在您的投资组合中存在隐藏 API,它们将带来以下一些主要风险:
- 未修补的漏洞:隐藏 API 可能包含未被发现和未修补的漏洞,尤其是不再主动维护的僵尸 API。这使得它们很容易成为攻击者的目标。
- 扩大攻击面:隐藏的 API 增加了恶意行为者可以利用的攻击媒介。他们可能会通过反复试验、代码泄露或自动扫描发现这些 API。
- 数据泄露:安全性较差或未记录的 API 可能成为未经授权的数据访问或泄露的门户。攻击者可能会使用隐藏的 API 来检索敏感数据或不被察觉地操纵系统。
- 合规违规:隐藏 API 可能导致不符合 GDPR 等数据隐私法规或行业特定标准。这是因为,由于对未记录的 API 的监督很少,因此很难确保对其进行适当的授权和访问控制。
考虑到这些因素,很容易理解为什么主动发现隐藏的 API 至关重要。通过跟踪组织 API 组合中的每个 API,您可以增强减轻这些风险和保持强大安全态势的能力。
文章来源:What is API Discovery?Everything You Need to Know
Keyword: ai文章seo生成