1、了解云服务
1.1 常见的云服务
https://www.aliyun.com/product/list
1.2 如何从零开始了解云服务
服务业务
-
学习业务逻辑 -
抓包分析API
权限管理
-
主账号、子账号 -
了解AKSK -
权限种类、授权和权限回收
熟悉平台工具
-
学会使用SDK -
熟悉平台的其他工具和API调用
云服务架构
-
底层服务常见的漏洞 -
是否有一些特性可以造成危害
1.3 学习途径
-
亲自购买 -
官方文档 -
官方工具、API或SDK -
发起工单或咨询客服/客户经理
2、漏洞的发现
在用户输入了非预期的参数值后,可能会导致某些组件产生报错或者输出详细的错误日志。这些错误信息中可能会存在云服务提供商的内部敏感信息,从而引发比较严重的后果。
2.1 服务组件报错导致的信息泄露
比如创建库表时,填入非预期参数值,若创建页面未进行验证,那么在后续的查询等行为都会导致报错,可能导致信息泄漏
2.2 使用非正式镜像导致的信息泄露
有一些并不像是公开的操作系统镜像,或者描述中带有test等字样。可以试着用这些镜像ID去创建云主机。
这些非正式镜像中很有可能就存在一些平台内部的敏感信息。例如账号凭据,认证信息,业务代码等等。
2.3 平台部署文档/工具/依赖包中的信息泄露
有些服务为了适配各种不同的环境会提供一些最佳实践案例,其中会给出一些详细的环境部署操作步骤,比如文档、SDK、客户端等。这里可能会存在一些信息泄露。
2.4 项目托管平台的信息泄露
一些公开项目中需要将认证信息写入到配置文件中,而官方在给出例子的时候可能由于疏忽会忘记删掉测试时使用的认证信息,导致敏感信息泄露。
2.5 存储桶文件中的信息泄露
-
存储桶爆破 -
存储桶配置不当导致目录/文件遍历 -
存储桶信息泄漏
2.6 命令执行后发现敏感信息
-
是否可以维持住容器环境方便后续的操作? -
容器中是否有敏感文件? -
容器的环境信息? -
容器可以访问的网络环境,元数据信息等?
3、漏洞的利用方式
3.1 拿到AK/SK后
IAM
-
ListUser -
GetUser(UserName) -
ListPolicy
ECS
-
DescribeInstances(RegionId) -
创建实例和修改实例
OSS
-
ListBuckets -
ListObjects(bucket) -
PutObject(bucket,key) -
PutBucketPolicy(bucket,body) -
GetBucketPolicy(bucket)
3.2 发现存储桶公有读/写后
比如这个包依赖某个存储桶,而这个存储桶刚好存在任意写漏洞
原文始发于微信公众号(小宝的安全学习笔记):云安全漏洞的发现和利用