血亏 2 万,一个 OSS 安全漏洞

本文涉及的产品
对象存储 OSS,标准 - 本地冗余存储 20GB 3个月
对象存储 OSS,标准 - 同城冗余存储 20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
简介: 血亏 2 万,一个 OSS 安全漏洞,心服口服!也许下个踩坑的就是你。。

事故(故事)

血亏 2 万,一个 OSS 安全漏洞,心服口服!也许下个踩坑的就是你。。

连续创业者(==持续亏损、失败),小A收购了个类似于 Pinterest 的网站,用户可以在里面上传图片,现在都是用的 OSS + CDN ,不自己搞磁盘阵列了。非常的方便。
[惬意喝咖啡]
突然有一天发现某云账号欠费,网站图片全部打不开了。
[脑瓜子嗡嗡的]
不对啊,CDN 和 OSS 都加了 referer 检验,不会哪个 APP 这么无良引用了我的图片吧。打开 OSS 控制台看了下统计。
image.png
[什么鬼]
什么鬼,一个图片访问 2554 次,用了 1.57T 的流量?
怎么会这么大的图片?不是在上传的时候限制了15M吗?不会AK泄密了吧?
[黑人问号]
文件名是路径都是严格按照流程来的,看来是程序漏洞,如果是 AK 泄漏,文件路径不会模拟的这么完整。

TMD,这些灰产拿哥的 OSS 和 CND 当最快的 FTP 呢?我下载了一个,用file命令看了下是mp4,我直接修改后缀,发现是一些电影。
电影比较枯燥,我就帮你们看了

破案

冷静下来梳理下,流程上是这样的:用户选择本地文件,然后前端拿着本地文件的信息跟后端要一个PutObject的上传 url 和临时 token,然后前端直传。这样做上传更高效,不用浪费后端的 I/O
这里有一点想当然了,就是在生成签名的时候,指定了图片的长度,但是...

headers.put("Content-Length", imageSize.toString());
request.setHeaders(headers);
URL signedUrl = ossClient.generatePresignedUrl(request);

但是在实际后面上传的时候不会拿这个值进行二次校验,太坑爹了!!!

只能说灰产,你们是真牛,各种逆向思维,各种找漏洞。

我觉得 putobject 的官方文档 应该显著的提醒用户存在这个风险。

官方文档上的 直传的最佳实践方案已经更新 也升级了,现在使用的应该是 PostObject 可以更好的配置上传策略(Policy)以限制上传操作。

怎么解决

这些祖传代码,我也不敢动啊。牵一发动全身,改一个地方,要回归一个月,只能打补丁。某云上的 oss 有触发器,就增加了个函数计算脚本来处理,发现大于15M的文件就设置成私有,过了1天,灰产就不再上传了。
如果你项目中也有类似的case,换成PostObject 的方案吧。

相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
相关文章
|
存储 Java 数据库
若依框架----源码分析(@Log)
若依框架----源码分析(@Log)
2867 1
|
11月前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
11月前
|
机器学习/深度学习 存储 人工智能
2024阿里云AI交出答卷,全球领先!
2024阿里云AI交出答卷,全球领先!
586 9
2024阿里云AI交出答卷,全球领先!
|
缓存 中间件 PHP
Laravel 框架:优雅 PHP Web 开发的典范
【8月更文挑战第31天】
476 0
|
11月前
|
消息中间件 人工智能 运维
12月更文特别场——寻找用云高手,分享云&AI实践
我们寻找你,用云高手,欢迎分享你的真知灼见!
3933 101
|
11月前
|
传感器 安全 物联网
阿里云先知安全沙龙(北京站) ——车联网安全渗透测试思路分享
本文介绍了智能汽车的整车架构、协议栈结构、攻击点分析、渗透思路及案例分享。整车架构涵盖应用层、协议层和物理层,详细解析各层次功能模块和通信机制。攻击点包括Wi-Fi、USB、NFC等,展示车辆通信接口和系统组件的安全风险。渗透思路从信息收集到系统内部探索,利用固件漏洞控制车辆功能。案例展示了网段隔离不足导致的SSH访问和OTA日志审计漏洞,揭示了潜在的安全威胁。
|
存储 域名解析 监控
云上攻防:任意上传、域名接管与AK/SK泄漏
随着企业上云的趋势加剧,云安全成为新的焦点。本文探讨了云计算环境中的三大安全问题:任意上传、域名接管与AK/SK泄漏,分析了这些威胁的工作原理及防护措施,强调了数据保护和访问控制的重要性。通过阿里云等平台的实际案例,提供了具体的安全防范建议。
1501 2
云上攻防:任意上传、域名接管与AK/SK泄漏
|
11月前
|
应用服务中间件 Linux 网络安全
nginx安装部署ssl证书,同时支持http与https方式访问
为了使HTTP服务支持HTTPS访问,需生成并安装SSL证书,并确保Nginx支持SSL模块。首先,在`/usr/local/nginx`目录下生成RSA密钥、证书申请文件及自签名证书。接着,确认Nginx已安装SSL模块,若未安装则重新编译Nginx加入该模块。最后,编辑`nginx.conf`配置文件,启用并配置HTTPS服务器部分,指定证书路径和监听端口(如20000),保存后重启Nginx完成部署。
3383 8
|
11月前
|
弹性计算 人工智能 安全
对话 | ECS如何构筑企业上云的第一道安全防线
随着中小企业加速上云,数据泄露、网络攻击等安全威胁日益严重。阿里云推出深度访谈栏目,汇聚产品技术专家,探讨云上安全问题及应对策略。首期节目聚焦ECS安全性,提出三道防线:数据安全、网络安全和身份认证与权限管理,确保用户在云端的数据主权和业务稳定。此外,阿里云还推出了“ECS 99套餐”,以高性价比提供全面的安全保障,帮助中小企业安全上云。
202244 16
对话 | ECS如何构筑企业上云的第一道安全防线
|
11月前
|
人工智能 IDE 程序员
GitHub Copilot 免费了!程序员们的福音来了!
《GitHub Copilot 免费了!程序员们的福音来了!》 近日,GitHub 宣布其 AI 编程助手 GitHub Copilot 现在可以免费使用。曾经每月需支付 10 美元订阅费的 Copilot,现在向所有人开放免费版本,这对个人开发者、初学者和小型团队来说是个大好消息。免费版支持 GPT 和 Claude 模型,并提供每月 2000 次代码补全和 50 条聊天消息等核心功能。用户只需注册或登录 GitHub 账户,在 VS Code 中安装扩展并激活免费版即可使用。此外,Visual Studio Code 也完全免费,进一步降低了开发门槛。 除了
11645 7
GitHub Copilot 免费了!程序员们的福音来了!