云安全 | AWS S3存储桶安全设计缺陷分析

什么是AWS S3?

默认情况下,Amazon S3 是安全的。创建后,只有资源所有者才能访问他们创建的 Amazon S3 资源**。** Amazon S3 支持用户身份验证来控制对数据的访问。 您可以使用存储桶策略和访问控制列表 (ACL) 等访问控制机制来有选择地向用户和用户组授予权限。Amazon S3控制台会突出显示您的可公开访问的存储桶,指出公开可访问的资源,如果对您的存储桶策略或存储桶 ACL 的更改将使您的存储桶可公开访问,还会向您发出警告:您应该为您不希望公开访问的所有帐户和存储桶启用"阻止公共访问"。

您可以使用 HTTPS 协议通过 SSL 终端节点安全地将数据上传/下载到 Amazon S3。如果您需要额外的安全性,可以使用服务器端加密 (SSE) 选项来加密静态存储的数据 。如果传入的存储请求没有任何加密信息,您可以将 Amazon S3 存储桶配置为在存储对象之前自动对其进行加密。或者,您可以使用自己的加密库对数据进行加密,然后再将其存储在 Amazon S3 中。

Amazon Simple Storage Service (S3) 是一项 AWS 服务,供用户以持久、可扩展、高度可用且安全的方式存储和检索数据。S3 Bucket 的主要亮点是:

•用户身份验证以控制对数据的访问

•访问控制列表 (ACL) 可与存储桶策略结合使用来管理访问权限最高的用户或用户组

•可以通过起诉阻止公共访问来阻止公共访问

•数据可以使用 HTTPS 协议通过 SSL 端点上传或下载到 S3

•服务器端加密 (SSE) 可用于保护静态数据

•还可以配置存储前自动加密

S3中的IAM 策略类似于 Windows 组策略,为组及其用户提供非常具体的访问和控制权限。创建新用户和安全策略可能既复杂又耗时,这将导致经验不足的公司开放他们不像开放的权限。

与 Windows 策略错误一样,S3 存储桶上宽松的身份管理可能会产生不同的影响 --- 从轻微的信息泄漏到全面的数据泄露。例如,一些站点使用 S3 作为服务图像和 Javascript 等资产的平台。而其他人则使用 S3 将完整的服务器备份推送到云端。无论用例是什么,如果不进行适当的管理,都会存在一些漏洞。由此产生的漏洞不仅会带来问题的存在风险,还会带来漏洞存在的环境风险。

S3存储桶中的漏洞

对于渗透测试人员来说,要查找 AWS 托管应用程序中的漏洞,检查 S3 存储桶的存在和配置可以帮助识别数据漏洞、authN 和 authZ 问题等。如果这些漏洞存在**,攻击者可以完全访问您的 S3 存储桶,从而允许它们可以下载、上传和覆盖文件。**

攻击者将如何利用您的 S3 存储桶?

S3 存储桶名称并不是秘密,有很多方法可以找出它,如本文所述。一旦攻击者找到 S3 存储桶名称,他们就可以访问可用于访问或修改信息的配置信息,从而导致三种不同的情况。通过使用 AWS 命令行与 Amazon 的 API 对话,攻击者可以:

1.访问列表并读取 S3 存储桶中的文件

2.将文件写入/上传到 S3 存储桶

3.更改所有对象的访问权限并控制文件的内容(完全控制存储桶并不意味着攻击者获得对象的完全读取权限,但他们可以控制内容)

AWS 意识到这个安全问题,但不太可能缓解它,因为它是由用户配置错误和设计缺陷引起的。

许多公司将敏感数据存储在S3存储桶中,任何泄露都可能对公司的业务造成重大影响。Instagram 中的一个价值百万美元的漏洞允许攻击者读取 Instagram 上的所有图像和帐户。

Hackone报告还有另一个有趣的例子,安全研究人员可以将文件写入公司存储桶,而无需任何读取访问权限:https://hackerone.com/reports/128088

如何利用 S3 存储桶:

存储桶: https:// -uploads.s3-eu-west-1.amazonaws.com/

1.在 Windows/Linux/Mac 计算机中配置 AWS CLI:https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html

2.从 CLI 执行以下命令

上传文件 --- aws s3 cp test.html s3://-uploads/删除文件 --- aws s3 rm s3://-uploads/test.html列出文件 --- aws s3 ls s3://-uploads/

img

谷歌Dorking

Google 是查找存储桶名称的另一个有用的地方,但它们很少出现。以下是一些呆子的例子:

•site:s3.amazonaws.com 示例

•site:s3.amazonaws.com example.com

•site:s3.amazonaws.com example-com

•site:s3.amazonaws.com com.example

•site:s3.amazonaws.com com-example

•site:s3.amazonaws.com filetype:xls password

可以使用AWSBucketDump:https://github.com/jordanpotti/AWSBucketDump 、 bucketkicker:https://github.com/craighays/bucketkicker等开源工具自动化流程 ,也可以使用greyhatwafare:https://buckets.grayhatwarfare.com/工具在线搜索互联网公开的 S3 存储桶。

S3 中的漏洞链:

反射式XSS 。如果我们可以执行 BUCKET READ,我们就可以列出资产并可能找到易受攻击的对象,例如在公司域上提供的易受攻击的 SWF。

存储型 XSS/资产控制。如果我们可以执行 BUCKET WRITE 或 BUCKET WRITE-ACP(也意味着对象写入),我们就可以修改现有内容或创建新内容,能够修改 javascript/css 文件或上传新的 HTML 文件。

Dos攻击。如果我们可以使用 OBJECT WRITE-ACP 修改对象的 ACP,我们就可以防止对象公开加载。

信息泄露。如果我们可以列出对象,我们可能会发现敏感信息。

远程代码执行。如果存储桶包含可修改的可执行文件,则可能会导致远程代码执行 (RCE),具体取决于可执行文件的使用位置以及它们是否/由谁下载。

其他漏洞:

•Amazon S3 存储桶允许完全匿名访问

•Amazon S3 存储桶允许列出任意文件

•Amazon S3 存储桶允许任意文件上传和公开

•Amazon S3 存储桶允许盲目上传

•Amazon S3 存储桶允许任意读取/写入对象

•Amazon S3 存储桶显示 ACP/AC

如何缓解/修复这些漏洞?

使用基于资源的访问策略授予对存储桶和对象的访问权限。在高层次上重点关注:

•阻止公共访问

•编辑存储桶公共访问设置

•编辑帐户公共访问设置

•设置对象权限

•设置ACL存储桶权限

•添加存储桶策略

•通过CORS添加跨域资源共享

•使用 S3 访问分析器

申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。

相关推荐
弗锐土豆1 小时前
工业生产安全-安全帽第二篇-用java语言看看opencv实现的目标检测使用过程
java·opencv·安全·检测·面部
HackKong2 小时前
小白怎样入门网络安全?
网络·学习·安全·web安全·网络安全·黑客
打码人的日常分享2 小时前
商用密码应用安全性评估,密评整体方案,密评管理测评要求和指南,运维文档,软件项目安全设计相关文档合集(Word原件)
运维·安全·web安全·系统安全·规格说明书
爱吃奶酪的松鼠丶2 小时前
Web安全之XSS攻击的防范
安全·web安全·xss
东莞梦幻网络科技软件开发公司2 小时前
开发体育赛事直播平台防止数据泄露的技术安全方案
经验分享·安全
vmlogin虚拟多登浏览器2 小时前
虚拟浏览器可以应对哪些浏览器安全威胁?
服务器·网络·安全·跨境电商·防关联
澜世2 小时前
2024小迪安全基础入门第三课
网络·笔记·安全·网络安全
.Ayang4 小时前
tomcat 后台部署 war 包 getshell
java·计算机网络·安全·web安全·网络安全·tomcat·网络攻击模型
Hacker_Oldv4 小时前
开放性实验——网络安全渗透测试
安全·web安全
运维&陈同学5 小时前
【zookeeper03】消息队列与微服务之zookeeper集群部署
linux·微服务·zookeeper·云原生·消息队列·云计算·java-zookeeper