Cloud RedTeam视角下元数据服务攻防实践

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
简介: 纵观云上的攻击事件,以及近期的一些热点事件,大家不难发现,元数据服务攻击事件频繁的发生。在云产业不断发展壮大的当今,元数据服务已经成为了攻击者攻击流程中的一个重要的环节。

文章首发于:火线 Zone-云安全社区

作者:高瑞强

高瑞强,腾讯安全云鼎实验室,目前从事云上攻防安全相关的研究工作。

今天分享的主题是《Cloud RedTeam 视角下元数据服务攻防实践》。

image.png

纵观云上的攻击事件,以及近期的一些热点事件,大家不难发现,元数据服务攻击事件频繁的发生。在云产业不断发展壮大的当今,元数据服务已经成为了攻击者攻击流程中的一个重要的环节。我们从攻击者的视角来分析攻击流程中元数据服务所面临的风险,也可以更好地迎战元数据服务带来的安全挑战。

image.png

今天分享的议题由四个部分组成。

元数据服务概览
安全事件回顾
针对元数据服务攻击
ATT&CK矩阵和元数据服务

image.png
image.png

给大家简单举一个例子,介绍一下什么叫做云服务器实例元数据。大家可以设想一下,在租用云厂商所提供的云服务器服务后,首先需要选购机型、选购地区、选购配置的时长或者是计费方式,当购买成功之后,就会为用户生成一个云服务器的实例。

这个实例有自己的属性,常见的可以举例,实例ID它自身绑定了一些角色信息,也会有一些安全组信息的绑定情况,包括大家日常可见的实例,自身有内网IP、外网IP、地域信息,这些就是我们所说的云服务器实例的元数据。

那元数据是怎么查询或者使用的呢?用户可以通过元数据服务接口,在运行的实例内查询实例的元数据。具体是在云服务器实例的接口上,通过元数据服务查询的请求来查询相应的元数据相关的数据。

image.png

在这些实例的属性中,从攻击者的角度来看,最关心的便是与实例绑定的角色。

角色是云厂商所提供访问管理中的一个功能模块,可以使用访问管理功能中可以新建一个角色,用这个角色来管理这些或者说进行授权、进行操纵这些云资源。

各个云厂商提供角色功能,可以细粒度化的控制配置。在为这个角色配置权限之后,可以将这个角色绑定在云服务器实例上,然后在云服务器实例中就可以用到这个角色,通过它的临时凭据,来操作这个云服务。

也就是图上的流程图,其实就是创建角色,配置权限以及绑定实例。同理,如果用户想使用这个元数据的角色信息,它可以简单的在自己的这台实例上,通过元数据服务接口查询即可。

image.png

那么一些市面上比较常见的云厂商,它的元数据服务接口地址到底是什么样子的?

aws地址:

http://169.254.169.254/latest/meta-data/

Google Cloud地址:

http://metadata/computeMetadata/v1/

Azure地址:

http://169.254.169.254/metadata/instance?api-version=2017-04-02

Oracle Cloud地址:

http://169.254.169.254/opc/v1/instance/

image.png

这个地址的学名叫做链路本地地址,链路本地地址又称连结本地位址,是计算机网络中一类特殊的地址,它仅供于在网段,或广播域中的主机相互通信使用;这类主机通常不需要外部互联网服务,仅有主机间相互通讯的需求。链路本地地址在IPv4链路本地地址定义在169.254.0.0/16这个地址块,因此大家看到所涉及的这些云厂商,地址都是链路本地地址。

image.png

为什么要选用这个链路本地地址作为元数据服务接口提供的地址?

它的特性有点如下,实例元数据服务使用链路本地地址提供服务;当实例向元数据服务发起请求时,该请求不会通过网络传输,也永远不会离开这一台计算机;基于这个原理,元数据服务理论上只能从实例内部访问。

但是从这个攻击事件上来看,其实数据是有可能被泄露出去的。具体怎么泄露的,一起来看一个历史上的经典案例。

image.png
image.png

大约在2019年的时候,美国的Capital One银行发生了一起相当严重的数据泄露事件,北美大约有1亿人受到了这次事件的影响,上亿条信用卡数据、十余万社保号码被泄露出来。

这个事件,不仅给这个银行的用户带来了沉重的打击,也给银行自身带来了相当严重的影响,银行的股价在收盘的时候下跌了5.9%,在两周之内下跌了15%。

攻击者发现,Capital One银行的web应用部署于AWS云服务器上。此外,攻击者发现Capital One应用程序中存在了一个SSRF漏洞。

如果在传统的攻防中,如果一个应用存在SSRF漏洞,虽然漏洞比较严重,但是也并不会产生如此严重的影响。这个就是传统漏洞与云上结合所带来的更深远的影响。

攻击者通过SSRF漏洞发起了内网请求,然后成功地访问到了这台云服务器实例上的元数据服务接口,并且它通过这个接口成功地读到了一个角色,并且通过这个角色拿到了这个角色的临时凭据。

这个角色就是Capital One银行在云服务器上部署了他的代码,它很有可能也租用了亚马逊云的对象存储服务,就是所谓的aws存储桶,然后他把用户数据存在了亚马逊云的存储桶中。

这就导致一个问题,攻击者拿到的这个角色,恰恰是Capital One银行的应用程序,用来调用他在亚马逊云上的对象存储的角色。因此,攻击者把这个历史凭据保存到了本地,并且成功的把存储桶中所有的用户数据复制下载到本地,造成了一个相当严重的影响。

image.png
image.png

元数据服务风险,它存在于两个方面,一个是平台侧、一个是用户侧。

image.png

针对于用户侧的攻击,攻击者通过目标部署在云服务器实例上的应用程序的漏洞。比如说SSRF、RCE、任意文件读取等漏洞。通过这些漏洞来访问服务器的元数据服务接口,并且获得相应的数据用以后续的攻击。

image.png

细化介绍一下常见的攻击者所采用的攻击流程。

步骤一:获取利用点。攻击者会使用一些常规的漏洞探测方式,比如漏洞扫描、手动测试这些方式,发现部署在云上应用中的脆弱点。

image.png

步骤二:攻击者发现了这个脆弱点之后,他将会尝试访问云上的元数据服务接口,如果一旦发现这个元数据服务接口是可以访问的,他将会尝试获取与实例绑定的角色名称。

我们这里以SSRF漏洞进行举例,看看攻击者是如何通过SSRF漏洞获取到与实例绑定的角色名称。

我们假设http://x.x.x.x/?url=http://169.254.169.254/latest/meta-data/iam/info 网站上它存在一个SSRF漏洞,并且有回显,它存在url参数,后面我们构造一个payload来访问这个元数据服务,并且通过这个地址获取角色名称。

image.png

步骤三:当获取角色名称之后,我们通过名称信息进一步的获取角色的临时凭据,攻击者可以继续通过SSRF漏洞来访问元数据服务接口,获取角色历史凭据,通过的payload跟上一个获得的角色名称很类似,但是这里是相当于我们把角色名称传入来获取此角色的历史凭据。如图所见,这个历史凭据,也可以成功的返回回来。

这里临时凭据,他有个特点,一般都会是TmpSecretld或者TmpSecretKey,而且他一般都跟着一个token,为什么大家的主凭据没有token而历史凭据有token?

因为主凭据相当于是拥有这个账号的所有权,等同于你的账号权限,但是临时凭据,他需要标识这条凭据的存活时间、权限策略,所以说它有一个token用来标识凭据的这些信息。

image.png

步骤四:在获取到角色的名字、角色的临时凭据了,还需要猜测一下,或者说来确定一下这个角色,他的权限策略是什么?也通过这个权限策略制定后续的攻击行为,我们怎么获得角色的权限策略?有两个比较常见的方式。

方式1:通过名称初步猜测角色用途。比如说一个业务,他应用到角色来访问存储桶,他很有可能为角色命名和存储桶相关的名字,比如说他用这个角色来操作云服务器,它可能会为这个角色命名一个跟云服务器比较关联的名字,方便后续的管理和使用。

方式2:通过“访问管理”API接口获取角色详情。但是有个前提,这个角色他的权限是可以操作访问管理的权限,才可以进行这一步的操作。

image.png

步骤五:在搞清楚角色用途后,可以进行凭据后的后利用,根据角色的权限不同,可以攻击对象存储服务、攻击云服务器实例、攻击访问管理等等。

接下来,举几个案例具体看一下。

image.png

第一个案例:窃取存储桶中的用户数据。在所有的云资源中,攻击者往往对目标的数据更加感兴趣,如果攻击者获取的临时凭据拥有云数据库服务或云存储服务等服务的操作权限,攻击者将会尝试窃取目标数据 。

具体可以怎么做?还是以亚马逊云举例子,AWS其实提供了相应的一些命令行工具,或者说一些可视化工具用来简化操作,攻击者就可以借用这些工具配置临时凭据,并且利用存储桶工具将存储桶的内容下载到本地。

Capital One银行的数据泄露案例,后续官方调查取证的时候,发现攻击者用的就是这个思路。

image.png

第二个案例:在云服务器实例中运行命令。借助通过元数据服务接口窃取到的凭据,借助AWS CLI所提供的命令行工具,攻击者可以在实例中执行反弹shell命令,由此进入实例。

参考上图,比如说在这个参数中配置好凭据,或者在参数中直接执行命令。

image.png

第三个案例:在云服务器实例中写入后门。这个步骤其实是在攻击阶段中的持久化阶段很有效果。云服务商一般会提供一个叫userdate的字段,或者说一个功能,其实这个功能是为了方便使用者在Windows实例也好,Linux实例也好,在它开机启动的时候加载用户的脚本,然后攻击者可以通过将userdata中写入后门,然后当实例下次重启的时候,你到后门就可以生效,或者说就进行持久化操作。

image.png

第四个案例:利用访问管理创建新用户。还是通过这个凭据,我们可以通过访问管理的功能,创建一个用户,命名为Bob,并且为Bob创建一个权限策略,比如说他拥有管理员权限,并且复制Bob上,但是这个攻击他会有一个前提,就是你获取的临时凭据,获取的角色,他必须有相应的访问管理的权限才可以操作。

image.png

介绍完这个用户侧的一些风险,我们接下来看产品测的一些风险,云产品中也会应用到元数据服务。因此,元数据安全挑战也会被带入到云产品中。

image.png

举一个比较有代表性的案例,Web应用托管服务,Web应用托管服务是一种常见的平台即服务产品,可以用来运行并管理web类、移动类和API类的应用程序。

image.png

还是以亚马逊云举例,Web应用托管服务可以让用户将Web应用直接上传到托管服务中,当代码上传到托管服务中,Web托管服务将用户代码存储到对象存储服务中。

所以说与之前的攻击流程相似,攻击者也是可以利用SSRF漏洞,访问到云服务器,通过云服务器获取到相应的元数据,并且通过拿到的对象存储的角色,以及对象存储的权限来访问存储桶。

image.png

我们再看平台测更多的安全风险,除了给大家介绍的aws下的安全风险,平台测他其实还有更危险的一个安全风险,如果这个平台测没有配置好,这个角色的权限将会导致一个什么问题?

比如说平台测的产品,它的功能特别强大,它可能会使用云服务器、对象存储、容器服务等一系列的云上服务,那他的角色的权限将会拥有如下的这些服务的权限,攻击者获取到这个角色之后,可以轻松的操作,或者说控制这些云资产,而且可以将攻击面直接扩散到其他产品中。

image.png
image.png

大家可以看到上面图片,这个是云鼎实验室推出的云安全攻防矩阵,在攻防矩阵的阶段中,可能会出现到刚才给大家介绍的实例元数据服务的利用情况,相当于一个技术攻击,纵观整个矩阵,可以发现云服务器的元数据服务,也是攻击者所常用的攻击切入点。

关于这个矩阵,在腾讯安全云鼎实验室官网:

https://cloudsec.tencent.com/#/home

可以在官网中可以看到更多关于矩阵的详情。

image.png

云原生安全攻防全景图,这个攻防全景图从五个大部分来描述了一下云原生的安全攻防的一个场景。主要是从容器基础设施、云原生应用安全、云原生安全工具、云厂商产品安全风险、容器编排平台的攻防技术来描述的。

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
安全 数据可视化 测试技术
「译文」CMDB 最佳实践技术指南 -4-CMDB 业务服务映射
「译文」CMDB 最佳实践技术指南 -4-CMDB 业务服务映射
|
1月前
|
弹性计算 Prometheus 运维
一文详解阿里云可观测体系下标签最佳实践
在当今数字化转型加速的时代,企业 IT 系统的复杂度与日俱增,如何高效地管理和监控这些系统成为了一项挑战。阿里云作为全球领先的云计算服务商,提供了一整套全面的可观测性解决方案,覆盖从业务、端侧(小程序、APP、H5 等)、应用、中间件、容器/ECS 等全栈的监控体系,旨在帮助企业构建强大而灵活的可观测性体系。其中,标签(Tag)作为一种核心组织和管理手段,在阿里云可观测体系中扮演着至关重要的角色。本文将深入探讨阿里云可观测系列产品中标签的应用,以及如何运用标签在阿里云可观测产品体系下进行体系化建设并给出相关最佳实践。
172 12
|
2月前
|
人工智能 安全 搜索推荐
2024年度云治理企业成熟度发展报告解读(四)支柱结构关系及案例分享
从组织、成本、稳定、安全到性能、效率这样一个路径,我们一定要有策略地完成各个支柱之间的互相配合。云治理不仅仅是技术问题,而是需要多团队合作和管理策略的制定。
2024年度云治理企业成熟度发展报告解读(四)支柱结构关系及案例分享
|
6月前
|
存储
从云存储视角看数据治理的重要性
【6月更文挑战第2天】数据治理是云存储中的关键,扮演着管理数据精灵的角色,确保数据的准确性、完整性、一致性和安全性。通过示例代码展示了数据治理的基本操作,如检查数据错误和完整性。实际数据治理工作复杂且需团队协作,随着数据增长和业务变化而不断进化。它是实现数据有序利用和价值释放的重要保障。让我们共同致力于数据治理,为数据创造一个良好的环境!
67 2
|
7月前
|
存储 网络协议 安全
「译文」CMDB 最佳实践技术指南 -3-CMDB 应用映射 - 技术原理和最佳实践
「译文」CMDB 最佳实践技术指南 -3-CMDB 应用映射 - 技术原理和最佳实践
|
Prometheus 监控 Kubernetes
站点可靠性工程 SRE 最佳实践 -- 黄金监控信号
站点可靠性工程 SRE 最佳实践 -- 黄金监控信号
278 0
|
数据采集 运维 监控
谈谈典型的数据治理体系框架
以规范的方式来管理企业的数据资产已经被广泛接受和认可,但还需要组织架构、原则、过程和规则,以确保数据管理的各项职能得到正确的履行。
谈谈典型的数据治理体系框架
|
数据采集 监控 Oracle
谈谈如何构建基于业务价值驱动的数据治理运营模式
成功的组织有各种各样的规模。这些公司的共同特点是,在优化业务流程执行的同时,通过最大化客户服务来挖掘其全部潜力。
谈谈如何构建基于业务价值驱动的数据治理运营模式
|
数据采集 数据管理 数据挖掘
谈谈现代环境下的数据治理之路
自助数据消费者的需求,敏捷实践的价值与数据治理的传统实践之间存在着天然的瓶颈。
谈谈现代环境下的数据治理之路
|
数据采集 存储 监控
谈谈如何制定完整动态的数据治理框架
作为一个概念,数据治理已经存在了几十年。到了20世纪80年代,计算机的繁荣导致了旨在处理数据质量和元数据管理等问题的技术的出现,这些技术通常以部门为基础,以支持数据库营销或数据仓库工作。
谈谈如何制定完整动态的数据治理框架

热门文章

最新文章