由OSS AccessKey泄露引发的思考

什么是OSS?

对象存储服务(Object Storage Service,OSS)是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。

什么是AccessKey?

AccessKey包括AccessKeyID和AcessKeySecret两部分,AccessKeyID用于标识用户,AcessKeySecret用于验证用户的密钥,主要用于程序方式调用云服务API。


我们来看一个简单的测试案例,当测试某个上传点时,获取到一个HTML表单:

 

请求的主机名xxxx.aliyuncs.com和表单的OSSAccessKeyId参数,基本可以确认系统使用 OSS 作为上传文件存储,即使上传恶意脚本文件也无法成功解析,面对这种情况如何破局?别着急放弃,还有一次机会的。

通过查阅相关文件,我们可以知道使用表单上传文件到 OSS的技术方案里,有三种实现方式

OSS产品文档:https://help.aliyun.com/document_detail/31923.html
  1. 在客户端通过JavaScript代码完成签名,然后通过表单直传数据到OSS。

  2. 在服务端完成签名,然后通过表单直传数据到OSS。

  3. 在服务端完成签名,并且服务端设置了上传后回调,然后通过表单直传数据到OSS。OSS回调完成后,再将应用服务器响应结果返回给客户端。

当采用JavaScript客户端直接签名时,AccessKeyID和AcessKeySecret会暴露在前端页面,存在严重的安全隐患。

通过翻找js文件,可发现AccessKey就写在js文件里面。

AccessKey泄露,如何进行漏洞利用呢?

AccessKey是访问阿里云API的密钥,将会造成什么样的风险呢。

1、通过API接口

AccessKey ID和AccessKey Secret 就是打开这扇门的钥匙,通过调用API完成对服务器ECS实例的管理和运维操作。

API参考:https://helpcdn.aliyun.com/document_detail/117934.html

2、通过第三方管理工具

  • OSSBrowser

ossbrowser 是 OSS 官方提供的图形化管理工具,提供类似 Windows 资源管理器的功能,使用 ossbrowser,您可以方便地浏览、上传、下载和管理文件。

下载地址:http://gosspublic.alicdn.com/oss-browser/1.9.4/oss-browser-win32-x64.zip

  • 护卫神.云备份

一键备份数据到阿里云OSS,支持Bucket管理,支持鼠标拖放,支持剪贴板,支持断点续传,支持统计目录大小,支持文件搜索。

下载地址:https://d.hws.com/free/HwsOSS.zip

  • 行云管家

多云管理平台,导入AccessKey,可重置服务器密码,接管服务器。

官方地址:https://yun.cloudbility.com/login.html

常见问题解答

1. OSS的AccessKey 在什么情况下会出现泄露?

采用JavaScript客户端直接签名时,AccessKeyID和AcessKeySecret会暴露在前端页面,存在严重的安全隐患。

Github等平台泄露,通过关键字可搜索到。

通过其他漏洞读取配置文件获取AccessKey。

2. 前端OSS的AccessKey 泄露,代码如何修复?

采用JavaScript客户端签名直传存在严重安全风险,建议采用服务端签名后直传。

3. 访问OSS的AccessKey泄露了,该如何补救?

最安全的办法就是更换AccessKey,毕竟它只能创建或删除,启用或禁用,是没有给你修改密码的机会的。

4. 测试时,如何简单地来判断OSS的AccessKey是否储存在前端?

可以通过上传操作时,抓取的HTTP请求数量来做简单的判断。
当采用JavaScript客户端直接签名,用户直接上传数据到OSS,一次请求即可完成。
当采用服务端签名后直传的方式,需要用户向应用服务器请求上传Policy,再将数据上传到OSS,至少需要两次请求。

 

企业上云已成趋势,面对云平台的部署架构,不管是开发、安全或是运维,都将面临新的风险和挑战。云上丰富的产品矩阵,为用户提供了各种实例的选项,但技术方案的实现,云上的安全策略及服务,RAM精准的权限控制,每一步都与安全有关。

posted @ 2019-10-30 20:54  Bypass  阅读(9850)  评论(1编辑  收藏  举报