原文作者:Andrew Stiefel – F5 产品营销经理
原文链接:利用 API 安全防护的基本工具和最佳实践防御 API 攻击
转载来源:NGINX 中文官网
NGINX 唯一中文官方社区,前往 nginx.org.cn 阅读原文。
近年来,API 的激增极大地改变了企业运营方式。API 支持不同的应用相互通信和交换数据,可让业务流程和软件开发变得更加高效和有效。
然而,随着 API 使用的增多,API 蔓延的风险也随之产生,即跨分布式团队和架构创建和部署 API 往往缺乏适当的监督和管理。这可能会给企业带来一系列新的安全风险,因为每个 API 都是攻击者未经授权访问敏感数据和系统的潜在入口点。
API 优先软件开发的兴起
API 蔓延的主要驱动因素之一是微服务的激增。微服务架构将一个大型应用分解为许多通过 API 相互通信的小型应用。这就将复杂的应用分解为独立的组件,这些组件可由各个团队进行管理,并能够彼此独立扩展以满足流量需求。
微服务为开发人员提供了许多优势,包括更高的灵活性和可扩展性。但这些优势是有代价的,其中就包括额外的复杂性。因此,许多企业采用 API 优先方法来构建微服务。在实施这种策略时,应用和服务的设计流程都是先制定 API 契约,该契约概述了 API 的工作方式,细化到请求和响应格式。
攻击面随 API 激增而不断扩大
若不重视 API 安全防护,特别是在设计和部署过程中,那么 API 优先软件开发的优势就很容易被削弱。从根本上讲,API 越多,攻击面越大。尽管 API 在现代软件开发中发挥着重要作用,但它们同时也更容易被攻击者盯上。
2018 年,Gartner 预测,到 2022 年,API 将成为应用中最常见的攻击向量。实际上,他们对形势的预测过于乐观了。影响数百万用户的重大 API 漏洞事件在多家大型公司不断上演,而且只会愈加频繁:
-
2018 年,Facebook 报告称,攻击者利用该公司的开发人员 API 窃取了与用户个人资料页面相关联的个人身份信息(PII),包括姓名、性别及籍贯,至少
5000 万用户的数据处于风险之中
。 -
2019 年,LinkedIn 报告称,一名黑客利用数据抓取技术通过 API 收集了
7 亿多用户的信息
,并在暗网上发布兜售。 -
2021 年,
Peloton 维护的 API
出现漏洞,允许攻击者请求 PII,包括年龄、性别、城市、体重和出生日期。 -
2022 年,Twitter 发生了一起 API 漏洞事件,
540 万用户帐户的数据惨遭泄露
,包括电话号码和电子邮件地址。 -
2023 年,T-Mobile 报告称,API 漏洞导致
3700 万客户的数据被盗
,包括姓名、电子邮箱、地址、电话号码、出生日期等。
阻止 API 攻击需要采用正确的策略和工具
防范 API 威胁的最常见方法是结合使用传统 Web 应用安全防护策略与现代 API 安全防护技术。面对当今各种 API 威胁,传统策略往往力不能及。自动化 API 发现和 API 对比测试等现代技术试图弥合这些缺口。
对于企业而言,“右护”(实施全局控制和安全防护策略,以保护已部署的应用和 API)和“左移”(在安全防护嵌入到代码中,从而在应用和 API 投入生产环境前消除漏洞)至关重要。但这两种策略均无法单独提供全面的 API 安全防护,因此防范漏洞的关键在于采取一种涵盖三类 API 安全防护实践的全面方法:
-
API 安全防护状态管理
– 提供对 API 集合的安全状态的可见性,包括暴露的数据的类型和请求方法 -
API 安全防护测试
– 评估 API 在其生命周期中各关键点的安全防护,以发现潜在漏洞 -
API 运行时保护
– 在运行过程中检测并防止恶意请求到达 API
什么是 API 安全防护态势管理?
API 安全防护态势管理可提供对 API 所暴露的数量、类型、位置及数据的可见性。这些信息能够帮助您了解与每个 API 相关的风险,从而采取适当的措施保护 API。
主要功能:
-
自动化 API 发现
– 自动持续的 API 发现,以全面了解环境中部署的 API 情况 -
API 表征
– 按协议或架构(REST、GraphQL、SOAP 等)对 API 进行识别和分类,并映射敏感数据流,从而了解所面临的暴露风险 -
API 编目
– 维护完整的 API 列表,以方便软件团队复用现有 API,并帮助 SecOps 团队构建安全防护态势的完整视图
代表性技术:
-
Web 应用和 API 防护(WAAP)
– 利用在 API 基础架构中的特殊全局位置来分析进出环境的流量,识别 API,并构建风险暴露视图 -
内联或基于代理的发现
– 将代理附加到现有 API 网关、负载均衡器或 Kubernetes Ingress Controller,以镜像和分析 API 流量 -
带外或无代理发现
– 使用流量镜像或导出日志和指标来分析 API 流量;与其他技术相比,通常对 API 和威胁的可见性较低 -
域爬虫程序
– API 安全防护提供商可能会提供爬虫程序,以探测您的域中是否有暴露的 API 端点,这些端点允许流量绕过执行安全防护策略的 API 网关和负载均衡器
需要警惕的是,任何技术都无法一个不落地发现架构中的每个 API。大多数发现技术都依赖于现有负载均衡器、API 网关及 Ingress Controller 提供的可见性,不太可能发现能够绕过这些架构组件的错误配置。
从根本上说,执行代码审查和遵循 API 优先最佳实践可提供更有效的长期防御。不过,对于快速构建安全防护态势视图以及发现有可能不受管理和保护的 API 而言,自动化 API 发现工具仍很有用。
什么是 API 安全防护测试?
API 安全防护态势管理关乎企业整体安全防护,而 API 安全防护测试则关乎单个 API。从根本上讲,API 安全防护测试是通过测试 API 运行时(API 背后运行的应用)来帮助识别和防范漏洞及其相关风险。它有助于确保满足基本的安全防护要求,包括身份验证、授权、速率限制及加密条件。
主要功能:
-
API 契约测试
– 使用 API 的 OpenAPI 规范,通过比较客户端请求和服务器响应来验证其是否正常运行。它采用“由内而外”的方法,可在部署 API 之前发现它们是否存在漏洞。 -
动态应用安全防护测试(DAST)
– 模拟针对 API 运行时的攻击以查找漏洞,像恶意用户一样从“从外向内”评估 API。
代表性技术:
-
API 契约测试软件
– 用于运行测试的专用工具,这些测试可对 API 请求和响应进行分段,以验证客户端和服务器行为是否符合 API 契约 -
应用安全防护测试(AST)软件
– 通过模拟攻击来分析和测试应用(包括 API)的工具
什么是 API 运行时保护?
API 运行时保护是指在 API 运行和管理请求时确保其安全防护。它优先考虑将安全防护构建到平台基础架构及 API 本身的代码中,旨在识别和防止部署后出现恶意 API 请求。 主要功能:
-
访问控制
– 执行身份验证(authN)和授权(authZ)策略 -
网络安全防护
– 加密并保护网络通信 -
应用保护
– 保护 API 运行时免受恶意 API 请求和攻击的影响 -
实时监控
– 可视化、跟踪和缓解 API 基础架构中的攻击
代表性技术:
-
API 网关
– 应用和执行安全防护策略,包括身份验证、授权、速率限制、访问控制列表及加密 -
Web 应用防火墙(WAF)
– 根据攻击特征库主动监控并过滤流量,以保护 API 和应用免受复杂的七层攻击 -
身份验证供应商(IdP)
– 存储并验证用户身份的服务,通常与单点登录(SSO)提供商协同验证用户身份
API 安全防护的最佳实践
结语
与所有网络安全一样,API 安全防护也是一个持续的过程,需要网络工程师、安全防护运维领导者、平台工程领导者及软件开发工程师等诸多利益相关者之间展开密切协作。好在 API 安全防护并不是深不可测的事情。
大多数企业已经采取相应措施来应对已知攻击,如跨站脚本攻击、注入攻击、分布式拒绝服务攻击以及其他可能针对 API 的攻击。对于经验丰富的安全防护专业人员来说,上述许多最佳实践可能都非常熟悉。无论贵企业运行多少 API,您都要建立可靠的 API 安全防护策略,并主动地对其进行持续管理。
相关资源推荐
-
[免费电子书] API 策略:面向平台工程团队的最佳实践
-
无需重启 NGINX 开源版即可实现 SSL/TLS 证书轮换
-
如何在 NGINX 中安全地分发 SSL 私钥
-
将 NGINX 用作 DoT 或 DoH 网关
NGINX 唯一中文官方社区,前往 nginx.org.cn 阅读原文。
更多 NGINX 相关的技术干货、互动问答、系列课程、活动资源: 开源社区官网 | 微信公众号