什么是 API 发现?

坐在办公桌前使用电脑工作的人

什么是 API 发现?

API 发现是对组织使用的所有 API(包括内部 API 和第三方 API)进行识别和编目,同时记录 API 功能、端点、数据结构和其他相关信息的过程。

API 发现会创建一个正在使用的应用程序编程 (API) 清单,记录它们的用途、拥有访问权限的人员,以及更多相关信息。它还可以帮助发现任何被隐藏或遗忘的 API,这对于降低安全风险非常重要。

API 是现代软件开发的重要组成部分,提供双向交换:它们使开发人员和应用程序能够请求数据、添加服务并利用其他应用程序的能力,同时也为应用程序所有者提供了一种共享、宣传和营销其产品的方式。有了这些基本功能,复杂性和脆弱性也随之增加。

API 管理对于消除这些安全漏洞、确保 API 生态系统按预期运行至关重要。为了确保 API 安全、身份验证有效性、运行效率、敏感数据保护以及保持对应用程序使用情况的整体把控,准确掌握 API 的数量、类型及使用频次至关重要。但是,应用程序所有者如何发现所有这些信息呢?这就需要用到 API 发现功能了。

为什么 API 发现很重要?

API 或应用程序编程接口是一组规则和协议,使应用程序和服务能够相互通信。它们本质上是使应用程序能够从各种不同来源实时提取数据的中间人。API 为天气应用程序提供天气数据,为购物应用程序提供加速结账功能,为餐厅网站提供地图等,此外还有许多其他用例。在企业中,API 用于集成工作流和平台、连接微服务、促进资产共享、使应用程序可供第三方用户使用等等。

鉴于现代企业使用的应用数量之多(根据 a Salesforce 的一项调查的数据),平均超过一千个,因此组织建立健全的 API 发现实践显得尤为重要。API discovery 指的是查找已文档化和隐藏的 API、创建目录并汇总已发现 API 清单的过程。API 发现之所以如此重要,原因有很多,既因为它能带来诸多好处,也可能因为忽视这一过程会对应用程序安全造成影响。API 发现是汇编彻底且完整的 API 文档的重要组成部分。

避免冗余

冗余,即创建多个相同或相似的功能,会导致文档混乱,降低效率和生产力而严重影响开发流程。简而言之,创建一个实际上并非全新的 API 会浪费时间和资源。适当的 API 发现和 API 文档记录可以减少 API 冗余的可能性。如果能够轻松找到某个轮子的文档,就没有必要重新发明它。

加速应用程序开发,促进协作

通过使用 API 发现工具发现 API 并生成可靠的 API 文档,开发人员可以更好地了解他们可以访问和集成哪些现有应用程序和服务(内部和外部)。通过使用现有的服务和功能,开发人员可以加速生产、扩展应用程序能力并缩短上市时间。

API discovery 能够创建 API 清单,帮助开发人员查找并使用现有的服务。这样做还有一个额外的优点,那就是通过提供一系列选项,鼓励开发者集成应用程序的数据和服务。

API 发现和 API 目录的持续维护,使团队能够快速轻松地找到现有的 API。这可以提升效率、减少不必要的工作,甚至通过提醒开发人员他们可能尚未察觉的功能来改进工作流程。

保护敏感数据

维护最新的 API 目录是监控谁有权访问敏感数据(例如用户信息和API 密钥)的好方法。通过使用 API 发现来查找访问敏感数据的所有 API,应用程序所有者可以更轻松地监控谁有权访问哪些内容,并确保 API 和应用程序遵守所有适用的法律和准则。鉴于影子 API 的普遍存在,这一点尤为重要。

API 发现有什么作用?

API 发现是指获取关于 API 的各种详细信息,例如 API 的类型、功能、可访问的数据等等,这些信息能帮助开发人员识别并更深入地理解企业所使用的 API。API 发现生成有关 API 的信息,包括:

协议、架构和支持的数据格式:发现过程有助于记录 API 使用的协议或架构(例如 REST、GraphQL、SOAP 或 RPC)以及它们接受的数据格式(例如 JSON、XML 和 YAML)。

API 端点:是特定数据或服务存储的位置,通常表示为 URL。

身份验证:API 通常受到保护,只有经过认证的客户、项目和用户才能访问。API 发现有助于发现身份验证规范。

方法和参数:API 发现可揭示支持的操作,例如 GET、PUT、DELETE 和 POST 以及 API 接受的参数。

API 发现如何影响 API 安全?

API 发现在加强 API 安全方面可以发挥重要作用。适当的 API 文档和 API 管理使应用程序所有者能够全面了解API 使用情况,从而更容易发现安全漏洞。反过来,应用程序所有者或开发人员可以修复任何潜在的问题。

API 发现对 API 安全的一个最重要贡献是能够定位隐藏的 API。

什么是隐藏的 API?

术语“隐藏”并不完全准确,因为隐藏的 API 不一定是恶意的。这里的“隐藏 API”是指那些没有文档记录、未包含在 API 文档中的 API。有许多隐藏的 API 完全无害,例如网页应用文本框中的无限滚动功能或许多自动完成功能。

也就是说,即使是无害的隐藏 API 也会给安全团队带来潜在的麻烦。隐藏的 API 被排除在安全解决方案之外,因此不会受到应用程序所有者通常采取的一系列监管和安全措施(例如防火墙)的约束。隐藏 API 有许多不同类型,从只是被遗忘的到具有潜在危害的都有,这也是 API discovery 过程如此重要的原因。

影子 API

虽然不一定具有恶意,但影子 API 被定义为既不受使用它们的实体管理,也不受其保护的 API。如果没有 API 的可视性,它们就不在企业的安全范围内,很容易受到攻击。

2022 年的一份报告发现,约有 31% 的恶意交易是针对影子 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。

标准化: 使用标准规范和协议,如 OpenAPI Specification (OAS)、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 发现功能。在寻找此类服务时,人们通常会选择能够提供强大安全防护、符合知名标准(如 OpenAPI 规范,防止受到 OWASP 十大 API 安全风险攻击)并能与组织平台轻松集成的供应商。

自动化可以更高效地改善 API 的生命周期,并确保只有安全的 API 才能访问软件应用程序和相关资源。

相关解决方案
IBM® webMethods Hybrid Integration

实现动态可扩展的集成能力,灵活适应不断演进的业务需求。由 AI 驱动、以 API 为核心的自动化技术

了解 IBM® webMethods Hybrid Integration
IBM 集成软件和解决方案

通过 IBM 集成解决方案,连接应用程序和系统以快速安全地访问关键数据,从而释放业务潜力。

探索集成解决方案
云咨询服务

在 AI 时代,充分发挥混合云的价值

深入了解我们的云咨询服务
采取后续步骤

实现动态可扩展的集成能力,灵活适应不断演进的业务需求。由 AI 驱动、以 API 为核心的自动化技术。

了解 IBM® webMethods Hybrid Integration 获取行业洞察分析