保护基本输入/输出(BIOS)代码制造技术

技术编号:18609822 阅读:19 留言:0更新日期:2018-08-04 22:53
一种保护基本输入/输出系统(BIOS)代码的方法。所述方法包括,利用由处理器执行的重定位信息工具,重构BIOS代码的多个处置机内的多个数据区段以标记处置机内的多个变量。标记指示变量中的哪个应当在运行时被保护。所述方法此外包括生成包括多个重定位地址的重定位文件,所述重定位地址标识在运行时改变的多个动态变量的位置。重定位地址指向处置机内的与原始位置不同的位置。所述方法此外包括利用加载器在运行时加载重定位文件作为BIOS固件映像的部分,并且调节对处置机代码中的动态变量的数据访问,从而基于重定位文件而标识动态变量的位置。

【技术实现步骤摘要】
【国外来华专利技术】保护基本输入/输出(BIOS)代码
技术介绍
计算设备包括基本输入/输出系统(BIOS),所述基本输入/输出系统可以被存储在例如与中央处理单元(CPU)相关联的闪速存储器上。这具有以下优点:即在BIOS制造商发布BIOS代码的新版本时,BIOS可以被改变或更新。对闪速BIOS的访问可以经由输入/输出(I/O)控制器中枢的通用输入/输出(GPIO)线来做出。在一个示例中,GPIO线中的一个可以被连接到闪速BIOS的写入启用/禁用引脚,并且可以用于允许对闪速BIOS的写入过程。附图说明附图图示了本文中描述的原理的各种示例并且是说明书的一部分。所图示的示例仅仅被给出用于图示,并且不限制权利要求的范围。图1是根据本文中描述的原理的一个示例的用于重定位运行时基本输入/输出系统(BIOS)代码的多个系统管理中断(SMI)处置机的数据区段的系统的框图。图2和3是根据本文中描述的原理的一个示例的保护基本输入/输出系统(BIOS)代码的方法的数据流程图。图4是根据本文中描述的原理的一个示例的生成重定位文件的方法的数据流程图。图5是根据本文中描述的原理的另一示例的生成重定位文件的方法的数据流程图。图6是根据本文中描述的原理的一个示例的系统管理模式(SMM)存储器映射(memorymap)。图7是根据本文中描述的原理的一个示例的描绘保护BIOS代码的方法的流程图。贯穿附图,相同的参考标号指明类似的但不一定完全相同的元素。具体实施方式虽然用于更新目的的对BIOS的访问是合期望的以允许计算机设备使用制造商提供的最新近的BIOS代码,但是该级别的访问可允许由被设计成使闪速存储器上存储的BIOS代码劣化的计算机病毒对BIOS的访问。任何这样的劣化都是不合期望的,因为它可能致使计算机系统不可用。因而,BIOS代码可能是通过计算系统中的恶意软件或来自外部服务的攻击的对象。作为攻击的结果,BIOS代码可能变得受损。与BIOS相关联的是系统管理模式(SMM);被提供用于处置全系统功能的操作模式,所述全系统功能比如功率管理、系统硬件控制或专有原始设备制造商(OEM)设计的计算系统代码。SMM意图供系统固件使用,而不是供应用软件或通用系统软件、诸如操作系统使用。SMM提供不同且容易隔离的处理器环境,所述环境对于操作系统或执行体和软件应用透明地操作。为了实现透明性,SMM强加多个规则。通过系统管理中断(SMI)而进入SMM。处理器在分离的地址空间中执行SMM代码,通过固件使得所述分离的地址空间对于CPU的其它操作模式不可访问。因而,SMM是CPU的操作模式,其中所有正常的执行、包括操作系统都被暂停,并且可以是固件的部分或硬件辅助的调试器的特殊分离软件以高特权被执行。如在本说明书中和所附权利要求中使用的,术语“多个”或类似的语言意图被宽泛地理解为任何正数、包括1到无穷;零不是一个数,而是不存在数。在以下描述中,为了解释的目的,阐明了众多特定细节以便提供对本系统和方法的透彻理解。然而,将对本领域技术人员显而易见的是,可以在没有这些特定细节的情况下实践本装置、系统和方法。在说明书中对“示例”或类似语言的参考意指结合该示例所描述的特定特征、结构或特性如所描述的那样被包括,但是可不被包括在其它示例中。现在转到各图,图1是根据本文中描述的原理的一个示例的用于对运行时基本输入/输出系统(BIOS)代码的多个系统管理中断(SMI)处置机的数据区段进行重定位的系统的框图。可以在电子设备中实现系统(100)。电子设备的示例除了其它电子设备之外尤其包括服务器、台式计算机、膝上型计算机、个人数字助理(PDA)、移动设备、智能电话、游戏系统、以及平板设备。为了实现其期望的功能性,系统(100)包括各种硬件组件。在这些硬件组件之中可以是多个处理器(101)、以及多个数据存储设备(102)。在一个示例中,数据存储设备包括系统管理模式(SMM)数据存储设备以存储数据以及与SMM相关联的可执行代码。这些硬件组件可以通过使用多个总线和/或网络连接而被互连。处理器(101)可以包括用以从SMM数据存储设备(102)检索可执行代码并且执行所述可执行代码的硬件架构。所述可执行代码可以在被处理器(101)执行的时候使得处理器(101)实现至少保护基本输入/输出(BIOS)代码的功能性,这通过执行重定位信息工具来重定位可在BIOS的运行时改变的多个系统管理中断(SMI)处置机的动态数据、重定位SMI处置机的静态代码和静态数据、或其组合。根据本文中描述的本说明书的方法,这被进行以使所述动态数据与SMI处置机的静态元素(即静态代码和静态数据)隔离以便保护所述静态元素免受运行时的变更。在执行代码的过程中,处理器(101)可以从多个其余的硬件单元接收输入并且向所述多个其余的硬件单元提供输出。数据存储设备(102)可以存储数据,诸如由处理器(101)或其它处理设备执行的可执行程序代码。如将被讨论的,数据存储设备(102)可以特别地存储计算机代码,所述计算机代码表示多个模块、处置机以及处理器(101)执行来实现至少本文中描述的功能性的应用。数据存储设备(102)可以包括各种类型的存储器模块,包括非易失性存储器。例如,本示例的数据存储设备(102)包括例如随机存取存储器(RAM)。还可以利用许多其它类型的存储器,并且本说明书设想在数据存储设备(102)中使用许多不同类型的存储器,如可适合本文中描述的原理的特定应用。在某些示例中,数据存储设备(102)中的不同类型的存储器可以用于不同的数据存储需要。例如,在某些示例中,处理器(101)可以从只读存储器(ROM)引导、维持硬盘驱动器(HDD)存储器中的非易失性存储,并且执行随机存取存储器(RAM)中所存储的程序代码。通常,数据存储设备(102)除了别的之外尤其可以包括计算机可读介质、计算机可读存储介质、或非暂时性计算机可读介质。例如,数据存储设备(102)可以是但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体的系统、装置或设备,或者前述各项的任何合适的组合。计算机可读存储介质的更具体的示例可以包括例如以下:具有多个导线的电气连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、便携式光盘只读存储器(CD-ROM)、光学存储设备、磁性存储设备、或前述各项的任何合适的组合。在本文档的上下文中,计算机可读存储介质可以是如下的任何有形介质:所述有形介质可以包含或存储计算机可用的程序代码以供指令执行系统、装置或设备使用或与所述指令执行系统、装置或设备相结合地使用。在另一示例中,计算机可读存储介质可以是如下的任何非暂时性介质:所述非暂时性介质可以包含或存储程序以供指令执行系统、装置或设备使用或与所述指令执行系统、装置或设备相结合地使用。系统(100)此外包括在通过重定位多个系统管理中断(SMI)处置机的静态代码和数据而保护基本输入/输出(BIOS)代码的实现中使用的多个模块。系统(100)内的各种模块包括可以被分离地执行的可执行程序代码。在该示例中,各种模块可以被存储为分离的计算机程序产品。在另一示例中,系统(100)内的各种模块可以被组合在多个计算机程序产品内;每个计算机程序本文档来自技高网...

【技术保护点】
1.一种保护基本输入/输出系统(BIOS)代码的方法,包括:利用由处理器执行的重定位信息工具:重构BIOS代码的多个处置机内的多个数据区段以标记处置机内的多个变量,所述标记指示变量中的哪个应当在运行时被保护;以及生成包括多个重定位地址的重定位文件,所述重定位地址标识在运行时改变的多个动态变量的位置,所述重定位地址指向处置机内的与原始位置不同的位置;以及利用加载器在运行时加载重定位文件作为BIOS固件映像的部分,并且调节对处置机代码中的动态变量的数据访问,从而基于重定位文件而标识动态变量的位置。

【技术特征摘要】
【国外来华专利技术】1.一种保护基本输入/输出系统(BIOS)代码的方法,包括:利用由处理器执行的重定位信息工具:重构BIOS代码的多个处置机内的多个数据区段以标记处置机内的多个变量,所述标记指示变量中的哪个应当在运行时被保护;以及生成包括多个重定位地址的重定位文件,所述重定位地址标识在运行时改变的多个动态变量的位置,所述重定位地址指向处置机内的与原始位置不同的位置;以及利用加载器在运行时加载重定位文件作为BIOS固件映像的部分,并且调节对处置机代码中的动态变量的数据访问,从而基于重定位文件而标识动态变量的位置。2.根据权利要求1所述的方法,其中所述重定位文件此外包括:与每个处置机相关联的多个处置机名称,以及与每个处置机名称相关联的驱动器全局唯一的标识符(GUID)。3.根据权利要求1所述的方法,此外包括:标识处置机的处置机代码;聚集处置机代码和受保护的变量;以及将动态变量重定位到系统维护模式(SMM)数据存储设备内的数据堆,所述重定位地址标识处置机代码中的位置以用于对动态变量的访问。4.根据权利要求3所述的方法,此外包括,利用周期性扫描模块来验证:包含处置机内的静态和动态成员二者的关键数据尚未被变更。5.根据权利要求4所述的方法,此外包括指示每个处置机标识处置机内的包含静态和动态成员二者的数据区段的多个关键部分,并且在运行时保护表中创建受保护范围的列表以及处置机的静态拷贝以用于周期性扫描模块。6.根据权利要求3所述的方法,其中将动态变量重定位到数据堆包括:为包括动态变量的多个处置机分配SMM数据存储设备内的存储器。7.根据权利要求3所述的方法,其中所述处置机代码和受保护的变量在BIOS代码的构建过程期间被存储在处置机的相同区段中。8.根据权利要求3所述的方法,此外包括修改加载器以:分配SMM数据存储设备内的存储器作为SMM数据存储设备的静态区域,在其中存储处置机代码和受保护的变量;改变处置机代码中的数据访问以包括重定位地址。9.一种用于对运行时基本输入/输出系统(BIOS)代码的多个系统管理中断(SMI)处置机的数据区段进行重定位的系统,包括:至少一个处理器;用以存储SMI处置机的系统管理模式(SMM)数...

【专利技术属性】
技术研发人员:W·Z·刘J·K·让索内D·M·巴罗
申请(专利权)人:惠普发展公司有限责任合伙企业
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1