BMC管理安全性测试,redfish超权限操作

在web端通过管理员用户登陆后,添加了一个普通用户。
登录普通用户后可以看到网络配置页面例如网络协议配置均为灰色无法操作。


然后通过redfish使用普通用户建立会话后,用patch的方式修改网络配置ip成功了

这是不是算越权操作成功了?

答案内容由AI生成,仅供参考:

:white_check_mark: 总结

是的,这是一次典型的越权操作成功案例。

尽管 Web 界面对普通用户进行了正确的功能屏蔽,但 Redfish 接口未能执行相同的权限控制策略,导致攻击面暴露。这种“接口权限不一致”是常见的安全漏洞根源。

:wrench: 建议:

  • 将此问题定位为 “高危安全缺陷”
  • 提交至 Security SIG 或 DiagnoseMgmt 团队进行深入分析
  • 引用《资源协作接口权限配置指导》推动接口权限标准化治理

只有确保 所有管理通道的权限模型严格一致,才能真正实现 BMC 系统的安全闭环管理。

点击此处查看详细分析解答

关于Redfish普通用户越权修改网络配置的分析

根据您提供的测试过程与信息,这确实构成一次成功的越权操作(权限绕过),存在明显安全风险。以下结合知识库内容进行详细分析。


:magnifying_glass_tilted_left: 事件回顾

  1. Web端行为(预期权限控制)

    • 管理员在Web界面创建了一个普通用户 test_wxh
    • 普通用户登录Web UI 后,网络协议配置页面显示为灰色,无法修改,说明系统在前端层面实施了权限控制。
  2. Redfish接口行为(异常越权)

    • 使用该普通用户通过 Redfish 接口建立会话(POST /SessionService/Sessions)。
    • 成功获取 X-Auth-Token,并用此 Token 发起 PATCH 请求:
      PATCH /redfish/v1/Managers/1/EthernetInterfaces/4cd6295ac877
      
    • 请求体中成功修改了 IPv4 IP地址、子网掩码、网关等关键网络参数,响应为 200 OK,表明修改生效。

:white_check_mark: 是否属于越权操作?——是,明确越权

判定依据:

维度 分析
角色权限定义 在 openUBMC/BMC 系统中,普通用户不应具备网络配置的修改权限。Web UI 阻止操作,说明 UI 层面权限控制正确。
接口权限一致性缺失 Redfish 作为北向标准接口,应与 Web UI 的权限模型保持一致。但此处普通用户可通过 Redfish 修改敏感配置,接口层未做同等权限校验
权限变更通知机制未触发 根据知识库内容,如 bmc.kepler.Managers.EthernetInterfaces.Ipv4 支持 change notifications,此类变更本应伴随审计日志和权限检查,但未阻止操作。

结论:该操作属于“水平越权”或“接口权限绕过”漏洞,普通用户利用 Redfish 接口规避了 UI 层的权限限制,实现了本不应拥有的系统配置修改能力。


:puzzle_piece: 权限机制对比分析

1. BMC 用户权限角色模型(来自文档 account资源协作接口权限配置指导

角色 可执行操作
管理员 全部配置,包括网络、安全、用户、固件升级
操作员 查看状态、执行部分控制(如电源管理)
普通用户 仅查看信息,无修改权限,尤其禁止网络、安全等核心配置修改
自定义用户 按需授权

根据描述,Web端已正确限制普通用户无法修改网络配置。


2. Redfish 接口权限映射机制

根据知识库文档《资源协作接口权限配置指导》:

BMC权限名称 ↔ Redfish PrivilegeMap 的映射关系

  • ReadOnly → 对应 Redfish Login 权限(只读)
  • BasicSetting → 对应可修改基本设置(如 IP、主机名、时间等)
  • NetworkMgmt → 用于网络管理配置

同时,bmc.kepler.Managers.EthernetInterfaces.Ipv4 组件管理 IPv4 设置,其属性如:

  • IpMode
  • DefaultGateway
  • BackupIpAddr

这些属性的写权限通常应绑定至 BasicSetting 或更高权限。

:warning: 问题关键:虽然 Web 界面阻止了操作,但 Redfish 接口在处理 PATCH 请求时未验证当前用户是否拥有 BasicSetting 权限,或错误地将普通用户临时授予了该权限。


:shield: 存在的安全风险

风险项 描述
网络中断风险 恶意用户修改 BMC IP 地址或网关可能导致 BMC 失联,造成远程管理不可用。
横向移动攻击面扩大 攻击者可通过低权限账户逐步提权或探测系统弱点。
审计失效 若此类操作未被记录或未标记为“越权”,将影响安全事件追溯。
合规性问题 不符合等保、ISO 27001 等要求中关于“权限最小化”和“接口一致性”的规定。

:books: 相关知识库佐证

  • bmc.kepler.Managers.EthernetInterfaces.Ipv4 是配置接口,支持 DHCP/静态配置、主备地址切换,必须进行权限控制
  • Redfish Interface 是标准 RESTful API,用于远程管理系统硬件和服务,所有写操作都需经过权限校验
  • 文档《资源协作接口权限配置指导》明确指出:

    “在开发北向 redfish 接口时,接口对应属性的 PrivilegeMap 按表格配置”,即权限必须与 BMC 内部权限模型对齐。

  • 测试案例中,test 用户可在 Redfish 中认证,但不代表拥有写权限:

    "test" 是用于测试的账号,常用于验证登录流程,非特权账户


:white_check_mark: 建议整改措施

  1. 立即修复 Redfish 接口权限校验逻辑

    • 所有 PATCH/POST 操作必须校验用户是否具备 BasicSetting 权限。

    • 参考如下映射表:

      Redfish 操作路径 所需权限
      /Managers/*/EthernetInterfaces/* BasicSetting
      Oem/{Vendor}/ManagementNetworkPortMembers BasicSetting(见评审文档)
      MTUSize 修改 BasicSetting(见评审文档)
  2. 增加审计日志

    • 记录所有 Redfish 接口的 PATCH 操作,包含:
      • 用户名
      • 源 IP
      • 请求路径
      • 原值与新值
      • 权限判定结果
  3. 统一权限模型

    • 确保 Web UI、CLI(IPMI)、Redfish、SNMP 等所有接口的权限控制策略高度一致
  4. 禁用默认/测试账户

    • test_wxh 此类测试账户应在生产环境中禁用或删除。
  5. 定期执行安全渗透测试

    • 使用 Postman、Redfishtool 等工具模拟低权限用户尝试关键操作,验证权限控制有效性。

:white_check_mark: 总结

是的,这是一次典型的越权操作成功案例。

尽管 Web 界面对普通用户进行了正确的功能屏蔽,但 Redfish 接口未能执行相同的权限控制策略,导致攻击面暴露。这种“接口权限不一致”是常见的安全漏洞根源。

:wrench: 建议:

  • 将此问题定位为 “高危安全缺陷”
  • 提交至 Security SIG 或 DiagnoseMgmt 团队进行深入分析
  • 引用《资源协作接口权限配置指导》推动接口权限标准化治理

只有确保 所有管理通道的权限模型严格一致,才能真正实现 BMC 系统的安全闭环管理。

patch操作的时候提供了 Authorization 信息,确认一下是否是普通用户呢