警惕微软Entra ID风险:访客账户存在隐蔽的权限提升策略

image

访客用户订阅权限漏洞解析

微软Entra ID的订阅管理存在访问控制缺陷,允许访客用户在受邀租户中创建和转移订阅,同时保留对这些订阅的完全所有权。访客用户只需具备在源租户创建订阅的权限,以及受邀成为外部租户访客的身份即可实施此操作。这种隐蔽的权限提升策略使访客用户能够在仅应拥有有限访问权限的环境中获取特权立足点。

多数企业基于临时性和有限访问特性将访客账户视为低风险,但这一设计行为却为攻击者打开了已知的攻击路径和资源租户内的横向移动通道。威胁行为者可能借此在防御方的Entra ID中实现未授权侦察和持久化驻留,并在特定场景下推进权限提升。

访客账户如何攻陷Entra ID租户

访客创建订阅的漏洞利用源于微软计费权限(企业协议或微软客户协议)作用于计费账户而非Entra目录这一特性。安全团队通常关注Entra目录角色(如全局管理员)或Azure RBAC角色(如所有者),却往往忽视计费角色的存在。

当B2B访客用户受邀加入资源租户时,他们通过源租户的身份验证进行访问。这种节省成本的机制导致目标租户无法强制执行多因素认证(MFA)等验证控制。若访客在其源租户拥有有效计费角色,便可成为Azure内部的订阅所有者。

攻击者甚至可以利用按需付费的Azure租户(数分钟即可创建)中的访客账户实施攻击。默认情况下,包括访客在内的任何用户均可邀请外部用户加入目录,这意味着攻击者可利用被入侵账户邀请具有计费权限的用户进入目标环境。

攻击者利用非特权访客账户提权步骤

  1. 攻击者通过以下方式获取具有创建订阅权限的计费角色用户控制权:
    • 使用Azure免费试用创建自己的Entra租户(注册用户将成为计费账户所有者)
    • 入侵已具备计费角色/订阅所有权的现有用户账户
  2. 获取目标Entra租户的访客用户邀请(默认任何用户均可发起邀请)
  3. 登录Azure门户并进入完全控制的源目录
  4. 导航至"订阅>添加"功能
  5. 切换至"高级"选项卡,将防御方目录设为目标目录
  6. 创建订阅(该订阅将出现在防御方租户的根管理组下)
  7. 攻击者自动获得该订阅的"所有者"RBAC角色

现实风险:恶意访客的订阅滥用场景

攻击者获取其他组织租户内的订阅所有者权限后,可实施以下通常受角色限制的操作:

  • 列举根管理组管理员:通过创建的订阅查看"访问控制"角色分配,暴露高价值特权账户列表
  • 削弱关联订阅的默认Azure策略:修改或禁用安全策略,消除违规警报
  • 创建用户托管身份:建立独立于原访客账户的持久化身份,获取跨订阅权限
  • 注册Entra加入设备并滥用条件访问策略:伪造合规企业设备,获取受信资产访问权

访客订阅创建为何成为Entra安全新隐患

BeyondTrust研究人员已观测到攻击者实际滥用访客订阅创建功能的情况。该威胁的特殊性在于:

  • 超出多数Azure管理员对访客能力的预期认知
  • 未被典型Entra威胁模型涵盖
  • 在B2B场景中尤为普遍(源租户与资源租户分属不同组织)

缓解措施:阻断访客订阅立足点

微软允许组织通过订阅策略阻止访客转移订阅至其租户。建议采取以下措施:

  1. 审计并清理冗余访客账户
  2. 强化访客控制(如禁用访客间邀请)
  3. 定期检测异常访客创建的订阅和资源
  4. 监控Azure门户所有安全中心警报
  5. 审计设备访问(特别是使用动态组规则的情况)

BeyondTrust身份安全洞察产品可自动标记访客创建的订阅,提供异常行为可视化能力。

深层思考:身份配置错误成为新型漏洞

访客订阅入侵事件揭示了现代企业环境中被忽视的身份安全弱点。B2B信任模型、继承的计费权限和动态角色意味着每个账户都可能成为权限提升的跳板。建议企业重新审视访客访问策略、可视化工具和订阅治理模型。

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

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

相关文章

EEG分类攻略2-Welch 周期图

在EEG信号处理的上下文中,使用Welch方法来估算信号的功率谱密度(Power Spectral Density, PSD)是一种常见的做法。你的代码片段是利用**scipy.signal.welch**函数来进行功率谱密度估算,并且涉及到一些关键的参数和步骤。让我们逐步…

开疆智能CCLinkIE转ModbusTCP网关连接脉冲计数器配置案例

本案例是三菱PLC通过CCLinkIE转ModbusTCP网关连接脉冲计数器的配置案例,具体配置如下。 配置过程: 首先设置从站通讯参数 主要设置IP地址,工作模式以及端口号(Modbus默认502) 找到通讯点表,找到需要读写的…

gRPC 使用(python 版本)

.proto 文件 .proto 文件 是 gRPC 和 Protocol Buffers 的接口定义文件,它描述了: 要传递什么数据(也就是消息体 message)。要暴露什么接口(也就是服务 service 和它们的 方法)。 也就是一份规范文件&am…

VMware安装

勾选【增强型键盘驱动程序】 #后期虚拟机用鼠标键盘比较好用 VMware创建主机Windows2 选择类型配置【自定义】 安装客户机操作系统【稍后安装操作系统】 客户机操作系统【Microsoft Windows】,版本选Windows最高版本 【固件类型】默认UEFI 【处理器配置】选1个处理…

【沉浸式解决问题】微服务子模块引入公共模块的依赖后无法bean未注入

目录 一、问题描述二、场景还原三、原因分析四、解决方案五、拓展知识参考文献 一、问题描述 在微服务项目中的公共模块进行了Mybatis Plus配置,创建了配置类并添加了Configuration注解,其他模块引入该模块后不生效 我这里是在Mybatis Plus公共模块中注…

SQL进阶:CASE表达式

目录 1、用一条SQL语句进行不同条件的统计 建表语句(MySQL8): 录入数据: *按性别统计SQL 输出结果(行列转换) 2、在UPDATE语句里进行条件分支 建表语句(MySQL8):…

哪四款AI工具让3D人物手办制作如此简单?

在当今数字化时代,AI技术的飞速发展为我们的生活带来了诸多便利和惊喜。其中,AI生成3D人物手办工具的出现,让我们能够轻松地将自己的创意和想象转化为实体手办,满足了众多手办爱好者的个性化需求。今天,我将为大家推荐…

Docker高级管理--Dockerfile镜像制作

目录 一:Docker 镜像管理 1:Docker 镜像结构 2:Dockerfile介绍 二:Dockerfile 语法基础 1:基础指令 2:环境设置指令 3:文件操作指令 4:执行命令指令 5:网络和暴露端口指令 6.容器挂载指令 三:dockerfile案例 1.构建nginx容器 一:Docker 镜像管理 Docker…

数字时代的“灵魂”之争:虚拟人形象的著作权困局与破局之道

首席数据官高鹏律师数字经济团队创作,AI辅助。 一、虚拟人的“数字生命”:一场关于“灵魂”的商业博弈 当一个虚拟偶像的“眼神”被复刻成千万个相似的数字面孔,当一段虚拟主播的“声音”被拆解为可交易的数据碎片——我们正在见证一个“数…

小型CI/CD搭建(TODO)

1 方案 因为是在国内,所以gitbub Actions,​​Azure DevOps​这些就直接拜拜了。 目前主流的大概是三种: 1 阿里云效/腾讯云CODING 2 GitLab CE GitLab Runner 3 Gitee Jenkins deepeseek比较了一下如下: 阿里云效 vs Git…

Android Studio flutter项目运行、打包时间太长

Android Studio:Android Studio Meerkat Feature Drop | 2024.3.2 Patch 1 flutter Sdk:3.29.3 系统:windows flutter sdk从2.10.5升级到3.29.3,但是Flutter 3.16开始新增了使用 Gradle声明式 plugins {} 块,gradle文…

【OpenGL学习】(六)图形添加纹理

文章目录 【OpenGL学习】(六)图形添加纹理纹理环绕纹理过滤纹理颜色与顶点颜色混合 OpenGL纹理介绍:https://learnopengl-cn.github.io/01%20Getting%20started/06%20Textures/ 【OpenGL学习】(六)图形添加纹理 项目…

allure安装

一、安装java 需要安装java环境,不安装的话在运行前会报错下列问题(前提是安装了allure未安装java) 1.官网地址:https://www.oracle.com/ 2.点击”Download Java“ 3.选择JDK正式版本(需要jdk1.8) 4.选择W…

SpringBoot基于JavaWeb的城乡居民基本医疗信息管理系统

概述 一个基于SpringBoot框架开发的JavaWeb医疗信息管理系统,采用了现代化的技术架构,功能全面,非常适合作为学习项目或二次开发的基础。 主要内容 该系统主要包含以下核心功能模块: ​​用户管理模块​​ 实现管理员、医生、…

SQL变量声明与赋值 分支 循环

– 变量 分支 循环 – declare 变量名 数据类型 – declare 关键字,作用声明变量 – 变量名:以开头 – 数据类型:数据库中支持的数据类型:int varchar(n) text char(n) nvarchar(n) nchar(n) declare name varchar(255)– 定义多…

AWS S3 可观测性最佳实践

AWS S3 介绍 AWS S3(Amazon Simple Storage Service)是一种可扩展的对象存储服务,提供高可用性、持久性和安全性。它允许用户存储和检索任意数量的数据,并通过简单的 Web 服务接口访问这些数据。S3 支持多种存储类别,…

Ubuntu下布署mediasoup-demo

一、引言 mediasoup是一个强大的SFU架构的WebRTC流媒体服务器,凭借其多功能性、高性能和可扩展性,mediasoup成为构建多方视频会议和实时流媒体应用程序的完美选择。它具有联播、SVC、传输BWE和更多尖端功能。本文介绍了mediasoup-demo在Ubuntu下的布署。…

【JVS更新日志】物联网、智能排产APS、企业计划、规则引擎6.25更新说明!

项目介绍 JVS是企业级数字化服务构建的基础脚手架,主要解决企业信息化项目交付难、实施效率低、开发成本高的问题,采用微服务配置化的方式,提供了低代码数据分析物联网的核心能力产品,并构建了协同办公、企业常用的管理工具等&…

解决git pull,push 每次操作输入账号密码问题

服务器每次git pull 的时候都需要输入账号密码,一劳永逸解决它。 解决方案: 找到项目下 .git /config 文件,然后打开,编辑 [rootiZbp11b24d3d7nc8uvjx9mZ .git]# ls branches config description FETCH_HEAD HEAD hooks i…

Netty:深入解析AbstractByteBufAllocator架构设计

AbstractByteBufAllocator 类结构分析 类结构概览 public abstract class AbstractByteBufAllocator implements ByteBufAllocator {// 静态常量static final int DEFAULT_INITIAL_CAPACITY 256;static final int DEFAULT_MAX_CAPACITY Integer.MAX_VALUE;// ...其他常量//…