Akamai 是一家致力于支持并保护在线商业活动的网络安全和云计算公司。我们卓越的安全解决方案、出色的威胁情报和全球运营团队可提供深度防御,保护各地的企业数据和应用程序。Akamai 的全栈云计算解决方案可在海外分布广泛的平台上提供高性能和经济实惠的服务。全球多家企业坚信,Akamai 能够提供卓越的可靠性、扩展性和专业技术,助其从容拓展业务。
应用程序编程接口 (API) 是现代应用程序架构不可或缺的一部分。API 定义了使应用程序能够与其他软件、服务和平台进行通信及交换数据的规则与协议。此功能使开发人员能够利用现有软件的数据和功能来构建更强大的应用程序,并且使企业能够将 IT 系统与外部服务和第三方平台相集成。
API 也带来了重大的运营风险。随着企业越来越以云为中心和不断提升数字化水平,其 API 资产的范围、规模和复杂性也随之不断扩展。API 通常散布多个环境中,囊括了从本地到混合云的各种环境。并且企业的 API 生态系统很可能远远超出了其自身的网络和云环境范围,这进一步加剧了复杂性。想象一下,API 与第三方和开发人员生态系统的应用程序、服务及系统建立了千丝万缕的连接。
随着您的 API 的范围、规模和复杂性不断增长,您将越来越难以获得针对以下方面的实时监测能力:
您的 API 分布在各个业务部门的什么位置,多数情况下,这些业务部门都有自己的开发团队
您的 API 是如何配置的,它们的路由位置,以及是否具备适当的身份验证和授权控制
当您的 API 被调用并返回敏感数据时,谁可以访问这些数据
更为棘手的是,企业日积月累的大部分 API 都处于不受管、看不到以及通常不受保护的状态。这包括休眠 API、影子 API 和僵尸 API。在很多情况下,这些 API 会规避常用工具的防御措施。
为了保护 API 以及 API 与之交互的应用程序、Web 服务和 IT 环境,企业安全团队必须采取相关技术和最佳实践来抵御 API 攻击、API 安全事件和 API 滥用。
API 面临的主要威胁
API 面临的最常见威胁可分为以下几类。
漏洞利用:许多 API 都存在漏洞,这些漏洞使攻击者能够发送导致不当行为的 API 请求。通过利用这些漏洞,攻击者可以对 API 或相关应用程序进行未经授权的访问。常见示例包括跨站点请求伪造 (CSRF) 等攻击。
注入攻击:在 SQL 注入、跨站脚本攻击 (XSS)、XML 注入和脚本攻击等各种攻击中,攻击者会将恶意代码注入 API 请求。当某个服务器执行这些代码时,API 可能会执行某些不当或恶意的操作。
身份验证问题:身份验证是在接受和处理 API 请求之前确定用户、应用程序或设备是否为合法客户端的过程。当企业采用较弱的身份验证机制时,攻击者可能会获取合法用户的凭据、窃取 API 密钥、拦截并使用身份验证令牌,或者在暴力破解攻击中尝试多种不同的密码或加密密钥组合。
授权问题:授权是指确定允许客户端进行哪种级别的 API 访问的任务。当授权未得到妥善管理时,API 客户端或许能够访问本不应向其开放的数据,从而增加发生数据泄露的风险。一个常见的示例是称为对象级授权失效 (BOLA) 的威胁,即由于访问控制不足,攻击者可以访问或操纵本无权访问的对象。
拒绝服务 (DoS) 或分布式拒绝服务 (DDoS) 攻击:这些攻击会向 API 发送超出其处理能力的流量,使其不堪重负,进而导致 API 崩溃或速度减慢。其结果是,系统可能会拒绝向合法用户提供服务。
中间机器 (MITM) 攻击:当攻击者能够拦截两个系统之间的流量和通信时,他们或许能够捕获 API 密钥、访问令牌和用户凭据等敏感数据,或者操纵从一方发送到另一方的数据。
安全错误配置:当 IT 团队未能妥善配置 API 的安全设置,这些 API 可能会让攻击者获得未经授权的访问权限、提升权限并入侵 IT 环境。
数据泄露:在响应 API 请求时,许多 API 可能会遭到操纵而泄露过多不必要的信息——这是一个缺陷,攻击者可以利用它来窃取数据或实施未经授权的访问。
保护 API 的必要性
鉴于 API 在现代 Web 应用程序和应用中发挥着关键作用,因此保护 API 的任务对于实现整体网络安全至关重要。未能妥善保护 API 可能会对企业产生重大负面影响。
敏感数据泄露:当攻击者使用 API 获取对后端系统的访问权限时,他们或许能够窃取敏感数据,例如客户的个人身份信息、业务计划、财务记录和知识产权。
失去信任:无法抵挡 API 安全威胁的企业往往会失去客户和合作伙伴的信任,从而对业务机会和利润产生重大影响。在遭受 API 攻击后,安全团队还可能会失去高层领导和董事会等关键内部利益相关者的信任并面临信誉受损的问题。
合规失败:当敏感信息在数据泄露事件中遭到窃取或泄露时,这可能会使受到严格监管的行业中的企业招致巨额罚款和法律处罚。在考虑其遵守数据安全法规的方法时,许多企业都会顾及到 API,但真正了解 API 安全和合规性的最佳实践的企业少之又少。
数据泄露与网络攻击:许多网络犯罪分子都会利用 API 攻击来获取对 IT 环境的访问权限,以发动更大规模的恶意网络攻击。
服务中断:由于 API 对于连接应用程序和系统至关重要,因此对 API 的攻击可能会导致服务和系统中断,从而造成服务中断或生产力大幅下降。
经济损失:除了使攻击者能够耗尽财务账户中的资金之外,API 攻击还会在缓解过程、取证调查、生产力损失和失去商机等方面,给企业造成重大损失。
API 安全中的挑战
为了保护 API,IT 团队必须克服许多重大挑战。
复杂的 API 生态系统:由于企业拥有成千上万的 API、众多 API 端点和不同类型的请求,因此其 API 生态系统通常相当复杂。此外,企业的数字足迹可能包含开源 API、第三方 API 和影子 API,因此很难清点每项资产。因此,IT 团队甚至无法监测所有 API,更不用说通过强大的安全措施来保护它们了。
不断发展变化的威胁:攻击者在不断开发新的方法来利用 API,这就要求企业必须时刻保持警惕并持续更新安全措施。
互联性:由于 API 在整个 IT 环境中紧密交织在一起,因此 IT 团队不愿意引入可能会导致延迟、性能不佳或可扩展性受限的安全措施。
失控性激增:在许多企业中,API 都由各个不同的团队快速开发,但缺乏一个中央框架来保护 API 和管理开发。
交付压力:现代软件开发生命周期的快节奏导致了保障 API 安全的需求与快速将新版本投入生产环境的压力之间存在矛盾。
用于保护 API 的技术
IT 团队可能会采用多层技术来妥善保护 API。以下是四种传统工具的示例,企业通常使用这些工具来管理 API 并提供一组基本保护措施。
身份验证和授权协议:身份验证和授权是 API 安全的核心要素。OAuth 2.0、OpenID Connect 和 JSON Web 令牌 (JWT) 等协议可帮助验证用户身份并控制对资源的访问。通过将这些技术与基于角色的访问控制和基于属性的访问控制相结合来进行实施,企业可以显著改善保障 API 安全的相关工作。
API 管理平台:API 管理平台提供商提供了全面的工具来帮助企业创建、发布、监控、分析和保护 API。这些解决方案为从开发到停用的整个 API 生命周期提供了一种集中的管理方式。
API 网关:API 网关充当所有 API 流量的单一入口点,用于管理速率限制、节流和 API 请求验证等任务。由于 API 和网关可以捕获流量及活动的详细日志,因此它们还可以提供实时监控功能。
Web 应用程序防火墙 (WAF):WAF 通过过滤和监控 HTTP 请求来保护 API。WAF 位于客户端与服务器之间,用于监控、过滤和分析进出 Web 应用程序的 HTTP/HTTPS 流量。在抵御针对应用层的攻击方面,它特别有用。
但是,API 攻击的复杂性和频率日益增加,这要求除了使用许多企业所用的传统工具之外,还必须增加一层额外的安全防护。企业应使用一个能够提供 API 发现、API 安全态势管理、运行时保护和 API 安全测试的全面 API 安全解决方案。
这种全面的方法可作为对企业用于管理和保护 API 的现有工具(例如 API 网关和 WAF)的重要补充。
API 发现:大多数企业几乎不具备对大部分 API 流量进行监测的能力,往往是因为他们认为其所有 API 都会通过 API 网关路由。但事实并非如此。企业的许多典型 API 都是不受管 API,例如被遗忘但仍在运行并持续接触敏感数据的休眠 API。如果没有完整、准确的清单,您的企业将会面临各种风险。所需的核心功能:
无论配置或类型如何,找到您的所有 API 并将其加入清单中
检测休眠、遗留和僵尸 API
识别被遗忘、被忽视或未知的影子域名
消除监控盲点,发现潜在攻击路径
API 态势管理:在有完整 API 清单的情况下,了解哪些类型的数据会流经您的 API 以及这会如何影响您遵从监管要求的能力至关重要。API 态势管理让您可以全面了解流量、代码和配置以评估贵企业的 API 安全态势。所需的核心功能:
自动扫描基础架构,从而发现配置错误和隐藏的风险
创建自定义工作流,从而通知主要利益相关者有关漏洞的情况
确定哪些 API 和内部用户能够访问敏感数据
为检测到的问题分配严重程度评级,从而确定补救工作的优先级
API 运行时安全:毫无疑问,您熟悉“假设入侵”的概念。专门针对 API 的入侵和攻击同样不可避免。对于生产环境中存在的所有 API 来说,您需要能够实时检测和阻止攻击。所需的核心功能:
监控数据篡改和泄露、策略违反情况、可疑行为以及 API 攻击
无需进行额外的网络调整或安装难以部署的代理,即可轻松分析 API 流量
与现有工作流(工单、SIEM 等)进行集成,以便向安全/运营团队发出告警
通过部分自动化或全自动化补救,实时防止各类攻击和滥用行为
API 安全测试:API 开发团队压力重重,需要尽可能快地完成工作。速度对于所开发的每个应用程序都至关重要,这更容易导致漏洞或设计缺陷发生且随后无法被检测到。将 API 发布到生产环境中之前在开发阶段对其进行测试,可以显著降低风险并减少修复易受攻击 API 的成本。所需的核心功能:
运行模拟恶意流量的各种自动化测试
在 API 进入生产环境之前发现漏洞,从而降低攻击得逞的风险
依据已确立的管理策略和规则,对 API 规范进行检查
根据实际需求或在 CI/CD 管道中运行以 API 为重点的安全测试
注意:除了 API 安全解决方案之外,企业还可以探索网络应用程序和 API 保护 (WAAP) 的功能。WAAP 扩展了 WAF 的传统保护范围,旨在快速识别和抵御来自多种攻击媒介的威胁。API 安全解决方案与 WAF 和 WAAP 协同工作,将保护范围进一步扩展到防火墙之外,建立更强大的防御系统。
保护 API 的整体最佳实践
这些 API 安全最佳实践可以帮助企业抵御安全风险并确保实现强大的 Web 应用程序安全防护:
加密传输中数据:使用传输层安全 (TLS) 和安全套接字层 (SSL) 协议对客户端与 API 之间传输的数据进行加密,以确保 API 调用不会被拦截或篡改。
验证并清理输入:确保所有输入都经过适当验证和清理,以防范注入攻击。验证是一个检查过程,用于确保输入符合系统对有效数据的预期。清理是净化或过滤输入以删除任何潜在恶意或有害内容的过程。
使用速率限制和节流:控制 API 请求的数量,以避免 API 遭到滥用或过度使用、防止资源过度消耗并阻止潜在的 DoS 和 DDoS 攻击。
监控并记录 API 活动:保留 API 调用的详细日志,并监控它们是否存在异常活动。通过分析日志,安全团队可以发现那些可能表明存在安全威胁的可疑或异常活动模式,例如异常流量激增或反复的登录失败尝试。
定期执行安全测试:定期进行安全测试和审计,以识别并修复漏洞。在开发环境和生产环境中都可以执行测试,以最大限度地提高安全团队发现缺陷的能力。
实施最小权限访问:确保用户和服务仅拥有履行其职能所必需的最低访问权限。这有助于防止攻击者对 API 和 IT 资源进行未经授权的访问。
保护 API 端点:通过适当的安全措施(例如,使用 API 网关和 Web 应用程序防火墙)来保护 API 端点。
实践安全的 API 设计:保护 API 的最重要的方法之一是在设计过程中尽早引入安全机制。通过在开发过程中进行测试和消除缺陷,开发团队可以降低 API 在进入生产环境后攻击者利用漏洞的风险。
监控 OWASP 10 大安全风险:开放全球应用程序安全项目 (OWASP) 是一个旨在提高软件安全性的非营利组织。OWASP 十大 API 安全风险列表列出了开发人员和安全专业人员应该解决的最严重的 API 安全问题。
采用 Zero Trust 原则:一种 Zero Trust 安全方法,它假定 IT 环境内外的任何用户、设备或应用程序都不具备固有可信性。通过要求对每个 API 访问请求进行持续的身份验证和其他验证,Zero Trust 框架可防止未经授权的访问,并减少成功突破企业防御系统的攻击所造成的损害。
使用 API 密钥:API 密钥是一个唯一标识符,用于对发出 API 调用的应用程序或网站进行身份验证,而不是对使用网站的人员进行身份验证。API 密钥有助于防止不必要的调用、未经授权的访问和数据泄露。
常见问题
简单对象访问协议 (SOAP) 和表现层状态转换 (REST) 是不同类型的 API。作为一种使用 XML 进行消息传递的高度结构化消息协议,SOAP API 因其内置了 WS-Security 等标准而在设计上更加安全。REST API 提供了一种更简单的 API 方法,但它们没有内置的安全功能。必须在数据传输、部署和交互等方面加强安全防护。
API 端点是 API 与其他系统或应用程序进行交互的特定路径。每个端点都代表 API 中唯一的功能或资源,因此保护这些端点对于防范未经授权的访问和攻击至关重要。