企业上云的新攻击面分析
字数 2774 2025-08-22 12:22:54

企业上云的新攻击面分析与防御指南

一、前言

云安全包含两大方面:

  1. 云平台自身的安全
  2. 云上租户的安全

本文重点探讨企业上云后面临的新攻击面,主要分为三大类:

  1. 云服务漏洞
  2. 错误的云配置
  3. 高风险的云特性

二、云安全责任共担模型

不同云服务类型的安全责任边界不同:

  • IaaS:从操作系统开始由租户负责
  • PaaS:云平台负责底层基础设施和平台
  • SaaS:云平台负责大部分安全责任

实际安全责任边界存在模糊地带,需要特别注意。

三、云服务漏洞

3.1 跨租户漏洞

3.1.1 租户资源实例隔离缺陷

隔离方案与打破隔离所需能力

  1. 物理隔离:需要物理访问能力
  2. 虚拟化隔离:需要虚拟机逃逸能力
  3. 容器隔离:需要容器逃逸能力
  4. 命名空间隔离:需要命名空间逃逸能力
  5. 应用隔离:需要应用层漏洞

典型案例

  • Azure PostgreSQL:通过数据库提权+容器逃逸实现跨租户访问(无网络隔离)
  • GCP PostgreSQL:同样技术但无法跨租户(有VM和网络隔离)

3.1.2 云服务管理面失陷

典型案例

  1. ChaosDB(Azure Cosmos DB):

    • 接管底层集群,访问任意租户数据库
    • 通过Jupyter功能漏洞实现
  2. I Own your Cloud Shell

    • 控制K8s集群接管任意租户的CloudShell

3.1.3 云服务内部账号凭据泄露

典型案例

  1. Superglue(AWS Glue):

    • 获取服务内部账号凭据
    • 可代入任意租户授权给Glue的角色
  2. BreakingFormation(AWS CloudFormation):

    • 类似Superglue,获取服务内部账号凭据
  3. Cataclysms in the Cloud Formations

    • 通过Lambda表达式获取内部凭据
    • 创建EventBridge规则获取租户凭据

3.1.4 跨租户越权访问

典型案例

  1. AttachMe(Oracle Cloud):

    • 跨租户挂载任意存储卷
    • 未校验租户对卷的权限
  2. AWS AppSync混淆代理人漏洞

    • 未校验RoleArn属主
    • 跨租户访问数据

3.1.5 云服务引入的供应链攻击

典型案例

  1. ECR Public漏洞

    • 通过未公开API操作公有库镜像
    • 可删除或注入恶意代码
  2. CloudImposer(GCP):

    • 依赖混淆攻击
    • 在GCP内部服务器执行命令

3.2 非跨租户漏洞

3.2.1 资源实例内的漏洞

典型案例

  1. Azure Function逃逸

    • 文件覆盖漏洞提权
    • 容器逃逸到宿主机
  2. FabricScape(Azure Service Fabric):

    • 从容器接管整个集群

3.2.2 Agent漏洞

典型案例

  1. AWS SSM Agent本地提权

    • 条件竞争修改sudoers文件
  2. OMIGOD(Azure OMI Agent):

    • 认证绕过获取root权限
    • 可远程利用(当开放外部访问时)

3.2.3 各类oneclick漏洞

典型案例

  • GCP Cloud Shell init.py执行
    • 通过恶意GitHub项目触发Python包导入
    • 执行任意命令

四、高风险的云特性

4.1 云服务角色引入的提权路径

典型案例

  1. AWS CodeStar

    • CreateProjectFromTemplate权限即可获取高权限
    • 默认有50+服务完全访问权限
  2. Azure Function Apps

    • Reader权限即可提权至完全控制
  3. ConfusedFunction(GCP Cloud Functions):

    • 创建权限即可获取Cloud Build权限

4.2 利用云平台内部IP打破网络隔离

攻击方法

  • 通过API网关等服务的VPC内网域名
  • 访问云平台大内网(100.x.x.x)
  • 使不出网的机器回连

4.3 隐式API

常见隐式API

  1. IMDS(实例元数据服务):

    • AWS/Azure/华为云:169.254.169.254
    • GCP:metadata.google.internal
    • 阿里云:100.100.100.200
    • 腾讯云:metadata.tencentyun.com
  2. Azure WireServer:168.63.129.16

  3. 任务元数据服务:169.254.170.2

4.4 共享父域引入的风险

风险类型

  1. 往父域写cookie
  2. 读父域cookie
  3. 域名校验绕过

典型案例

  • GCP Jupyter Notebooks
    • 通过cookie tossing实现CSRF
    • 结合扩展安装实现RCE

4.5 云凭据即运维系统

云凭据的特殊性

  • 默认可从公网调用API
  • 在资源实例中广泛存在
  • 结合公开API产生多种利用手段

4.6 可将攻击技术应用于云服务

连锁反应

  • 云服务A漏洞 → 影响使用A的云服务B → 影响使用B的租户

五、错误的云配置

5.1 对象存储使用不当

常见错误

  1. 基于资源的权限控制策略配置不当
  2. 将AKSK、STS直接返回前端
  3. 存储桶抢注
  4. 桶文件解析导致的XSS
  5. 临时共享连接路径校验不当

典型案例

  • AWS影子S3存储桶抢注
    • 跨region抢注同名桶
    • 导致数据泄露或篡改

5.2 AWS Cognito配置不当

错误配置场景

  1. 未设置Condition
  2. Condition仅将amr设置为unauthenticated
  3. Condition仅将amr设置为authenticated

典型案例

  • AWS Amplify IAM role公开可承担
    • 删除身份验证组件后遗留不安全配置
    • 允许任意Cognito身份池承担角色

六、防御建议

对云厂商的建议:

  1. 增强资源实例隔离边界防护
  2. 云服务角色权限最小化
  3. 审视软件云服务化保留的高风险功能
  4. 默认安全的实例配置
  5. 增强IAM能力,支持更细粒度管控
  6. 针对高风险特性推出缓解措施(如IMDSv2)

对租户的建议:

  1. 建立云凭据的安全使用规范和监控机制
  2. 熟悉云服务,识别高风险配置
  3. 业务设计考虑云上安全风险(如SSRF防护包含IMDS)
  4. 定期审视IAM用户和角色授权
  5. 敏感数据加密存储,解密物料分离
  6. 及时跟进云平台安全资讯

七、总结

企业上云后面临的新攻击面主要来自三个方面:云服务漏洞、错误配置和高风险特性。云环境的共享特性和自动化管理机制在带来便利的同时,也引入了传统IDC环境中不存在的安全风险。租户需要充分理解云安全责任共担模型,针对性地加强云环境的安全防护,特别是对云凭据的管理和云服务配置的审查。

通过分析各类公开漏洞案例,我们可以总结出云环境攻击的一些共性模式,并据此制定有效的防御策略。云安全是一个持续演进的过程,需要云厂商和租户共同努力,才能构建更安全的云上环境。

企业上云的新攻击面分析与防御指南 一、前言 云安全包含两大方面: 云平台自身的安全 云上租户的安全 本文重点探讨企业上云后面临的新攻击面,主要分为三大类: 云服务漏洞 错误的云配置 高风险的云特性 二、云安全责任共担模型 不同云服务类型的安全责任边界不同: IaaS :从操作系统开始由租户负责 PaaS :云平台负责底层基础设施和平台 SaaS :云平台负责大部分安全责任 实际安全责任边界存在模糊地带,需要特别注意。 三、云服务漏洞 3.1 跨租户漏洞 3.1.1 租户资源实例隔离缺陷 隔离方案与打破隔离所需能力 : 物理隔离:需要物理访问能力 虚拟化隔离:需要虚拟机逃逸能力 容器隔离:需要容器逃逸能力 命名空间隔离:需要命名空间逃逸能力 应用隔离:需要应用层漏洞 典型案例 : Azure PostgreSQL :通过数据库提权+容器逃逸实现跨租户访问(无网络隔离) GCP PostgreSQL :同样技术但无法跨租户(有VM和网络隔离) 3.1.2 云服务管理面失陷 典型案例 : ChaosDB (Azure Cosmos DB): 接管底层集群,访问任意租户数据库 通过Jupyter功能漏洞实现 I Own your Cloud Shell : 控制K8s集群接管任意租户的CloudShell 3.1.3 云服务内部账号凭据泄露 典型案例 : Superglue (AWS Glue): 获取服务内部账号凭据 可代入任意租户授权给Glue的角色 BreakingFormation (AWS CloudFormation): 类似Superglue,获取服务内部账号凭据 Cataclysms in the Cloud Formations : 通过Lambda表达式获取内部凭据 创建EventBridge规则获取租户凭据 3.1.4 跨租户越权访问 典型案例 : AttachMe (Oracle Cloud): 跨租户挂载任意存储卷 未校验租户对卷的权限 AWS AppSync混淆代理人漏洞 : 未校验RoleArn属主 跨租户访问数据 3.1.5 云服务引入的供应链攻击 典型案例 : ECR Public漏洞 : 通过未公开API操作公有库镜像 可删除或注入恶意代码 CloudImposer (GCP): 依赖混淆攻击 在GCP内部服务器执行命令 3.2 非跨租户漏洞 3.2.1 资源实例内的漏洞 典型案例 : Azure Function逃逸 : 文件覆盖漏洞提权 容器逃逸到宿主机 FabricScape (Azure Service Fabric): 从容器接管整个集群 3.2.2 Agent漏洞 典型案例 : AWS SSM Agent本地提权 : 条件竞争修改sudoers文件 OMIGOD (Azure OMI Agent): 认证绕过获取root权限 可远程利用(当开放外部访问时) 3.2.3 各类oneclick漏洞 典型案例 : GCP Cloud Shell init.py执行 : 通过恶意GitHub项目触发Python包导入 执行任意命令 四、高风险的云特性 4.1 云服务角色引入的提权路径 典型案例 : AWS CodeStar : CreateProjectFromTemplate权限即可获取高权限 默认有50+服务完全访问权限 Azure Function Apps : Reader权限即可提权至完全控制 ConfusedFunction (GCP Cloud Functions): 创建权限即可获取Cloud Build权限 4.2 利用云平台内部IP打破网络隔离 攻击方法 : 通过API网关等服务的VPC内网域名 访问云平台大内网(100.x.x.x) 使不出网的机器回连 4.3 隐式API 常见隐式API : IMDS (实例元数据服务): AWS/Azure/华为云:169.254.169.254 GCP:metadata.google.internal 阿里云:100.100.100.200 腾讯云:metadata.tencentyun.com Azure WireServer :168.63.129.16 任务元数据服务 :169.254.170.2 4.4 共享父域引入的风险 风险类型 : 往父域写cookie 读父域cookie 域名校验绕过 典型案例 : GCP Jupyter Notebooks : 通过cookie tossing实现CSRF 结合扩展安装实现RCE 4.5 云凭据即运维系统 云凭据的特殊性 : 默认可从公网调用API 在资源实例中广泛存在 结合公开API产生多种利用手段 4.6 可将攻击技术应用于云服务 连锁反应 : 云服务A漏洞 → 影响使用A的云服务B → 影响使用B的租户 五、错误的云配置 5.1 对象存储使用不当 常见错误 : 基于资源的权限控制策略配置不当 将AKSK、STS直接返回前端 存储桶抢注 桶文件解析导致的XSS 临时共享连接路径校验不当 典型案例 : AWS影子S3存储桶抢注 : 跨region抢注同名桶 导致数据泄露或篡改 5.2 AWS Cognito配置不当 错误配置场景 : 未设置Condition Condition仅将amr设置为unauthenticated Condition仅将amr设置为authenticated 典型案例 : AWS Amplify IAM role公开可承担 : 删除身份验证组件后遗留不安全配置 允许任意Cognito身份池承担角色 六、防御建议 对云厂商的建议: 增强资源实例隔离边界防护 云服务角色权限最小化 审视软件云服务化保留的高风险功能 默认安全的实例配置 增强IAM能力,支持更细粒度管控 针对高风险特性推出缓解措施(如IMDSv2) 对租户的建议: 建立云凭据的安全使用规范和监控机制 熟悉云服务,识别高风险配置 业务设计考虑云上安全风险(如SSRF防护包含IMDS) 定期审视IAM用户和角色授权 敏感数据加密存储,解密物料分离 及时跟进云平台安全资讯 七、总结 企业上云后面临的新攻击面主要来自三个方面:云服务漏洞、错误配置和高风险特性。云环境的共享特性和自动化管理机制在带来便利的同时,也引入了传统IDC环境中不存在的安全风险。租户需要充分理解云安全责任共担模型,针对性地加强云环境的安全防护,特别是对云凭据的管理和云服务配置的审查。 通过分析各类公开漏洞案例,我们可以总结出云环境攻击的一些共性模式,并据此制定有效的防御策略。云安全是一个持续演进的过程,需要云厂商和租户共同努力,才能构建更安全的云上环境。