利用 API 安全最佳实践优化 API

同事们在办公室的技术室查看剪贴板

企业业务正在持续向数字化和基于云的 IT 基础设施迈进。与更传统的本地部署系统相比,数字系统具有前所未有的灵活性、可扩展性和速度。

然而,数字基础设施高度依赖于应用程序编程接口(或 API),来促进软件应用程序之间以及应用程序与最终用户之间的数据传输。作为大多数 Web 和移动应用程序的后端框架,API 面向互联网,因此易受攻击。由于许多 API 存储和传输敏感数据,因此需要强大的安全协议和周密的监测措施,以防信息落入不法分子之手。

什么是 API 安全

API 安全是指组织用于防止对 API 进行恶意攻击和滥用的一系列实践和产品。鉴于 API 生态系统的复杂性、IoT 平台的增长以及组织使用的庞大 API 数量(平均约 20,000 个(ibm.com 外部链接)),掌控 API 安全变得越来越具有挑战性,但同时也变得越来越必要。

API 位于组织的 IT 资源和第三方软件开发商之间,也位于 IT 资源和个人之间,在流程端点提供数据和信息。正是在这些端点,公司和用户数据容易受到各种类型的攻击和安全风险,包括:

  • 基于身份验证的攻击:黑客试图猜测或窃取用户密码或利用薄弱的身份验证流程来获取对应用程序接口服务器的访问权限。
  • 中间人攻击:恶意行为者通过在 API 之间拦截请求和/或响应,来窃取或修改数据(如登录凭证或支付信息)。
  • 代码注入/注入攻击:黑客通过 API 请求,利用读取和翻译数据的 API 解释器中的弱点,传输有害脚本(插入虚假信息、删除或泄露数据或破坏应用程序功能)。
  • 拒绝服务 (DoS) 攻击:这些攻击会发送大量 API 请求来导致服务器崩溃或减慢速度。DoS 攻击往往是由多位攻击者同时发起的,这就是所谓的分布式拒绝服务 (DDoS) 攻击。
  • 破坏对象级授权 (BOLA) 攻击:当网络罪犯操纵 API 端点处的对象标识符来获得对用户数据的未经授权的访问时,就会发生此类攻击。当 API 端点允许用户访问他们通常不应访问的记录时,就会出现此问题。BOLA 攻击尤其常见,因为实施适当的对象级授权检查可能既困难又耗时。

在当今动态的 IT 环境中,这些攻击和其他类型的网络攻击几乎是不可避免的。随着网络犯罪分子激增并获得更复杂的黑客技术,实施 API 安全协议对企业数据安全只会变得更加重要。

API 安全最佳实践

应用程序接口使企业能够简化跨系统集成和数据共享,但随之而来的网络攻击也增加了。事实上,大多数移动和网络应用程序黑客攻击应用程序接口,以获取公司或用户数据。遭到黑客攻击或破坏的应用程序接口可能会导致灾难性的数据泄露和服务中断,从而使敏感的个人、财务和医疗数据面临风险。

幸运的是,API 安全领域的进步使得防止或减轻恶意行为者网络攻击的影响成为可能。以下是组织可用来保护计算资源和用户数据的 11 种常见的 API 安全实践和计划:

  1. API 网关。安装 API 网关是限制 API 访问的最简单的方法之一。网关为所有 API 请求创建单一入口点,并通过应用安全策略、帮助标准化 API 交互并提供诸如请求/响应转换、缓存和日志记录等功能来充当安全层。
  2. 强大的身份验证和授权。使用行业标准的身份验证协议(例如 OAuth 2.0、API 密钥、JWT、OpenID Connect 等),可确保只有经过身份验证的用户才能访问企业 API。此外,实施基于角色的访问控制还能防止用户访问他们无权使用的资源。
  3. 加密协议。SSL 连接或 TLS 加密协议(如安全 HTTP (HTTPS))可帮助团队保护 API 和客户端应用程序之间的通信。HTTPS 对所有网络数据传输进行加密,防止未经授权访问和篡改。对存储密码等静态数据进行加密,可以进一步保护存储中的敏感数据。
  4. Web 应用程序防火墙 (WAF)。WAF 为企业 API 提供了额外的保护层,特别是抵御诸如注入攻击、跨站点脚本 (XSS) 和跨站点请求伪造 (CSRF) 等常见的 Web 应用程序攻击。WAF 安全软件可以分析传入的 API 请求,并在恶意流量到达服务器之前将其拦截。
  5. 数据验证。就像人们筛选电话和避免打开来自未知发件人的附件一样,组织也应筛选其服务器接受的所有内容,并拒绝任何大型数据或内容传输(包括来自消费者的传输内容)。使用 XML 或 JSON 模式验证并确认参数也有助于防止攻击。
  6. 速率限制。这种方法通过限制用户或 IP 地址在一定时间内发出请求的次数,保护资源免受暴力攻击和 DoS 攻击。速率限制可确保请求得到快速处理,并且任何用户都无法使系统因有害请求而变得不堪重负。
  7. 安全测试。安全测试要求开发人员使用 API 客户端提交标准请求,以评估系统响应的质量和正确性。定期进行 API 安全测试(例如,渗透测试、注入测试、用户身份验证测试、参数篡改测试等)以识别和解决漏洞,可帮助团队在攻击者利用漏洞之前修复它们。
  8. API 监测和补丁。与任何软件应用程序或系统一样,定期监测和维护对于维护 API 安全是必不可少的。密切关注任何异常的网络活动,并使用最新的安全补丁、错误修复和新功能更新 API。监测还应包括对常见 API 漏洞的认识和准备,例如开放式 Web 应用程序安全项目 (OWASP) 前十名列表中包含的漏洞。
  9. 审计和日志记录。保留全面、最新的审计日志并经常查看它们,将使组织能够跟踪所有用户数据访问和使用情况,并记录每个 API 请求。保持对 API 活动的掌控可能具有挑战性,但在发生数据泄露或合规性失效后,团队需要追溯其步骤时,所实施的审计和日志记录程序可以节省时间。而且,由于审计日志提供了正常网络行为的记录,因此也可以更容易发现异常。
  10. 配额和限流。与速率限制类似,限流也会限制系统收到的请求数量。但是,限流不是在用户或客户端级别进行操作,而是在服务器/网络级别发挥作用。通过将 API 限制为每秒一定数量的调用或消息,限流和配额可保护 API 的后端系统带宽。无论配额是多少,评估一段时间内的系统调用量都很重要,因为调用量的增加可能表明滥用和/或编程错误。
  11. 版本控制和文档。API 软件的每个新版本都附带安全更新和错误修复,以弥补早期版本中的安全漏洞。如果缺少适当的文档实践,用户便可能会不慎部署已过时或易受攻击的 API 版本。文档记录应全面且一致,其中包括明确说明的输入参数、预期响应和安全要求。

AI 和 API 安全

在现有的 API 安全措施中,AI 已成为一种新的、可能非常强大的用于加强 API 的工具。例如,公司可以利用 AI 在 API 生态系统中进行异常检测。一旦团队建立了正常 API 行为的基准,就可以使用 AI 来识别系统偏差(例如异常访问模式或高频请求)、标记潜在威胁并立即对攻击做出响应。

AI 技术还可以实现自动威胁建模。利用历史 API 数据,AI 可以构建威胁模型来预测漏洞和威胁,避免恶意行为者利用它们。如果组织正在处理大量基于身份验证的攻击,则可以使用 AI 来安装先进的用户身份验证方法(例如生物识别),从而使攻击者更难获得未经授权的访问权限。

此外,人工智能驱动的工具可以自动执行 API 安全测试协议,并且可以比手动测试更高效、更有效地识别安全漏洞和风险。随着 API 生态系统的发展,基于 AI 的安全协议也在不断发展。AI 使企业能够同时监测和保护许多 API,从而使 API 安全像 API 本身一样具有可扩展性。

与 IBM 一起掌握 API 安全性

API 安全的重要性怎么强调都不为过。随着我们进一步进入数字化转型时代,对 API 的依赖只会继续增长,安全威胁和恶意行为者也会随之演变。但是,借助 IBM® API Connect 等 API 管理工具,组织可以确保其 API 在整个生命周期内都得到管理、保护且合规。

确保 API 安全绝不会是一项一次性任务;相反,企业应该将其视为一个连续和动态的过程,需要对新技术和解决方案保持警惕、灵活和开放的态度。通过将传统的 API 安全实践与基于 AI 的较新方法(例如 Noname Advanced API Security for IBM)相结合,公司可以确保 IT 资源尽可能保持安全,同时保护消费者和企业。

 

作者

Chrystal R. China

Staff Writer, Automation & ITOps

IBM Think