什么是 REST API 安全性?

如今,REST API 得到了广泛使用,但其普及性使它们成为了网络攻击的主要目标。保护 REST API 对于保护敏感信息和确保 Web 应用程序的可靠性至关重要。本指南探讨了包括加密、访问控制、速率限制和 API 监控在内的各种安全措施,以帮助保护 REST API 并减少漏洞。

出于各种原因,保护 REST API 对于企业的网络安全从业人员来说是一项至关重要的任务。由于 API 会将应用程序和敏感数据暴露给外部访问,因此它们是旨在引发数据泄露的恶意攻击者青睐的目标。理所当然地,企业必须在 API 安全工具方面进行投资,以保护其 REST API。API 安全由一系列对策组成,包括加密、速率限制、访问令牌等。我们将探讨这些安全控制措施,以及它们如何增强您的 REST API 安全性。

什么是 REST API?

REST 架构风格是在 Roy Fielding 博士于 2000 年发表的论文中定义的。这篇论文旨在为 Web 上的机器间通信定义一种统一且一致的架构方法。REST API 是一种使用 REST(表现层状态转换)架构风格来发送和接收数据及过程调用的 API。REST API 还需要传输协议和编程语言才能正常工作。REST API 通过超文本传输协议 (HTTP) 进行通信,并且所传输消息的首选数据格式是 JavaScript 对象表示法 (JSON)。因此,术语“API”几乎总是指使用基于 HTTP 的 JSON 的 REST API。

出于多种原因,REST API 成为了 API 的主流模式。首先,它是免费的并且基于标准,因此在采用时几乎没有任何障碍。RESTful 编程也是“无状态”,这使其易于管理。RESTful 接口是统一的。查询参数已标准化。因此,创建 API 的实体很容易地发布供开发人员在调用 API 时使用的说明,例如:以下是从 API 中获取数据的方法,这些数据将以 JSON 格式返回。API 也可以返回其他类型的响应,包括可扩展标记语言 (XML)、文档和图像。

用于保护 REST API 的最佳实践

如果没有适当的防护措施,REST API 就会成为一个广泛且脆弱的攻击面。虽然企业过去可以依赖于“通过隐匿来实现安全”(即,黑客必须费尽心思才能通过 API 在网络内找到数据),但如今企业这样做无异于是在公开发布关于如何找到并窃取数据的说明。

REST API 安全实践已经成熟。最有效的对策包括:

API 发现

企业存在未被发现的 API 这种情况很常见。大多数企业几乎不具备对大部分 API 流量进行监测的能力,往往是因为他们认为其所有 API 都会通过 API 网关路由。但事实并非如此。如果没有完整、准确的清单,您的企业将会面临各种风险。所需的核心功能:

  • 无论配置或类型如何,找到您的所有 API 并将其加入清单中
  • 检测休眠、遗留和僵尸 API
  • 识别被遗忘、被忽视或未知的影子域名
  • 消除监控盲点,发现潜在攻击路径

API 态势管理

在有完整 API 清单的情况下,了解哪些类型的数据会流经您的 API 以及这会如何影响您遵从监管要求的能力至关重要。API 态势管理让您可以全面了解流量、代码和配置以评估贵企业的 API 安全态势。所需的核心功能:

  • 自动扫描基础架构,从而发现配置错误和隐藏的风险
  • 创建自定义工作流,从而通知主要利益相关者有关漏洞的情况
  • 确定哪些 API 和内部用户能够访问敏感数据
  • 为检测到的问题分配严重程度评级,从而确定补救工作的优先级

API 运行时安全

毫无疑问,您熟悉“假设存在入侵”的概念。专门针对 API 的入侵和攻击同样不可避免。对于生产环境中存在的所有 API 来说,您需要能够实时检测和阻止攻击。所需的核心功能:

  • 监控数据篡改和泄露、策略违反情况、可疑行为以及 API 攻击
  • 无需进行额外的网络调整或安装难以部署的代理,即可轻松分析 API 流量
  • 与现有工作流(工单、SIEM 等)进行集成,以便向安全/运营团队发出告警
  • 通过部分或全自动化补救,实时防止各类攻击和滥用行为

API 安全测试

API 开发团队压力重重,需要尽可能快地完成工作。速度对于所开发的每个应用程序都至关重要,这更容易导致漏洞或设计缺陷发生且随后无法被检测到。将 API 发布到生产环境中之前在开发阶段对其进行测试,可以显著降低风险并减少修复易受攻击 API 的成本。所需的核心功能:

  • 运行模拟恶意流量的各种自动化测试
  • 在 API 进入生产环境之前发现漏洞,从而降低攻击得逞的风险
  • 依据已确立的管理策略和规则,对 API 规范进行检查
  • 根据实际需求或在 CI/CD 管道中运行以 API 为重点的安全测试

这种全面的方法可作为企业现有 API 防护能力的补充,其中可能包括:

安全通道

  • 用于 API 调用和响应的通信通道必须是安全的。最佳实践是使用传输层安全协议 (TLS),该协议过去被称为安全套接字层协议 (SSL)。TLS 证书使用端到端加密保护传输过程中的 API 数据和访问凭据。TLS 会对通过 API 发送的所有消息进行加密,以此保护您通过 API 发送的信息。
  • 如果您的 URL 以 https 而不是 http 开头,这意味着您的网站支持 TLS。如果没有 TLS,攻击者便可以拦截传输服务器中的信息,并在未经许可的情况下访问这些信息。这使得所有身份验证方法都形同虚设。TLS 需要由证书颁发机构颁发的证书,这些证书旨在告知用户您的 API 是合法且受保护的。

API 密钥

API 密钥是用作 API 访问凭据的唯一字符串。它们用于对调用 API 的客户端进行身份验证。

令牌

  • API 令牌是用于对 API 用户进行身份验证的唯一数字标识符。令牌可以避免两步验证和单点登录 (SSO) 等繁琐的身份验证过程。API 管理员可以对 API 用户授予和撤销 API 令牌,从而控制 API 访问。
  • 令牌通常由托管 API 的服务器颁发,供客户端应用程序使用。令牌机制与基于 cookie 的会话管理的区别在于,前者通常是无状态的。服务器不需要存储会话详情,这使得使用 API 的基础架构能够更轻松地进行横向扩展。

OAuth 2

这是一种安全、基于标准且基于令牌的身份验证机制。它适用于 API 用户身份验证和授权。

JSON Web 令牌 (JWT)

API 身份验证是遏制恶意攻击者和威胁的关键屏障。JWT 是一种经过数字签名的身份验证令牌,它包含了以 JSON 格式存储的 API 用户数据。JWT 的优势在于,它可以容纳比 API 密钥更多的数据。

速率限制

  • API 是分布式拒绝服务 (DDoS) 攻击的目标。攻击者可以向某个 API 发送大量请求,并导致该 API 关闭。为了防止发生这种情况,API 安全工具可以实施速率限制。例如,如果客户端在给定时间段内过于频繁地尝试调用 API,则系统会阻止其进行访问。

与 IAM 集成

  • 通过将 API 管理与身份和访问管理 (IAM) 系统相集成,企业可以为 API 客户端建立用户身份。这样,管理员就可以控制允许谁使用 API,从而防止未经授权的访问。

对基于参数的查询输入进行验证

  • 黑客可能会尝试通过修改 JSON 请求数据和 URL 参数来欺骗 API。通过验证这些基于参数的输入,便可以在此类攻击开始之前加以阻止。

将允许的 HTTP 方法加入列表中

此对策为 API 建立了允许的 HTTP 方法的列表,例如 POST、GET、PUT。默认情况下,此控制措施会阻止不应允许公共 API 用户使用的方法,例如 DELETE。

API 监控

  • 跟踪 API 的使用情况和性能至关重要,理想情况下应实时进行跟踪。通过监控 API,管理员可以标记可能表明正在遭受攻击的异常行为。这可能包括记录失败的请求并查找可疑模式。

端点保护和安全性

鉴于 API 端点在 REST API 架构中发挥着至关重要的作用,因此端点保护至关重要。实施端点安全解决方案可确保保护每个端点免受未经授权的访问和恶意活动的影响。这包括使用 API 网关来管理和保护 API 流量、实施策略以及提供集中式访问控制点。

保护 Web 应用程序

保护 REST API 是保护 Web 应用程序不可或缺的一部分。REST API 通常充当 Web 应用程序的骨干,用以实现客户端与后端服务器之间的通信。实施应用程序控制和访问控制等安全措施有助于保护 API 及其支持的 Web 应用程序。

常见问题

API 网关通过充当 API 请求的单一入口点,在 REST API 安全方面发挥着至关重要的作用。它们可以实施安全策略、管理流量,并确保只有授权用户才能访问 API 端点。API 网关还提供速率限制、身份验证和数据加密等功能,从而帮助降低安全风险。

验证查询输入对于防范 SQL 注入和其他注入攻击等安全漏洞至关重要。通过确保所有输入都经过了正确验证,企业可以保护其 API 免受利用未经验证数据的恶意活动的影响。

OAuth 2 提供了一种安全且标准化的方法,用于对用户进行身份验证和授权对 API 资源的访问。它支持基于令牌的身份验证,这简化了用户的流程,同时可确保只有经过授权的个人才能访问敏感信息。OAuth 2 还支持与第三方身份验证提供商进行集成,以增强整体安全性。

API 监控使企业能够实时跟踪 API 的使用情况并检测异常行为。通过分析 API 请求、响应和流量模式,管理员可以识别潜在的安全威胁,例如未经授权的访问尝试或 API 滥用。这种主动方法有助于在风险升级为全面攻击之前实施抵御措施。

客户为什么选择 Akamai

Akamai 是一家致力于支持并保护在线商业活动的网络安全和云计算公司。我们卓越的安全解决方案、出色的威胁情报和全球运营团队可提供深度防御,保护各地的企业数据和应用程序。Akamai 的全栈云计算解决方案可在海外分布广泛的平台上提供高性能和经济实惠的服务。全球多家企业坚信,Akamai 能够提供卓越的可靠性、扩展性和专业技术,助其从容拓展业务。

探索 Akamai 的所有安全解决方案