什么是 API 安全?
探索 IBM API 安全解决方案 了解 IBM 首席信息官如何降低 API 成本
表示 API 安全的插图

发布日期:2023 年 11 月 20 日
撰稿人:Chrystal China、Michael Goodwin

什么是 API 安全?

API 安全是指保护应用程序编程接口(API) 免遭滥用、恶意机器人攻击和其他网络安全威胁的实践和程序。它作为 Web 安全的一个子集,但特别关注 API,这对于企业 IT 管理越来越重要。1

API 已成为数字化转型的基石,使公司能够向外部开发人员和合作伙伴提供服务。由于 API 协调应用程序之间的通信和数据交换,因此它们可以促进更多互联的用户体验,扩大整体业务范围并促进突破性的技术创新。API 还简化了服务集成,使企业能够快速适应市场变化和客户需求。

但是随着 API 的激增,相关的安全问题也随之增加。

应用程序接口位于组织的 IT 资源和第三方软件开发商之间,或 IT 资源和个人之间,在流程端点提供数据和信息。由于端点暴露于外部世界,它们会使 API 成为各种类型攻击的有利可图的目标。

API 安全的演变

API Management 和 API 安全的发展与 API 本身的发展有着内在的联系。早期的 API 主要侧重于单个系统内的进程间通信。因此,安全(或不够安全)就不那么重要了,因为通信仅限于单台机器。

然而,随着物联网 (IoT) 和云原生微服务架构的出现,应用程序接口 (API) 得到了扩展,从而实现了应用程序之间以及跨 DevOps 环境的无缝通信和调用路由。高质量的现代 API,如表示状态传输 (REST)、简单对象访问协议 (SOAP),将协调应用程序集成、指定数据格式并规定调用类型、程序和约定。

Web API(尤其是 GraphQL、REST API 和 SOAP API)通过扩展功能,在无数复杂网络中实现了广泛的集成能力,从而改变了格局。

但是,由于先进技术的功能在很大程度上依赖于应用程序接口端点,因此企业和安全团队必须实施强有力的安全措施来保护数据和网络服务,并最终最大限度地利用 IT 资源。

API 漏洞

如果没有得到适当的保护,API 端点可能会允许恶意行为者未经授权访问敏感数据、中断服务操作或两者兼而有之,从而造成潜在的灾难性后果。常见的威胁包括:

  • 基于身份验证的攻击 — 黑客试图猜测或窃取用户密码,或利用薄弱的身份验证机制来访问 API 服务器。

  • 中间人攻击 — 不良行为者通过拦截 API 请求或响应,窃取或修改数据(如登录凭证或支付信息)。

  • 代码注入/注入攻击 — 黑客利用读取和翻译数据的应用程序接口解释器的弱点,通过应用程序接口请求传输有害脚本(插入虚假信息、删除或泄露数据或破坏应用程序功能)。

  • 安全配置错误 — 由于默认配置不足、过于宽松的跨源资源共享 (CORS) 或不正确的 HTTP 标头,敏感的用户信息或系统详细信息被暴露。

  • 拒绝服务 (DoS) 攻击 — 这些攻击会发送大量 API 请求来导致服务器崩溃或减慢速度。在所谓的分布式拒绝服务 (DDoS) 攻击中,DoS 攻击往往来自多个攻击者同时攻击。

  • 破坏对象级授权 (BOLA) 攻击 — 当网络罪犯操纵 API 端点处的对象标识符以扩大攻击面并获得对用户数据的未经授权的访问时,就会发生攻击。BOLA 攻击尤其常见,因为实施适当的对象级授权检查可能既困难又耗时。

 

API 安全最佳实践

在充满活力的数字经济中,API 对业务敏捷性至关重要,但其开放性可能会带来巨大的数据安全风险。API 安全漏洞已导致大量数据泄露,即使对于 John Deere、Experian 和 Peloton 等信誉良好的大型公司也是如此。2

在这样一个全球化的技术环境中,安全漏洞威胁着所有主要服务提供商,无论其属于哪个行业,也不论其处于哪个地理位置。例如,2022 年针对澳大利亚电信公司 Optus 的 API 攻击,导致近 1000 万客户的姓名、电话号码、护照详细信息和驾驶执照信息泄露。3

这些事件凸显了 API 保护的重要性,并加速了全面的 API 安全策略和工具的开发。

实施严格的 API 安全协议可以保护 API 端点公开的数据、应用程序和服务,同时确保合法用户的可用性。不过,API 安全不仅仅是保护端点。它还优先考虑整个 API 生命周期中网络交互的安全性,例如数据传输、用户请求和应用程序间通信。

用于支撑 IT 基础设施的一些最常见的 API 安全解决方案包括:

身份验证和授权协议

身份验证是验证用户、系统或程序身份的过程。在 API 上下文中,它指的是使用用户身份验证协议(例如 OAuth 2.0、API 密钥和 JWT 规范)来确保请求者是他们所声称的身份。

另一方面,授权是验证经过身份验证的用户有权访问哪些内容的过程。用户一经通过身份验证,基于角色的访问控制应严格限制用户访问他们需要或请求的资源。

加密

通过加密,纯文本和其他类型的数据从可读形式转换为编码版本,只有拥有解密密钥的实体才能解码。利用传输层安全 (TLS)、SSL 连接和 TLS 加密协议等加密技术,团队可以确保 API 流量不会被坏人或未经授权的用户拦截或篡改。

输入验证

输入验证协议通过确保输入在处理前符合特定条件(长度、类型、格式、范围等),从而保护 API 免受恶意数据(如 SQL 注入攻击和跨站脚本)的攻击。利用网络应用防火墙 (WAF) 和 XML 或 JSON 模式验证可帮助安全团队自动执行验证流程,抢先分析传入请求,并在恶意流量到达服务器之前将其拦截。

速率限制

速率限制通过限制用户或 IP 地址在特定时间范围内可以进行的调用次数来保护 API 资源免受暴力破解和 DoS 攻击。速率限制可确保所有 API 请求得到及时处理,并且任何用户都无法向系统发送有害请求。

配额和限流

与速率限制一样,限流也会限制系统接收的 API 调用数量。但是,限流不是在用户/客户端级别进行操作,而是在服务器/网络级别进行。通过将 API 限制为每秒一定数量的调用、消息或同时限制两者,限流和配额可确保 API 后端系统带宽的安全。

安全标头

安全标头对于防止点击劫持攻击特别有效。例如,“content-security-policy”标头告诉浏览器可以从服务器请求哪些资源。“x-content-type-option”标头阻止浏览器尝试 MIME 嗅探内容类型,“strict-transport-security”标头强制与服务器建立安全(基于 SSL/TLS 的 HTTP)连接。

API Gateway

安装 API Gateway 是限制 API 访问和添加额外网络安全层的最简单方法之一,特别是在开放 API 的情况下。API Gateway 充当系统接收的所有 API 请求的单一入口点,标准化 API 交互并提供缓存、分析、API 组合、速率限制、加密、日志记录和访问控制等安全功能。

审核和记录

保留全面、最新的审核日志并经常查看它们,使组织能够跟踪数据访问和使用情况,并记录每个 API 请求。鉴于 API 生态系统的复杂性,对 API 活动进行监控可能会耗费大量人力物力,但在发生数据泄露或合规性失效后,团队需要追溯其步骤时,审核和记录程序可以节省时间。

错误处理

API 环境中的主动错误处理可以防止网络犯罪分子泄露有关 API 流程的敏感信息。理想情况下,任何 API 错误都会返回 HTTP 状态代码,广泛指示错误的性质,为团队提供足够的上下文来理解和解决问题,而不会冒过多数据暴露的风险。

API 监控和补丁

与任何软件应用程序或系统一样,警惕的实时监控和维护对于维护 API 安全至关重要。密切关注任何异常的网络活动,并使用最新的安全补丁、错误修复和新功能更新 API。

组织还应该及时采用安全标准,例如开放 Web 应用程序安全项目 (OWASP) 的 API 安全建议。例如,OWASP API 安全 10 强榜单提供了一个框架,用于了解和缓解最关键、最常见的 API 安全威胁,如身份验证失效、批量分配和服务器端请求伪造。

版本和文件

API 软件的每个新版本都附带安全更新和错误修复,以弥补早期版本中的安全漏洞。但如果没有适当的版本控制实践,用户可能会意外(或故意)部署过时的 API 版本,并使敏感数据受到损害。细致的版本管理和文档实践使公司能够加快 API 开发,并在不中断服务的情况下逐步淘汰旧版本的 API,从而将用户推向更新、更安全的迭代版本。

例如,如果团队在 API 版本 1 中发现安全缺陷,他们可以在版本 2 中修复它。通过版本控制,安全团队可以鼓励用户按照自己的节奏从版本 1 迁移到版本 2,同时在版本文档中明确指出版本 1 存在已知的安全漏洞。

安全测试

安全测试要求开发人员使用 API 客户端提交标准请求,以评估系统响应的质量和正确性。定期进行安全测试来识别和解决安全漏洞,可以帮助团队在攻击者有机会利用 API 漏洞之前修复它们。

相关解决方案
IBM API Connect®

IBM API Connect 是全生命周期的 API Management 解决方案,通过图形化的直观体验来帮助您一致地创建、管理、保护、推广和货币化 API,从而推动本地和云端的数字化转型。

探索 API Connect

IBM API Connect - API 安全用例

IBM API Connect 提供一系列功能保护、控制和调解 API 访问的功能。使用 OAuth、OpenID Connect 和第三方服务,对 API 的访问进行认证和授权控制。可以将API部署在从 DMZ 到与云原生应用、微服务相同的位置,确保在任何时间、任何地点访问API。

探索 API 安全用例

Noname Advanced API Security for IBM

借助基于 AI 的高级功能,提高整个企业的 API 安全性。API Management 和 Application Gateway 领域的领导者 IBM 正在与 API 安全领域的领导者 Noname Security 合作,提供先进的 API 安全功能。这一联合解决方案将帮助您将安全信心提升到新的水平。

探索 Noname Advanced API Security for IBM
资源 IBM API Connect 一页概述

通过全面的 API Management 解决方案,最大限度地提高 API 价值,推动数字业务。

IBM API Connect 教程

这些教程提供了实践说明,可帮助开发人员学习如何在项目中使用这些技术。

IBM 集成社区中心

寻找问题答案,了解最佳做法。欢迎加入!

采取下一步行动

IBM® API Connect 是一种安全的 API Management 解决方案,采用直观的体验方式,助力企业能够始终一致地创建、管理、保护各种 API 并实现 API 策略的社交化及其经济效益,并努力确保在本地和云端都完成数字化转型。这意味着您和您的客户可以为数字应用程序提供动力,并实时推动创新。作为 IBM Cloud Pak for Integration 的组成部分,IBM API Connect 还可提供其他功能,帮助您在云转型之旅实现应用现代化以及 API Management 的自动化。

探索 IBM API Connect
脚注

 Research Brief: The Urgency of Addressing API Security in an Application Security Program(ibm.com 外部链接),Enterprise Strategy Group,2023 年 10 月 16 日。

2  On the Radar: Wib secures APIs throughout their full lifecycles(ibm.com 外部链接),Omdia,2023 年 9 月 1 日。

3 The next big API security breach looms: here’s how to prepare(ibm.com 外部链接),SC Magazine,2023 年 10 月 19 日。