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

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

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

 

由于新一代Xeon Processor ScalableXeon SP)平台将于711日正式发布,服务器厂商有些功能特性提前“偷跑”。比如我写过《新一代服务器预览:M.2SSD系统盘RAID1方案》,最近还看到某厂商就宣传“推出了世界上最安全的工业标准服务器... 将安全性直接搭载在xxx(这里指BMC,我过滤了一个关键词)芯片上,在由硅制作的芯片上创建了一个不可更改的指纹,若指纹不匹配,服务器固件就不会启动。

 

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

 

0?wx_fmt=jpeg

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

 

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

 

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

 

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

 

0?wx_fmt=png

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打不上补丁怎办?

 

0?wx_fmt=png

上图中有一个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

目录
相关文章
|
14天前
|
设计模式 数据库连接 PHP
PHP中的设计模式:如何提高代码的可维护性与扩展性在软件开发领域,PHP 是一种广泛使用的服务器端脚本语言。随着项目规模的扩大和复杂性的增加,保持代码的可维护性和可扩展性变得越来越重要。本文将探讨 PHP 中的设计模式,并通过实例展示如何应用这些模式来提高代码质量。
设计模式是经过验证的解决软件设计问题的方法。它们不是具体的代码,而是一种编码和设计经验的总结。在PHP开发中,合理地使用设计模式可以显著提高代码的可维护性、复用性和扩展性。本文将介绍几种常见的设计模式,包括单例模式、工厂模式和观察者模式,并通过具体的例子展示如何在PHP项目中应用这些模式。
|
27天前
|
网络安全 开发工具 云计算
服务器看代码阿里云
随着云计算技术的发展,阿里云作为国内领先的云计算服务提供商,其服务器受到广大用户青睐。本文主要介绍如何在阿里云服务器上便捷地查看与管理代码,如使用SSH连接服务器并通过命令行工具打开文件,以及利用Git进行版本控制和协作开发,提高代码管理效率。无论个人开发者还是企业团队,都能借助阿里云服务器高效地部署与管理应用程序,提升工作效率及产品质量。
47 10
|
27天前
|
存储 Linux 网络安全
存放位置阿里云服务器代码的
阿里云服务器提供虚拟化计算、存储与网络服务。创建服务器时,可基于不同需求选择代码存放位置:文件系统支持直接通过SSH访问与编辑;公共目录如 `/var/www/html` 适合Web应用;对象存储OSS适用于大数据处理;代码托管服务如 GitLab 则利于版本控制与团队协作。合理选择有助于提升开发效率。
46 7
|
25天前
|
开发者
HTTP状态码是由网页服务器返回的三位数字响应代码,用于表示请求的处理结果和状态
HTTP状态码是由网页服务器返回的三位数字响应代码,用于表示请求的处理结果和状态
24 1
|
27天前
|
网络安全 云计算
阿里云服务器代码
阿里云作为中国领先的云计算服务提供商,为用户提供了丰富的云服务器实例。本文详细介绍如何在阿里云上定位服务器代码,包括利用控制台搜索实例并访问详细页面查找相关信息,使用`ssh`和`cat`等命令行工具远程连接及读取文件内容,以及在遇到困难时及时联系阿里云技术支持获取帮助的具体方法。无论您的实例类型与操作系统有何不同,总有一种方式能帮您顺利找到所需的服务器代码。
20 3
|
27天前
|
网络安全 云计算
在哪找出来阿里云服务器代码
本文介绍了在阿里云上查找服务器代码的方法,包括通过控制台搜索实例并进入详情页查找相关信息,利用 `ssh` 和 `cat` 等命令行工具远程访问和查看文件,以及联系阿里云技术支持获得进一步帮助,助您轻松定位和操作服务器代码。
26 1
|
2月前
|
Java 数据安全/隐私保护
VScode将代码提交到远程服务器、同时解决每次提交都要输入密码的问题(这里以gitee为例子)
这篇文章介绍了如何在VSCode中将代码提交到Gitee远程服务器,并提供了解决每次提交都需要输入密码问题的方法。
VScode将代码提交到远程服务器、同时解决每次提交都要输入密码的问题(这里以gitee为例子)
|
2月前
|
JSON API 数据格式
基于服务器响应的实时天气数据进行JSON解析的详细代码及其框架
【8月更文挑战第25天】这段资料介绍了一个使用Python从服务器获取实时天气数据并解析JSON格式数据的基本框架。主要分为三个部分:一是安装必要的`requests`库以发起HTTP请求获取数据,同时利用Python内置的`json`库处理JSON数据;二是提供了具体的代码实现,包括获取天气数据的`get_weather_data`函数和解析数据的`parse_weather_data`函数;三是对代码逻辑进行了详细说明,包括如何通过API获取数据以及如何解析这些数据来获取温度和天气描述等信息。用户需要根据实际使用的天气API调整代码中的API地址、参数和字段名称。
|
3月前
|
弹性计算 Linux 开发工具
云服务器 ECS产品使用问题之遇到错误代码是"ServiceinstanceNotFound",该如何解决
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
3月前
|
SQL 缓存 前端开发
PHP性能优化实战:从代码到服务器的全方位攻略
【7月更文挑战第30天】在Web开发的世界里,PHP以其灵活性和易用性赢得了广泛的赞誉。然而,随着应用规模的扩大,性能问题逐渐浮现。本文将深入探讨PHP的性能优化策略,不仅涉及代码层面的精细调整,还包括服务器配置的优化技巧。我们将一起探索如何通过减少资源消耗、优化数据库交互以及利用缓存技术来提升PHP应用的性能表现。无论你是PHP新手还是资深开发者,这篇文章都将为你提供实用的优化建议,帮助你打造更快、更稳定的PHP应用。
66 4
下一篇
无影云桌面