云上攻防:任意上传、域名接管与AK/SK泄漏

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 随着企业上云的趋势加剧,云安全成为新的焦点。本文探讨了云计算环境中的三大安全问题:任意上传、域名接管与AK/SK泄漏,分析了这些威胁的工作原理及防护措施,强调了数据保护和访问控制的重要性。通过阿里云等平台的实际案例,提供了具体的安全防范建议。

随着企业上云逐渐形成了趋势和规模,云安全也成为了新的焦点和风口,云上安全越来越重要;在近几年的攻防中AKSK、小程序、云上供应链都已经成为了兵家必争之地和重要突破口

云服务不仅提供了高效的数据存储和计算能力,还支持了业务的快速扩展和灵活部署。然而,云计算的广泛应用也带来了新的安全挑战,特别是在数据保护和访问控制方面。网络攻击者正不断寻找并利用云服务中的漏洞,威胁企业的敏感数据和业务连续性。

在这种背景下,云上攻防成为了信息安全领域的重要课题。本文将深入探讨云计算环境中的三个关键安全问题:任意上传、域名接管与AK/SK泄漏。这些问题不仅直接影响到云服务的安全性,还可能导致严重的业务中断和数据泄露。

任意上传漏洞允许攻击者将恶意文件上传到云服务器,从而执行恶意代码或窃取数据。域名接管攻击则利用DNS配置的漏洞,接管目标域名控制权,实施钓鱼攻击或流量劫持。AK/SK(Access Key/Secret Key)的泄漏则更加严重,攻击者可以利用这些凭证未经授权地访问云服务,执行恶意操作。理解和防护这些安全威胁,是保障云环境安全的关键。

在接下来的章节中,我们将通过阿里云为样板详细描述每种安全威胁的工作原理,并提供实际可行的防护措施。

任意上传

对象存储权限配置错误:

公共读或公共读写

  1. 公共读(Public Read):当Bucket配置为公共读时,任何人都可以读取存储桶中的对象,但不能进行写操作。这种配置通常用于需要公开访问的数据,如网站的静态资源。然而,公共读配置可能导致数据泄露,因为任何人都可以访问这些数据。
  2. 公共读写(Public Read/Write):当Bucket配置为公共读写时,任何人都可以读取和写入存储桶中的对象。这种配置非常危险,因为攻击者可以随意上传、修改或删除存储桶中的数据。

权限Bucket授权策略

  1. ListObject权限:Bucket的授权策略可以设置为允许或拒绝用户在存储桶中列出对象。当有ListObject权限时,用户可以查看存储桶中所有对象的列表。这可能泄露存储桶的内部结构和文件名,给攻击者提供更多的信息来进行进一步的攻击。

权限Bucket读写权限

  1. 公共读写权限:如果Bucket配置为公共读写权限,任何人都可以执行PUT操作,将文件上传到存储桶中。攻击者可以利用这个漏洞上传恶意文件,导致数据污染或恶意代码执行。

如图所示,如果对象存储配置不当,比如公共读写,那么可能就会造成任意文件上传与文件覆盖。

改请求方式为PUT

如果目标的对象存储支持 html 解析,那就可以利用任意文件上传进行 XSS 钓鱼、挂暗链、挂黑页、供应链投毒等操作。

防护措施

为了防止由于权限配置错误引起的安全问题,可以采取以下防护措施:

  1. 使用最小权限原则:仅为用户和应用程序分配其完成任务所需的最小权限,避免过度授权。
  2. 避免公共读写:除非绝对必要,尽量避免将Bucket配置为公共读或公共读写。使用细粒度的权限控制,确保只有授权用户可以访问或修改数据。
  3. 配置Bucket策略:通过配置Bucket策略,明确规定哪些用户或角色可以进行哪些操作。例如,可以设置只允许特定的IP地址范围或特定的用户组访问特定的对象。
  4. 启用访问日志和监控:启用访问日志和监控,实时记录和监控Bucket的访问情况,及时发现异常行为。
  5. 定期审查权限配置:定期审查和更新Bucket的权限配置,确保符合当前的安全需求和策略。
  6. 使用多层次安全控制:结合使用IAM(身份和访问管理)策略、Bucket策略和对象ACL(访问控制列表),提供多层次的安全控制。

通过采取这些防护措施,企业和个人可以有效地防止由于权限配置错误引起的数据泄露和恶意篡改,确保对象存储中的数据安全。

域名解析与Bucket接管

问题描述

在云存储服务(如Amazon S3、阿里云OSS等)中,用户通常会创建Bucket(存储桶)来存储数据,并且可以将Bucket与特定的域名绑定,以便通过该域名直接访问Bucket中的内容。域名解析是将域名映射到对应的Bucket上,使得用户可以通过域名访问存储桶中的资源。

然而,当Bucket被删除后,如果未及时更新或删除域名解析记录,这个域名解析仍然指向已经不存在的Bucket。这种情况下,攻击者可以利用这个漏洞,创建一个同名的Bucket,从而接管原本已删除的Bucket绑定的域名。这种攻击方式被称为“Bucket接管”。

判断是否可以接管

当尝试访问域名绑定的Bucket时,不同的响应信息可以帮助判断该Bucket是否可以被接管:

  1. NoSuchBucket:如果访问该域名时返回“NoSuchBucket”错误信息,说明这个Bucket已经不存在,但域名解析仍然指向该Bucket。这表明攻击者可以尝试创建一个同名的Bucket,并接管该域名的访问权。
  2. AccessDenied:如果返回“AccessDenied”错误信息,则说明这个Bucket存在,但当前用户没有权限访问。此时,攻击者无法接管该Bucket。
  3. 可以尝试如ping该存储桶地址如若返回为域名地址,则能确认问题确实存在

防护措施

为了防止Bucket接管问题,企业和个人可以采取以下防护措施:

  1. 及时更新域名解析记录:在删除Bucket后,及时更新或删除对应的域名解析记录,确保域名不再指向已删除的Bucket。
  2. 定期审查DNS记录:定期检查DNS记录,确保没有指向不存在或不正确资源的记录。
  3. 使用多因素认证:在域名管理平台启用多因素认证,增加安全性,防止未经授权的更改。
  4. 域名监控:使用自动化工具监控域名的解析记录和状态,及时发现和修复潜在的问题。

通过理解和防护这些安全威胁,企业和个人可以有效降低云环境中的安全风险,确保数据和资源的安全性。

AK/SK 泄漏的途径

当AccessKeyId和SecretAccessKey(简称AK/SK)泄漏时,攻击者可以利用这些凭证直接访问云服务,执行各种未经授权的操作,如读取数据、上传文件、删除资源等。以下是对AK/SK泄漏的解读及相关防护措施。

  1. APP、小程序中的泄漏:开发者在开发移动应用、微信小程序等过程中,可能会将AK/SK硬编码到应用中。如果应用的代码被反编译或通过其他方式被获取,AK/SK可能会泄露。
  2. JavaScript中的泄漏:前端代码(如JavaScript)是公开的,任何人都可以查看。如果开发者在前端代码中包含了AK/SK,这些密钥将暴露给所有访问网站的用户。

AccessKey标识特征整理与查找

在发现AK/SK泄漏后,可以通过以下方法来整理和查找泄露的密钥:

  1. 标识特征:AK通常有一定的格式和长度,可以使用正则表达式或其他自动化工具来扫描代码库、日志文件、版本控制历史等位置,查找可能泄露的AK/SK。
  2. 使用搜索引擎:通过搜索引擎查找代码片段,尤其是在公开的代码仓库(如GitHub)中。很多时候,开发者会无意中将含有AK/SK的代码提交到公共代码仓库。
  3. 监控与告警:使用自动化工具监控代码库、日志、配置文件等位置,如果发现疑似AK/SK的内容,立即触发告警并采取措施。

AccessKey标识特征整理-查找:https://wiki.teamssix.com/CloudService/more/

阿里云

阿里云 (Alibaba Cloud) 的 Access Key 开头标识一般是 "LTAI"。

^LTAI[A-Za-z0-9]{12,20}$

1

  • Access Key ID长度为16-24个字符,由大写字母和数字组成。
  • Access Key Secret长度为30个字符,由大写字母、小写字母和数字组成。

#腾讯云

腾讯云 (Tencent Cloud) 的 Access Key 开头标识一般是 "AKID"。

^AKID[A-Za-z0-9]{13,20}$

1

  • SecretId长度为17个字符,由字母和数字组成。
  • SecretKey长度为40个字符,由字母和数字组成。

#华为云

华为云 (Huawei Cloud) 的 Access Key 是20个随机大写字母和数字组成,较难用正则表达式匹配。

[A-Z0-9]{20}

1

#百度云

百度云 (Baidu Cloud) 的 Access Key 开头标识一般是 "AK"。

^AK[A-Za-z0-9]{10,40}$

可通过HAE添加正则表达式高光显示便于寻找目标

防护措施

为了防止AK/SK泄漏和减少泄漏后的风险,可以采取以下措施:

  1. 避免在客户端存储AK/SK:尽量不要在客户端应用(如APP、小程序、前端JavaScript代码)中存储或暴露AK/SK。可以通过后端代理服务来处理需要鉴权的请求。
  2. 使用环境变量和配置管理工具:将AK/SK存储在安全的环境变量中或使用配置管理工具,并确保这些信息不会被包含在代码库中。
  3. 定期轮换AK/SK:定期更新和轮换AK/SK,并在泄漏发生时立即禁用泄漏的密钥并生成新的密钥。
  4. 最小权限原则:为每个AK/SK分配最小必要权限,确保即使密钥泄漏,攻击者能够造成的损害也被限制在最低范围。
  5. 使用短期临时凭证:考虑使用云服务提供的短期临时凭证(如AWS的STS)来代替长期有效的AK/SK,减少泄漏的风险。
  6. 加密与密钥管理:使用云服务的密钥管理服务(KMS)来加密和保护AK/SK,并确保在传输过程中使用加密协议(如HTTPS)。

通过采取这些措施,可以显著降低AK/SK泄漏的风险,并在发生泄漏时快速响应以减少可能的损失。

相关文章
|
4月前
|
存储 域名解析 前端开发
云上攻防-云服务篇&对象存储&Bucket桶&任意上传&域名接管&AccessKey泄漏
云上攻防-云服务篇&对象存储&Bucket桶&任意上传&域名接管&AccessKey泄漏
148 8
|
2天前
|
存储 安全 数据库
阿里云最新域名注册和续费、企业邮箱、云虚拟主机收费标准与价格参考
域名注册和续费以及企业邮箱和云虚拟主机是很多用户上云第一步需要购买的产品,从2024年9月1日开始,全球域名又迎来了一波价格上调,目前阿里云的.com英文域名的注册价格由原来的78元涨价到了83元,续费价格也涨到了90元,不过企业新用户注册有1元购等活动。企业邮箱目前活动价540.00元/1年起,云虚拟主机独享基础增强版月付49元/1个月起,年付588元/1年起。本文为大家整理汇总了截止目前,阿里云域名注册和续费及转入收费标准、企业邮箱收费标准与活动价格、云虚拟主机最新收费标准,以供参考。
|
4天前
|
弹性计算 网络协议 安全
如何使用阿里云虚拟主机和域名设置网站?
如何使用阿里云虚拟主机和域名设置网站?
|
12天前
|
移动开发 安全 API
阿里云最新域名注册及续费和转入收费价格表参考
目前域名注册管理机构(Verisign)已上调.com中英文域名成本,这一变动将直接影响到全球范围内.com域名价格,各大注册商的.com域名注册、续费、转移价格已同步上涨。以阿里云为例,此次涨价之后,.com英文域名的注册价格由原来的78元涨价到了83元,续费价格也涨到了90元,下面是2024年9月1日涨价之后,阿里云最新的域名注册及续费和转入最新收费价格表。
|
5月前
|
域名解析 弹性计算 Linux
阿里云购买云服务器、注册域名、备案及绑定图文教程参考
本文为大家介绍了2024年购买阿里云服务器和注册域名,绑定以及备案的教程,适合需要在阿里云购买云服务器、注册域名并备案的用户参考,新手用户可通过此文您了解在从购买云服务器到完成备案的流程。
阿里云购买云服务器、注册域名、备案及绑定图文教程参考
|
6天前
|
弹性计算 网络协议 数据库
在阿里云国际站上解析域名到服务器详细教程
在阿里云国际站上解析域名到服务器详细教程
阿里云域名购买注册流程_创建信息模板_域名实名认证全流程
阿里云域名注册指南:访问[阿里云域名注册入口,查询并注册心仪域名,选择后缀,加入清单后结算。价格因后缀而异,如.com首年78元。创建域名信息模板完成实名认证,首次需上传资料。获取优惠口令并使用可享折扣
|
5月前
|
运维 JavaScript Java
Serverless 应用引擎产品使用之在阿里云函数计算中想为两个不同的服务分别开通自定义域名如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
1月前
|
域名解析 运维
阿里云日常运维-购买域名
这篇文章是关于如何在阿里云进行日常运维,包括购买域名的详细步骤和一些推荐阅读资源。
75 4
|
2月前
|
安全 数据建模 网络安全
阿里云SSL证书价格多少钱一年?单域名和通配符收费明细整理
阿里云提供多样化的SSL证书服务,包括免费及付费选项。免费版由DigiCert提供,适合基本需求,有效期为3个月。付费证书品牌涵盖WoSign、DigiCert、GlobalSign等,价格从238元/年起。不同品牌与类型的证书(如DV、OV、EV)费用各异,满足各类安全需求。详情及最新价格请访问阿里云官方页面。