引言 APIs已迅速从实现细节发展成为一个推动数字创新的战略使能者。每当顾客、合作伙伴或供应商以数字化方式与企业互动时,背后都有一项API在幕后促进无间的数据交换。 随着API的增多,其风险也在增加。在竞相快速创建和发布新应用程序和人工智能增强服务的过程中,底层的API往往配置不当,缺乏安全控制,且容易受到简单攻击。 因此,API已成为主要的攻击向量,许多安全团队在他们的API安全策略上处于追赶状态。因此,API安全正在迅速成为IT和安全主管们的首要战略重点。 无论您是想在API安全基础知识上打下坚实基础,还是正在整理一份需要询问的正确问题清单,本指南提供了您所需了解的详细信息,包括: • 不同类型的API• API安全对当今企业意味着什么• 应对API安全风险的最佳实践• 常见的API攻击和滥用方法 直接进入API安全最佳实践,您可以跳转到第10页。 目录 API基础知识 什么是Web API? 一个网络应用程序编程接口(API)由一个或多个定义好的请求-响应消息系统的端点组成,通常以JSON或XML的形式表达,并通过网络公开暴露——最常见的做法是通过基于HTTP的网络服务器。 换句话说,一个Web API就是当人们听到“API”一词时首先想到的东西。它是一系列端点。端点由资源路径、可以对这些资源执行的操作以及资源数据的定义(以JSON、XML、Protobuf或其他格式)组成。 Web APIs与其他API(如操作系统或同一机器上运行的应用程序库所暴露的API)不同,但一般术语“API”通常指的是基于HTTP的(Web)API,尤其是在企业数字化转型和API安全性的背景下。 最常见类型的API有哪些? 以下表格包含了指代不同使用模型和技术方法的API实施术语。Web API被定义为基于HTTP,目前常见的四种Web API类型是RESTful、SOAP、GraphQL和gRPC。表格定义了这些常见类型,以及其他类型。 APIs 和端点之间的区别是什么? 人们经常在实际上指的是单个API端点时使用“API”。API,有时被称为服务或API产品,是一组服务于商业功能的端点集合。另一方面,单个端点是一个资源(或资源路径,也称为URI或统一资源标识符)以及对该资源执行的操作(创建、读取、更新或删除)。在RESTful API中,操作通常映射到HTTP方法(POST、GET、PUT和DELETE)。 什么是南北API? 这些是组织对其外部世界保持可访问的APIs,主要用于与其商业伙伴进行商业活动。这称为API暴露。例如: 银行采用开放银行模式可能会通过API将他们的数据暴露给其他金融科技或金融服务组织。 医疗组织可能通过API将患者记录暴露给保险公司和其他医疗组织。 酒店行业组织可能通过API将他们的预订系统暴露给旅行社或聚合器。 APIs是连接不同组织以交换数据的连接组织。南北API通常被认为安全,因为访问是授权和验证的。通常,这是增长最快和最大的API量,因此,它是大多数组织最大的攻击面。 什么是东西向API? 这些是组织内部使用的API,不应对外部人员开放。这些API连接内部应用程序或业务单元或部门。开发者可能会犯错误,导致东西向API意外地可访问。这些API不是为了对外部实体开放或知晓,但当威胁行为者发现通过互联网可以访问东西向API时,还是会发生安全漏洞。 B2C APIs与B2B APIs之间的区别是什么? 企业对消费者(B2C)APIs为网络和移动应用程序提供动力。它们通常由现代前端客户端使用,以允许认证的最终用户访问公司的业务功能。 该组织向其他组织提供面向商务的(B2B)API,以进行商业活动,有时也为了向共同客户提供价值。 B2B API帮助简化企业与其供应商、分销商和其他合作伙伴之间的工作流程,以及如何为客户提供更好的体验。 B2B API 的例子包括: 电子发票和支付在交易之间合作伙伴 开放银行APIs 供应链管理API 由于API的消费者有很大差异,用于保护这些API的安全控制措施也各不相同。直到最近,行业一直关注B2C用例,但即便如此,焦点也不在于保护B2C API,而是保护Web应用程序。为保护B2C Web应用程序而通常采用的安全工具和控制措施提供某些好处(例如,Web应用程序防火墙[WAF]或Web应用程序和API保护[WAAP]),但不能提供保护B2CAPI免受攻击所需的可见度、实时监控和保护程度。 保护B2B API正变得越来越具有挑战性。这些API通常更容易成为攻击者的目标,因为它们往往缺乏必要的安全保护机制。早期的API安全工具对B2B API的可见性有限,难以保护代表共享用户(如在开放银行中,金融科技公司与金融机构协商共享客户数据)进行大量数据访问的API。然而,新的API安全解决方案提供行为分析,能够识别异常活动,有效解决这些担忧。 私有API和公共API之间的区别是什么? 私有API,有时也被称为内部API,旨在由公司的开发人员和承包商使用。通常作为面向服务架构(SOA)倡议的一部分,私有API旨在通过使不同部门或业务单位能够高效且有效地访问彼此的数据,从而简化内部开发。 与此相反,公共API,也称为外部API,向公司外部的消费者开放。在其最极端的表现形式中,作为公开API,任何人都可以自由使用。在任何情况下,它们都需要严格的管理和详尽的文档,以便公司外的工程师能够使用。 需要注意的是,可以通过互联网访问的私有API在严格意义上并不是真正的私有。例如,假设ACME的B2C API仅由ACME移动应用(由ACME工程师内部开发)使用。您可能会倾向于将其称为私有API,但由于访问此API的流量来自互联网(公司外部),因此这个API并不真正私密——它只是未对外公开。黑客经常通过拦截流量和逆向工程移动应用以找到相应的API来攻击此类API。 API安全解释 什么是API安全? API安全是一种策略,旨在深入了解、严格测试并保护企业中每个API。这包括对应用、业务流程和云工作负载至关重要的API。然而,由于内部和外部API都以如此快的速度和如此大的数量被生产出来,要完全理解您组织的整个API景观可能会很困难。许多组织缺乏对它们实际拥有多少API以及哪些API在调用时返回敏感数据的了解。识别和缓解API安全风险需要足够复杂的控制措施,以提供这种类型的可见性和数据分析。需要保护的API可能包括: • 通过API让客户或商业合作伙伴轻松访问数据 从商业合作伙伴消耗的APIs • 实现并内部使用的API,以标准化和可扩展的方式使应用功能和数据对各种系统和用户界面可用 一个有效的API安全策略必须包括评估风险和潜在影响的系统技术,以及执行适当的缓解措施。评估风险的第一步是建立组织发布的所有授权和非授权API的清单。此清单应包括以下属性: · 数据分类,最低限度上应区分“非敏感”,“敏感”和“非常敏感”的数据 是否存在一个安全团队应了解的API分类法? 此外,API可见性和风险缓解措施必须考虑一系列可能的威胁,包括: • 检测和预防未经授权的阴影API的使用(见侧边栏) 以下是在安全环境中可能出现的常见API分类和描述。 • 识别和修复API漏洞和配置错误,这些漏洞和配置错误可能被攻击者利用 防止API误用情况的发生,例如业务逻辑滥用和数据抓取。 受制裁的API API安全与应用安全有何不同? 已发布的API(带有Swagger文档或类似文档) 尽管API安全和传统应用安全是相关学科,但API安全由于两个关键原因构成了一个独特的挑战——问题的规模和复杂性。 更大规模 未经授权的APIs • 阴影API • 代理API •僵尸API • 隐藏API 三个因素促成了API使用量的快速增长: 1. 微服务架构的使用正在增长,该架构规定服务之间通信必须使用API。 在直接用户渠道中,现代前端应用框架如React、Angular和Vue使用API,并正在取代传统网页应用。 3. 添加API以解决完全新的渠道(例如,合作伙伴、物联网和业务自动化)的需求。 过时的API • 已弃用的API • 旧版API • 荒废的API • 孤儿API 灵活性导致复杂性 与Web应用程序不同,API被设计为以多种不同的方式进行程序化使用,这使得区分合法使用和攻击及滥用变得极为困难。 API安全成熟度阶段 最佳实践用于保护API是什么? 增强您的API安全性应从以下最佳实践开始: 第一阶段:可见性和发现 将API安全标准和实践与您的组织的软件开发生命周期相结合。 您正在通过自动化方法发现所有API以及它们所支持的微服务。覆盖范围的广度至关重要,因为被忽视的API(例如那些不再使用的API)是攻击者的主要目标。 将API文档和自动化安全测试纳入您的持续集成/持续交付(CI/CD)管道中。 第二阶段:测试 确保为您的API应用适当的和有效的身份验证和授权控制。 您测试所有API以确保它们代码正确且执行预期功能。在部署API之前进行的测试是该成熟阶段的最高端;在API投入生产之前消除了风险,任何需要的修复都远比之后更为经济。 • 实施速率限制措施,以帮助防止API被滥用或过载。 • 通过专业网关和/或内容分发网络增强速率限制和其他应用层措施,以减轻分布式拒绝服务(DDoS)攻击的风险。 第三阶段:风险评估审计 您不断地审计整个API环境以识别配置不当的API或其他错误。您的审计还确保每个API有充分的文档记录,并确定它们是否包含敏感数据或缺乏适当的安全控制。 将API安全测试融入您的更广泛应用测试流程中。 •持续发现API。 • 实施一种系统化的方法来识别和修复常见的API漏洞,包括OWASP Top 10 API安全风险。 阶段4:运行时保护 您正在使用一款具有自动化运行时保护功能的解决方案,该功能能够区分正常和异常的API活动。通过这种方式监控API交互,您能够实时检测到表明存在威胁的行为。 • 基于签名的威胁检测与预防作为抵御已知API攻击的基础保护水平。 • 通过人工智能和行为分析增强基于签名的检测,使API威胁检测更具可扩展性、准确性、业务相关性,并能够抵御新型威胁。 第五阶段:回应 您已部署解决方案以应对可疑的API行为,例如使用WAF或API网关在可疑流量访问关键资源之前阻止其传输。这些解决方案采用定制化的自动化规则。 确保API安全监控和分析过程跨越多周和API会话。 • 通过提供威胁猎人、开发者、DevOps和支援人员所需的按需访问API库存和活动数据,补充API安全监控和警报功能。 第六阶段:寻找威胁 您经常对过去的安全威胁数据进行法医分析,以了解警报是否正确识别了威胁,以及是否出现了能够通过结合复杂工具和人工情报进行主动威胁搜寻的模式。 您的实施这些API安全最佳实践的能力取决于您在走向成熟的API安全策略道路上的位置(见侧边栏)。 API安全风险与滥用 什么是API漏洞? API漏洞是指软件漏洞或系统配置错误,攻击者可以利用它来访问敏感的应用功能或数据,或者以其他方式滥用API。OWASP Top 10 API安全风险提供了一个有用的概述,列出了组织应尝试识别和修复的一些最广泛滥用的API漏洞。 所有OWASP Top 10 API安全风险中的API漏洞都被追踪了吗? OWASP API 安全性前10名是组织寻求改善其API安全态势的绝佳起点。其类别涵盖了广泛的可能API风险。但是,OWASP API 安全性前10名中的类别相当宽泛,因此对每个类别进行深入细分至关重要。API攻击者通常试图利用授权问题(OWASP进行了广泛覆盖),但也有一些API风险完全超出了OWASP API 安全性前10名,例如逻辑错误的滥用。 如何滥用API? APIs可以被以各种方式攻击和滥用,但其中一些最常见的情况包括: