天天看点

Xeon SP服务器新技术:防代码入侵从BIOS做起

服务器固件保护,在BMC还是芯片组上实现更好?

其实从技术上看,我觉得他们说的这个还有更简单通用的办法可以实现。

上图随便找个例子,Nuvoton品牌源自华邦电子,与ASPEED等同为流行的底板管理芯片品牌之一。

这是我几年前拍摄的某服务器主板上的BMC管理芯片,对于该部件服务器厂商有几种选择:使用通用型号BMC、自主设计?或者部分定制。

我在前面说“最安全”那家,就是宣称使用的自主BMC。其实这东西就像RAID卡,术业有专攻,自主设计未见得比芯片厂商通用方案的功能强。而且我觉得所谓自主与部分定制,可能只是依赖第三方程度上的差别。本文想谈谈不同服务器厂商的设计,芯片的不同真的会影响安全性吗?

Intel Boot Guard:在芯片组上的保护

Intel Boot Guard流程图,引用自Dell PowerEdge Product Group资料《CYBER-RESILIENCY STARTS AT THE CHIPSET AND BIOS》,文章结尾会列出下载链接。

这张图看起来可能有点不太好懂,我来给大家用文字解释下。

Dell第14代PowerEdge服务器支持Intel BootGuard验证启动特性。该启动卫士扩展平台可信根(platform root of trust)到PCH芯片组。PCH包含一次性可编程“保险丝”,由Dell工厂在制造过程中烧录选定的Boot Guard策略和主公钥(Master PubicKey)的hash。

在BIOS SPI flash(闪存)上的密钥清单由这个Dell主公钥签名,并委托授权到启动策略清单密钥。然后该启动策略清单授权初始化启动块(IBB)——复位后执行的第一段BIOS代码模块。如果IBB认证失败,Boot Guard将关闭系统并不允许启动。每个BIOS模块包含该启动链中下一个模块的hash值,并用它来验证下一个模块。

该IBB验证(SEC+PEI)在交接控制权之前。(SEC+PEI)接下来验证(PEI+MRC)和(PEI+MRC)进一步验证(DXE+BDS)模块。在这一点之后,如果打开了UEFI安全启动,可以扩展可信根来保持处理BIOS、第三方UEFI驱动和OS loader。

点评:以上描述给我的感觉就是,在BIOS启动全程避免执行被破坏的代码,以防止在这个阶段被注入后门等安全隐患。所以,不仅BMC芯片上支持“创建不可更改的指纹”,Intel的PCH芯片组已经集成该功能了,尽管我现在还不确认有多少服务器厂商对此提供支持。

BIOS冗余恢复选项

不知有多少朋友经历过1998年的CIH病毒,那时候我恰好在中关村,帮同学配的一台电脑没几天BIOS就被破坏无法开机了,当然还有编程器或者土办法热插拔来恢复。虽然CIH在当年产生的破坏远比前不久的比特币勒索病毒要大,但其作者只是因为恶作剧想破坏数据(C盘以外的不难恢复)而并没想到以此牟利。

上图中有一个BIOS经过iDRAC(BMC)和PCH映射的过程。

前面说的Intel Boot Guard是防止未经验证的BIOS代码执行,而这里的冗余恢复选项则是在面对黑客破坏或者升级BIOS时断电而无法启动的情况。

每台PowerEdge 14G服务器上有2个BIOS SPI ROM,一个主ROM,另一个为恢复ROM,后者在正常启动时处于离线。当主ROM受损时BIOS恢复进程会自动触发系统复位。

具体的恢复过程我就不在这里赘述了,在CIH病毒之后的那几年,可能有朋友还记得技嘉等厂商推出过双BIOS PC主板,也是同类的功能。当然服务器的实现要复杂些,需严格确保过程的安全可靠,不像当年DIY主板上有时莫名奇妙地从第二颗BIOS启动执行恢复了。

就写这么多吧,我只是想让大家了解技术的另一种实现方式,心里有数就能防忽悠:)

参考资料

http://en.community.dell.com/techcenter/extras/m/white_papers/20444061

继续阅读