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

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

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

 

由于新一代Xeon Processor ScalableXeon SP)平台将于711日正式发布,服务器厂商有些功能特性提前“偷跑”。比如我写过《新一代服务器预览:M.2SSD系统盘RAID1方案》,最近还看到某厂商就宣传“推出了世界上最安全的工业标准服务器... 将安全性直接搭载在xxx(这里指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》,文章结尾会列出下载链接。

 

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

 

Dell14PowerEdge服务器支持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芯片上支持“创建不可更改的指纹”,IntelPCH芯片组已经集成该功能了,尽管我现在还不确认有多少服务器厂商对此提供支持。

 

BIOS冗余恢复选项

 

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

 

扩展阅读《有了备份,就不怕勒索病毒吗?

              勒索病毒预防实战:有的PC打不上补丁怎办?

 

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

 

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

 

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

 

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

 

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

 

参考资料

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

目录
相关文章
|
1月前
|
IDE 网络安全 开发工具
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
本文介绍了如何使用VS Code通过Remote-SSH插件连接远程服务器进行代码开发,并与PyCharm进行了对比。作者认为VS Code在连接和配置多个服务器时更为简单,推荐使用VS Code。文章详细说明了VS Code的安装、远程插件安装、SSH配置文件编写、服务器连接以及如何在连接后切换文件夹。此外,还提供了使用密钥进行免密登录的方法和解决权限问题的步骤。
494 0
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
|
1月前
|
IDE 网络安全 开发工具
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
本文介绍了如何在PyCharm专业版中连接远程服务器并配置远程Python环境解释器,以便在服务器上运行代码。
331 0
IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。
|
1月前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
271 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
1月前
|
前端开发 Java
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
文章介绍了如何使用SpringBoot创建简单的后端服务器来处理HTTP请求,包括建立连接、编写Controller处理请求,并返回响应给前端或网址。
56 0
学习SpringMVC,建立连接,请求,响应 SpringBoot初学,如何前后端交互(后端版)?最简单的能通过网址访问的后端服务器代码举例
|
2月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:如何提高代码的可维护性与扩展性在软件开发领域,PHP 是一种广泛使用的服务器端脚本语言。随着项目规模的扩大和复杂性的增加,保持代码的可维护性和可扩展性变得越来越重要。本文将探讨 PHP 中的设计模式,并通过实例展示如何应用这些模式来提高代码质量。
设计模式是经过验证的解决软件设计问题的方法。它们不是具体的代码,而是一种编码和设计经验的总结。在PHP开发中,合理地使用设计模式可以显著提高代码的可维护性、复用性和扩展性。本文将介绍几种常见的设计模式,包括单例模式、工厂模式和观察者模式,并通过具体的例子展示如何在PHP项目中应用这些模式。
|
2月前
|
网络安全 开发工具 云计算
服务器看代码阿里云
随着云计算技术的发展,阿里云作为国内领先的云计算服务提供商,其服务器受到广大用户青睐。本文主要介绍如何在阿里云服务器上便捷地查看与管理代码,如使用SSH连接服务器并通过命令行工具打开文件,以及利用Git进行版本控制和协作开发,提高代码管理效率。无论个人开发者还是企业团队,都能借助阿里云服务器高效地部署与管理应用程序,提升工作效率及产品质量。
68 10
|
2月前
|
存储 Linux 网络安全
存放位置阿里云服务器代码的
阿里云服务器提供虚拟化计算、存储与网络服务。创建服务器时,可基于不同需求选择代码存放位置:文件系统支持直接通过SSH访问与编辑;公共目录如 `/var/www/html` 适合Web应用;对象存储OSS适用于大数据处理;代码托管服务如 GitLab 则利于版本控制与团队协作。合理选择有助于提升开发效率。
69 7
|
2月前
|
开发者
HTTP状态码是由网页服务器返回的三位数字响应代码,用于表示请求的处理结果和状态
HTTP状态码是由网页服务器返回的三位数字响应代码,用于表示请求的处理结果和状态
32 1
|
2月前
|
网络安全 云计算
阿里云服务器代码
阿里云作为中国领先的云计算服务提供商,为用户提供了丰富的云服务器实例。本文详细介绍如何在阿里云上定位服务器代码,包括利用控制台搜索实例并访问详细页面查找相关信息,使用`ssh`和`cat`等命令行工具远程连接及读取文件内容,以及在遇到困难时及时联系阿里云技术支持获取帮助的具体方法。无论您的实例类型与操作系统有何不同,总有一种方式能帮您顺利找到所需的服务器代码。
33 3
|
2月前
|
网络安全 云计算
在哪找出来阿里云服务器代码
本文介绍了在阿里云上查找服务器代码的方法,包括通过控制台搜索实例并进入详情页查找相关信息,利用 `ssh` 和 `cat` 等命令行工具远程访问和查看文件,以及联系阿里云技术支持获得进一步帮助,助您轻松定位和操作服务器代码。
43 2
下一篇
无影云桌面