腾讯安全玄武实验室发现并报送的云存储应用越权访问和文件上传漏洞(CNVD-2019-37364)。攻击者利用该漏洞,可在越权的情况下,远程读取、修改云存储中的内容。目前,漏洞相关细节未公开,漏洞影响范围和危害较大。
用户访问云存储数据时,进行签名请求的密钥有永久密钥和临时密钥两种方式。研究发现云存储应用由于配置不当,存在越权访问和文件上传漏洞:使用临时密钥进行文件上传的云存储应用,缺乏对文件(存储桶)访问或上传路径(存储桶)的权限限制,导致文件(存储桶)越权访问或文件上传漏洞;使用永久密钥为文件上传请求签名的云存储应用,缺乏对永久密钥的必要保护,产生任意路径文件(存储桶)的越权访问和文件上传漏洞。攻击者利用上述漏洞,通过云存储应用破解或网络抓包获得永久密钥或临时密钥,实现对云存储中的文件数据的窃取,甚至篡改用户保存在云存储中的数据文件。
建议云存储应用开发者采用如下方式修复漏洞:
1、采用临时签名上传文件的云存储应用:根据业务场景将服务端生成的临时密钥权限更新至最小,限定文件的上传路径和上传的目标存储桶,去除读文件、列存储桶、列对象、覆盖文件等非业务必要权限。
2、采用永久密钥签名上传文件的云存储应用:更新客户端和服务端上传逻辑,改为用最小权限的临时密钥方式或者 PUT 方式进行上传。