API安全检查清单:实践建议、测试与NIST指南

F5生态系统 | 2025年7月07日

API(即应用程序编程接口)是一组协议、例程和工具,可让不同的应用、软件系统或组件相互通信。API在现代数字基础设施中发挥着日益重要的作用,因为它们如同连接纽带,将分布式平台中的应用、服务、系统和数据连接起来。

API是当今数字环境的基础,因此越来越多的组织开始采用API优先方法,即从API入手设计应用。这与传统的“代码优先”方法形成对比,后者优先考虑单体代码,API设计则要到后期才会进行,甚至完全不予考虑。

毫无疑问,API的数量正在快速增长。目前,每个组织平均管理着400多个API,这些API分布在其数字基础设施中;同时,68%的组织使用API管理应用交付和安全。大多数组织也意识到,API蔓延会带来风险:58%的组织认为API蔓延是一个重大痛点。这是因为API无处不在,扩大了组织的攻击面;同时,API在多云架构中相互依赖,也会带来难以预见的威胁。

“API在现代数字基础设施中发挥着日益重要的作用,因为它们如同连接纽带,将分布式平台中的应用、服务、设备和数据互联起来。”

API容易遭受漏洞利用、自动化威胁滥用、拒绝服务、配置错误,以及绕过身份验证和授权控制的攻击。强有力的API安全措施至关重要,因为API会暴露关键业务逻辑和敏感信息。这些措施必须保护用户数据、身份验证凭据和金融交易,防止未经授权的访问、篡改或泄露,同时确保API的完整性和可用性。

本篇博文简要概述了API面临的主要安全威胁,并提供了一份清单,介绍在多云环境中保护API的关键安全策略和最佳实践,包括访问控制、输入验证和输出管理、API测试及监控。本文还推荐了值得遵循的主要API安全标准,并建议使用适当的API安全工具来保护重要的API。

1. 访问控制、身份验证和授权

访问控制是一个结构化流程,用于确定哪些用户有权访问特定资源,并强制执行相应权限。此流程包括身份验证和授权。身份验证用于核实用户身份,而授权则确定通过身份验证的用户可获得的访问权限级别。

以下是访问控制检查清单的关键建议,有助于提升API安全性:

  • 不要使用基本身份验证进行访问控制。基本身份验证通常使用简单的用户名和密码凭据,攻击者很容易通过针对性攻击获取这些凭据。应改用更强的访问控制方法,例如OAuth或JSON Web Token(JWT)。
  • 遵循API令牌最佳实践。API令牌通常用于授予对API端点和服务的访问权限,处理不当可能导致敏感系统遭到未经授权的访问或滥用。请限制令牌的作用域和权限,始终为访问令牌设置到期日期,并安全地存储和传输令牌。
  • 检查失效的身份验证和授权。识别并修复与用户身份验证方式及其访问权限相关的常见安全弱点。这些威胁包括失效的身份验证。当攻击者通过破解密码、密钥、会话令牌或用户账户信息来冒充合法用户时,就会出现此问题。当应用未能在对象或数据层面正确实施访问控制时,就会出现对象属性级授权失效(BOLA),攻击者因而可以操纵或绕过授权检查,未经授权访问应用中的特定对象或数据。当API未能在功能或操作层面正确实施授权检查时,就会出现功能级授权失效,攻击者因而可以访问未经授权的功能或操纵合法功能。
  • 保护身份信息存储系统。保护用于存储敏感身份相关数据的系统,例如API密钥、身份验证日志和用户凭据。具体措施包括加密静态数据、限制访问以及实施严格的访问控制。保护身份信息存储系统有助于降低攻击者未经授权访问关键身份验证和授权信息的风险。
  • 使用API网关。在一个集中位置管理所有API的访问控制,从而更轻松地实施一致的策略,例如身份验证、速率限制和授权规则。通过网关应用这些控制措施,组织可以降低配置错误的风险,并确保所有API获得统一保护。
  • 对所有敏感数据进行加密。加密可保护通过API传输的数据,防止其在传输和静态存储期间遭到未经授权的访问。即使攻击者截获网络流量或获得存储系统的访问权限,没有正确的解密密钥也无法读取加密数据。这有助于确保数据的机密性和完整性,并有助于满足监管合规要求。
  • 实施速率限制。控制客户端在给定时间范围内发出API请求的频率,有助于防范分布式拒绝服务攻击(DDoS),避免攻击者使用大量流量使API不堪重负;还有助于防范凭据填充攻击,减缓或阻止重复的登录尝试。

2. 输入和输出

API输入验证可阻止黑客提交恶意API请求,而输出管理可确保API不会泄露敏感数据,从而防止数据丢失。

以下是输入和输出检查清单的关键建议,有助于提升API安全性:

  • 验证用户输入中的Content-Type标头和数据格式。Content-Type标头用于告知API所发送的数据类型。对其进行验证,可确保API仅处理预期且受支持的格式。检查数据格式可确保有效负载的结构符合API的预期或设计要求。这些验证可通过拒绝意外或格式错误的输入来防止注入攻击。
  • 对每种类型的API请求强制使用正确的HTTP方法。严格强制执行HTTP方法可确保API行为符合预期,并防止滥用或权限提升。例如,GET应仅用于检索数据,而不能更改数据;POST用于创建请求;PUT/PATCH应分别用于替换和更新请求;DELETE用于删除请求。如果不严格强制执行这些HTTP方法,恶意用户可能会利用未经授权的方法攻击API,例如向GET端点发送POST或PUT请求,从而修改其本应只能查看的数据。
  • 测试恶意输入和配置错误的输入。 测试注入漏洞和配置错误时,需要主动检查API,确保其能够正确处理和清理用户输入,以防止攻击。SQL注入是指攻击者提交特制输入来操纵数据库查询,可能导致数据泄露、篡改或删除;而输入设置配置错误可能使攻击者绕过控制措施或访问敏感数据。
  • 确保API绝不返回敏感数据。配置API,避免在响应中暴露机密信息或对安全至关重要的信息。凭据和密码绝不应出现在API响应中,即使是错误消息也不例外,因为这些信息可能会被截获或滥用。应保护访问令牌、刷新令牌或会话ID,并且仅在受控的安全环境中返回。指纹识别标头可能会泄露服务器或应用技术栈的相关信息,攻击者可能利用这些信息构造针对性漏洞利用手段。
  • 确保API在请求完成后返回正确的状态码。 API应使用标准状态码准确传达请求结果,以确保信息清晰、行为一致且安全。这些状态码包括200 OK、400 Bad Request、401 Unauthorized和405 Method Not Allowed等。
  • 确保API返回通用错误消息。详细的错误消息可能会泄露API的内部工作机制,例如数据库结构、服务器配置或身份验证逻辑。攻击者可能会利用这些信息构造针对性漏洞利用手段,例如SQL注入、权限提升或凭据暴力破解。

3. API安全测试

API安全测试应持续开展,而不能只在初始部署时进行,因为API会动态变化,经常更新或增加新功能。此外,威胁形势也在不断演变,攻击者会持续开发新技术。

以下是API安全测试检查清单的主要建议:

  • 执行功能测试。确保API的核心功能按预期运行,并在引入新功能或应用补丁后保持稳定。
  • 执行性能测试。对API进行负载测试,以了解其性能上限,并确定API在事件发生后需要多长时间才能恢复。
  • 执行漏洞扫描和渗透测试。使用自动化API扫描器测试源代码并查找运行时错误,同时定期开展渗透测试,以识别API面对更复杂的新型或新颖攻击时存在的漏洞。

4. 监控

API监控至关重要,因为它有助于实时检测威胁,并建立“正常”活动基线,而该基线是识别异常的必要条件。持续监控可帮助安全团队快速发现异常模式,例如流量激增、反复登录失败或端点使用异常,这些通常是攻击的迹象。

API监控检查清单应包括以下内容:

  • 使用API发现工具持续监控并记录新的API。 无法保护未知的API。开发人员可能会在未经正式批准的情况下部署或测试API,从而产生未跟踪或未记录的端点(“影子API”)。这些端点可能被安全团队忽视,成为攻击者容易下手的目标。持续发现可确保对每个公开的API进行清点、评估、保护和适当治理。
  • 集中维护所有API的目录。 通过统一、有序地呈现整个API生态系统,可提高可见性、简化管理并加快事件响应,从而简化API监控。
  • 记录并分析API流量。识别异常的请求量激增,这可能表明发生了DDoS攻击;同时监控来自异常地理区域的请求,即通常并非合法用户所在区域的请求,这可能是未经授权的访问尝试。失败请求激增可能表明存在凭据填充活动,或客户端配置错误,导致其使用无效输入反复调用API。

5. API安全标准:OWASP和NIST

开放全球应用安全项目(OWASP)和美国国家标准与技术研究院(NIST)均发布网络安全最佳实践。

  • OWASP专注于应用安全,并发布以下领域的常见风险列表:Web应用和大语言模型。OWASP API安全十大风险是一份实用指南,可用于指导安全的API设计和安全测试。
  • NIST广泛关注网络安全,并发布了《NIST网络安全框架(CSF)》。NIST CSF有助于使API安全与更广泛的战略保持一致。该框架围绕六大支柱构建:识别、保护、检测、响应、恢复和治理。

6. API安全工具

随着应用设计转向API优先模式以及API数量激增,全面的Web应用和API保护(WAAP)解决方案可为API资产提供强有力的防御。WAAP提供全方位安全防护,将Web应用防火墙(WAF)、API发现和保护服务、DDoS缓解以及机器人管理整合到一个解决方案中。

WAAP的主要优势包括:

  • 增强可观测性。通过日志、指标和实时分析全面了解Web应用和API流量,帮助安全团队识别异常、更快排查问题,并从用户活动和新出现的威胁模式中提取可付诸行动的洞察。
  • 全面集成的防护。WAAP将强大的API发现和可见性与关键执行能力相结合,以控制和阻止API威胁,包括允许列表和拒绝列表、速率限制、Geo-IP过滤以及自定义规则生成等特定控制措施。此外,WAAP还在单一解决方案中提供第7层DoS防护、用于检测和掩蔽敏感数据的数据丢失防护(DLP)功能、机器人管理和WAF。这种整体方法可确保API既可见又受到保护,从而实现适当的治理和可靠的API性能。
  • 集中式策略管理。WAAP通过单一控制点管理所有Web应用和API的安全策略,无论应用托管在何处,也无论其底层架构如何。这种集中式方法可确保策略得到一致执行,最大限度减少配置错误,并简化不同环境中的安全运营。
  • 简化策略管理和维护。WAAP解决方案通过自动执行并优化应用和API中的策略实施与更新,使策略能够根据需要更轻松地应用于所有应用和API,并进行完善和调整,以应对不断演变的威胁和应用行为。这有助于减少人工操作,加快对新出现漏洞利用的响应,并确保在各系统中统一实施策略。
  • 清晰的审计跟踪记录。详细记录访问、策略变更和安全事件的日志及审计跟踪信息,对于证明应用在所有威胁途径和各个组件(包括API、基础设施和数据)均符合监管要求和行业标准至关重要。

F5 API安全

F5提供API安全,作为其Web Application and API Protection (WAAP)解决方案的一部分。这些解决方案可保护复杂混合云和多云架构环境中的API,在降低复杂性的同时提高运营效率。F5的WAAP解决方案采用全面的方法,在API的整个生命周期内提供保护,涵盖构建和测试、发布、运营及监控阶段。

F5的WAAP解决方案持续防御支撑Web应用和API的关键业务逻辑,帮助降低风险并增强数字韧性。该解决方案通过动态发现、持续监控和威胁检测,提供全面的API可见性,同时利用关键控制和策略执行机制保护API端点。F5的WAAP解决方案可部署在任何环境中,包括本地、云端或采用即服务模式。

分享

相关博客文章

F5纪念2021年世界艾滋病日
F5生态系统 | 2021/12/01

F5纪念2021年世界艾滋病日

值此世界艾滋病日,F5郑重承诺,将与员工、客户、社区和合作伙伴共同努力,消除社会对HIV感染者仍然存在的污名与偏见。

Thingbot正转变为攻击平台
F5生态系统 | 2018/11/29

Thingbot正转变为攻击平台

Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。

借助F5全新Quick Start,在AWS上快速开展业务
F5生态系统 | 2018/11/20

借助F5全新Quick Start,在AWS上快速开展业务

在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。

为什么声明式模型对NetOps自动化至关重要?
F5生态系统 | 2018/04/30

为什么声明式模型对NetOps自动化至关重要?

为什么声明式模型对NetOps自动化至关重要?阅读F5博客,了解基础设施即代码如何简化网络扩展。

开源聚焦:F5基础设施即代码与多云可管理性
F5生态系统 | 2017/11/16

开源聚焦:F5基础设施即代码与多云可管理性

开源聚焦:基础设施即代码与多云。阅读博客,了解模板和Terraform如何简化F5应用服务的部署。

破解IT“无解困局”的答案:私有云
F5生态系统 | 2016/09/12

破解IT“无解困局”的答案:私有云

破解IT“无解困局”的答案:私有云。阅读F5博客,了解本地部署的敏捷性如何化解安全与速度难以兼顾的问题。