从 Amazon API Gateway 中移除标头重映射,以及有关我们与安全研究人员合作的注释

作者: 马克·雷兰德 | 2023 年

亚马逊网络服务 (亚马逊云科技) ,我们的 API 和服务功能是对客户的承诺,因此我们很少做出重大更改或从生产服务中删除功能。客户使用 亚马逊云科技 云为其客户构建解决方案,当进行破坏性更改或删除功能时,下游影响可能会很大。作为建设者,我们自己感受到了这类变化的影响,我们会尽可能地努力避免这些情况。

当我们需要进行重大更改时,我们会努力为使用旧功能的客户提供一条平稳的前进道路。通常,这意味着更改新用户或新部署的行为,然后为现有客户留出从旧行为迁移到新行为的过渡窗口。这种模式有许多示例,例如 我们去年 对 IAM 角色信任策略行为的 更新

这篇文章解释了我们最近在 亚马逊 API Gatew ay 中所做的一项此类更改 。我们还将讨论如何与安全研究界合作,为客户改善状况。

摘要和客户影响

最近, Omegapoint 的研究人员 披露了一个边缘案例问题,即API Gateway如何使用基于亚马逊云科技 Lambda的自定义授权机构处理HTTP标头重映射。 与安全研究经常出现的情况一样,这项工作产生了第二个与切线相关的授权缓存问题,OmegaPoint团队也报告了该问题。

在分析了这些报告后,API Gateway 团队决定从服务中删除一项记录在案的功能,并调整另一项行为以改善服务行为。我们已经对 API Gateway 文档 进行了相应的更改 。

自 2023 年 6 月 14 日起,API 网关中不再提供标头重映射功能。客户仍然可以使用基于 Velocity 模板语言 (VTL) 的转换进行标题重新映射,因为这种方法没有受到报告问题的影响。如果您在 API Gateway 中使用这种设计模式并对此更改有疑问,请联系您的 亚马逊云科技 支持团队。

授权缓存行为按最初的设计运行;但根据该报告,我们对其进行了调整,以更好地满足客户的期望。

Omegapoint 的团队已在博客文章 W riteup 中发布了他们的发现:亚马逊云科技 API Gateway 标头走私 和缓存混乱。

在我们删除该功能之前,我们通过电子邮件和 亚马逊云科技 Health Das hboard 联系了使用直接 HTTP 标头重新映射功能的客户。如果尚未与您联系,则无需您采取任何行动。

更多细节

Omegapoint报告的主要问题与API Gateway中记录在案的、由客户端控制的HTTP标头重映射功能有关。此功能允许客户在其客户端与 API Gateway 之间的交互中使用一组标头值,以及从 API Gateway 到后端使用一组不同的标头值。客户端可以发送两组标头值:一组用于 API Gateway,一组用于后端。API Gateway 会处理这两个集合,但随后使用另一组值重新映射(覆盖)一组值。当允许新创建的 API Gateway 客户端继续使用标头处理逻辑无法修改的传统服务器时,此功能特别有用。

来自 Omegapoint 的报告强调,当使用重新映射功能覆盖用于在后端进行进一步授权的标头值时,依赖 Lambda 授权器进行基于请求的授权的客户可能会感到惊讶,这可能会导致意外访问。Lambda 授权器本身在未映射的标头上按预期工作,但如果后端还有其他授权逻辑,它可能会受到行为不当的客户端的影响。

Omegapoint 报告的第二个问题与 API Gateway 中授权策略的缓存行为有关。 以前,缓存方法可能会重用缓存的授权,其值与 值是在缓存值的生存时间 (TTL) 内在请求标头中使用的。这是通配符值的预期行为。

但是,在审查该报告后,我们一致认为这可能会让客户感到惊讶,并可能允许行为不端的客户绕过预期的授权。我们能够在不影响客户的情况下改变这种行为,因为没有证据表明客户依赖这种行为。因此,现在,该 案例中不再使用缓存的授权。

我们如何与研究人员合作

安全研究人员定期向 亚马逊云科技 Secur ity 提交 漏洞报告 。有些研究人员是独立的,有些人在学术机构工作,还有一些人在 亚马逊云科技 合作伙伴 或客户组织工作。我们的外联团队会快速对提交的内容进行分类。收到后,我们开始对话并与研究人员密切合作,以了解他们的担忧,提出我们的观点,并就最佳前进方向达成共识。

如果需要进行技术更改,我们的服务和安全团队将共同努力,根据潜在影响确定和实施适当的补救措施。他们与受影响的客户合作以减少或消除影响,并与研究人员合作协调研究结果的发布。

这些报告通常会突出显示设计和记录的行为可能会给某些客户带来令人惊讶的结果的情况。在这种情况下,如果需要,我们会与研究人员合作,对文档进行适当的更新,并帮助确保以客户教育为主要目标发布研究人员的发现。

在其他情况下,如果有保障,我们会使用安全公告向更广泛的客户和安全社区传达有关安全问题的信息。最后,我们会在提供更多背景信息有意义的情况下发布安全博客文章,例如当前的问题。

安全是我们的首要任务,与社区合作让我们的客户和 亚马逊云科技 云更安全是其中的关键部分。清晰的沟通有助于建立理解和信任。

一起工作

我们删除了直接重映射功能,因为使用该功能的客户不多,而且我们认为,针对受影响设计选择的文档警告不足以为客户提供足够的可见性和保护。我们在合理地假设 API Gateway 客户端表现良好的时代设计并发布了该功能,但随着时代的变化,API 客户端可能存在疏忽甚至敌对行为是有道理的。有多种替代方法可以为客户提供相同的结果,但采用更具预期性和可控性的方式,这使得这一过程变得更简单。

当研究人员报告潜在的安全发现时,我们会努力完成流程,为客户确定最佳结果。在大多数情况下,我们可以调整设计以解决问题,同时保留受影响的功能。

在极少数情况下,例如这种情况,更有效的前进道路是取消某项功能,转而采用更可预期和更安全的方法。这是不断发展的架构和构建弹性系统的核心原则。这是我们在 亚马逊云科技 经常练习的内容,也是我们通过 AW S 架构完善 的框架与客户和社区分享的关键原则。

我们感谢 Omegapoint 团队报告了这些问题,也感谢所有继续与我们合作以帮助我们的客户更安全地使用 亚马逊云科技 云的研究人员。

想了解更多 亚马逊云科技 安全新闻?在 推特 上关注我们 。

Mark Ryland

马克·雷兰

德·马克是 亚马逊云科技 首席信息安全官办公室主任。他在科技行业拥有 30 多年的经验,曾在网络安全、软件工程、分布式系统、技术标准化和公共政策方面担任领导职务。此前,他曾担任 亚马逊云科技 世界公共部门团队的解决方案架构和专业服务总监。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。