博客

API 的工作原理以及它们为何会成为潜在的安全问题

Frank Kyei-Manu 缩略图
弗兰克·凯马努
2022 年 10 月 25 日发布

我们中的许多人可能都听说过应用编程接口(API)这个术语但除非我们是应用开发人员或担任技术职务,否则我们可能不完全确定 API 实际上是什么(或它的作用)。 其含义当然不是直观的。

API 为一个应用访问另一个应用程序的信息和功能提供了渠道。 然而,可能需要额外的背景信息,所以让我们从一个基本的类比开始。

API 说明

假设你遭遇车祸并且需要修理你的车。 您可以找到一家信誉良好的维修店,并与服务代表讨论需要完成的工作、回答您的问题、获得估价并安排预约。

您无需雇用机械师、订购零件、提供必要的车间工具和设备、运行诊断测试等。 如果需要更换挡风玻璃、重新喷漆车身或重新调整车轮,您的服务代表也会安排执行这些外部服务。

您可以将服务代表视为您和商店之间的接口——他们是处理您的服务请求的信使和翻译,同时使您无需了解修理汽车所涉及的所有幕后细节和复杂性。

服务代表将代表您接受您的请求,对其进行正确的解释和翻译,安排满足您的请求所需的所有服务,并最终将您的汽车恢复到正常状态。

在这种情况下要注意的重要术语和概念是作为信使和解释器/翻译器的界面、请求-响应过程,以及保护您(请求者)免受修复细节影响的概念。 这些概念都是 API 工作方式的核心。

现在让我们将其中一些概念应用到您可能每天使用的典型应用中,例如手机上的典型旅行应用程序。 该应用程序可能提供有关航班、酒店、游轮、地面交通、旅游等的最新信息。 开发这款应用程序的公司不太可能将所有这些信息存储在自己的数据库中,或者将所有专业知识都集中在公司内部。 相反,这些数据是通过应用程序使用酒店、航空公司、邮轮公司等合作供应商提供的 API 来传递的。 API 就像修理店里的服务代表一样,向提出请求的客户(在本例中为您的旅行应用程序)提供所需的服务,并最大限度地减少不必要的复杂性。

现代应用程序的构建模块

如今,API 已成为现代应用的基石。 正如我们在本系列的上一篇博客《如何构建和部署现代应用程序》中所描述的那样,容器对于现代应用也至关重要,它将应用分解为不同的组件,以便更轻松地管理开发和未来的更新。

API 实际上是这些容器集群和它们共享的应用服务之间的通信渠道。 此外,它们还促进与外部服务器和数据库的数据交换。 (见下图 1。)

缺点是 API 可能会将数据暴露给外部人员。 这使得组织的 API 对攻击者极具吸引力,不仅可以访问数据,还可以作为组织基础设施内其他关键系统的潜在入口点。 如果没有采取适当的预防措施和安全控制,API 可能会给组织带来严重风险。

图 1: 容器集群及其共享的application服务通过 API 进行通信

API 扩大了攻击面

随着 API 成为现代应用开发的基础,攻击面不断扩大。 不幸的是,许多组织在维护连接到其应用程序的 API 的适当清单方面已经落后。 他们还需要确保定期维护和更新 API,以避免出现新的漏洞。

通过利用 API 漏洞,攻击者可以访问网络并可能危及组织最敏感的数据,包括个人身份信息 (PII) 或知识产权(IP)。 这可能会损害公司的品牌和声誉,导致收入损失,并招致巨额罚款。

API 容易受到许多针对 Web 和移动应用的攻击,其中包括:

  • 将恶意代码插入 API 程序,通常是普通用户输入其用户名和密码的地方——称为注入。
  • 向 API 注入超出其处理能力的流量,导致与其通信的应用程序无法供目标用户使用——通常称为分布式拒绝服务 (DDoS) 攻击。
  • 使用窃取的凭证尝试获取对 API 的未授权访问- 通常称为撞库攻击。

了解潜在风险

API 已经成为构建现代应用的首选方法。 虽然从外部来源获取信息到应用的概念并不是新鲜事物,但不断发展的应用程序开发方法和创新的压力意味着组织可能还没有掌握在适当保护 API 之前公开其 API 所涉及的潜在风险。

好消息是,保护 API 安全并没有什么大秘密。 大多数组织已经采取措施来对抗众所周知的攻击,例如注入、DDoS 威胁、撞库攻击以及其他针对 API 的攻击类型。

观看以下视频,了解 F5 如何帮助组织保护支持其数字体验的 API。
 

请务必查看我们网络安全意识月四部分系列中的其他博客文章: 现代应用程序是如何构建和部署的恶意攻击者如何利用applications进行攻击、以及网络犯罪分子如何接管在线账户