由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
在客户端通过JavaScript代码完成签名,然后通过表单直传数据到OSS。
在服务端完成签名,然后通过表单直传数据到OSS。
在服务端完成签名,并且服务端设置了上传后回调,然后通过表单直传数据到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精准的权限控制,每一步都与安全有关。
由OSS AccessKey泄露引发的思考的更多相关文章
- Spring之LoadTimeWeaver——一个需求引发的思考---转
原文地址:http://www.myexception.cn/software-architecture-design/602651.html Spring之LoadTimeWeaver——一个需求引 ...
- 由SecureCRT引发的思考和学习
由SecureCRT引发的思考和学习 http://mp.weixin.qq.com/s?__biz=MzAxOTAzMDEwMA==&mid=2652500597&idx=1& ...
- 解决一道leetcode算法题的曲折过程及引发的思考
写在前面 本题实际解题过程是 从 40秒 --> 24秒 -->1.5秒 --> 715ms --> 320ms --> 48ms --> 36ms --> ...
- 【思考】由安装zabbix至排障php一系列引发的思考
[思考]由安装zabbix至排障php一系列引发的思考 linux的知识点林立众多,很有可能你在排查一个故障的时候就得用到另一门技术的知识: 由于linux本身的应用依赖的库和其它环境环环相扣,但又没 ...
- 由<a href = "#" > 引发的思考
原文:由<a href = "#" > 引发的思考 前阵子在一个移动项目中,通过 <a href = "#" > 的方式 绑定clic ...
- 曲演杂坛--一条DELETE引发的思考
原文:曲演杂坛--一条DELETE引发的思考 场景介绍: 我们有一张表,专门用来生成自增ID供业务使用,表结构如下: CREATE TABLE TB001 ( ID ,) PRIMARY KEY, D ...
- class_copyIvarList方法获取实例变量问题引发的思考
在runtime.h中,你可以通过其中的一个方法来获取实例变量,那就是class_copyIvarList方法,具体的实现如下: - (NSArray *)ivarArray:(Class)cls { ...
- 由一个emoji引发的思考
由一个emoji引发的思考 从毕业以来,基本就一直在做移动端,但是一直就关于移动端的开发,各种适配问题的解决,在日常搬砖中处理了就过了,也没有把东西都沉淀下来,觉得甚是寒颜.现就一个小bug,让我们来 ...
- 一次composer错误使用引发的思考
一次composer错误使用引发的思考 这个思考源自于一个事故.让我对版本依赖重新思考了一下. 事故现象 一个线上的管理后台,一个使用laravel搭建的管理后台,之前在线上跑的好好的,今天comop ...
随机推荐
- Elasticsearch Query DSL 语言介绍
目录 0. 引言 1. 组合查询 2. 全文搜索 2.1 Match 2.2 Match Phase 2.3 Multi Match 2.4 Query String 2.5 Simple Query ...
- 用Python复制文件的9个方法
Python 中有许多"开盖即食"的模块(比如 os,subprocess 和 shutil)以支持文件 I/O 操作.在这篇文章中,你将会看到一些用 Python 实现文件复制的 ...
- arcgis api for javascript 学习(五) 实现地图绘制工具
1.本文实现的功能为鼠标与地图之间的交互,能够在地图上绘制不同形状的图形 2.代码部分主要讲到的为Graphic函数的相关功能 <!DOCTYPE html> <html> & ...
- Kotlin介绍(非原创)
文章大纲 一.Kotlin简介二.Kotlin相比Java优势三.Kotlin与Java混合使用四.参考文章 一.Kotlin简介 1. 什么是Kotlin 安卓和Java,前者是最受欢迎的移动开 ...
- python字符减运算
在C语言等高级语言中,字符之间的减运算都是支持的,但是python不然,在python中直接进行字符减运算是不被允许的. >>> print('c'-'a') Traceback ( ...
- MySQL第三课
首先创建一个数据库: CREATE DATABASE ku; Query OK, 1 row affected 查看一下是否有此数据库: SHOW DATABASES; +-------------- ...
- Python—网络抓包与解包(pcap、dpkt)
pcap安装 [root@localhost ~]# pip install pypcap 抓包与解包 # -*- coding:utf-8 -*- import pcap, dpkt import ...
- Mysql—事务原理与详解
事务的四大特性 事务的隔离级别 https://www.cnblogs.com/57rongjielong/p/8036418.html https://blog.csdn.net/zwq123211 ...
- .htaccess设置301跳转及常用技巧整理
在虚拟主机环境中,基本上都是Apache环境.Apache的伪静态的设置,都是在网站根目录设置.htaccess文件,在.htaccess文件中无论是伪静态, 还是301跳转,甚至是防盗链和禁止某个I ...
- 『006』Shell脚本
『003』索引-Linux Shell Script Shel脚本-初步入门 [001]- 点我快速打开文章[<01 什么是 Shell>] [002]- 点我快速打开文章[<02 ...