数字医学与健康大会DMHC——美创与您相约古都金陵
2025-08-12
美创科技打造县域医疗灾备新标杆|神木市医院 HIS 系统数据库分钟级切换演练实录
2025-07-02
百万罚单警示!DCAS助力金融机构筑牢数据安全防线,实现监管合规
2025-06-20
2025中国互联网产业年会丨《中国互联网产业绿色算力发展倡议》正式发布
2025-02-07
美创用户专访 | 精细化管理:医疗行业数据分类分级的策略与实践
2025-01-10
存储域
数据库加密 诺亚防勒索访问域
数据库防水坝 数据库防火墙 数据库安全审计 动态脱敏流动域
静态脱敏 数据水印 API审计 API防控 医疗防统方运维服务
数据库运维服务 中间件运维服务 国产信创改造服务 驻场运维服务 供数服务安全咨询服务
数据出境安全治理服务 数据安全能力评估认证服务 数据安全风险评估服务 数据安全治理咨询服务 数据分类分级咨询服务 个人信息风险评估服务 数据安全检查服务对象存储简述
对象存储是云计算时代下的一种存储技术,英文全称为Object-Based Storage,是一种新型网络存储架构,其特点是基于对象进行文件操作。对象存储服务通常是由云计算厂商进行提供,国内的如阿里云(OSS)、腾讯云(COS)、百度云(BOS)等,国外的如亚马逊(S3)等。
攻击简述
对象存储和普通存储一样,都是用来存储文件的,攻击者如果攻破了对象存储,那么就可能获取存储在对象存储中的敏感文件,如果具备操作权限,攻击者还可以对对象存储中的文件进行增删等操作(对象存储中的文件是无法进行直接修改的,只能下载后修改再上传)。在获得对象存储凭证的情况下,攻击者甚至可以直接对云服务器进行getshell操作,下面介绍几种针对对象存储的攻击思路。
1.凭证泄露
一般来说,云计算厂商提供的对象存储服务会具备一个凭证,这个凭证包含一个id和一个秘钥,是和云账户相关的,且是唯一的,具备对象存储的最高权限。如果凭证泄露,攻击者就可以利用云计算厂商提供的工具接口控制对象存储。
以腾讯云为例,腾讯云提供的对象存储叫COS,同时提供了一个COS文件浏览工具COSBrowser,只要获得SecretID和SecretKey就可以利用该工具访问对象存储中的文件。
在实战场景中,可以利用SecretID和SecretKey的关键字在源代码、js文件、配置文件等中进行搜索,开发人员可能会将凭证泄露在这些文件中。
利用COSBrowser登录后可以对文件进行下载、删除、上传操作。
2.临时凭证泄露
在实际开发中,对象存储的凭证被多个开发人员共同使用并不符合最小权限原则。某些云计算厂商为了解决这一问题,会提供临时凭证,用户可使用临时访问凭证在规定时间内访问对象资源。临时访问凭证无需透露密钥,使对象存储资源访问更加安全。以阿里云对象存储服务为例:
临时凭证通常会在应用中文件上传下载功能处使用,开发时如果不注意,就有可能会将临时凭证泄露到客户端,攻击者可以利用该临时凭证获取对象存储的临时控制权限。
上例中开发人员直接将临时凭证返回到了返回包中,解码后使用阿里云官方工具OSSBrowser即可访问。
3.使用凭证getshell
由于对象存储的凭证是和云账户相关的,所以在一定条件下,在获得对象存储凭证的前提下,就有可能获取云服务器的shell。
使用行云管家导入对象存储凭证,行云管家会检索云服务器列表。
通过行云管家导入主机后可通过重置云主机密码获得shell。
但是在攻防演练等情景中,重置主机密码是不被允许的。针对阿里云oss凭证,可以利用github上的alicloud-tools工具直接进行命令执行获得shell。
工具地址:https://github.com/iiiusky/alicloud-tools
4.Bucket劫持
在对象存储中,有“存储桶”的概念,也就是Bucket。对象存储的文件都存储在用户自行创建的Bucket下,Bucket分布在不同的云计算区域,可由用户在创建时自行选择。当开发人员错误的配置了对象存储文件的链接到了应用中,且该区域的Bucket名称不存在时,攻击者就可以进行Bucket劫持。
首先需要寻找一个可劫持的目标,可以通过fofa等网络空间搜索引擎查找存在类似于“nosuchbucket”报错的对象存储链接,这样的报错中就会存在Bucket名配置错误的情况,如果Bucket名配置错误且未被占用,就可以进行劫持。
对象存储的文件链接一般由四部分组成,https://aaa.bbb.ccc/ddd,aaa通常表示Bucket名称,bbb通常表示Bucket所在区域,aaa和bbb有时也可互换,ccc表示云计算厂商提供的服务域名,ddd表示文件目录和文件名。
在上图中,该区域的该名称的bucket不存在,此时访问1.html也同样会提示错误
登录自己的对象存储存储服务,创建一个和上图区域一致、名称相同的bucket,可以创建成功。
在创建的bucket中上传一个1.txt文件。
访问上面报错的链接,发现可以访问,劫持成功。