API是连接器,使不同应用能够与其他应用、服务和平台进行通信和数据交换。组织可以借助API轻松集成外部平台和第三方服务,并通过连接各种组件来构建综合解决方案。API如同连接纽带,将分布式环境中的应用和数据互联起来,因此在现代数字基础设施中发挥着日益重要的作用。
例如,旅行服务Web应用可能提供机票和酒店预订、汽车租赁,以及目的地气温和天气预报等服务。但所有这些航班、天气和租车数据并不存储在旅行应用本身。相反,Web应用会通过航空公司、汽车租赁公司和天气服务提供商发布的API,请求不断变化的实时信息。旅行应用会显示这些数据供用户交互,而无需在内部存储或管理数据,从而能够顺畅地为用户提供更丰富的选择。
““API无处不在,扩大了组织的攻击面,随之带来安全风险,也使API成为黑客的主要攻击目标。””
本文探讨了API为何在现代Web应用开发中日益普及且不可或缺,并介绍了API带来的挑战和安全风险,以及最常见的API漏洞。本文还就如何采用有效策略保护API提供了建议。
API的兴起
要了解API为何对现代应用开发如此重要,不妨比较一下传统应用构建方式与如今的应用工程化开发方式。传统Web应用通常采用单体架构,由数千行紧密耦合的“意大利面式代码”组成。对应用进行任何更新或更改,都需要修改大段代码,导致开发速度缓慢、过程复杂且更容易出错。
相比之下,现代Web应用通常由相互独立的模块化组件(即微服务)构成。这些组件通过API彼此通信,和/或与Web端或移动端的应用前端通信。每个组件都可以单独开发、部署和扩展。开发人员还可以复用内部团队或第三方提供商的现有服务,而不必从头构建所有功能。API可简化并加快应用开发周期,支持根据用户反馈更快地迭代、集成第三方服务,并构建更易于管理和扩展的应用。
API是现代应用开发的基础,因此越来越多的组织开始采用API优先方法,即从API入手设计应用。这推动了API数量的快速增长:目前,每个组织平均管理超过400个API,这些API分布在其数字基础设施中;同时,68%的组织使用API管理应用交付和安全。
API安全风险
然而,API的广泛应用扩大了组织的攻击面,带来了安全风险,使其成为黑客的主要攻击目标。API会暴露关键业务逻辑,通常还会暴露敏感信息(有时是有意为之,但更多时候是无意造成),例如用户凭据、个人身份信息(PII)、财务数据、身份验证凭据,以及支付处理等业务操作。
此外,API往往缺乏妥善管理。虽然API安全是任何组织应用安全策略的关键组成部分,但许多组织的安全团队无法全面了解和控制不断扩大的API资产。这可能导致API清单管理不善,并出现未知的“影子”API,或已部署但未记录或管理的旧版弃用API,为攻击者提供可乘之机。根据《F5 2025年应用策略现状报告》,58%的组织认为API蔓延是一大痛点。
此外,许多组织依赖功能不足的工具来保护API。虽然API网关和Web应用防火墙(WAF)对于管理和保护API流量至关重要,但仅凭这些工具不足以应对各种API安全风险,在当今复杂的分布式环境中尤其如此。
API安全风险不仅包括对数字基础设施的技术威胁,还会对业务产生重大影响。API攻击可能导致经济损失,包括遏制数据泄露事件的成本、法律诉讼费用、监管罚款,以及因付费服务被过度使用、欺诈或盗窃造成的更直接损失。运营中断也是一项风险,因为攻击可能导致整个应用性能下降或无法运行,也可能以关键服务为目标,从而影响用户体验,并迫使安全和运营团队紧急应对。敏感用户数据泄露,或API滥用反复引发性能问题,都可能削弱客户信任,并对声誉造成长期损害。
七大API安全漏洞
以下是7种常见的API安全漏洞:
1. 身份验证和授权。10项OWASP API安全风险中有4项涉及身份验证和授权漏洞,包括对象级授权失效、 身份验证失效、 对象属性级授权失效和功能级授权失效。
这些威胁的风险在于,攻击者可能冒充合法用户,操纵对象引用或恶意执行函数,从而更改或获取敏感信息。为防范这些漏洞,应实施强健的身份验证和授权机制,例如OAuth或JSON Web令牌(JWT),并配置适当的访问控制。
2. 不受限制地访问业务流程。
这些攻击的风险源于攻击者恶意利用合法业务流程。由于此类攻击可能看似合法,且并非由配置错误引起,因此防范起来颇具挑战。要检测此类攻击,可部署行为分析来识别自动化使用模式,例如以超出人类用户能力的速度访问多项功能;也可实施能够理解并跟踪业务逻辑流程的运行时保护。
3. 注入攻击。当攻击者将恶意数据或命令作为API请求的一部分发送,试图操纵后端系统处理该输入的方式时,就会产生这些漏洞。常见的注入攻击包括SQL注入、跨站脚本攻击或服务器端请求伪造(SSRF)。
注入攻击会带来重大风险,因为攻击者可以操纵API,将恶意输入传递给后端服务(例如数据库、搜索引擎或操作系统命令),而这些服务可能会将其解读为合法指令。这可能导致数据泄露、未经授权的访问或意外执行功能。为降低此风险,应实施严格的输入验证和清理措施,确保API仅处理安全、符合预期且格式正确的数据。
4. 不受限制的资源消耗。当一系列API请求导致网络带宽、CPU、内存或存储等资源过载时,就会出现这种情况。这类攻击也称为资源耗尽,可能导致拒绝服务(DoS),从而降低API或底层系统的性能或可用性,造成停机。
此类攻击可能导致关键服务甚至整个应用程序中断,从而严重影响运营,还可能产生高额的基础设施和运营成本,尤其是在API服务按请求次数计费的情况下。为降低这些风险,应实施速率限制,以控制指定时间间隔内的API请求量;对请求参数和文件上传设置大小上限;并为按使用量付费的API服务设置支出上限。
5. 安全配置错误。攻击者会尝试寻找未修补的漏洞、采用不安全默认配置运行的服务,或未受保护的文件和目录,以未经授权访问API。如果传输层安全性(TLS)或跨源资源共享(CORS)策略等安全控制措施实施不当或根本未实施,或者启用了不必要的功能,就可能遭受此类攻击。
此类风险在于,攻击者会使用自动化工具识别并利用常见的错误配置,从而可能获取服务和敏感数据的访问权限。随着现代架构日益去中心化并分布在多云环境中,这一风险也随之加剧。为抵御这些威胁,组织应将安全措施融入API开发生命周期的各个环节,并实施严格的安全策略,包括TLS加密。此外,还应使用自动化安全测试工具,并定期开展API安全审计,以主动识别和修复漏洞。
6. 资产清单管理不当。当组织无法全面了解其API资产或未及时更新这些资产时,就会出现此问题。API会随时间推移而变更和更新,但过时或不安全的API版本可能仍在生产环境中运行。此外,旧端点可能在未修补漏洞或安全要求薄弱的情况下继续运行,从而增加遭受攻击和漏洞利用的风险。
缺乏适当的API清单管理会带来风险,因为黑客可能会利用尚未修补的旧版API或影子API(即未得到妥善保护的API)。要防范这些风险,需要维护包含所有API端点的最新清单,定期审查并停用未使用的API,并在适当的监督和安全控制下,确保定期修补和更新所有API。
7. 不安全地使用API。开发人员通常会默认信任从第三方API获取的数据,尤其是由成熟组织提供的API。因此,开发人员可能会认为这些API的数据本身是安全的,从而采用不够严格的安全措施,例如输入验证、数据清理或传输层保护。如果外部API遭到入侵或出现异常行为,这种做法可能会引入严重的安全漏洞。
信任所集成第三方API的安全性会带来重大风险。攻击者可能会识别这些依赖关系,并利用薄弱的API防护发送恶意请求,进而可能导致未经授权的URL重定向、窃听、数据截获或敏感信息遭访问。为缓解这些威胁,应始终通过加密通道与第三方服务通信,严格验证并清理所有传入和传出数据,避免盲目跟随URL重定向,并严格限制与外部服务交互的范围和频率。
应对API安全防护挑战
遵循以下最佳实践,实施强有力的API安全防护:
- 采用严格的访问控制、身份验证和授权。访问控制机制应结合可靠的身份验证方式,例如OAuth或JSON Web Token(JWT),以及精细化授权,这对于防止未经授权访问敏感数据或功能至关重要。这些最佳实践还有助于落实最小权限原则,即每个用户、应用或系统都应仅拥有履行其功能所必需的最低访问权和权限,不应超出此范围。
- 严格验证所有客户端输入。检查Content-Type标头是否正确,实施严格的架构验证,并且仅允许使用为每个端点明确定义的HTTP方法。这有助于确保输入符合架构或验证规则,并防止内容欺骗和方法篡改,即攻击者试图使用不受支持的方法来利用逻辑缺陷或绕过控制措施。
- 使用端到端加密保护各阶段的敏感数据。使用TLS保护传输中的数据,并采用强加密标准保护静态数据,例如对敏感字段进行字段级加密。对客户端与服务器之间交换的所有数据进行加密,可防止中间人攻击、窃听和数据篡改;对静态数据进行加密,则可保护存储在数据库、日志或备份中的敏感数据,即使系统遭到入侵也能提供保护。
- 限制数据暴露。确保API响应仅包含客户端操作所需的数据,并对错误消息进行脱敏处理,避免泄露系统或安全详细信息,从而降低信息泄露和攻击者侦察的风险。
- 持续开展安全测试。在开发和部署期间集成自动化工具,扫描API中的漏洞,并辅以定期安全审计和人工审查。这有助于及早发现并修复风险,在API的整个生命周期内保障其安全,并减少生产环境中的漏洞暴露。
- 监控API使用情况,持续进行。实施API发现工具,以检测新增或未受管理的API,确保API生态系统的可见性。记录所有API流量,用于审计、异常检测和合规,并支持实时威胁检测和报告。
- 实施API治理策略。制定并执行适用于整个组织的标准,确保API开发和管理安全、一致且高质量。治理应涵盖身份验证、数据保护、生命周期管理、文档、安全态势和合规性,确保API在设计上具备安全性,并可进行规模化管理。
如需了解保护API安全的实用指南,请阅读我们的博客文章《API安全检查清单》,获取更多建议。
相关博客文章
Thingbot正转变为攻击平台
Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。
借助F5全新Quick Start,在AWS上快速开展业务
在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。
