利用 API 安全防护的基本工具和最佳实践防御 API 攻击
利用 API 安全防护的基本工具和最佳实践防御 API 攻击
近年来,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密钥或其他身份验证工具。或者,攻击者通过VPN漏洞侵入内部环境,利用内部API窃取数据。
阻止 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发现,以全面了解环境中部署的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安全防护厂商的商用产品。应用安全防护测试(AST)市场发展已有数十年,越来越多的厂商提供API专用扫描和测试工具。
什么是 API 运行时保护?
API运行时保护是指在API运行和管理请求时确保其安全防护。它优先考虑将安全防护构建到平台基础架构及API本身的代码中,旨在识别和防止部署后出现恶意API请求。
主要功能:
访问控制– 执行身份验证(authN)和授权(authZ)策略
网络安全防护– 加密并保护网络通信
应用保护– 保护API运行时免受恶意API请求和攻击的影响
实时监控– 可视化、跟踪和缓解API基础架构中的攻击
代表性技术:
API网关– 应用和执行安全防护策略,包括身份验证、授权、速率限制、访问控制列表及加密
Web应用防火墙(WAF)– 根据攻击特征库主动监控并过滤流量,以保护API和应用免受复杂的七层攻击
身份验证供应商(IdP)– 存储并验证用户身份的服务,通常与单点登录(SSO)提供商协同验证用户身份
API网关和WAF/WAAP各不相同。一些服务(特别是适用于云及其他平台的原生解决方案)缺乏多云和混合架构所需的全局可见性和标准化。
API 安全防护的最佳实践
考虑到保护API的重要性,必须有计划地实施API安全防护。平台工程和安全防护领导者必须通力合作,以满足整个API生命周期的安全防护要求。如前所述,这需要在三大方面并发用力:API安全防护态势管理、API安全防护测试及API运行时保护。换句话说,您需要重点了解您有多少个API、如何测试它们是否存在缺陷,以及如何将安全防护嵌入到代码中。
结语
与所有网络安全一样,API安全防护也是一个持续的过程,需要网络工程师、安全防护运维领导者、平台工程领导者及软件开发工程师等诸多利益相关者之间展开密切协作。好在API安全防护并不是深不可测的事情。
大多数企业已经采取相应措施来应对已知攻击,如跨站脚本攻击、注入攻击、分布式拒绝服务攻击以及其他可能针对API的攻击。对于经验丰富的安全防护专业人员来说,上述许多最佳实践可能都非常熟悉。无论贵企业运行多少API,您都要建立可靠的API安全防护策略,并主动地对其进行持续管理。