【网络安全】AWS S3 Bucket配置错误导致敏感信息泄露

news2025/2/25 0:31:31

未经许可,不得转载。

文章目录

    • 前言
    • 技术分析
    • 正文

前言

AWS(Amazon Web Services)是亚马逊公司提供的一个安全的云服务平台,旨在为个人、公司和政府机构提供计算能力、存储解决方案、内容交付和其他功能。作为全球领先的云服务提供商之一,AWS 提供了广泛的云计算服务,包括计算、存储、数据库、机器学习、人工智能、分析和互联网应用等多个领域的服务。

Amazon S3(Amazon Simple Storage Service)是AWS提供的一种高度可扩展的对象存储服务。它为开发人员和IT团队提供了一种简单的存储解决方案,具有卓越的数据可用性、安全性和性能。Amazon S3允许用户以对象(如文件、图片、视频等)的形式存储和检索数据,无需关心底层的硬件设备。

Amazon S3官方文档:https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/index.html

技术分析

在Amazon S3中,ACL表示访问控制列表:

  • 当ACL设置为AllUsers时,Amazon S3会将存储桶或对象的ACL视为公开的,允许所有用户(即公众)访问。
  • 当ACL设置为AuthenticatedUsers时,Amazon S3会将存储桶或对象的ACL视为公开的,允许所有已认证的用户访问。

Amazon S3在评估存储桶策略时,首先假设策略是公开的(即允许公众访问),接着,Amazon S3会评估策略以确定是否符合非公开条件,要被视为非公开的策略,存储桶策略必须仅授予对以下一项或多项固定值的访问权限,这些值不能包含通配符或AWS Identity and Access Management策略变量的值:

  • AWS主体、用户、角色或服务主体(例如aws:PrincipalOrgID
  • 一组CIDR(无类域间路由),使用aws:SourceIp
  • aws:SourceArn
  • aws:SourceVpc
  • aws:SourceVpce
  • aws:SourceOwner
  • aws:SourceAccount
  • s3:x-amz-server-side-encryption-aws-kms-key-id
  • aws:userid,但不能以AROLEID:*的模式开头
  • s3:DataAccessPointArn
  • s3:DataAccessPointAccount

这些规则帮助确保AWS S3存储桶和对象的访问控制策略合理且安全,避免未经授权的公开访问。

根据前面提到的规则,以下是一个示例被视为公开的存储桶策略:

{
		"Principal": "*", 
		"Resource": "*", 
		"Action": "s3:PutObject", 
		"Effect": "Allow" 
	}
{
		"Principal": "*", 
		"Resource": "*", 
		"Action": "s3:PutObject", 
		"Effect": "Allow", 
		"Condition": { "StringLike": {"aws:SourceVpc": "vpc-*"}}
	}

在AWS CLI中存在一些S3命令和参数:

1、ls命令

aws s3 ls 命令用于列出指定S3存储桶中的对象和通用前缀(类似文件夹)。如果不指定存储桶名称,则默认列出当前AWS账号下所有存储桶中的内容。

示例:列出存储桶 example-bucket 下的所有对象:

aws s3 ls s3://example-bucket/

2、cp命令

aws s3 cp 命令用于将本地文件或S3对象复制到本地或S3中的另一个位置。

示例:将本地文件 local-file.txt 复制到S3存储桶 example-bucket 中:

aws s3 cp local-file.txt s3://example-bucket/

3、mv命令

aws s3 mv 命令用于将本地文件或S3对象移动到本地或S3中的另一个位置。该命令先复制源对象或文件到指定目标,然后再删除源对象或文件。

示例:将S3存储桶 source-bucket 中的对象 source-object.txt 移动到 destination-bucket

aws s3 mv s3://source-bucket/source-object.txt s3://destination-bucket/

4、选项 --no-sign-request

--no-sign-request 是一个布尔值选项,用于AWS CLI命令,特别是在涉及S3操作时。

如果提供了 --no-sign-request 参数,则AWS CLI不会加载凭据进行请求签名,这意味着不会使用当前配置的AWS凭据进行认证。这通常用于执行一些公开的S3操作或者在某些特定的安全场景下使用。

例如,使用 --no-sign-request 参数的示例:

aws s3 ls s3://public-bucket/ --no-sign-request

这会列出 public-bucket 存储桶中的内容,但不会加载或使用任何AWS凭据进行签名。

正文

印度石油有限公司公布各种技术职位的招聘信息,访问该网站下载考试准考证时,注意到这些文档是从 Amazon Web Services (AWS) S3 Bucket 提供的。

第一件事是尝试访问另一个目录,但没有成功。但当直接访问 S3 存储桶 URL 时,页面上列出了文件。

尝试访问显示的文件之一并成功,说明存储桶内容被设置为可公开访问。

img

1、获取 S3 存储桶 URL:https://edumedias.s3.amazonaws.com

2、在 Web 浏览器中或使用命令行工具 AWS CLI 访问 URL。

命令如下:

aws s3 ls s3://edumedias — no-sign-requestls s3://edumedias — no-sign-request

回显:

PRE 25July21_IPM/
 PRE 3/
 PRE 4th July IPM/
 PRE AWES/
 PRE App/
 PRE BCI/
 PRE BEL/
 PRE BSEB/
 PRE Backup_RD-27523/
 PRE BioMetric/
 PRE CB/
 PRE CBTExam/
 PRE CGDA/
 PRE CGPSC/
 PRE CIP/
 PRE CURAJ/
 PRE DB-BACKUP/
 PRE DBS_Team/
 PRE Datashare/
 PRE ELBLogs/
 PRE FRI/
 PRE GMU/
 PRE HC23/
 PRE HC_1/
 PRE IBPS/
 PRE IGCAR/

经过进一步测试,获取敏感数据:

10th Marsheet
12th Marsheet
Caste Certificate
Diploma Marsheet
Employment Exchange Registration Card
GraduationTrade_Upload Marsheet
NOC_Certificate
NOC_from employer
National_Apprenticeship Certificate
NonCreamy_Layer Certificate
Photo
Proof_of Date Of Birth
Signature
State_Nursing Council Registration Certificate
Trade_Upload Marsheet

img

img

img

参考链接:
https://infosecwriteups.com/aws-s3-bucket-misconfiguration-exposes-pii-and-documents-of-job-seekers-7b1332b0ecf1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1954165.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

electron调试

electron 调试 electron 的调试分两步,界面的调试,和主进程的调试。 界面调试类似浏览器F12,可是调试不到主进程。 主进程调试有vscode、命令行提示和外部调试器调试。 本篇记录的练习是vscode调试。命令行和外部调试器的方式可以参考官网&a…

模拟实现c++中的vector模版

目录 一vector简述: 二vector的一些接口函数: 1初始化: 2.vector增长: 3vector增删查改: 三vector模拟实现部分主要函数: 1.size,capacity,empty,clear接口: 2.reverse的实现&#xff1…

青少年科普平台-计算机毕业设计源码76194

摘 要 对于搭建一个青少年科普平台,您可以考虑使用Spring Boot作为后端框架。Spring Boot是一个能够简化Spring应用开发的框架,能够帮助您快速搭建稳定、高效的后端服务。您可以利用Spring Boot的特性来构建一个可靠的数据服务,用于展示和传播…

docker镜像下载

1、搜索镜像 [rootlocalhost ~]# docker search ubuntu 2、下载ubuntu系统镜像(容器架构与宿主机相同) [rootlocalhost ~]# docker pull ubuntu #选择stars值最高镜像下载,默认为latest版 [rootlocalhost ~]# docker images 3、查看镜像支持的架构 [rootlocalh…

1143. 最长公共子序列(详细版)

目录 dp解法: 1.状态代表什么: 2. 状态转移方程 3.初始化 3. so为什么要这样? 代码实现: 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0…

protobuf2.5升级protobuf3.14.0

这个升级搞得心力憔悴,我VS2010升级到了VS2017,所有的库都要编译一下,想着顺便把其他的三方库也升级了。搞了好几天,才升级完,因为不仅要搞windows还要搞linux版本各种库的升级。hpsocket的升级,jsoncpp的升…

stm32h7串口发送寄存器空中断

关于stm32串口的发送完成中断UART_IT_TC网上资料挺多的,但是使用发送寄存器空中断UART_IT_TXE的不太多 UART_IT_TC 和 UART_IT_TXE区别 UART_IT_TC 和 UART_IT_TXE 是两种不同的 UART 中断源,用于表示不同的发送状态。它们的主要区别如下: …

安卓单机游戏:龙之矛内置菜单,【免费分享】白嫖!

龙之矛是一款传统的横版卷轴RPG游戏。在游戏中玩家将探索被梦魇蹂躏的世界,和朋友一起猎杀强大的BOSS,如果你杀死了boss,那么你可以制作具有boss力量的装备。游戏内所有装备都有独特的外观,你可以用各种华丽的装备打扮你的角色。英…

并发基础——Java全栈知识(37)

1、并发基础 1、进程和线程的区别 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理 IO 的。当…

【LLM】-10-部署llama-3-chinese-8b-instruct-v3 大模型

目录 1、模型下载 2、下载项目代码 3、启动模型 4、模型调用 4.1、completion接口 4.2、聊天(chat completion) 4.3、多轮对话 4.4、文本嵌入向量 5、Java代码实现调用 由于在【LLM】-09-搭建问答系统-对输入Prompt检查-CSDN博客 关于提示词注入…

GPT-4o Mini 模型的性能与成本优势全解析

GPT-4o Mini 模型的性能与成本优势全解析 📈 🌟 GPT-4o Mini 模型的性能与成本优势全解析 📈摘要引言正文内容GPT-4o Mini 模型简介 🚀性能测试与对比 📊应用场景 🌐自然语言处理对话系统内容生成 ✍️ &am…

Lesson 51 A pleasant climate

Lesson 51 A pleasant climate 词汇 Greece n. 希腊 Greek a. 希腊的,希腊语 搭配:Greek gift 不怀好意的礼物 例句:他的电脑是不怀好意的礼物。    His computer is a Greek gift. climate n. 气候 长时间,不容易更改的 we…

生成式AI和LLM的革命:Transformer架构

近年来,随着一篇名为“Attention is All You Need”论文的出现,自然语言处理(NLP)领域经历了一场巨大的变革。2017年,在谷歌和多伦多大学发表了这篇论文后,Transformer架构出现了。这一架构不仅显著提升了N…

.net 连接达梦数据库开发环境部署

.net 开发环境部署 1. 环境准备 测试工具 Visual Studio2022 数据库版本 dm8 2. 搭建过程 1 )创建新项目 2 )选择创建空项目 3 )配置新项目 4 )右键 DM1 新建一个项 5 )加 载 驱 动 , 新 建 …

移动恶意软件的崛起

一.介绍 随着手机的出现,我们的日常生活发生了变化,无论是我们的工作方式还是我们过去相互交流的方式,一切都随着移动技术的进步而改变。但是,随着技术的进步,恶意软件也被引入,随着时间的推移它也变得更加…

用excel能做出这些报表吗?

用excel能做出这些报表吗? 有什么办法不安装OFFICE也能显示出来?

免费【2024】springboot 城市交通管理系统的设计与实现

博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

labview四字节转浮点数

1.labview四字节转浮点数 2.Labview怎么把串口接收到的数据转换成浮点数? Labview怎么把串口接收到的数据转换成浮点数?

SeaCMS海洋影视管理系统远程代码执行漏洞复现

SeaCMS海洋影视管理系统远程代码执行漏洞复现 Ⅰ、环境搭建Ⅱ、漏洞复现Ⅲ、漏洞分析 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责&…

maven引入了jar包但在class文件里找不到jar包里的类

在工作当中遇到的这个问题,别人引入的jar包,我代码里报错 maven clean 和 maven install 都不管用 检查过了pom文件 检查了maven仓库路径下是否有这个cn.hutool的jar包 都没有找到问题 最终解决办法是手动引入 步骤一:点击左上角file->…