云安全之OSS对象存储安全总结
对象存储
对象存储(OSS)中可以有多个桶(Bucket) ,云安然后把对象(Object)放在桶里 ,全之全总对象又包含了三个部分:Key、象存Data 和 Metadata 。储安

Bucket
存储空间(Bucket)是云安用户用于存储对象(Object)的容器 ,所有的全之全总对象都必须隶属于某个存储空间。存储空间具有各种配置属性,象存包括地域、储安访问权限 、云安存储类型等 。全之全总用户可以根据实际需求,象存创建不同类型的储安存储空间来存储不同的数据 。亿华云
同一个存储空间的云安内部是扁平的 ,没有文件系统的全之全总目录等概念 ,所有的象存对象都直接隶属于其对应的存储空间。每个用户可以拥有多个存储空间 。存储空间的名称在 OSS 范围内必须是全局唯一的,一旦创建之后无法修改名称。存储空间内部的高防服务器对象数目没有限制。命名规则
同一阿里云账号在同一地域内创建的Bucket总数不能超过100个 。Bucket创建后,其名称无法修改。Bucket命名规则如下:
Bucket名称在OSS范围内必须全局唯一 。只能包括小写字母、数字和短划线(-)。必须以小写字母或者数字开头和结尾。长度为3~63个字符。命名示例Bucket名称的正确示例如下:
examplebucket1test-bucket-2021aliyun-oss-bucketObject
对象(Object)是 OSS 存储数据的基本单元 ,也被称为 OSS 的文件。源码库和传统的文件系统不同,对象没有文件目录层级结构的关系。对象由元信息(Object Meta),用户数据(Data)和文件名(Key)组成,并且由存储空间内部唯一的 Key 来标识。
例如:
https://hxsecurityteam.oss-cn-beijing.aliyuncs.com/AAccTest.png
Bucket :hxsecurityteam
地区 :oss-cn-beijing
Key:AAccTest.png
对象元信息是一组键值对,表示了对象的一些属性,比如最后修改时间、大小等信息 ,同时用户也可以在元信息中存储一些自定义的信息 。建站模板可以简单的理解成数据的标签 、描述之类的信息 ,这点不同于传统的文件存储,在传统的文件存储中这类信息是直接封装在文件里的,有了元数据的存在 ,可以大大的加快对象的排序 、免费模板分类和查找。Data 就是存储的数据本体 。
对象存储利用方法
Bucket STS(SecurityToken)利用
STS服务给其他用户颁发一个临时访问凭证 。该用户可使用临时访问凭证在规定时间内访问您的OSS资源。
临时访问凭证无需透露您的长期密钥,使您的OSS资源访问更加安全 。
利用工具alicloud-tools
GitHub地址:https://github.com/iiiusky/alicloud-tools
方法一ak+sk+sts使用命令:
复制AliCloud-Tools.exe --sak --ssk --sts --token ecs --list --runner1.

OSS Browser
GitHub地址:https://github.com/aliyun/oss-browser



Bucket Object 遍历
在创建 Bucket 时 ,可以选择是否公开,默认是 private 的模板下载权限 ,如果在错误的配置下,给了Listobject权限 ,就会导致可遍历存储桶 。

在此时如果选择公有读的话 ,会出现两种情况
在只配置读写权限设置为公有读或公共读写的情况下 ,无法列出对象,但能够直接读取对应的文件(正常情况)如果想列出 Object 对象,需要在 Bucket 授权策略中设置 ListObject 即可情况一在只配置读写权限设置为公有读或公共读写的情况下 ,无法列出对象

但是可以直接访问对应的KEY路径(正常情况)


如果想列出Object对象 ,只需要在Bucket授权策略中设置ListObject即可。


这样再当我们访问存储桶域名的时候就会发现,已经把我们存储桶的东西列出来了

Bucket 桶爆破
当不知道 Bucket 名称的时候 ,可以通过爆破获得 Bucket 名称,这有些类似于目录爆破,只不过目录爆破一般通过状态码判断 ,而这个通过页面的内容判断。
AccessDenied :存在存储桶,但无权限访问


Bucket 特定策略配置可写
特定的策略配置的指的是 ,如果管理员设置了某些IP,UA才可以请求该存储桶的话,此时如果错误的配置了GetBucketPolicy ,可导致攻击者获取策略配置。
情况一通过直接访问:http(s)://url/?policy来确定是否对 Bucket 具有读取权限

可以看到,管理员配置了对于任意认证主主体开放了所有 Action 的权限。
情况二burpsuite拦截流量

可以看到我们此时是没有权限访问该存储桶的 ,我们尝试使用aliyun的cli获取policy

我们可以看到 ,需要符合UserAgent为UzJu才可以访问

Bucket 任意文件上传与覆盖
如果在配置存储桶时 ,管理员错误的将存储桶权限,配置为可写