前言

阿里云中对象存储服务是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件,可以将数据以对象(Object)的形式存储在存储空间(Bucket)中,并且同时提供了完善的访问权限以及访问策略评估机制 。但它面临着一些安全挑战。因对象存储所导致的安全事件层出不穷,其中绝大部分是由于用户使用此功能时错误的配置导致的。

安全风险

错误配置导致的安全问题

错误使用公有读写权限

在创建Bucket时,默认是<font style="color:rgb(36, 41, 46);">private</font>的权限,但是有些用户为了避免使用繁杂且细粒度的权限配置,会错误的将其存储桶设置为公有读写,这将导致了其存储桶中的内容被攻击者窃取与篡改。公有读权限可以通过匿名身份直接读取用户存储桶中的数据,存在着严重的安全隐患。

错误配置对象访问权限

Bucket公共权限设置为私有读写时,且Bucket中的对象公共权限为公有读私有写时,此对象依然是可以被读取的。单单依靠存储桶的访问权限,并不能保护其中资源的未授权访问情况。为存储桶中资源配置对应的访问权限,才可以保证对象的安全性。

错误授予访问权限导致的安全问题

如果在配置Bucket时,管理员错误的将Bucket权限,配置为可写,这将会导致攻击者可上传任意文件到Bucket中,或覆盖已经存在的文件。同时如果没有合理的或者错误的在Policy中配置用户允许访问的资源路径,则会出现越权访问,导致用户数据被恶意上传覆盖或被其他用户下载等安全问题。

AccessKey泄露导致的安全问题

AccessKey包括AccessKeyID和AcessKeySecret两部分,AccessKeyID用于标识用户,AcessKeySecret用于验证用户的密钥,主要用于程序方式调用云服务API。如果目标的 AccessKey泄露,那么就能获取到目标对象存储的所有权限,继而实现通过API接口进行资源接管。通常AccessKey常见的泄露原因有: 1.采用JavaScript客户端直接签名时,AccessKeyI有时会暴露在前端页面 2.通过通过反编译APK,找到相关敏感信息。

3.泄露的源代码中含有相关敏感信息。

结语

企业上云已成趋势,对象存储作为其中一种重要的云存储服务,只有深入了解对象存储服务所提供的访问权限以及权限配置,才能保证为OSS中的存储数据构建一道合理安全的高墙,确保云上业务的资产安全。