RuntimeBroker.exe 是 Windows 操作系统中的一个系统进程,它负责管理 Metro 应用程序(现在称为 Universal Windows Platform 应用程序)的权限和沙盒环境。该进程通常在用户登录后启动,并且对于每个用户会话都会有一个实例在运行。

RuntimeBroker.exe(Windows Runtime Broker 运行时代理)完整拆解解构

术语概述

RuntimeBroker.exe,简称 Runtime Broker,自 Windows 8 引入,是 UWP / 打包应用 (Appx/MSIX) 安全模型核心 Broker 中介进程
 
可执行文件标准路径:
 
C:\Windows\System32\RuntimeBroker.exe
核心定位:
 
UWP 应用运行在AppContainer 低完整性沙箱,无法直接访问系统敏感资源;RuntimeBroker 运行在中等完整性 Medium IL,作为权限代理、WinRT COM 激活中介,统一拦截、校验、代理应用对受保护能力(Capability)的访问。
 
区分:
 
传统 Win32 程序不经过 RuntimeBroker;仅 UWP、MSIX 打包桌面应用、部分系统现代组件依赖它。

一、底层原理

1. 安全架构模型

plaintext
 
 
 
UWP App(AppContainer,Low IL 沙箱)
        ↓ IPC/COM/WinRT调用(无法直接访问硬件/隐私资源)
RuntimeBroker.exe(Medium IL 权限中介)
        ↓ 权限校验、代理转发
系统资源:摄像头、麦克风、位置、联系人、文档库、剪贴板、通知、WinRT系统组件
 

2. 四大核心机制

(1)AppContainer 沙箱权限仲裁

UWP 启动时绑定独立 AppContainer 安全令牌;沙箱默认隔离文件、注册表、硬件。
 
所有超出沙箱边界的资源请求,必须通过 WinRT COM 接口转发至 RuntimeBroker 校验。
 
App 包清单 (PackageManifest.xml) 预先声明 Capability;RuntimeBroker 比对:
 
① 应用是否在清单声明该能力;
 
② 用户隐私设置是否授予该权限;
 
二者同时满足才允许访问。

(2)WinRT COM 类托管与激活

WinRT(Windows Runtime)基于 COM 扩展;大量系统 WinRT 组件宿主在 RuntimeBroker 进程内(而非应用进程)。
 
应用不能直接实例化敏感 WinRT 对象,由 RPCSS → RuntimeBroker 完成对象激活,实现隔离。

(3)权限弹窗调度

当应用请求未授权资源时,RuntimeBroker 触发系统隐私授权弹窗,与 Shell (sihost.exe) 交互,采集用户允许 / 拒绝决策并持久化隐私配置。

(4)多实例模型

Windows 10/11 存在两类 Broker:
  1. RuntimeBroker.exe:通用运行时代理,多个应用可复用;
  2. PerAppRuntimeBroker.exe:单应用独立 Broker,强隔离场景一应用一进程。
任务管理器看到多条 RuntimeBroker,属于正常现象。

3. 关键安全设计思想

  • 权限提升隔离:低权限沙箱 App 不能直接调用高权限系统 API;由独立 Broker 代理,缩小攻击面;
  • 统一审计点:所有隐私资源访问集中经过 Broker,便于日志追踪;
  • 动态权限生效:设置中随时撤销权限,无需重启应用,下一次 API 调用立即拦截。

4. 管控的典型 Capability 能力

位置信息、摄像头、麦克风、图片 / 视频 / 文档库、联系人、日历、蓝牙、网络、剪贴板访问、通知、后台任务。

二、依赖文件与核心组件

1. 主程序

RuntimeBroker.exe
 
DCOM APPID:{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}

2. 核心加载 DLL

  • combase.dll:COM/WinRT 底层通信基础
  • ole32.dll:OLE/COM 调度
  • winrt.dll:Windows Runtime 核心库
  • kernel32.dll、ntdll.dll、user32.dll 基础系统库
  • cryptbase.dll:安全令牌、权限校验支撑

3. 注册表关键路径

reg
 
 
 
; WinRT类注册信息
HKLM\SOFTWARE\Microsoft\WindowsRuntime
; DCOM配置
HKCR\AppID\{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}
; AppContainer沙箱配置
HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer
; 应用隐私权限存储
HKCU\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore
 

4. 事件日志路径

应用程序和服务日志 → Microsoft → Windows → AppModel-RuntimeBroker\Operational

5. 配套协作进程

  • RPCSS.exe:COM/RPC 服务,负责 WinRT 对象跨进程激活
  • sihost.exe:Shell 体验主机,协助弹出权限授权窗口
  • explorer.exe:桌面 Shell
  • BackgroundTaskHost.exe:UWP 后台任务宿主,与 Broker 协同校验后台能力
  • AppXSvc:AppX 部署服务,提供应用包清单信息

三、依赖关系

硬性强制依赖

  1. RPCSS(COM 服务)
     
    RuntimeBroker 本质是 DCOM 服务器,没有 RPCSS 无法接收 UWP 应用跨进程调用;
  2. AppContainer 安全子系统(内核层支持);
  3. WinRT 运行时组件;
  4. 用户会话环境(在登录用户会话内运行,无法在会话 0 运行)。

可选依赖

  1. Windows 推送通知服务 (WpnService):处理应用通知相关权限;
  2. 位置服务 (Locationservice)、Windows 音频 / 相机服务:对应硬件能力校验;
  3. AppXSvc:读取应用包 Manifest 声明的 Capability。

不依赖

  1. 不需要 IIS、RDS 组件(和前文 RD 系列 Broker 完全无关,只是名字都叫 Broker,体系独立);
  2. 不依赖 Hyper-V;
  3. 传统 Win32 软件运行不触发 RuntimeBroker

约束与限制

  1. 无法直接结束进程:强行终止会导致所有 UWP 应用闪退、相机 / 定位等功能失效;
  2. 只管控声明式 Capability 权限,无法阻止应用访问沙箱内私有目录;
  3. MSIX 打包 Win32 只有使用 WinRT 隐私 API 时才经过 Broker;纯传统 Win32 API 不受管控。

四、完整逻辑链路

链路 A:UWP 应用请求摄像头权限(标准流程)

plaintext
 
 
 
1. 用户启动UWP应用,系统创建AppContainer沙箱进程;
2. 应用调用WinRT API请求访问摄像头;
3. API层检测为受保护Capability,封装COM请求转发至RPCSS;
4. RPCSS激活RuntimeBroker.exe,建立跨进程通道;
5. RuntimeBroker执行三重校验:
   ① 读取应用PackageManifest,确认应用已声明摄像头能力;
   ② 查询CapabilityAccessManager注册表,读取用户隐私授权状态;
6. 分支1【已授权】
   RuntimeBroker代理调用系统相机服务,打通数据流;摄像头画面经由Broker中转给应用;
7. 分支2【未授权】
   RuntimeBroker通知sihost.exe弹出系统授权弹窗;
   用户选择允许 → 写入注册表授权记录,建立访问通道;
   用户选择拒绝 → 返回访问拒绝错误给应用;
8. 应用持续使用资源期间,Broker维持代理会话;
9. 应用退出 → Broker释放资源句柄;无其他应用使用时,一段时间后自动退出RuntimeBroker实例。
 

链路 B:WinRT 对象激活流程

plaintext
 
 
 
UWP App → 请求实例化LocationTracker(WinRT类)
→ RPCSS路由激活请求
→ RuntimeBroker进程内加载对应WinRT组件
→ Broker持有对象实例,向App暴露代理接口
→ App所有调用经过Broker权限校验
 

典型异常分支

① AppManifest 未声明对应 Capability → Broker 直接拒绝访问,不弹出授权框;
 
② DCOM 权限异常(常见 10016 事件)→ 应用无法触发权限请求,功能报错;
 
③ 隐私注册表权限损坏 → 授权弹窗反复弹出、设置不生效;
 
④ RuntimeBroker 崩溃 → 所有关联 UWP 应用立刻丢失硬件 / 隐私资源访问。

五、配套运维链

1. 常用诊断命令

cmd
 
 
 
# 查看进程与模块
tasklist | findstr RuntimeBroker
# 列出已安装UWP包
Get-AppxPackage
# 清理权限存储(谨慎使用)
# 监控ETW追踪AppModel-RuntimeBroker日志
 

2. 故障排查顺序

  1. 确认进程路径:必须位于System32,路径异常警惕恶意程序伪装;
  2. 事件日志查看 AppModel-RuntimeBroker 报错;
  3. 检查 DCOM 配置 RuntimeBroker 本地激活权限;
  4. 验证CapabilityAccessManager注册表权限;
  5. 高 CPU 场景:定位关联 UWP 应用,卸载异常应用或重置应用包;
  6. 系统文件修复:sfc /scannow && DISM /Online /Cleanup-Image /RestoreHealth

六、运维风险与认知误区

  1. 重大概念误区
     
    RuntimeBroker ≠ RD Connection Broker / RD Gateway。
     
    二者名称都含 Broker,但属于两套完全独立体系
  • RuntimeBroker:UWP 应用权限中介(客户端本地进程);
  • RD 系列 Broker:微软远程桌面 RDS 调度网关(服务器远程桌面组件),互不调用。
  1. 高 CPU 常见诱因:
     
    某款 UWP 应用频繁反复请求权限、后台轮询 WinRT API,持续驱动 Broker 工作;并非 Broker 本身故障。
  2. 安全边界认知:
     
    RuntimeBroker 是攻击热点历史多发区域(多条 EoP 权限提升漏洞);原理根源:Low IL 沙箱进程与 Medium IL Broker 跨进程 IPC,一旦 IPC 解析缺陷即可提权。
  3. 不能禁用:禁用相关组件会导致照片、相机、商店应用、设置等现代 App 全部无法正常工作。

七、横向对比:各类 Windows Broker 进程区分

进程 归属体系 核心职能 运行环境
RuntimeBroker.exe UWP/AppModel 应用隐私权限、WinRT 代理 Windows 客户端 / 服务器通用
PerAppRuntimeBroker.exe UWP 单应用隔离版 RuntimeBroker Win10/11
Tssdis.exe(RD Connection Broker) RDS 远程桌面 远程会话调度负载均衡 仅 RDS 服务器角色
TSGateway.exe(RD Gateway) RDS 外网 RDP 隧道代理 仅 RDS 网关服务器

 


RuntimeBroker.exe 是 Windows 操作系统中的一个系统进程,它负责管理 Metro 应用程序(现在称为 Universal Windows Platform 应用程序)的权限和沙盒环境。该进程通常在用户登录后启动,并且对于每个用户会话都会有一个实例在运行。

具体来说,Runtime Broker 主要有以下作用:

  1. 权限管理: Metro 应用程序(UWP 应用程序)在 Windows 环境中处于沙盒中,意味着它们被限制在受控的环境中运行,不能直接访问系统资源。Runtime Broker 负责管理这些应用程序的权限,以确保它们只能访问其被授权的资源。

  2. 资源分配: Runtime Broker 还负责分配和管理应用程序使用的系统资源,如内存和处理器时间,以确保系统的稳定性和性能。

  3. 运行环境: 它提供了一个安全的执行环境,以隔离 Metro 应用程序,防止它们对系统造成不良影响。

通常情况下,用户不需要直接与 Runtime Broker 交互,它在后台默默地运行并完成其工作。但是,如果发现 Runtime Broker 占用了大量的系统资源,可能会导致系统变慢,此时可能需要检查是否有某个 Metro 应用程序出现了问题,或者进行系统调优来解决资源占用过高的问题。


 

 

 

posted @ 2024-04-24 20:25  suv789  阅读(1938)  评论(0)    收藏  举报