从遭到破坏的系统启动代码中恢复的制作方法

文档序号:9401958阅读:269来源:国知局
从遭到破坏的系统启动代码中恢复的制作方法
【专利说明】
【背景技术】
[0001]计算系统可包括执行计算系统各种启动功能的代码。该代码可包括基本输入/输出系统(B1S)代码。B1S代码可以是计算系统中恶意软件攻击的对象或是来自外部服务的恶意软件攻击的对象。作为攻击结果,B1S代码可遭到破坏。
【附图说明】
[0002]关于下述附图描述了一些实施方式:
[0003]图1是根据一些实施方式的示例系统的框图;
[0004]图2是根据一些实施方式的系统启动代码恢复过程的流程图;
[0005]图3是根据进一步实施方式的另一个示例系统的框图;以及
[0006]图4是根据进一步实施方式的过程的流程图。
【具体实施方式】
[0007]对用于执行计算系统启动的系统代码的恶意软件攻击可导致计算系统的完整性遭到破坏,使得可在计算系统中发生未授权的访问和操作。例如,遭到破坏的系统代码可允许隐蔽的远程监控和/或由恶意实体对计算系统的控制、由恶意软件进行的计算系统中数据的非授权访问和/或修改、禁用计算系统等。遭到破坏的系统代码可以指已经被毁坏使得系统代码不再可用的系统代码,或者可替代地,遭到破坏的系统代码可以指已经以某种方式改变但是仍然能够执行的系统代码。需要注意的是,系统代码也可遭到偶然地或故意地破坏。
[0008]尽管在计算系统中可提供保护机制以保护系统代码,但是这种保护机制在某些条件下可遭到破坏,这可使该系统代码受到恶意软件的攻击。
[0009]用于执行计算系统启动的系统代码可包括系统固件,该系统固件可以是在计算系统的处理器(或多个处理器)上可执行的机器可读指令的形式。“系统固件”涵盖能够执行计算系统启动的任何机器可读指令。计算系统的示例包括台式计算机、笔记本电脑、平板电脑、个人数字助理(PDA)、智能电话、游戏机电器、服务器计算机、存储节点、网络通信节点等。
[0010]系统固件可包括基本输入/输出系统(B1S)代码,其可初始化计算系统的各种组件,并且加载计算系统的操作系统(OS)。B1S代码可执行硬件组件的检查以确保硬件组件存在以及正确地起作用。例如这可以是上电自检(POST)程序的一部分。在POST程序之后,B1S代码可通过启动顺序提醒继续进行,在这之后B1S代码可加载并传递控制到OS。B1S代码可包括传统(Iegacy)B1S代码或可扩展固件接口(UEFI)代码。在一些示例中,B1S代码可包括在OS加载之后被执行的运行时(runtime)部分。
[0011]系统固件可存储在非易失性存储器中,例如闪存存储器或任何可编程的其它永久存储器。一旦非易失性存储器中的系统固件遭到破坏,一种可能的补救可以涉及物理上替换包括非易失性存储器的组件。这种解决遭到破坏的系统固件的技术是劳动密集型的、成本昂贵的以及耗时的。
[0012]可替代地,其它技术可试图来利用来自外部存储装置的系统固件的有效副本替换非易失性存储器中遭到破坏的系统固件,外部存储装置例如可移除存储装置(例如通用串行总线或USB存储装置或任何其它类型的可移除存储装置)。然而,在从遭到破坏的系统固件恢复发生时,包含有效系统固件的外部存储装置可能是不可用的。另外,企业(例如,商行、政府机关、教育组织等)的策略可能禁止涉及外部存储装置上的系统固件的使用的恢复技术。
[0013]根据一些实施方式,除了提供存储系统固件的主要非易失性存储器之外(如果系统固件没有遭到破坏,则该系统固件通过计算系统的处理器执行),还提供存储系统固件的“黄金副本”的次要非易失性存储器。系统固件的黄金副本指的是确认有效或信赖有效的系统固件。例如,系统固件的黄金副本可以是在计算系统制造时在工厂设置的系统固件的原始副本。可替代地,系统固件的黄金副本可以是在次要非易失性存储器中已经以安全方式更新的副本。更一般地,代替所指的系统固件的黄金副本,系统固件的冗余副本可存储在次要非易失性存储器中。
[0014]次要非易失性存储器与系统处理器隔离以提供增强的安全性,因为在处理器上运行的恶意软件不能够破坏次要非易失性存储器中的系统固件的冗余副本。更具体地,次要非易失性存储器与总线隔离,该总线可由处理器和其它实体使用以访问主要非易失性存储器。根据一些实施方式,可以使用嵌入式控制器来执行遭到破坏的系统固件的恢复,通过使用次要非易失性存储器中的系统固件的冗余副本来替换主要非易失性存储器中的遭到破坏的系统固件。使用嵌入式控制器来执行系统固件的恢复,降低了系统固件恢复过程期间系统损坏的可能性。
[0015]在本论述中,尽管对“系统固件”进行参考,但是应该注意到,技术或机制可被应用到其它类型的系统启动代码,其中系统启动代码可以指在重新启动计算系统之后能够启动计算系统的任何代码或能够从低功率状态重新开始计算系统的任何代码。
[0016]图1是包括嵌入式控制器102、主要非易失性存储器104、处理器106以及次要非易失性存储器116的示例计算系统100的框图。主要非易失性存储器104是共享的非易失性存储器,该存储器由多个实体可访问,该多个实体包含嵌入式控制器102和至少一个其它实体(包含处理器106)。次要非易失性存储器116由嵌入式控制器102可访问,但是对于计算系统100中的处理器106或其它组件而言是不能访问的(实际上,除了嵌入式控制器102,次要非易失性存储器116与实体电隔离)。使次要非易失性存储器116对于处理器106和其它组件而言不可访问保护了次要非易失性存储器116的内容不受未授权的篡改。次要非易失性存储器116可总是被嵌入式控制器102访问。
[0017]尽管在图1中没有示出,但可以在处理器106和主要非易失性存储器104之间提供输入/输出(I/O)控制器。
[0018]次要非易性失存储器116可与主要非易失性存储器104物理上分离(例如实现在不同的物理存储装置中)。可替代地,次要非易失性存储器116和主要非易失性存储器104可物理地驻留在共同的存储器装置上,但是主要非易失性存储器104和次要非易失性存储器116在物理存储器装置的不同分段中,其中包含次要非易失性存储器116的物理存储器装置的分段仅由嵌入式控制器102访问。换句话说,包含次要非易失性存储器116的分段处于嵌入式控制器102的专有控制下,并且这个分段被锁定不能由处理器106或另一个实体访问。
[0019]主要非易失性存储器104通过共享总线120由嵌入式控制器102或另一个实体可访问。在一些实施方式中,仅有一个实体在任何给定时间使用共享总线120,使得仅有一个实体可在某时访问主要非易失性存储器104。在一些示例中,共享总线120是共享串行外围接口(SPI)总线。SPI总线是同步串行数据链路,在该链路中在SPI总线上的装置以主从模式操作。在其它示例中,可使用另一种类型的共享总线120。在可替代的示例中,可提供仲裁机制以允许在计算系统的各种状态中对总线120的共享访问,各种状态包括低功率状态和正常运行时状态。
[0020]主要非易失性存储器104可存储系统固件107,其可包括B1S代码。B1S代码107可包括由嵌入式控制器102执行的控制器代码108,以及由处理器106执行的启动块110。控制器代码108可以是嵌入式控制器(EC)固件的形式,其可以指在嵌入式控制器102中可执行的任何机器可读指令。可替代地,控制器代码108可以是以机器可读指令形式存在的应用程序软件。在接下来的论述中,尽管对“EC固件”进行参考,应该注意的是技术或机制可被应用到控制器代码108的其它形式。
[0021]在根据图1的示例中,EC固件108被包括在系统固件107的启动块110中。将EC固件108包括在启动块110内可提供EC固件108已经由提供系统固件107的实体(其可以是计算系统100的供应商)或者另一个实体签名的指示。在其它示例中,EC固件108可与启动块110分离。
[0022]启动块110是B1S代码的一部分,并且在计算系统100启动时首先执行。在允许B1S代码剩余部分在处理器106上执行之前首先执行启动块110。启动块110可用于检查B1S代码的完整性以及执行其它初始功能。如果启动块110确认B1S代码的完整性,那么启动块110可传递控制到用于初始化与B1S代码相关联的剩余操作的B1S代码的主要部分。
[0023]在一些实施方式中,启动块110可包括可信度量根的核心(CRTM)逻辑,其是由可信计算组织(TCG)、工业标准工作组指定的逻辑。在计算系统100上电过程
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1