服务器带外管理设备安全性分析及解决方案
作者: 杨赟齐 邢厚子 朱静 郑兵 李鉴
摘要:信息技术领域的发展极大提升了社会生产力,不仅对计算机算力提出了更高要求,同时也要求算力设备具备更强的可维护性和稳定性。作为网络中最为关键的高性能计算机,服务器在稳定性和安全性方面无疑值得更多关注。服务器带外管理,因其通过基板管理控制器实现远程监控和管理,展现出极强的灵活性和管理效率,从而得到了广泛应用。然而,不断暴露的带外管理安全威胁,提醒服务器管理人员必须更加重视带外管理设备的安全性研究。通过深入研究带外管理IPMI规范和BMC系统,从IPMI规范自身存在的缺陷以及BMC系统设计上的不足两个方面,全面分析了带外管理存在的各种不安全因素。针对IPMI规范和BMC系统设计,文章提出了多种带外管理保护措施,以期实现服务器管理安全性的显著提升。
关键词:服务器;带外管理;智能平台管理接口;基板管理控制器
中图分类号:TP393 文献标识码:A
文章编号:1009-3044(2024)35-0080-03 开放科学(资源服务) 标识码(OSID) :
1 背景
进入21世纪以来,信息技术领域迎来了爆炸式的发展,云计算、大数据、边缘计算、人工智能以及5G网络等技术,从概念逐步走向实际,并在各个领域得到了广泛的部署和应用。这些技术的迅猛发展,不仅极大提升了社会生产力,同时对计算机算力提出了更高的需求,也要求算力设备具备更强的可靠性。服务器,作为部署在网络各个节点上,用于提供各种服务的高性能计算机,拥有高速的数据运算能力和海量的信息储存容量,存储并处理着网络上绝大部分的数据和信息,被誉为互联网的灵魂[1]。与普通计算机相比,服务器在稳定性、安全性以及性能等方面都有着更高的要求[2]。服务器设备管理主要分为带外管理和带内管理两种方式。由于带外管理方式不占用服务器系统资源,且管理、控制、数据信息分别位于不同的物理通道,相互独立,因此带外管理方式逐渐成为服务器设备管理的主流方式。
带外管理主要基于IPMI规范,其全称为“Intelli⁃ gent Platform Management Interface”,该规范于1998年由DELL、HP、NEC以及Intel共同提出。同时,IPMI论坛也负责创建和维护IPMI标准[1]。IPMI规范是一个硬件管理规范,它完整地涵盖了服务器以及其他系统。该协议规定了消息格式规范,并且对于不同的传输接口,消息格式也会有所不同。通过IPMI规范,服务器管理员可以方便地监视服务器的健康特征,如核心温度、电源电压、电源状态以及散热模组的工作状态等。IPMI规范是一个免费开放的标准,其最新版本为IPMI 2.0。然而,在标准IPMI协议的基础上,各大服务器厂商在独立开发带外管理产品时,对安全性能的忽视导致了安全漏洞的频发。
在本文中,首先介绍IPMI规范,并详细分析带外管理所面临的安全漏洞和不可靠性。最后,针对带外管理漏洞的研究结果,提出一种更为安全的带外管理解决方案。
2 服务器管理技术分析
服务器带内管理方式中,服务器管理信息与业务信息需通过同一信道进行传输。而在服务器带外管理方式中,服务器管理控制信息与业务信息则通过不同的逻辑信道进行传送[3]。由于带内管理使用同一逻辑信道,因此其天生存在缺陷:当网络出现故障导致中断时,数据传输和管理控制都将失效。相比之下,带外管理策略通过设置专有通道,有效解决了这一问题。服务器管理员可以通过基板管理控制器(Base⁃ board Management Controller,BMC) 对服务器进行远程监控和管理。BMC配备独立的硬件接口、软件以及操作系统,遵循IPMI协议,对外提供统一的访问接口。作为服务器的特有模块,BMC提供了便捷的监控和管理接口,极大地方便了管理人员的远程管理工作。同时,BMC使用独立的供电设备,确保在服务器关机时仍能保持工作状态。如图1所示。
BMC主要有以下5个功能:1) 设备信息管理:记录服务器信息、BMC信息。2) 服务器状态监控管理:对服务器各个模块的工作状态和健康状态(温度、电压等) 进行检测,接收温度采集信息并综合决策调整散热系统工作状态,保证服务器保持在正常温度工作且控制服务器整体运算和散热功耗不能过高,如果服务器某部件出现异常状态,及时上报给上层管理员。3) 远程控制管理:服务器的开机、关机、重新启动、更新固件、安装系统等。4) 维护管理:服务器日志管理、服务器访问用户管理、BIOS管理、安全告警管理等。5) 故障排除:拥有一定的故障指示能力。
总的来说,BMC本身就是一个小型系统,依附但独立于服务器系统并通过IPMI规范实施服务器远程控制管理、监控等功能。BMC通过集成或PCIE接口等连接方式物理连接于服务器主板,对服务器管理员而言只是拥有独立IP地址的一个标准的RJ45网口。
图2展示了IPMI的软硬件层面。BMC在IPMI规范下发挥功能,IPMI则是运行在BMC上的规范。广义IPMI由4个规范组成:智能平台管理接口(IPMI) ,智能平台管理总线规范(IPMB) ,可替换单元存储定义规范(FRU) ,智能机箱管理总线规范(ICMB) [1]。BMC 搭载管理系统作为带外管理软件与带外管理硬件的通信中介,与智能平台管理总线和智能机箱管理总线通信[4]。IPMI规范通过IPMB将其他管理控制器连接到系统支持平台并管理扩展。智能平台管理总线通过I2C串行总线管理控制器之间通信[5]。IPMI规范现为2.0版本,相较1.0版本在网络传输中的安全与加密功能得到增强。不仅如此,2.0版本中新增的远程桌面显示和虚拟容器技术加强了服务器的远程监控和管理的灵活性。
带外管理常常在以下两种情况部署:1) 服务器管理员与服务器设备存在空间间隔限制,如通信基站、政企大规模网络中心等。一旦服务器宕机,带内管理方式失效,管理员现场维护受到时间和空间限制。而带外管理方式能够避免这个问题并在提升服务器维护效率的同时降低运维人员的时间成本。2) 服务器管理员与服务器没有空间限制,但是服务器管理员团队需要管理极大数量的服务器设备,例如云计算、大数据中心,因此需要带外管理方式统一地管理这些服务器,形成规模建制。而正是因为带外管理方式使得服务器管理者拥有极高的权限,获取管理员权限后攻击者可以完全控制服务器设备。BMC比主机服务器享有更大的权限。BMC可以持续访问主机服务器的文件、内存(使用DMA) 、键盘/显示器和固件。此外,BMC能够将数据发送到外部网络,甚至可能重新配置主机服务器网络接口。这为攻击者提供了偷偷全面控制受害者系统所需要的全部工具。当服务器出现漏洞,各种数据会丢失,电脑无法正常工作,这将危害到人们生活和工作的方方面面。2019年11月,芯片巨头 Intel 发布警告称,Intel Server 产品中的基板管理控制器 (BMC) 固件存在13个漏洞,其中包含一个可导致信息泄露或攻击者完全控制的严重漏洞。随着服务器厂商不断暴露出带外管理安全威胁,因此对带外管理设备安全性研究十分重要。
3 带外管理技术安全性分析
2015年,启明星辰和网御星云共同发布“现场运维审计与管理系统”,填补了我国在服务器带外管理的空白[1]。但是该产品也并不是利用修复IPMI规范漏洞和提升服务器软硬件安全性来保护带外管理安全。该系统通过运维审计功能、设备安全隔离功能和工业数据防泄露功能提升带外管理安全性。作为一种底层规范,任何服务器设备都会因为IPMI规范漏洞面临同样的威胁。接下来,从版本漏洞、通信漏洞、身份验证漏洞、BMC漏洞、AMT漏洞方面分析带外管理技术的安全漏洞。
3.1 版本漏洞
IPMI虽然赋予了带外管理强大的功能和极高的灵活性,但同时也带来了一系列的安全风险。即便服务器管理员关闭了服务器系统,只要服务器电源依然接通,IPMI仍然可以正常使用。这意味着,服务器攻击者有可能绕过服务器系统的安全防护措施,从而获取控制系统的能力,包括重启系统、重新安装系统,甚至进一步威胁用户信息和数据安全。具备IPMI访问权限的攻击者,能够通过互联网搜寻并打开带外管理界面,进而连接到目标BMC。一旦攻击者掌控了BMC 的控制权,便可能对服务器及其用户造成威胁。
3.2 通信漏洞
IPMI规范允许服务器管理员通过命令远程获取服务器状态信息,然而这也为远程BMC带来了潜在的风险。以“Get Channel Authentication Capabilities”命令为例,该命令在匿名登录状态下,会告知远程控制台用户账户当前是否被配置为空用户名和空密码。此外,该模块还提供一个比特位,用于揭示是否存在一个可用的且非空的用户名。这种情况可能导致匿名用户处于可用状态,从而使得服务器攻击者能够自由登录,或者使用供应商提供的默认账户来控制BMC。而“GetSystemGUID”命令虽然是可选的,但IPMI规范中却强烈推荐使用。因为全球唯一标识符(GUID) 是标识服务器系统的唯一编号,它能够帮助服务器管理员轻松获取服务器的唯一且不会混淆的标识。这对于服务器管理员进行大规模管理来说非常有利,然而这个命令也可能带来严重的安全隐患,使得服务器集群透明地暴露在攻击者的视线之中。
3.3 匿名身份验证漏洞
部分BMC系统默认允许匿名用户访问。在BMC 的初次配置过程中,为了简化配置流程,通常会将用户名设置为空字符,密码也设置为空密码。BMC系统模块会识别并存储这些空白用户和空白密码,并可能留下重置指定用户账户密码或访问其他服务的后门。
3.4 BMC 漏洞
归根结底,BMC只是一个微型计算机,并运行着某个操作系统。BMC上的所有系统配置命令、IPMI命令、系统升级以及任何更改都依赖于BMC系统上的程序。如果服务器攻击者侵入BMC并修改或禁用某些脚本,将导致管理员和服务器用户无法对服务器进行有效的管理。即使服务器管理员拥有root权限,也可能因为BMC的损坏而无法实现某些功能。
3.5 AMT 漏洞
Intel的处理器内置了一个管理子系统。该子系统在硬件层面拥有独立的处理器、内存和总线等,并能够访问主系统内存。这个子系统上运行的是经过定制的MINIX操作系统。通过MINIX,控制者可以完全掌控主系统,包括访问主系统的文件系统、开关主系统,甚至追踪记录用户在外部输入设备上的操作。尽管该系统采用了RSA-2048进行保护,但研究人员已经能够利用该管理子系统固件中的漏洞进行部分控制,甚至长期潜伏在处理器主系统内(利用rootkit机制) 。因此,一旦BMC系统遭到rootkit攻击,服务器攻击者便有可能进一步获取服务器的管理权限。
4 带外安全漏洞维护及安全BMC 设计
4.1 带外安全漏洞修复
1) 外部保护。带外管理系统与服务器系统相互独立,且不在同一层级,因此服务器系统内部的安全保护措施在带外管理中并不奏效。为此,应制定合理的防护方案,部署在网络访问IPMI 接口之前,确保IPMI与Internet之间得到有效且安全的隔离。服务器管理人员需构建网络防火墙,对访问IPMI和BMC系统的流量进行严格审核和过滤。同时,建议将IPMI配置在独立的VLAN或物理网络中,并通过操作系统(例如Linux) 实施访问信息的过滤,从外部层面加强对带外管理IPMI的保护。
2) 密码保护。许多服务器管理员缺乏足够的安全保护意识,错误地认为只要管理得当就不会遭遇安全问题。这种心态往往导致他们为简化管理而设置通用密码,用于服务器管理系统的用户认证,并在系统内使用同一密码访问所有服务。为消除这一隐患,服务器管理员应将所管理的服务器群划分为若干子群,并为每个子群设置独特的用户名和密码。此外,为IPMI的每项业务配置不同的用户名和密码。用户登录时首先进行身份认证,执行管理任务时再进行业务认证,从而防止攻击者通过获取单一账户来实现对服务器管理系统的全面控制。无论是服务器管理系统的密码还是业务密码,在长度和复杂性上都应尽可能达到规范所允许的上限。IPMI规范限制密码最长为20个字符,因此服务器管理系统应采用尽可能长且复杂的密码,并包含特殊字符以提高破解难度[5]。服务器管理团队还应定期更换用户名和密码,以降低密码长期不变所带来的潜在风险。
3) 权限管理。服务器管理组应共同讨论并制定不同用户的系统权限等级,实现权限的分层管理。用户应分为管理员、普通用户和只读用户三类,其权限逐级递减。只读用户分配给普通巡检员,仅具备数据读取权限,无权更改配置;普通用户则拥有部分管理和故障修复权限;管理员作为唯一角色,拥有最高权限,即服务器管理系统的全部权限[6]。管理员权限账户应由整个服务器管理组共享,并仅在群体决策后使用。在日常管理中,为每位服务器管理员分配普通用户账户即可。
4) 加密流量。IPMI支持密码套件功能,允许用户通过不加密的方式直接访问BMC,但如前所述,这存在极大的安全隐患。因此,服务器管理团队应禁用密码套件功能和匿名账户,并在所有IPMI接口上实施加密措施,以增强带外管理系统的安全性。当服务器报废时,应物理销毁其存储模块、主板、网卡等关键部件。