当前位置:主页 > 承德科技 > 文章内容

新2会员手机管理端(www.22223388.com):​浅谈云上攻防之——元数据服务带来的平安挑战_Filecoin FLA

日期:2021-06-11 浏览:

Filecoin FLA官网

www.ipfs8.vip)是FiLecoin致力服务于使用FiLecoin存储和检索数据的官方权威平台。IPFS官网实时更新FiLecoin(FIL)行情、当前FiLecoin(FIL)矿池、FiLecoin(FIL)收益数据、各类FiLecoin(FIL)矿机出售信息。并开放FiLecoin(FIL)交易所、IPFS云矿机、IPFS矿机出售、租用、招商等业务。

,

前言


原创作者:腾讯云鼎实验室 ruiqiang


在针对云上营业的的攻击事宜中,许多攻击者将攻击懦弱的元数据服务作为攻击流程中主要的一个环节并最终造成了严重的危害。

以2019年的美国第一资源投资国际团体(CapitalOne)信息泄露事宜举例,凭证《ACase Study of the Capital One Data Breach》讲述指出,攻击者行使CapitalOne部署在AWS云上实例中的SSRF破绽向元数据服务发送请求并获取角色的暂且凭证,在获取角色暂且凭证后将该角色权限下的S3存储桶中的数据复制到攻击者的内陆机械上,最终导致这一严重数据泄露事宜的发生,这一事宜影响了北美跨越1亿人。CapitalOne 的股价在宣布数据泄露后收盘下跌 5.9%,在接下来的两周内总共下跌了 15%。

Capital One信息泄露事宜攻击原理图,可参见图:

  

       CapitalOne信息泄露事宜攻击原理图


在先容元数据服务带来的平安挑战之前,我们先来简朴先容一下元数据服务以及角色的看法      

01元数据服务以及角色先容

  元数据服务

元数据即示意实例的相关数据,可以用来设置或治理正在运行的实例。用户可以通过元数据服务在运行中的实例内查看实例的元数据。

以AWS举例,可以在实例内部接见如下地址来查看所有种其余实例元数据:

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

169.254.169.254属于链路内陆地址(Link-localaddress),链路内陆地址又称连结内陆位址,是盘算机网络中一类特殊的地址,它仅供于在网段,或广播域中的主机相互通讯使用。这类主机通常不需要外部互联网服务,仅有主机间相互通讯的需求。IPv4链路内陆地址界说在169.254.0.0/16地址块。

而在详细的手艺实现上,云厂商将元数据服务运行在Hypervisor(虚拟机治理程序)上。当实例向元数据服务提议请求时,该请求不会通过网络传输,也永远不会脱离这一台盘算机。基于这个原理,元数据服务只能从实例内部接见。

可以PING云厂商所提供的元数据服务域名,以查看其IP地址

从上图可见,元数据服务属于链路内陆地址。

从设计上来看,元数据服务看起来很平安,那为什么说元数据服务懦弱呢?

由于元数据服务部署在链路内陆地址上,云厂商并没有进一步设置平安措施来检测或阻止由实例内部发出的恶意的对元数据服务的未授权接见。攻击者可以通过实例上应用的SSRF破绽对实例的元数据服务举行接见。

因此,若是实例中应用中存在SSRF破绽,那幺元数据服务将会完全露出在攻击者眼前。

在实例元数据服务提供的众多数据中,有一项数据稀奇受到攻击者的青睐,那就是角色的暂且接见凭证。这将是攻击者由SSRF破绽到获取实例控制权限的桥梁。

接见治理角色

既然攻击涉及到接见治理角色的暂且凭证,我们首先看下接见治理角色是什么:

接见治理的角色是拥有一组权限的虚拟身份,用于对角色载体授予云中服务、操作和资源的接见权限。用户可以将角色关联到云服务器实例。为实例绑定角色后,将具备以下功效及优势:

  • 可使用 STS 暂且密钥接见云上其他服务

  • 可为差其余实例赋予包罗差异授权战略的角色,使实例对差其余云资源具有差其余接见权限,实现更细腻粒度的权限控制

  • 无需自行在实例中保留 SecretKey,通过修改角色的授权即可换取权限,快捷地维护实例所拥有的接见权限


 详细的操作流程如下:

在将角色乐成绑定实例后,用户可以在实例上接见元数据服务来查询此角色的暂且凭证,并使用获得的暂且凭证操作该角色权限下的云服务API接口。

 02针对元数据服务的攻击

接下来我们将先容下针对元数据服务的一些常见的攻击模式。攻击者可以首先通过目的实例上的SSRF破绽获取与实例绑定的角色名称(rolename)。攻击者可以组织接见元数据接口的payload,并通过存在SSRF破绽的参数转达:

http://x.x.x.x/?url=http://169.254.169.254/latest/meta-data/iam/info

在获取到角色名称后,攻击者可以继续通过SSRF破绽获取角色的暂且凭证:

http://x.x.x.x/url=http://169.254.169.254/latest/metadata/iam/security-credentials/<rolename>

获取角色暂且凭证的案例可参见下图:

从上图可见,攻击者可以获取角色的TmpSecretID以及TmpSecretKey。

在攻击者乐成获取角色的暂且凭证后,将会检查获取到的角色暂且凭证的权限战略。

有的时刻,可以通过获取到的角色名称,来预测该角色的权限战略,例如角色名为:TKE_XXX,则这个角色很大可能是拥有操作TKE容器服务的权限。

此外,若是获取的暂且密钥拥有查询接见治理接口的权限,攻击者可以通过接见“接见治理”API来准确获取的角色权限战略。可以通过如下几种方式判断获取角色的权限战略:

1、通过使用暂且API凭证接见“获取角色绑定的战略列表”API接口,见下图:

从上图可见,攻击者获取到的与实例绑定的角色的暂且凭证权限战略是“AdministratorAccess”,这个战略允许治理账户内所有用户及其权限、财政相关的信息、云服务资产。

2、通过使用暂且API凭证接见“获取角色详情”API接口,见下图:

通过查询的返回效果可以见,角色的权限战略为AssumeRole。

在弄清晰窃取的凭证所拥有的权限后,攻击者便可以通过凭证的权限制订后续的攻击流程。

但在最先后续的攻击阶段之前,攻击者会先判断当前权限是否可以获取目的的数据资源。

在所有云资源中,攻击者们往往对目的的数据加倍感兴趣。若是攻击者获取的密钥拥有云数据库服务或云存储服务等服务的操作权限,攻击者将会实验窃取目的数据。

暂且凭证同样也可以辅助攻击者们在目的实例中执行指令并控制实例权限。

与通过密钥组织请求这种方式提议攻击相比,攻击者们在实战中更倾向于使用云下令行工具来举行攻击。

云服务厂商为用户提供了响应的云下令行工具以治理云服务,例如腾讯云提供的TCCLI工具、AWS的AWSCLI工具。攻击者可以通过在云下令行工具中设置窃取到的API密钥来对云资源举行挪用。与组织请求接见云API接口这种方式相比,使用云下令行工具将会给攻击者带来更多便捷。

在使用云下令行工具之前,应先设置API密钥,以AWSCLI工具设置举例,可以将:

攻击者将窃取来的AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_SESSION_TOKEN设置完成后,可以使用云下令行工具在目的实例上执行下令。

在设置好密钥后,攻击者可以实验使用如下图下令通过AWSCLI在实例中运行bash剧本以获取实例控制权限。

借助通过元数据服务窃取到的凭证以及AWSCLI所提供的功效,攻击者可以在实例中执行反弹shell下令,由此进入实例。

除此之外,攻击者还可以选择修改userdata,将反弹shell写入userdata中后将实例重启,从而控制实例。

Userdata涉及到云厂商提供的一种功效,这项功效允许用户自界说设置在实例启动时执行的剧本的内容。

通过这一功效,攻击者可以实验在实例的userdata中写入恶意代码,这些代码将会在实例每次启动时自动执行。

以AWS举例,攻击者可以将恶意代码写入my_script.txt文件中,然后执行如下指令将my_script.txt文件中内容导入userdata中。

随后,攻击者通过如下下令重启实例:

当实例重启时,userdata中的恶意代码将会被执行。

攻击者除了可以使用暂且凭证获取实例的控制权限,通过元数据服务窃取到的拥有一定权限的角色暂且凭证在持久化阶段也施展着作用。攻击者实验使用通过元数据服务获取的暂且凭证举行持久化操作,确保能够连续拥有接见权限,以防被发现后强行终止攻击行为。

使用暂且凭证举行持久化的方式有许多,好比说在上文中所提及的在userdata中写入恶意代码这项攻击手艺,也是可以运用在持久化阶段:通过在实例的userdata中写入恶意代码,这些代码将会在实例每次启动时自动执行。这将很好的完成持久化操作而不易被发现。

除此之外,攻击者还可以实验在账户中确立一个新的用户以举行持久化,以AWSCLI举例,攻击者可以通过awsiam create-user --user-name Bob 为账户新建一个名为Bob的用户

随后使用awsiam create-access-key --user-name Bob指令为Bob用户确立凭证

虽然这个方式操作简朴且有用,然则账户里突然新增的用户极其容易被察觉,因此并不是一个稀奇有用的持久化方式。

此外,攻击者还会使用一种常见的持久化手法,那就是给现有的用户分配分外的密钥。以针对AWS的攻击来说,攻击者可以使用aws_pwn这款工具来完成这项攻击,aws_pwn地址如下:

https://github.com/dagrz/aws_pwn

aws_pwn提供了多项手艺以供攻击者可以完成针对aw的持久化攻击,关于aws_pwn所提供的持久化功效可见下图:

通过元数据服务窃取也可以被攻击者应用于横向移动操作。攻击者可以通过元数据服务窃取角色的暂且凭证横向移动到角色对应权限的资源上。除此之外,攻击者会在所控制的实例上寻找设置文件,并通过设置文件中的设置项中获取其他资源的接见方式以及接见凭证。

攻击者在横向移动的历程中,获取到可以操作云数据库或存储服务需要权限的密钥或是登录凭证后,攻击者就可以接见这些服务并实验将其中的用户数据复制到攻击者的内陆机械上。

以AWSCLI为例,攻击者可以通过如下下令将s3存储桶中的内容同步到内陆

仍然以上文提及的CapitalOne银行数据泄露事宜举例,攻击者使用获取到的角色暂且凭证,多次执行“awss3 ls”下令,获取CapitalOne 账户的存储桶的完整列表;

接着攻击者使用 sync下令快要30 GB 的Capital One用户数据复制到了攻击者内陆。

总的来说,元数据服务为云上平安带来了极大的平安挑战,攻击者在通过SSRF等破绽获取到实例绑定的角色的暂且凭证后,将会将其应用于云上攻击的各个阶段。通过损坏用户系统,滥用用户资源、加密用户资源并举行勒索等手段影响用户环境正常使用。

03元数据平安性改善

以AWS为例,AWS为领会决元数据服务在SSRF 攻击眼前露出出的平安性问题,引入IMDSv2来改善其总体平安情形。

在IMDSv2中,若是用户想接见元数据服务,首先需要在实例内部向IMDSv2发送一个HTTPPUT请求来启动会话,示例如下:

X-aws-ec2-metadata-token-ttl-seconds用于指定生计时间(TTL)值(以秒为单元),上文中天生的token有用期为6小时(21600秒),在IMDSv2中21600秒是允许的最大TTL值。此请求将会返回一个token,后续接见元数据服务,需要在HTTPheader中携带此token,见如下请求:

完整流程如下:

TOKEN=`curl-X PUT "http://169.254.169.254/latest/api/token" -H"X-aws-ec2-metadata-token-ttl-seconds: 21600"

curlhttp://169.254.169.254/latest/meta-data/profile -H“X-aws-ec2-metadata-token: $TOKEN”

流程图如下:

可见,在接纳IMDSv2时,纵然实例中应用存在SSRF破绽,攻击者也无法容易的行使SSRF破绽向元数据服务发出PUT请求来获取token,在没有token的情形下,攻击者并不能接见元数据服务,也就无法获取角色的暂且凭证举行后续的攻击行为。

除了使用PUT启动请求这项平安战略之外,IMDSv2还引入了如下两个机制保证元数据服务的平安:

  1. 不允许X-Forwarded-For标头:若是攻击者通过反向署理的方式简直可以绕过PUT限制,然则,通过署理转达的请求将包罗“ X-Forwarded-For”标头。这样的请求被IMDSv2拒绝,而且不刊行令牌。

  2. IP数据包TTL设置为“ 1”:TTL指定数据包被路由器抛弃之前允许通过的最大网段数目,是IP数据包在网络中可以转发的最大跳数(跃点数),将其值设置为1可确保包罗隐秘令牌的HTTP响应不会在实破例部流传。纵然攻击者能够绕过所有其他珍爱措施,这也将确保令牌不会在实破例部流传,而且一旦数据包脱离实例,数据包将被抛弃。

值得注重的是,AWS以为现有的实例元数据服务(IMDSv1)是完全平安的,因此将继续支持它。若是不执行任何操作,则IMDSv1和IMDSv2都可用于EC2实例。这就是说,在不自动禁用IMDSv1的情形下,实例仍存在着平安隐患。

04元数据服务更多平安隐患


IMDSv2方案简直可以有用的珍爱存在SSRF破绽的实例,使其元数据不被攻击者接见。然则这项手艺可以完善的珍爱元数据、珍爱租户的云营业平安吗?谜底是不能。

设想一下:当攻击者通过其他破绽(例如RCE破绽)获取实例的控制权之后,IMDSv2的平安机制将变得形同虚设。攻击者可以在实例上发送PUT请求获取token,随后行使获得的token获取角色暂且凭证,最后行使角色暂且凭证接见角色绑定的一切云营业,详细流程见下图:

总之,当攻击者通过RCE破绽获取实例控制权后,可以通过元数据服务获取到的暂且凭证举行横向移动。鉴于云厂商产物API功效的壮大性,在获取角色暂且凭证后,可能造成极其严重的影响

值得注重的是,若是在云平台控制台中执行一些高危行为,平台默认都市需要举行手机验证。但通过使用暂且凭证挪用发送请求挪用API接口,并不需要手机验证码,可以绕过这项平安检测。

参考文献

https://aws.amazon.com/cn/blogs/china/talking-about-the-metadata-protection-on-the-instance-from-the-data-leakage-of-capital-one/

https://medium.com/@shurmajee/aws-enhances-metadata-service-security-with-imdsv2-b5d4b238454b

https://web.mit.edu/smadnick/www/wp/2020-07.pdf

https://github.com/dagrz/aws_pwn

https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/cli-services-s3-commands.html,using-s3-commands-managing-objects-sync

https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_users_create.html

https://rhinosecuritylabs.com/cloud-security/aws-security-vulnerabilities-perspective/



Allbet开户

Allbet开户

欢迎进入Allbet开户(www.aLLbetgame.us),欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。