您当前的位置:首页 > 电脑百科 > 网络技术 > 网络知识

云环境下密钥泄露导致的安全问题

时间:2020-07-16 09:50:27  来源:  作者:

前言

如今越来越多的中小型公司选择使用云平台,诸如:阿里云、腾讯云、Amazon、Azure。使用云平台大大降低了企业的资源成本,另一方面随着公用云的普及,也存在着一些风险,当然不是由于云平台本身的安全性欠缺,而是由于使用者在调用API时没有注意安全性而导致的。最常见的问题就是AccessKey泄漏、配置不当。

正文

AccessKey(即访问密钥)是云平台用户在通过API访问云资源时用来确认用户身份的凭证,以确保访问者具有相关权限。AccessKey由云平台提供商(如亚马逊AWS、阿里云等)颁发给云主机的所有者,一般由AccessKeyID(访问密钥ID)和Secret Access Key(私有访问密钥)构成。

主账户/根用户的AccessKey具有主账户的完全权限,因此云厂商不建议直接使用主账户/根用户的AccessKey进行API调用,阿里云会建议你使用RAM子账户进行API的调用,当然这个账户是有相应权限限制的,而腾讯云cos服务除了可以生成子账户外还采用了一个CAM模型,用于生成 COS 的临时密钥。临时密钥有生效时间,作用与阿里oss的RAM子账号类似。

通过临时密钥方式,则可以方便、有效地解决权限控制问题。因为固定密钥计算签名方式不能有效地控制权限,同时把永久密钥放到客户端代码中有极大的泄露风险。从阿里oss AccessKey泄露问题便可看出,下面会讲到这个问题。

OSS AccessKey泄露

对象存储(Object Storage Service,简称OSS),是阿里云对外提供的海量、安全和高可靠的云存储服务。

通过上面描述我们知道AccessKey如果泄露就会导致用户账户被控制,常见的泄露方式有以下几种:

  • APK反编译后的配置文件。
  • GITHUB关键字、JS文件、FOFA等。
  • 低权限的WEBSHELL查看网站的配置文件

拿到AccessKey后的利用方式

  • 第三方平台,如:行云管家
  • OSS Browser
  • OSSUTIL
  • API Explorer

OSS Browser、OSSUTIL是官方阿里云官方提供的工具只能对于OSS进行操作,API调试或者第三方平台可以直接操作ECS,甚至重置服务器。

这里演示一下OSS Browser(https://github.com/aliyun/oss-browser/blob/master/all-releases.md)对OSS的操作

云环境下密钥泄露导致的安全问题

 

阿里云 access key ID 和 access key secret 是访问阿里云API的唯一凭证。Access key ID 是类似身份的标识,而 access key secret 的作用是签名你的访问参数,以防被篡改。Access key secret 类似你的登录密码。

登陆后便可访问文件服务,并对文件进行操作

云环境下密钥泄露导致的安全问题

 

通过行云管家这样的第三方平台,我们可以进一步进行操作。同样的我们需要access key ID 和 access key secret 。

云环境下密钥泄露导致的安全问题

 


云环境下密钥泄露导致的安全问题

 

通过行云管家,不仅可以访问OSS服务,还可以直接重置服务器密码,接管服务器。

云环境下密钥泄露导致的安全问题

 


云环境下密钥泄露导致的安全问题

 

  • 参考案例(http://r3start.net/index.php/2019/09/16/580

COS服务 临时密钥泄露

对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,用户可通过网络随时存储和查看数据。跟阿里云一样腾讯云的主机也有主账户和子账户之分,子账号是由主账号创建的实体,有确定的身份 ID 和身份凭证,拥有登录腾讯云控制台的权限。子账号默认不拥有资源,必须由所属主账号进行授权。与阿里云不同的是,腾讯云引入了临时密钥。

临时密钥(临时访问凭证) 是通过 CAM 云 API 提供的接口,获取到权限受限的密钥。主要是为了解决固定密钥计算签名方式不能有效地控制权限,同时把永久密钥放到客户端代码中有极大的泄露风险的问题。

腾讯云获取临时密钥的过程如下:

云环境下密钥泄露导致的安全问题

 

在这里,第四步下发临时密钥,返回的字段主要包含以下三个字段:

  • TmpSecretId
  • TmpSecretKey
  • Token
云环境下密钥泄露导致的安全问题

 

然后利用这三个字段计算签名,获得签名后,客户端发送携带签名的请求给COS服务器,对Bucket 进行操作。

其中要是想对指定的Bucket 进行操作,我们还需要知道对应的Bucket 名称,以及所属地域Region 。

cosplay!

这里使用GEEKPWN云安全比赛的一道题作为例子来讲一下腾讯云临时密钥的利用。

题目打开是一个上传页面

云环境下密钥泄露导致的安全问题

 

这里我们随便选择一个文件上传,然后使用burp捕获一下数据包

云环境下密钥泄露导致的安全问题

 

这里发现了一个GetTempKey接口,其返回了临时密钥的相关信息

云环境下密钥泄露导致的安全问题

 

这里主要关心TmpSecretId、TmpSecretKey、Token这三个字段,因为这三个字段是计算签名的必要条件。腾讯云公布的有专门计算签名的工具。

更多关于计算签名的细节参考官方文档(https://cloud.tencent.com/document/product/436/7778)。

这道题我们选择更简便的方式,官方还提供了COS 请求工具,使用说明(https://cloud.tencent.com/document/product/436/30996)。

云环境下密钥泄露导致的安全问题

 

想对指定的Bucket 进行操作,我们还需要知道对应的Bucket 名称,以及所属地域Region。通过查看页面源码发现泄露了对应的Bucket 名称以及Region。

云环境下密钥泄露导致的安全问题

 

有了这些条件后我们就可以访问cos的资源了。选择使用临时密钥进行访问。x-cos-security-token的值为返回字段中Token的值。

云环境下密钥泄露导致的安全问题

 

找了一个flag.txt,查看flag.txt的内容。参数key为其所在key标签的值,类似于目录。

云环境下密钥泄露导致的安全问题

 

成功拿到flag。

通过这道题我们可以发现临时密钥的权限比较小,获取难度较大。同时临时密钥存在生效时间,默认为1800s。所以,相对于固定密钥也更为安全可靠。

其它

上面讨论的是国内的厂商,当然国外的云厂商,如Amazon的AWS,也存在很多安全问题,例如S3存储桶配置不当,泄露AccessKey后,可对S3存储桶进行增删操作,这里的S3类似于OSS、Elastic Beanstalk中利用SSRF访问元数据,获取AccessKey等一些敏感信息等等。

AWS AccessKey的获取手段:

  • Github关键词查找,accessKeyId、secretAccessKey、AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY。
  • 通过网站目录或者泄漏出来的源代码或者DEBUG信息。
  • SSRF读取元数据。
  • 前端页源代码。

AWS常见的漏洞类型:

  • AmazonS3 Bucket允许任意文件上传和读取
  • AmazonS3 bucket允许匿名访问
  • AmazonS3 bucket允许列出文件
  • AmazonS3 bucket允许盲上传
  • AmazonS3 bucket允许任意读取/写入对象
  • AmazonS3 bucket显示ACP/ACL

推荐几个hackerone报告

Legal Robot:错误配置导致的信息泄露(https://hackerone.com/reports/189023)
Zomato:错误配置导致的非法改动文件(https://hackerone.com/reports/229690)
Reverb.com:错误配置导致的任意文件上传(https://hackerone.com/reports/172549)
Ruby:错误配置导致的任意文件删除(https://hackerone.com/reports/209223)
Twitter:错误配置导致的文件读取,写入,删除(https://hackerone.com/reports/129381)

从上面的报告便可以看出大多数云漏洞的产生是由于客户配置错误,凭证管理不当泄漏,而不是云提供商方面的漏洞。

最后

如今越来越多的企业选择"上云",这一点从日常的漏洞挖掘测试中便可见一斑。但是企业选择云服务的同时却没有按按照厂商的最佳实践方案进行操作,从而就会产生诸多问题,严重者甚至会丧失云服务器的操作权限。再次印证了人才是安全中最大的漏洞。因此,在云时代,云安全的建设不可或缺。另一方面,云厂商是否也要考虑更安全可靠的接口认证,把安全操作更多的留给自己,临时密钥就是一个不错的引入。

实验推荐

  • web敏感信息泄漏
  • https://www.hetianlab.com/expc.do?ec=ECID25ad-863a-454c-87b6-e2b09b1f764f

声明:笔者初衷用于分享与普及网络知识,若读者因此作出任何危害网络安全行为后果自负,与合天智汇及原作者无关!



Tags:云环境   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
前言如今越来越多的中小型公司选择使用云平台,诸如:阿里云、腾讯云、Amazon、Azure。使用云平台大大降低了企业的资源成本,另一方面随着公用云的普及,也存在着一些风险,当然不是...【详细内容】
2020-07-16  Tags: 云环境  点击:(54)  评论:(0)  加入收藏
1. 混合云环境下的网络安全变化传统IDC环境下,企业业务可能会面临外部互联网的DDOS攻击以及网络层的漏洞扫描和恶意流量攻击等,因此一般会在机房出口处部署抗DDOS流量清洗设备...【详细内容】
2020-03-19  Tags: 云环境  点击:(70)  评论:(0)  加入收藏
▌简易百科推荐
以京训钉开发平台接口文档为例,使用HttpClient类请求调用其接口,对数据进行增删改查等操作。 文档地址: https://www.yuque.com/bjjnts/jxd/bo1oszusing System;using System.C...【详细内容】
2021-12-28  Wednes    Tags:HttpClient   点击:(1)  评论:(0)  加入收藏
阿里云与爱快路由安装组网教程一、开通好阿里云轻量服务器之后在服务器运维-远程连接处进行远程 二、进入控制台后在root权限下根据需要安装的固件位数复制下面命令。32位:wg...【详细内容】
2021-12-28  ikuai    Tags:组网   点击:(1)  评论:(0)  加入收藏
HTTP 报文是在应用程序之间发送的数据块,这些数据块将通过以文本形式的元信息开头,用于 HTTP 协议交互。请求端(客户端)的 HTTP 报文叫做请求报文,响应端(服务器端)的叫做响应...【详细内容】
2021-12-27  程序员蛋蛋    Tags:HTTP 报文   点击:(4)  评论:(0)  加入收藏
一 网络概念:1.带宽: 标识网卡的最大传输速率,单位为 b/s,比如 1Gbps,10Gbps,相当于马路多宽2.吞吐量: 单位时间内传输数据量大小单位为 b/s 或 B/s ,吞吐量/带宽,就是网络的使用率...【详细内容】
2021-12-27  码农世界    Tags:网络   点击:(3)  评论:(0)  加入收藏
1.TCP/IP 网络模型有几层?分别有什么用? TCP/IP网络模型总共有五层 1.应用层:我们能接触到的就是应用层了,手机,电脑这些这些设备都属于应用层。 2.传输层:就是为应用层提供网络...【详细内容】
2021-12-22  憨猪哥08    Tags:TCP/IP   点击:(35)  评论:(0)  加入收藏
TCP握手的时候维护的队列 半连接队列(SYN队列) 全连接队列(accepted队列)半连接队列是什么?服务器收到客户端SYN数据包后,Linux内核会把该连接存储到半连接队列中,并响应SYN+ACK报...【详细内容】
2021-12-21  DifferentJava    Tags:TCP   点击:(10)  评论:(0)  加入收藏
你好,这里是科技前哨。 随着“元宇宙”概念的爆火,下一代互联网即将到来,也成了互联网前沿热议的话题,12月9日美国众议院的听证会上,共和党议员Patrick McHenry甚至宣称,要调整现...【详细内容】
2021-12-17  王煜全    Tags:Web3   点击:(14)  评论:(0)  加入收藏
一、demopublic static void main(String[] args) throws Exception { RetryPolicy retryPolicy = new ExponentialBackoffRetry( 1000, 3);...【详细内容】
2021-12-15  程序员阿龙    Tags:Curator   点击:(22)  评论:(0)  加入收藏
一、计算机网络概述 1.1 计算机网络的分类按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN);按照网络使用者:公用网络、专用网络。1.2 计算机网络的层次结构 TCP/IP四层模...【详细内容】
2021-12-14  一口Linux    Tags:网络知识   点击:(31)  评论:(0)  加入收藏
无论是在外面还是在家里,许多人都习惯了用手机连接 WiFi 进行上网。不知道大家有没有遇到过这样一种情况, 明明已经显示成功连接 WiFi,却仍然提示“网络不可用”或“不可上网”...【详细内容】
2021-12-14  UGREEN绿联    Tags:WiFi   点击:(25)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条