REST API 安全最佳做法
什么是 REST API?
表述性状态转移 (REST) 的软件架构风格可以追溯到计算机科学家 Roy Fielding 于 2000 年发表的一篇博士论文。在此后的几十年里,REST API(有时称为 RESTful API)已经发展成为一种非常主流的 API 架构模型,广泛用于 Web 和移动应用程序,以及企业对企业应用程序和企业的内部系统。
虽然许多实施中也会用到其他 API 方法(如 SOAP、GraphQL 和 gRPC),但 REST API 的使用更为广泛,究其原因,主要是此类方法比较易于实现。REST API 设计对于现代前端框架来说非常易于使用,因而成为 Web 应用程序、移动应用程序以及许多内部和企业对企业 API 实施的主流选择。
五大 REST API 安全最佳做法
尽管 REST API 可以高度安全且富有弹性的方式实现,但有许多基本 API 安全 标准对于任何实施来说都至关重要。
在 REST API 设计中实现安全性的五个主要方法为:
始终使用 TLS 加密
实施一个功能完备且可扩展的身份验证和授权模型
不在 URL 中包含敏感信息
严格定义允许的 RESTful API 请求和响应
实施持续 API 发现功能
始终使用 TLS 加密
与其他类型的敏感 HTTP 流量一样,将 TLS 用于 RESTful API 有助于确保对 API 用户和 API 端点之间的所有通信进行加密。这对于 REST API 安全性和 Web 应用程序安全性同样重要,因为生成的 HTTP 流量包含敏感的身份验证详细信息,如密码、API 密钥或令牌。
实施一个功能完备且可扩展的身份验证和授权模型
许多不同技术也可用于管理对 REST API 的访问。最常用的技术是 API 密钥和安全令牌。但是,密钥和令牌的管理可能相当复杂。
往往无意间会导致出现 REST API 安全漏洞。此类风险可以通过与兼容 OAuth 2.0身份管理提供商相集成,以进行身份验证并签发访问令牌来加以缓解。集中式 API 网关也可用于标准化和保护 REST API 安全方法。
不在 URL 中包含敏感信息
一个常见的 REST API 设计缺陷是在 URL 中包含敏感信息,包括用户凭据、密钥或令牌。即使使用了 TLS,这些信息仍然很容易被攻击者发现。各种服务器和网络设备也经常会沿 API 请求的数据路径记录 URL,如果 URL 包含敏感信息,则会造成进一步的数据泄漏。
严格定义允许的 RESTful API 请求和响应
务必要假定攻击者试图以恶意或无意方式使用 API。因此,切不可不加怀疑地信任 RESTful API 请求。要采取的一个重要步骤是验证任何参数或对象的格式、长度和类型等属性。
此外,您还应该严格管控 REST API 可提供的响应类型。例如,响应应限制为明确允许的内容类型,如 GET、PUT 和 POST。
实施持续 API 发现功能
即使企业遵循 REST API 安全最佳做法,也可能会对正常流程之外实现的影子 API 或尚未停用的传统基础架构中被遗忘的僵尸 API 感到震惊。因此,实施企业范围内的持续 API 发现功能至关重要。
确保存在 所有 API 完整清单 的最佳方式是从 API 活动信息的所有可用来源收集数据,包括:
API 网关
内容交付网络
云提供商日志
日志管理系统
编排工具
分析这些数据以获取 API 活动的证据,这将有助于确保您的安全团队了解企业中正在使用的所有 API。任何被发现的意外 REST API 都可以通过应用恰当的 REST API 最佳做法将其停用,或加入正式清单。
四大 进阶性 REST API 安全最佳做法
在 REST API 设计中实施一套基本的安全标准是必不可少的第一步,但仅靠这些步骤并不能保证应用程序的绝对安全。许多攻击者已经开发出用于规避基准 RESTful API 安全措施的进阶技术。毕竟,并不是每个 REST API 安全攻击的目的都是要破坏 Web 应用程序基础架构。
在许多情况下,攻击的目标只是以意想不到的方式使用 API 功能,以访问敏感数据并获得竞争优势。这些活动可能来自可信来源,例如已获得 REST API 访问授权的客户或合作伙伴。凭据、密钥和令牌也可能遭到窃取或劫持,从而使攻击者能够在基准 REST API 安全标准之外继续推进类似活动。
要针对这些形式更为复杂的 API 滥用提供额外保护,您可以使用以下四种进阶性 REST API 安全最佳做法:
利用云收集大型 REST API 安全数据集
将行为分析应用于 REST API 数据
向开发和运营团队提供有关 REST API 使用情况的见解
开展主动的 REST API 威胁搜寻活动
利用云收集大型 REST API 安全数据集
许多第一代 API 安全技术都在本地运行。因此,此类技术仅限于分析较短的活动时窗,之后便会丢弃 API 数据。这种做法是无效的,因为许多类型的 API 滥用采用慢速且低调的方式,攻击周期长达数周,甚至数月。将 API 活动数据发送至云端,可以按需扩大规模,存储长达一个月或更长时间的 API 详细信息。这样就有机会实施更加复杂的分析技术。
将行为分析应用于 REST API 数据
一旦掌握了大量 REST API 活动信息,您还可以利用云端的计算规模来执行行为分析。增强 REST API 安全策略的第一种方法是确定所涉及的实体,这样就可以更全面地了解背景信息。实体可能包括用户以及有意义的业务流程。
掌握这一背景后,您就可以为 API 的正常使用模式设置基线。由此,您可以执行进一步分析以检测异常。这种类型的异常检测是发现滥用的最佳方法,尤其是来自经过身份验证的用户的滥用。
向开发和运营团队提供有关 REST API 使用情况的见解
保护您的企业免受 REST API 安全漏洞影响的一个最佳方法是彻底规避这些漏洞。与开发人员和运营人员分享有关 RESTful API 使用及滥用情况的信息,这将有助于您的企业在开发和实施过程的早期进行“左移”,采取更好的 REST API 安全做法。
开展主动的 REST API 威胁搜寻活动
切勿等到 REST API 滥用升级为高严重性安全事件后才采取行动。主动调查 REST API 的使用情况,并查找滥用尝试(即使不成功),这将帮助您发现 REST API 安全做法中的薄弱环节。
检查 API 使用活动也是发现 REST API 安全漏洞的有效方法,例如 开放式 Web 应用程序安全项目 (OWASP) 十大 API 安全漏洞中列出的漏洞。在攻击者能够利用这些 漏洞 之前发现并消除它们,这是增强 REST API 安全态势的有效方法之一。
准备好开始了吗?
Akamai 帮助全球一些备受认可的企业实施基础和进阶 REST API 安全最佳做法。从 API 发现到行为分析,再到托管式威胁搜寻,我们的方法将帮助您加速完成 REST API 安全工作。
了解更多
有兴趣了解更多信息?探索 Akamai 的 API Security 解决方案。