Blackhat2023解读——规避云中的日志记录:AWS CloudTrail绕过
2023-10-10 17:9:59 Author: mp.weixin.qq.com(查看原文) 阅读量:41 收藏

一.  什么是AWS CloudTrail

CloudTrail 是AWS一项服务[1],可对用户的AWS账户进行合规审计、运营审计和风险审计。用户可以通过CloudTrail记录、监控、存储与AWS服务相关的账户活动,包括通过Amazon控制台、Amazon SDKs、命令行工具和其他 AWS服务执行的操作。CloudTrail简化了安全分析、资源更改跟踪和故障排除。CloudTrail在用户创建AWS账户时自动启用,用户可以在CloudTrail控制台中查看过去90天内的账户活动事件记录。

AWS CloudTrail的优势:

简化合规:CloudTrail自动记录和存储在AWS账户中执行的操作的事件日志,从而简化合规性地审核。

用户资源活动可见:CloudTrail通过Amazon管理控制台及API调用的方式提高用户对账户、资源活动的可见性。

安全分析与故障排除:CloudTrail通过捕获指定时间段内AWS账户活动历史发现敏感、危险操作,进行故障排除。

安全自动化:AWS CloudTrail允许用户跟踪并自动响应威胁AWS资源安全的账户活动。

二. AWS CloudTrail绕过

绕过CloudTrail帮助攻击者规避运维、安全人员对其在AWS账户中执行操作的审计,隐藏自己的攻击行为,做到“来无影,去无踪”。在该议题中,作者Nick Frichette分享了三种CloudTrail绕过方式,分别为协议更改、未记录API以及非生产Endpoits

2.1

绕过方式1:协议更改

Nick Frichette发现一些AWS服务通过API调用时存在枚举权限的漏洞,且枚举过程不会CloudTrail所监控。该漏洞影响40种不同AWS服务中的645种不同API操作。这些服务均有以下三个特点[2]:

  • 使用 JSON 1.1 协议

  • API 操作根据权限集返回唯一的错误代码

  • 与该操作关联的资源设置为“*”

该漏洞这是通过设置不正确的Content-Type请求头来触发的。具体来说,通过API方式调用这些服务前将请求头Content-Type的值由application/x-amz-json-1.1更改为application/x-amz-json-1.0,在1.1兼容服务上使用 application/x-amz-json-1.0会导致调用服务后AWS的响应会根据该凭证的真实权限进而发生改变。若该凭证没有调用服务API的权限,则AWS会响应403。若该凭证拥有调用服务API的权限,则AWS会响应404。

图1 不同权限、协议类型对CloudTrail记录的影响

由于这是技术上的“协议版本错误”请求,这些请求不会被记录到CloudTrail中。因此,攻击者可通过该漏洞“隐匿”枚举给定角色是否拥有相关服务的API调用权限。

2.2

绕过方式2:未记录API

未记录的API是一种存在于AWS中但未出现在AWS公共文档和SDK中的API,这些API虽然未被官方记录,但仍可能存在安全风险。未被记录的API通常出现在AWS 控制台中。Nick Frichette从AWS控制台的JavaScript中提取的模型并发现未被AWS记录的API。许多AWS控制台服务使用与应用程序访问服务相同的API,诸如IamAdmin这样的未记录的服务接口,如下所示:

图2-1 控制台中泄露的API

图2-2 控制台中泄露的API

iamadmin接口能够使AWS用户配置访问角色、用户和策略的界面,且该接口执行的所有操作未在 CloudTrail 中记录为任何事件。iamadmin接口与传统的iam接口存在一一映射关系,如下图所示:

图3 iamadmin与传统iam操作映射关系

此外,Nick Frichette还发现了另外几个未被记录的API——amplify:GetDistributionDetails、apprunner:ListVpcConnectorsForAccount和apprunner:ListObservabilityConfigurationsForAccount。Nick Frichette通过amplify:GetDistributionDetails实现了与cloudfront关联AWS用户Account ID的泄漏;通过apprunner:ListVpcConnectorsForAccount和apprunner:ListObservabilityConfigurationsForAccount接口实现了跨租户攻击——通过其他用户account id可能泄露其VPC连接器的安全组ID、子网ID和VPC连接器ARN,以及可观察性配置[3,4]。

2.3

绕过方式3:非生产endpoints

非生产endpoints诸如ssm-gamma.us-east-1.amazonaws.com等。这些endpoints不一定能够对AWS Service资源进行操作,但它们拥有与生产环境相同的授权中间件。非生产endpoints使通过这些非生产endpoints绕过cloudtrail隐匿枚举AWS账户权限成为可能。

图4 非生产endpoints

上图展示了AWS中存在的一些非生产endpoints。Nick Frichette发现通过这些非生产endpoints调用对应服务的API的操作会导致CloudTrail产生以下两种结果[5,7]:

  • CloudTrail不会记录相关操作事件;

  • 混淆CloudTrail记录事件的事件源,如执行AWS 命令行指令:

aws ivs list-channels \--region ap-northeast-1 \--endpoint-url https://ivs-gamma.ap-northeast-1.amazonaws.com

CloudTrail的事件记录如下图所示;

图5 被混淆的事件源

以上两种结果都能使攻击者绕过CloudTrail监控,从而进行隐匿化的恶意攻击,如枚举AWS凭证、删除一个账户拥有的权限。

三.  总结

作者Nick Frichette建议相关研究人员通过以下三个思路找寻更多的AWS CloudTrail绕过方式[6]:

  • 使用Certificate Transparency日志来查找感兴趣的Endpoints

  • 从boto库和控制台的JavaScript中提取模型

  • 尝试跨协议请求

不仅仅是AWS,其他公有云服务提供商应该重视审计日志绕过这个攻击面,站在攻击者的视角采取相应措施,及时规避可能出现的安全问题。

参考文献

[1] https://docs.aws.amazon.com/zh_cn/awscloudtrail/latest/userguide/cloudtrail-user-guide.html

[2] https://frichetten.com/blog/aws-api-enum-vuln/

[3] https://frichetten.com/blog/undocumented-amplify-api-leak-account-id/

[4] https://frichetten.com/blog/minor-cross-tenant-vulns-app-runner/

[5] https://www.blackhat.com/us-23/briefings/schedule/index.html#evading-logging-in-the-cloud-bypassing-aws-cloudtrail-32741

[6] https://cendyne.dev/posts/2023-08-23-evading-logging-in-the-cloud-bypassing-cloudtrail.html

https://www.youtube.com/watch?v=61C_lEQ5qNM

内容编辑:创新研究院 刘文新
    责任编辑:创新研究院 陈佛忠

本公众号原创文章仅代表作者观点,不代表绿盟科技立场。所有原创内容版权均属绿盟科技研究通讯。未经授权,严禁任何媒体以及微信公众号复制、转载、摘编或以其他方式使用,转载须注明来自绿盟科技研究通讯并附上本文链接。

关于我们

绿盟科技研究通讯由绿盟科技创新研究院负责运营,绿盟科技创新研究院是绿盟科技的前沿技术研究部门,包括星云实验室、天枢实验室和孵化中心。团队成员由来自清华、北大、哈工大、中科院、北邮等多所重点院校的博士和硕士组成。

绿盟科技创新研究院作为“中关村科技园区海淀园博士后工作站分站”的重要培养单位之一,与清华大学进行博士后联合培养,科研成果已涵盖各类国家课题项目、国家专利、国家标准、高水平学术论文、出版专业书籍等。

我们持续探索信息安全领域的前沿学术方向,从实践出发,结合公司资源和先进技术,实现概念级的原型系统,进而交付产品线孵化产品并创造巨大的经济价值。

长按上方二维码,即可关注我


文章来源: https://mp.weixin.qq.com/s?__biz=MzIyODYzNTU2OA==&mid=2247495981&idx=1&sn=ba81dc73a8c60747105aad6a8f16721c&chksm=e84c57f2df3bdee484b38947a96cebf9f2c8968ff654b824501aa701758eaada5faf5d955d2c&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh