专利名称:受威胁计算机的自动的基于硬件的恢复的制作方法
技术领域:
本发明涉及计算装置,以及更具体地,涉及被恶意软件威胁时 的计算装置的恢复。
背景技术:
计算装置包括一个或多个处理器,用于执行在处理器的操作存 储器中存在的软件指令。为了提供灵活性和适用性,许多计算装置 采用交错方法来加载软件指令。在这种方法下,存储在永久性存储 器或存储装置中的才莫块化软件组件配置有需要加载并发起附加的 模块化软件组件(包括操作系统)的执行的指令和参数。在装置启动操作期间,这些才莫块化软件组件被称为"引导组件(boot component)",其以"引导列页序(boot sequence)"执4亍,引导》1页序 以将装置操作所需的所有指令加载到操作存储器中结束。以这种方 式启动执行装置允许用于多种引导组件的分散存储方法。此外,对 装置的某些必需的更新可以通过简单地4务改单独的引导组件或参 凄史来完成。更新引导组件的能力将脆弱性引入了装置。例如,在装置上运 行的病毒、木马或其他恶意的软件(或"恶意软件,,)可以修改或 替换任意或所有的? 1导组件以获得对装置的控制。在恶意软件成功 的情况下,装置^ 皮称为"受威胁的"或"感染的"。典型地, 一旦检测到装置的受威胁状态,则用户在装置上执行 设计为识别并隔离被感染软件或数据以尝试恢复装置到其正确揭: 作模式的软件。在一些情况下,由于恶意的软件的性质和感染所建 立的防雄卩措施,受威胁装置不能够恢复。例如,恶意的软件《务改了 操作系统,以防止反病毒程序执行能够修复甚至检测修改的补救例 行程序。在另一个实例中,恶意的软件可以修改计算装置的引导加 载,以防止操作系统完全加栽,从而使装置不起作用。在不可能恢 复的情况下,如在这些实例中,管理者被迫通过(例如)重新格式 化装置的石更件驱动和安装整个才喿作系统和其它系统寿欠件组件的无 病毒版本来重新安装和/或替换装置的所有;I导组件。这种大规pf莫重 新安装是井毛时的且昂贵的操作。此外,这种大规才莫重新安装通常导 致用户凄t据和i殳置的丢失。
发明内容
大体上,描述了一种用于基于硬件的检测和计算装置从受损害 状态自动恢复的技术。此外,本技术提供了从可信任仓库的选择性 软件组件的自动的、基于硬件的恢复。基于硬件的检测和自动恢复 技术可以被集成到计算装置的引导顺序中以有效且无害的仅替换 任意纟皮感染的4t件组件。
例如,与计算装置的主处理器分离的辅助硬件要求在主处理器 执行引导组件之前对于每个引导组件的完整性检验,即,在将引导 组件加载到装置处理器的操作存储器之前,辅助硬件在组件上执行 完整性检查以检测恶意感染的存在。如果引导组件存在感染或完整 性检查失败,则辅助硬件利用从可信任源获得的组件的可信任版本 替换该组件。该过程继续使得引导顺序的每个软件组件的完整性可 以被单独地检验并且如果受威胁被单独体替换,而不要求替换其他 非感染的软件组件。在一个实例中, 一旦通知已经发起了装置的引导顺序,则计算 装置中的辅助硬件识别引导顺序中的第一引导组件(典型地,基础
输入/输出系统"BIOS")。辅助硬件计算第一引导组件的密码杂凑 或其他校验和。之后辅助硬件将所计算的杂凑值与可信任的、可接 受的用于第 一 引导组件的杂凑值进^f亍比较。如果计算的杂凑值满 足,则辅助硬件允许第一引导组件被加载到操作存储器中用于计算 装置的主处理器的执行。 一旦成功执行第一引导组件,之后,在下 一个引导组件可以;故主处理器访问并调用之前在引导顺序中的下 一个引导组件上执行相同的操作集。该过程继续直到所有引导组件 的完整性^皮才企-睑并且所有的引导组件已经祐^M亍。
然而,当为特定引导组件计算的杂凑值不满足对于该组件的可 信任的、可接受的杂凑值时,则往往指示引导组件被感染(例如利 用病毒)或被破坏。因此,辅助硬件采取补救措施以确保计算装置 的主处理器1又^M亍未祐:石皮坏的引导组件。第一,辅助(auxiliary) 硬件获得对应于特定的破坏引导组件的可信任引导组件。可信任引 导组件可以(例如)^皮存〗诸在^又可^皮辅助石更件访问的计算装置的专 用存储器或存储介质中。在另一个实例中,辅助硬件可以从可信任 引导组件服务器中获得可信任引导组件。在其他情况下,辅助硬件 利用可信任引导组件重写计算装置的被破坏组件并引导计算装置 执行可信任引导组件的新拷贝或重新发起整个引导顺序。以这种方 式,辅助硬件确保加载到处理器的操作存储器中的每个引导组件不 是被感染或被-皮坏的。
在一个实施例中,本发明指向一种方法用于利用计算装置中 的辅助电路计算用于计算装置的引导组件的完整性检验值,其中引 导组件包括要求计算装置的处理器执行的使计算装置进入操作模 式的程序指令,确定所计算的完整性纟企验值是否与可接受的引导组 件相关联,并在完整性4企验与可接收的引导组件不相关联时,利用计算装置的辅助电路,用引导組件的可信任版本的拷贝替换引导组 件。
在另一个实施例中,计算装置包含辅助电路,辅助电路包括, 感染检测电路配置为计算用于计算装置的引导组件的完整性检验 值,其中引导组件包括要求计算装置的处理器执行的使计算装置进 入操作模式的程序指令,感染检测电路配置为确定完整性检验值是 否与可接受的引导组件相关联,以及恢复电路配置为在完整性4企验 值与可接受的引导组件不相关联时,用引导组件的可信任版本的拷 贝替换引导组件。
在另一个实施例中, 一种系统包括计算装置和存储用于所述 计算装置的? 1导组件的可信任版本的可信任? 1导组件服务器。计算 装置包含辅助电路,辅助电路包括完整性检验值计算器电路,计算 用于计算装置的引导组件的完整性才企验值,其中引导组件包括要求 被计算装置的处理器执行的使计算装置进入操作模式的程序指令, 感染4企测电路确定完整性检验值是否与可接受的引导组件相关^, 以及恢复电路在完整性检验值与可接受的引导组件不相关联时,利 用从可信任引导组件服务器接收的引导组件的可信任版本的拷贝 替换引导组件。
这里描述的技术可提供一种或多种优点。例如,由于恶意软件 或感染软件不能访问存储可信任51导组件的原始拷贝的辅助硬件 或可信任仓库的控制逻辑,使用装置上的辅助硬件执行完整性检验 和*齐换动作防止感染阻止其自身的移除。通过增加成功4企测和感染 移除的可能性,使用这里描述的技术减少了要求装置的整个操作系 统和其他非感染引导组件重新安装的可能性。本发明的 一 个或多个实施例的细节将在附图和下列说明中阐 述。本发明的其他特征、目的和优点将乂人说明和附图以及4又利要求 中变得显而易见。
图1是示出了执行本公开中描述的4皮破坏引导组件的检测和替 换技术的示例性系统的框图。
图2是示出了图1的系统的用户端装置的示例性细节的框图。
图3是示出了图2的用户端装置的装置体系结构的示例性细节 的框图。
图4A是示出了用于图2装置的引导顺序的示例性引导组件的 才匡图。图4B是示出了对应于图4A的示例性引导组件的示例性可信 任引导组件的框图。
图5A和5B是示出了对于图2装置的用于根据这里描述的技 术检测和替换被破坏引导组件的操作的示例性模式的流程图。
具体实施例方式
图1是示出了执行本公开描述的被感染引导组件检测和选择性 替换技术的示例性系统2的框图。在图l的实例中,系统2包括连 接至企业网6的装置4。此外,在该实例中,装置4是计算装置, i者如个人计算才几、膝上电脑、移动电i舌、网全各电i舌、电朝L才几顶盒、 -脱频游戏系统、销售点装置、个人数字助理、中间网络装置、网络 设施、超级计算机、大型计算机、嵌入式控制器、工业机器人、或 能够与企业网6交互并在该企业网上通信的其他类型的装置。装置 4可以4是供接口 (例如,显示器、话筒、4建盘、鼠标等),用户10与该接口交互以执行装置4提供的软件应用程序并访问企业网6和公共网络12提供的资源。在一些实施例中,装置4是自动的并且不能与用户交互。
公共网络12连接至企业网6。企业网6和7>共网络12可以包括有助于通过装置4访问内容的多个网络装置(图1中未示出)。多个网络装置中的每一个可以包括以下各项之一路由器、交换机、服务器、数据库、集线器、防火墙、检测入侵/防御(IDP)装置和/或有助于数据转移到装置4并从该装置转移出的任意其他类型的网络设备或装置。
企业网6和7>共网络12可以经由一个或多个基于凝:据包的十办议(诸如因特网协议(IP) /传输控制协议(TCP))将内容传输到装置4。在这方面,企业网6和公共网络12可以经由离散的数据单元(通常被称为"数据包,,)来支持数据的传输。因此,企业网6和〃^共网络12被称为"基于数据包的"或"数据包交换的"网络。虽然在本公开中描述为传输、传达、或支持数据包,但是企业网6和公共网络12可以传输根据由任意其他协议定义的任意其他离散的数据单元的数据,诸如由异步传输才莫式(ATM )协议定义的单元。
此夕卜,企业网6和/>共网纟各12可以每一个均为局域网("LAN,,), i者如令片皁环或以太网、虚拟局域网("VLAN")、或其他类型的网络。企业网6和/>共网络12可以包括一个或多个有线或无线链接。例如,企业网6可以是包4舌一个或多个以太网线缆的以太网。在另一实例中,7>共网全各12可以是4吏用无线射频传输来通信信息的无线保真("Wi-Fi")网络。
企业网6和公共网络12提供装置4期望访问的多种资源。在图1的实例中,企业网6包括质量控制服务器14和可信任引导组件8;典型地,企业网6还将连4妾至多种其他类型的装置(例如,文件服务器、打印机、电话、和电子邮件及其他类型的应用服务器)。
公共网络12可以提供对网页服务器、应用程序服务器、公共数据库、々某体服务器、用户端装置、以及多种其他类型的网络资源装置和内容的i方问。
企业网6在企业边界5之下操作,企业边界可以用防火墙装置、中间网络装置、入侵检测装置、因特网协议安全网关装置、或控制对一个或多个网络的访问的4壬意其他类型的装置来执4亍。典型地,在从企业边界5接收到许可之后,7>共网络12经由企业网6向装置4提供内容。
在一些情况中,公共网络12提供的内容可以包括诸如病毒或其他木马、或蠕虫的恶意的软件(或"恶意软件")。此外,包括在公共网络12中的装置可以突破企业边界5并使用企业网络6以用恶意软件感染装置4。感染装置4的恶意软件可以具有改变装置上的关键软件组件的能力。在许多情况下,恶意软件能够擦除、感染或改变负责加载装置4进入正常操作条件所必需的软件的软件引导组件。例如,装置4上呈现的病毒可以改变操作系统内核以阻止用户IO与装置交互。在另一个实例中,病毒可以感染装置4的引导分区以在启动时得到对装置的控制。由于改变装置上的任何引导组件的用户错误或装置4组件(硬件或软件)错误,装置4还可以#皮迫坏,/人而经历不理想纟喿作。
根据本公开的技术,装置4包括可信任平台模块("TPM")电路20、在装置的引导顺序期间用于检测和替换的辅助硬件、具有可信任《1导组件的感染引导组件。TPM电路20是与装置4的任意主处理器分离的石更件单元,并且可以是专用集成电路(ASIC)、域可编程门阵列(FPGA)、联合可编程逻辑装置(CPLD)、可编程逻辑阵列(PLA)、这些元件的任意组合、或能够执行感染检测和替换功能并且能够与装置4的特定其他硬件组件交互的任意其他类型的硬件。在一些实施例中,TPM电路20可以是能够运4亍来自装置4内部的可信任存储介质的专用软件或固件指令的单独的樣1处理器或微控制器,诸如不可访问由装置的主处理器执行的软件指令的只读存储器(ROM)。在一些实施例中,TPM电路20是修改的可信4壬平台模块芯片,该芯片基本上与可信任计算组织发布的"TPMMainPart 1 Design Principles Specification Version 1.2,,, 中描述的可信任平台^f莫块芯片的说明书(其结合于此作为参考) 一致。
大体上,在允许任意引导組件被加载到处理器的操作存储器并且被执行之前,TMP电路2(H佥验组件的完整性以4企测感染的存在。如果该组件出现感染或者完整性检验失败,则TPM电路20利用从可信任源获得的可信任? 1导组件的拷贝来仅选择性地替换被感染的组件。作为在本公开中使用的术语的可信任? 1导组件是已知没有感染和破坏的引导组件软件的版本。典型地,可信任源是被包括在装置4中的非易失性存储器装置。在一些实施例中,可信任源是不能被装置4的主处理器写或修改的知识库。通过利用从可信任源获得的可信任引导组件的拷贝来替换被感染组件,TPM电路20确保加载到操作存储器中的由装置4的处理器执行的引导组件是没有4皮感染和破坏的并且不会被引导进不期望的装置操作。
更具体地,在一个实施例中,装置4的硬件体系结构要求主处理器调用TPM电路20以加载并顺序执行每个引导组件。即,在加载并#丸4亍了一个*会定引导组件之后,主处理器必须再次调用TPM电路20,并且TPM电路20必须输出一个或多个信号以允许主处理器加载并顺序执行下一个引导组件。如果要加载并执行的引导组件出现感染或完整性检验失败,则TPM电路20在输出这种信号之前,利用从可信任源获得的可信任引导组件的拷贝来仅选择性地替换被感染组件。例如,在利用对应的可信任引导组件拷贝替换特定的被感染引导组件(例如操作系统内核)之后,TPM电路20可以输。以这种方式,利用可信任组件的拷贝替换石皮坏的组件只于主处理器可以是无缝的和透
明的。可选地,TPM电路20可以输出一个信号来引导主处理器以引导顺序重新运4亍一个或多个之前的引导组件。例如,如果TPM电路20由于操作系统内核组件感染而替换该操作系统内核,则TPM电路20之后可以引导装置4来重新运行用于将内核加载到梯:作存储器中的引导加载器。此外,在替换被感染引导组件之后,TPM电路20可以发起引起主处理器重新开始整个引导顺序的硬件复位。
在一些实施例中,在TPM电路20冲企验顺序中第一引导组件的完整性并且该第一引导组件;波加载到存储器中之后,CPU 44和TPM电路20可以合作执行如上所述的完整性检验和选择性替换技术。CPU 44的切、助可以在某些情况下增加引导组件^皮^r-验和加载的速度。
不是在检测到感染时发起重新启动或采取补;故动作,TPM电路20可以在才丸行本/>开4支术之前简单地等待用户10发起的重新启动。(例如)非常迫切地需要装置4进行到操作模式中可以引起这种情况。在这种情况中,TPM电路20可以向用户10提供装置4在受威胁状态中操作的指示,因此使用户10在方便的时候重新启动装置4。该指示可以呈现为(例如)显示器上的消息、指示灯、鸣声或嘟嘟响、语音消息、电子邮件的形式、或用于通知用户10装置4受威胁的4壬意其4也方法。
除了引导时(boot-time)检查和自动恢复,装置4可以周期性地对感染的指示进行自身检查。检查可以通过(例如)反病毒软件、性能监控软件、或TPM电路20来执4亍。在TPM电路20负责检查装置的情况下,其可以通过周期性地4丸行引导组件的完整性检验而自动地动作,或者是响应于来自装置4操作系统的请求(可能地由用户10发起的)、装置4上运行的程序的请求、或连接至企业网6的诸如质量控制"艮务器14的其他装置的请求而动作。在装置4怀疑一个或多个引导组件中存在感染的情况下,该装置可以才艮据本7>开的4支术发起重新启动来重新运行引导顺序。可选地,装置4可以停止操作,例如通过卸载操作系统,并引导TPM电路20执行当前引导组件的完整性斥企查并选才奪性地替换那些包含感染的组件。
在图1的实例中,可以选择企业系统管理者利用系统2附加地或可选地配置质量控制服务器14,以主动监控装置行为并补救连才妄至企业网6的装置上的感染。质量控制服务器14可以是高端服务器、工作站、数据中心、中间网络装置、网络设施、超级计算机、大型计算机、或能够监控网络上的其他装置行为的另 一类型的装置。
例如,质量控制月良务器14可以7见察从装置4发送的网络通孑言并可以指示装置已^皮感染威胁并且(例如)在不期望的状态中才乘作的其他动作。在另一个实例中,质量控制服务器14可以^使用端口扫描4支术来识别装置4上不正常的打开端口 , /人而指出装置4上可能存在恶意软件。在另一实例中,质量控制服务器14监控来自装置4的详细描述装置4的生产率的电子报告,诸如连接工具的运行速度、数据产生或分析的速度、或其他生产率度量。质量控制服务器14可以确定装置4的不正常的低生产率是受威胁的指示。如另一附加实例,装置4可以直4妄向质量控制服务器14发送描迷其状态和软件结构的信息,并连同发送一个请求,该请求要求服务器根据信息确定装置4是否受威胁。
在质量控制服务器14确定装置4受威胁的情况下,其可以引导装置4采取补凌丈措施。例如,响应于来自质量控制服务器14的其受损威胁的信号或其他消息,装置4可以根据本公开的技术发起重新启动以重新运行引导顺序。在另一个实例中,装置4可以停止操作并引导TPM电路20采取补救措施,诸如用可信任版本替换被感染引导组件。 一旦通知了感染,TPM电路20可以在重新运行引 导顺序之前筒单;也等4寺用户10发起的重新启动。在这种情况下, TPM电路20可以向用户10提供装置4在受威胁状态中操作的指 示。
在图1的实例中,网络系统2包4舌可选可信4壬引导组件月艮务器 8,其存储可信任引导组件,并在请求时向装置4提供可信任引导 组件的拷贝。可信任引导组件服务器8可以是高端服务器、工作站、 凄t据中心、中间网络装置、网络i殳施、超级计算才几、大型计算才几、 文件服务器、或能够安全地存储内容并在企业网6上传输存储的内 容的其他类型的装置。可信任引导组件服务器可以包括受写保护的 硬盘或其他非易失性存储介质(未示出)。在受写保护的存储介质 的情况下,没有力l务器管理者的物理干涉而^务改可4言^f壬引导组件月良 务器存储介质是不可能的。以这种方式,存储在介质上的数据不会 遭受恶意软件的破坏或感染。
如上所述,可信任引导组件典型地被存储在装置4中的非易失 性存々者器装置中。然而,在一些情况下,系统2的管理者可以发玉见 值得为可信任引导组件维持中央知识库和可信任引导组件服务器 8。在该情况下,TPM电路20通过安全网络通4言(例如经由安全 Socket层通信或其他加密的方法)来向可信任引导组件服务器8发 信号,以获得并响应可信任引导组件的拷贝,利用该拷贝替换装置 4上对应的-皮感染组件。在一些实施例中,TPM电路20可以合并 网络*接口卡(NIC)或不能到达装置的主处理器和在主处理器上执 行的软件应用程序的其他网络连接,以为获得11导组件的可信任拷 贝提供附加的安全性。此外,在一些情况中,系统2可以包括装置 4和可信任引导组件服务器8之间的专用网络链接(未示出),其可 以避免可信任引导组件服务器8连接至企业网6的需要。专用网络 链接减少可信任S1导组件服务器8和其中的可信任?I导组件会被经由企业网6接收的感染威胁的可能性。此外,专用网络链接可以防 止伪装攻击,以免连接至企业网6的受威胁装置伪装成可信任引导 组件服务器以削弱系统2的操作。在一些实施例中,可以采用加密 保护(例如会话安全或数字签名)来代替或结合专用网络连接。
大体上,系统2的管理者与质量控制服务器14交互,以便以 可以单独得到并与诸如装置4的装置通信的形式维持可信任? 1导组 件。系统2的管理者可以用更新的版本替换可信任引导组件服务器 8上的特定可信任引导组件。在企业网6连接至实现本z仝开描述的 技术的多个相似装置的情况下,每一个装置(例如装置4)都能够 在没有管理者帮助的情况下下载可信任引导组件的更新版本。以这 种方式,管理者可以有刻:地向连4妄至企业网6的装置发布更新的引 导組件。
图2是采用示例性细节示出装置4的一个实施例的方框图。如 上所述,装置4典型地是为多个硬件和软件模块提供操作环境的计 算装置。为了清楚,诸如键盘、显示器、操作系统和在计算装置或 设施中一般能找到的组件的特定组件没有在图2中示出。
在图2的实例中,装置4包括可信任引导组件存储装置40、引 导组4牛存4诸装置42、网络4妾口34、 TPM电路20、具有才喿作存々者器 36的中央处理单元("CPU" ) 44、以及感染指示器38。
网络接口 34促进装置4和企业网6之间的通信并且包括这种 通信所需的所有石更件和库欠件组件。网纟各4妄口 34可以是有线或无线 网纟各4妄口。例如,网纟各4妄口 34可以是以太网接口、 Wi-Fi网络4妄口、 或其他类型的网络接口。在一些实施例中,网络接口 34与到上述 相对于图1描述的可信4壬引导组件月l务器8的专用网络链4妻交互。CPU 44代表装置处理器并且可以包括用于执行包含在操作存 储器36中的指令的一个或多个通用或专用目的处理器。操作存储 器36包含装置4的典型操作所需的指令,并且大体上是诸如DRAM 或SDRAM的RAM装置。
引导组件存储装置42包含作为程序指令或参数的装置4引导 顺序的装置特定引导組件。引导组件存储装置42可以是电可擦除 可编程只读存储器(EEPROM )、压缩》兹盘可重写存储器(CD-RW )、 光盘存储装置、7磁盘存储装置或其他》兹盘存储装置、专用盘分区、 或可以用来存^f诸程序指令或参^t且可以^皮计算才几访问的任意其他 存储介质。此外,在装置4为网络可启动的情况下,引导组件存卡者 装置42代表到网络分区的链接。引导组件存储装置42可以代表多 个上述列出的装置,其中包括引导組件存储装置42的每个装置包 含所请求的51导组件的不同子集。
引导组件存储装置42大体上是可写入的,以促进通过用户10 或者管理者更新或改变装置4引导组件。例如,用户IO可以向包 括引导组件存储装置42的磁盘分区安装新的操作系统。在另一个 实例中,用户10可以在包括引导组件存储装置42的第二分区上安 装第二操作系统。该操作还要求其他f 1导组件的改变以加入第二操 作系统的位置和引导指令。
通过Z/^共网络12提供给装置4的内容可以包4舌诸如病毒或其 他木马、或蠕虫的恶意的软件(或"恶意软件")。此外,被包括在 公共网络12中的装置可以突破企业边界5并且使用企业网6以用 恶意软件来感染装置4。感染装置4的恶意软件可以擦除、感染、 或改变包括引导组件存储装置42的引导组件。例如,在装置4上 存在的病毒可以改变操作系统内核以阻止用户10与装置进行交互。 在另一个实例中,病毒可以感染装置4的引导扇区以在启动时获得 对装置的控制。作为改变任意引导组件的用户错误或装置4组件(软件或硬件)错误的结果,包括51导组件存储装置42的引导组件还 可以纟皮石皮坏,乂人而经历不理想纟喿作。
可信任引导组件存储装置40包含作为程序指令或参数的对应 于包括引导组件存储装置42的引导组件的可信任引导组件。可信 任引导组件存储装置40可以是ROM、 EEPROM、 CD-ROM或其他 光盘存储装置、^兹盘存储装置或其他》兹盘存储器装置、或可以用于 以指令或数据结构形式运载或存储期望的程序代码并可以被计算 机访问的任意其他介质。可信任引导组件存储装置40典型地与引 导组件存^f诸装置42为物理或逻辑分离的。在一个示例性实施例中, 可信任引导组件存储装置40是直接连接至TPM电路20的专用存 储器装置。在另一个示例性实施例中,可信任引导组件存储装置40 和引导组件存储装置42被存储在同一硬盘上但是位于不同的分区 上。
在一些实例中,可信任引导组件存储装置40是不可写入的以 最大化可信任引导组件的安全性。在其他实施例中,可信任引导组 件存卞者装置40是可写入的, <旦是4又在用户IO或管理者采取物理步 艰《来重写引导组件的范围。这种物理步骤可以包括(例如)移动和 重写EEPROM、将JTAG兼容存储器芯片连接至编程器、或者替换 存储器芯片或CD-ROM磁盘。在其他实施例中,可信任引导组件 存储装置40通过具有足够权限访问用于重写可信任引导组件存储 装置40的软件的用户10或管理员可写入。 一般,在重写可信任引 导组件之前,用户10或管理员将检验可信任引导组件的新版本的 完整性以确保新版本没有以任意方式被 坡坏。例如,用户10可以 才企验新版本被可信任的第三方数字签名。在另一实施例中,用户10 可以运行一个程序以计算新版本的密码杂凑并将结果与计算的杂 凑值必须与之相符的已知可信任值进行比较。如图1上下文中所述的TPM电路20是用于在装置的引导顺序 期间检测^f皮感染引导组件并利用可信任引导组件来替换^C感染31 导组件的辅助硬件。TPM电3各20包括感染检测电路22、 TPM值计 算电路24、 TPM^f直26、'恢复电^各28、和通4言电路32。
TPM电路20的每个基于电路的组件被实现为微处理器、微控 制器、ASIC、 FPGA、 CPLD、或PLA,这些元件的任意组合、或 能够执行每个组件的各个功能的任何其他类型的硬件。
通信电路32为TPM电路20提供网络通信功能性。例如,通 信电路32可以是一组硬件才莫块,其提供石更件5各径,TPM电路20 利用该石更件路径可以向网络4妄口 34发信号。
TPM值26包括一组可信任TPM值并且可以实现为ROM、 EEPROM、和其他形式的非易失性存储器中的表、列表、或其他的 数据结构。在引导组件检验和替换过程之前,通过在包括可信任引 导组件存储装置40的可信任引导组件上执行密码杂凑功能来建立 可信任TPM值。所得到的用于每个可信任可I导组件的可信任TPM 值被存储在TPM值26中。TPM值26可以包括用于每个引导组件 的多个计算的TPM值。这些对应于可以:被许可地在装置4上执行 的多个引导组件版本。
在典型的实施例中,TPM电3各20在才是供至TPM电i 各20的电 源稳定时开始操作。由于电源通常在装置4上电之后不久稳定,TPM 电路20立即开始检验用于引导顺序的引导组件的完整性并在才企测 到^s皮坏时替换那些组件。在其他实施例中,装置4可以直接向TPM 电路20发信号以发起完整性检验和替换操作。
引导组件完整性检验和替换如下进行。首先,感染检测电路22 从引导组件存储装置42获得第一引导组件(例如,BIOS)。感染检测电路22之后向TPM值计算器电路24发信号以执4亍(例如)组 件的密码杂凑以产生相应的TPM值。TPM值计算器电^各24可以4吏 用用于计算TPM值的任意已知的杂凑功能,诸如MD5、 SHA-1等。 TPM值计算器还可以4吏用其他功能,诸如循环冗余4交验(CRC )来 计算TPM值。因此TPM值可以是密码杂凑、CRC值、或作为引导 组件分类计算并用作完整性4企验值的任意其他值。在一些实施例 中,TPM值是由修改的可信任平台模块生成的数字签名,如在"TPM Main Part 1 Design Principles Specification Version 1.2." 中描述的。 之后,感染检测电路22接收来自TPM值计算器电路24的计算的 TPM值并将所计算的TPM值与包括TPM值26的可信任TPM值 的集合进行比较。如果计算的TPM值在可信任TPM值的集合中找 到,则引导组件与允许执4亍的引导组件的片反本相同,乂人而其不是受 威胁的。作为结果,之后,感染检测电路22引导CPU44将该引导 组件下载到运算存储器36中。可选地,感染检测电路22自身将该 引导组件下载到运算存储器36中。
如果在TPM值比较步骤期间在可信任TPM值集合中没有找到 计算的TPM值,则引导组件是受威胁的或者被破坏的。在这种情 况下,感染检测电路22向试图从受威胁引导组件恢复的恢复电路 28发信号。为了通知请求替换的特定引导组件的恢复电路28,感 染才金测电路22包括一个诸如名字或存4诸位置的组件ID值(未示 出),用于信号中的受威胁引导组件。
恢复电路28包括查找表(LUT ) 30,其将组件ID值映射到可 信任引导组件40或可信任引导组件服务器8上的存储位置。在被 标注为查找表时,LUT 30可以是能够将组件ID值映射到存々者位置 的一定数量的硬件结构中的任意并且可以实现在ASIC、 FPGA、 CPLD、 PLA或在功能上相似的装置中。如果恢复电路28被配置为利用来自可信任引导组件存储装置 40的相应的可信任引导组件替换受威胁引导组件,则恢复电路28 请求LUT 30确定可信任引导组件存储装置40中的合适的可信任引 导组件的位置。因此,恢复电路28 4吏用该地址来获得该合适的可 信任引导组件。
然而,如果恢复电路28被配置为利用来自可信任引导服务器8 的相应的可信任引导组件替换受威胁引导组件,则恢复电路28请 求LUT 30确定可信任引导组件服务器8的网络地址和可信任引导 组件服务器8中的可信任51导组件的位置。网络地址可以是IP地址、 网络名称(SSID)、或用于识别连4妄到企业网6的装置的任意其他 参考。恢复电路28利用从LUT 30获得的网络地址和位置来向通信 单元32发信号以(经由网络接口 34)请求可信任引导组件服务器 8响应一个合适的可信任引导组件。在一些实施例中,LUT30不包 含可信任引导组件服务器8中的可信任引导组件的位置。这里,恢 复电路28利用组件ID向通信电路32发信号以(经由网络接口 34) 请求可信任引导服务器8响应一个合适的可信任引导组件。 一旦接 收了来自装置4的请求,可信任引导组件服务器8响应一个合适的 可信任引导组件。
已经获得来自可信任源的合适的可信任引导组件的恢复电路 28开始在可信任引导存储装置42中利用可信任引导组件重写受威 胁引导组件。以这种方式,装置4可以确保受威胁引导组件在引导 顺序期间没有才几会^皮下载或扭^亍。在*齐换#:作之后,恢复电路28 典型地向装置4发信号以重新发起引导顺序(即重新启动),以促 进一个无害的引导组件。然而 在一些实施例中,恢复电路28附 加地将可信任引导组件下载到操作存储器36,用来通过CPU 44执 行并通过检验继续,并且,如果需要,替换引导顺序中之后的组件。 在其他实施例中,恢复电路28向CPU 44发信号以将最新恢复的来自引导组件存储装置42的引导组件下载到操作存储器36中用于执 行。之后恢复电路28通过4企验继续并且如果需要,替换引导顺序 中之后的组件。
用于装置4的引导顺序典型地包含必须在装置进入其正常操作 条件之前被下载和执行的多个引导组件。相对于建立可信任计算库 (必须被正确操作的软件和硬件的集合(即,没有受威胁))所必 须的顺序中的每个引导组件来执行上述技术,以用于装置4满足其 期望的行为并维持安全。例如,用于装置4的引导顺序可以从BIOS 继续到到操:作系统的引导装载程序。对于该示例性引导顺序,TPM 电路20首先为BIOS,之后为引导装载程序,之后为操作系统执行 完整性4全查。在该实例中,如果操作系统是建立可信任计算库所请 求的最终組件,则对于引导组件的完整性才企查在无威胁4喿作系统下 载时结束。在该阶段,TPM电路20进入等待状态,并且装置4进 入正常操作。
在其正常操作期间的任意点上,装置4可以向TPM电路20发 信号以在引导组件上执行完整性检验和替换技术。如关于图1的上 述说明,装置4可以响应于来自质量控制服务器14的请求发起该 技术。此外,在装置4上运行的反病毒或其他检测软件可以怀疑一 个或多个引导组件是受威胁的并且引导装置4利用TPM电路20采 取恢复措施。在另一个实例中,诸如操作系统的在装置4上运行的 其他软件可以配置为周期性地向TPM电路20发信号。质量控制服 务器14可以通过向网络接口 34发送网络消息来发起完整性检验和 替换技术,其又经由通信电路32向TPM电路20发信号。最终, TPM电路20自身可以配置为周期性地执行该技术。
在装置4已经进入正常操作之后发生完整性检验和替换操作的 情况下,TPM电路20执4亍上述才支术的一个子集。TPM电路20的 多种电路组件用作^r-验引导顺序中的每个引导组件的完整性。如果找到被感染引导组件,贝'J TPM电路20向装置4发信号以重新发起 引导顺序(即,重新启动),以根据上述技术替换被感染引导组件。 在高安全环境中,可以强制受威力办装置4的立即重新启动,以防止 由于感染壽丈感信息暴露给未授权的代理者。
在发现感染时不发起装置4的重新启动,TPM电路20可以可 替换地向感染指示器38发信号以向用户10报警装置4受威胁。即, 在确定出现感染之后,TPM电^各20可以简单地警告用户IO该感染 而不是立即采耳又恢复动作。以这种方式,装置4可以在(例如)存 在对于装置服务的紧急需要的情况下继续操作。感染指示器38可 以是(例如)扩声器、LED、或包4舌向用户10发送电子邮件或在 显示器上提出警告的能力的软件模块。在适当的时候,用户10可 以重新启动装置4, 乂人而发起TPM电路20以执行上述的引导组件 完整性^r-验和替换:技术。例如,用户10可以在支持对于以后的恢 复的所有用户设置之后重新启动装置4。在其他实施例中,感染指 示器38可以向用户呈现立即执行引导组件完整性4企验和替换技术 的选项。
图3是示出了图2装置的示例性系统构架的框图。可信任引导 组件存储装置82是图2的可信任引导组件存储装置40的实现。引 导组件存储装置84是图2的引导组件存储装置42的实现。网络接 口装置86是网络接口 34的实现。才喿作存储装置88是操作存储器 36的实现。最后,指示灯92是感染指示器38的实例。
可信任引导组件存储装置82、引导组件存储装置84、和网络 接口装置86每个都彼此交互,并且使用系统总线100与TPM电路 20交互。CPU 44和才喿作存储装置88彼此交互,并且使用系统总线 102与TPM电路20交互。系统总线100和102表示使得信号能够 在与其连^妄的装置之间通过的多个有线连^妻。系统总线100和102
可以是彼此串联或并联的总线。连接的装置可以使用,并且系统总线100和102可以支持任意数目的总线协议(包括I2C、 PCI、 AGP、
或超文本传输),以向另一个发信号。
示出的指示器灯92经由线104直接连接至TPM电路20。线 104可以包括其他基本电子组件,诸如采用指示器灯92所需的电阻 器或电容器。
图4A是示出了图2装置的示例性引导顺序的框图。图4B是 利用示例性可信任引导组件示出包括在图2装置中的可信任引导组 件存储装置40的框图。包括在可信任引导组件存储装置40中的每 个可信任引导组件对应于图4A的引导顺序中的引导组件。图4A 的示例性引导顺序中的第一引导组件是BIOS 110。在4企-睑且用可信 任BIOS 120替换BIOS (如果需要的话)之后,TPM电路20继续 在引导分区112、引导装载程序114、内核116、并最终在内核才莫块 118上执行该技术。 一旦内核模块的未受威胁版本被下载到操作存 储器中,装置4包含允许装置根据其期望的行为操作并维持基本安 全水平的可信任计算库。
图5A和5B是示出了用于图2装置的辅助电路的用于根据上 述技术检测和替换破坏的引导组件的操作的示例模式的流程图。
最初地,TPM电5各20接收装置2的引导顺序已经4皮启动的通 知(200 )。 TPM电路20通过发起用于检验装置2的引导顺序组件 完整性的过禾呈来处J里该通知(202)。为了开始该过禾呈,TPM电路 20识别通过装置2被下载到操作存储器36中的引导顺序中的下一 个引导组件(204 )。之后TPM电路20执行识别组件的密码杂凑以 产生对应的TPM值(206)。为了确定引导组件是否被破坏,感染 才企测电路22将计算的TPM值与一组可信任TPM值26进行比4交 (208 )。如果感染冲企测电路22在可信任TPM值26中找到计算的TPM 值,则引导组件与可允许地执行的引导组件的版本相同,从而是不 受威胁的。装置2的CPU44现在可以访问并调用检^^的引导组件, 从而推进了引导顺序。之后TPM电路20在下一个引导组件上执行 一组相同的操作;该过程继续直到引导顺序中的所有51导组件被检 验(210)。
然而,如果TPM值没有在可信任TPM值26的一组中找到, 则引导组件是石皮坏的并JU吏用来自可信任仓库的对应的可信任引 导组件替换(212)。 TPM电路20获得来自可信任仓库(在图5B 的实例中为装置2的专用存储器或存储介质)的可信任?I导组件, 诸如可信任引导组件存储装置40,或配置为提供可信任引导组件的 网络装置,诸如可信任引导组件服务器8 (216)。
在可信任引导组件存储装置40维持可信任引导组件的情况下, 恢复电路28使用破坏的引导组件的组件ID来获得可信任引导组件 存储装置40中对应的可信任引导组件的地址(218)。之后恢复电 ^各28在可信任引导组件存4诸装置40中才艮据其地址读取该可信任引 导组件(220)。最后,恢复电路28利用可信任引导组件在引导组 件存储装置42中重写破坏的引导组件(228 )。
在可信任引导组件被维持在可信任引导组件服务器8上的情况 下,恢复电路28使用破坏的51导组件的组件ID来确定可信任? I导 组件月l务器8的网络地址和可信任引导组件服务器8中对应的可信 任引导组件的位置(222)。恢复电路28使用获得的网络地址和位 置向通信电路32发信号以(经由网络接口 34)请求可信任引导组 件服务器8响应合适的可信任引导组件(224)。通信电路32接收 由可信任《1导组件服务器8响应而发送的可信任31导组件。最终, 恢复电路28使用可信任引导组件重写可信任引导组件存储装置42 中的石皮坏的引导组件(228)。在重写破坏的引导組件之后,TPM电路20提示装置2的重新 引导以重新发起引导顺序(214)。
已经描述了本发明的多种实施例。这些和其他实施例均落入4又 利要求的范围之中。
权利要求
1.一种方法,包括利用计算装置中的辅助电路计算用于所述计算装置的引导组件的完整性检验值,其中所述引导组件包括要求所述计算装置的处理器执行的使所述计算装置进入操作模式的程序指令;确定所计算的完整性检验值是否与可接受的引导组件相关联;以及在所述完整性检验与可接收的引导组件不相关联时,利用所述计算装置的所述辅助电路,用所述引导组件的可信任版本的拷贝替换所述引导组件。
2. 根据权利要求1所述的方法,还包括在替换所述引导组件之 后,利用所述辅助电路输出信号来引导所述计算装置的所述处 理器执行所述引导组件的所述可信任版本的所述拷贝。
3. 根据权利要求2所述的方法,其中,所述引导组件是所述计算 装置的引导顺序中的多个引导组件之一 ,所述方法还包括在替换所述引导组件之后,利用所述处理器执行所述引 导组件的所述可信任版本的所述拷贝;在执行所述引导组件的所述可信任版本的所述拷贝之 后,利用所述处理器确定是否有至少一个另外的引导组件保留 在所述计算装置的所述引导顺序中;以及利用所述处理器向所述辅助电路输出信号以请求所述辅 助电i^各计算用于所述另外的引导组件的完整性^r验值。
4. 才艮据4又利要求3所述的方法,其中,执行所述引导组件的所述可信任版本的所述拷贝 包括仅执行所述引导组件的所述可信任版本的所述拷贝而不 再次执行所述引导顺序中的所述引导组件之前的多个引导组 件的^f壬意一个。
5. 4艮据权利要求3所述的方法,〃顿厅孑sr与a、尸/r还51于"见 利用可信任拷贝仅选择性替换不可接受的所述引导组件,
6. 根据权利要求4所述的方法,还包括:.以卜" F撒力I贝,组件并仅选择性替换不可接受的所述引导组件(a)所述计算装置上电后,利用所述处理器选择所 述引导顺序中没有被所述处理器执行的下一个所述引导 组件;(b )利用所述辅助电路计算所述下一个引导组件的 完整性值,(c )确定所计算的完整性检验值是否与可接受的引 导組件相关联,(d )在所述完整性检验值与可接受的引导组件不相 关联时,利用所述计算装置的所述辅助电路,用所述下 一个引导组件的可信任版本的拷贝替换所述下一个引导 组件,(e)不再次执行所述引导顺序中所述下一个引导组 件之前的任何引导组件,利用所述计算装置的所述处理器执行所述下一个引导组件的所述可信任版本的所述拷 贝,(f) 确定是否有至少一个引导组件保留在所述引导 顺序中,以及(g) 当所述引导顺序中保留有另外的引导组件时,对所述顺序中的每个剩余的引导组件重复步骤(a)到步 骤(f)。
7. 根据权利要求1所述的方法,还包括利用所述计算装置接收来 自质量控制服务器的指示一个或多个引导组件被感染或被破 坏的消息。
8. 根据权利要求1所述的方法,还包括在利用所述引导组件的可 信任版本的拷贝替换所述引导組件之后,利用所述辅助电路向 所述计算装置输出复位信号。
9. 根据权利要求1所述的方法,其中,确定所计算的完整性冲佥-验 值是否与可接受的引导组件相关联包括将所计算的完整性检 验值与存储的值的列表进行比较,其中每个存储的值对应于一 个可接受的引导组件。
10. 根据权利要求1所述的方法,其中,利用所述引导组件的可信 任版本的拷贝替换所述引导组件包括利用所述辅助电路,从所述装置上的可信任存储介质读 取所述引导组件的所述可信任版本的所述拷贝;以及利用所述引导组件的所述可信任版本的所述拷贝重写所 述计算装置的主存储中的所述引导组件。
11. 4艮据4又利要求10所述的方法,其中,所述可信任存^f诸介质不能^^皮所述处理器访问。
12. 根据权利要求1所述的方法,其中,利用所述引导组件的可信 任版本的拷贝替换所述引导组件包括利用所述辅助电路,从可信任引导组件服务器请求所迷 引导组件的可信任版本的拷贝,其中所述可信任引导组件服务 器是存储用于所述计算装置的引导组件的可信任版本的网络 装置;接收来自所述可信任?I导组件服务器的所述引导组件的 可信任片反本的所述拷贝;利用所述引导组件的可信任版本的所述拷贝重写主存储 中的所述引导组件。
13. 根据权利要求1所述的方法,其中,所述辅助电路是修改的可 信任平台硬件模块,并且其中所述完整性检验值是数字签名。
14. 根据权利要求1所述的方法,还包括在确定所述完整性检验值 与可接受的引导组件不相关联后,在利用所述引导组件的可信 任版本的拷贝替换所述引导组件之前,向用户提供所述完整性 检验值与可接受的引导组件不相关联的指示。
15. 根据权利要求14所述的方法,其中,所述指示是下列各项之 一显示器上的消息、指示灯、鸣声或嘟嘟响、语音消息、或 电子邮4牛。
16. 根据权利要求14所述的方法,还包括利用所述辅助电路接收 版本的拷贝替换所述引导组件的输入。
17. —种包含辅助电路的计算装置,包括完整性检验值计算器电路,配置为计算用于所述计算装 置的引导组件的完整性检验值,其中所述引导组件包括要求所 述计算装置的处理器执行的使所述计算装置进入操作模式的 程序指令;感染检测电路,配置为确定所述完整性检验值是否与可 接受的引导组件相关联;以及恢复电路,配置为在所述完整性检验值与可接受的引导 组件不相关联时,用所述引导组件的可信任版本的拷贝替换所 述引导组件。
18. 根据权利要求17所述的计算装置,其中,所述恢复电路配置 为在所述引导组件的所述可信任版本的所述拷贝替换所述引 导组件之后,输出信号来引导所述计算装置的所述处理器执行 所述引导组件的所述可信任版本的所述拷贝。
19. 根据权利要求18所述的计算装置,其中,所述引导组件是引导顺序中的多个引导组件之一,其中,在执行所述引导组件的所述可信任版本的所述拷 贝之后,所述处理器确定是否有至少 一个另外的引导组件保留 在所述计算装置的所述引导顺序中并且向所述辅助电路输出 信号以请求所述辅助电路计算用于所述另外的引导组件的完 整性检验值。
20. 根据权利要求19所述的计算装置,其中,响应于接收来自所 述辅助电if各的所述信号,所述计算装置的所述处理器配置为^f又 执行所述引导组件的所述可信4壬片反本的所述拷贝而不再次执 行所述引导顺序中所述引导组件之前的任何所述引导组件。
21. 根据权利要求19所述的计算装置,其中,所述处理器配置为l餘出信号以引导所述辅助电路任拷贝仅选择性替换不可接受的所述引导组件。
22. 才艮据权利要求17所述的计算装置,其中,所述辅助电^各还包 括通信电路,所述通信电路配置为接收来自质量控制服务器的 指示存储在所述计算装置上的一个或多个引导组件被感染或 寻皮石皮坏的消息。
23. 根据权利要求17所述的计算装置,其中,所述恢复电路配置 为在利用所述引导组件的所述可信任版本的所述拷贝替换所 述引导组件之后,向所述计算装置输出复位信号。
24. 根据权利要求17所述的计算装置,其中,所述感染检测电路 配置为通过将所计算的完整性4全验值与存储的值的集合进行 比较来确定所计算的完整性检验值是否与可接受的引导组件 相关联,其中每个存储的值对应于一个可接受的引导组件。
25. 根据权利要求17所述的计算装置,还包括主存储,存储所述引导组件;可信任存储介质,存储所述引导组件的所述可信任版本;其中,为了用所述引导组件的可信任版本的拷贝替换所 述引导组件,所述恢复电路配置为从所述可信任存储介质读取 所述引导组件的所述可信任版本的所述拷贝并利用所述引导 组件的所述可信任片反本的所述拷贝重写所述主存々者中的所述 引导组件。
26. 根据权利要求25所述的计算装置,其中,所述可信任存储介 质不能^L所述处理器访问。
27. 根据权利要求17所述的计算装置,其中,所述辅助电路还包4舌通信电^各,所述通信电路配 置为从可信任引导组件服务器请求并接收所述引导组件的所 述可信任版本的所述拷贝,其中所述可信任引导组件服务器是 存储用于所述装置的引导组件的可信任版本的网络装置,其中,所述恢复电^^配置为通过利用所述通信电路^^妄收 的所述引导组件的可信4壬版本的拷贝重写主存储中的所述引 导组件,来利用所述引导组件的可信任版本的所述拷贝替换所 述引导组件。
28. 才艮据权利要求17所述的计算装置,其中,所述辅助电路是修 改的可信任平台模块,并且其中所述完整性检验值是数字签 名。
29. 根据权利要求17所述的计算装置,其中,在所述感染检测电 路确定所述完整性检验值与可接受的引导组件不相关联之后, 并且在所述恢复电路用所述引导组件的可信任版本的拷贝替 换所述引导组件之前,所述辅助电路向用户提供所述完整性检 验值与可接受的引导组件不相关联的指示。
30. 根据权利要求29所述的计算装置,其中,所述指示是下列各 项之一显示器上的消息、指示灯、鸣声或嘟嘟响、语音消息、 或电子邮件。
31. 才艮据片又利要求29所述的计算装置,其中,所述辅助电鴻4妾收 来自戶斤述用户6勺引导戶斤述專肅助电^5^寿,J用任版本的拷贝替换所述引导组件的输入,
32. —种系乡充,包4舌计算装置;可信任引导组件服务器,存储用于所述计算装置的引导 组件的可信任版本,其中,所述计算装置包含辅助电路,所述辅助电路包括完整性检验值计算器电路,计算用于所述计算装置 的?I导组件的完整性检验值,其中所述引导组件包括要 求被所述计算装置的处理器执行的使所述计算装置进入 操作模式的程序指令;感染4企测电路,确定所述完整性检-验值是否与可4妄 受的引导组件相关联;以及恢复电路,在所述完整性检验值与可接受的引导组 件不相关联时,利用从所述可信任引导组件服务器接收 的所述引导组件的可信任版本的拷贝替换所述引导组 件。
33. 根据权利要求32所述的系统,还包括质量控制服务器,监控所述计算装置的通信和活动信息, 并在所述通信和活动信息指示所述计算装置受威胁时向所述 计算装置发送消息。
全文摘要
本发明提出了一种受威胁计算机的自动的基于硬件的恢复的方法,大体上,描述了一种用于基于硬件的检测和计算装置从受损害状态自动恢复的技术。此外,本技术提供了从可信任仓库的选择性软件组件的自动的、基于硬件的恢复。基于硬件的监测和自动恢复技术可以被集成到计算装置的引导顺序中以有效且无害的仅替换任意被感染的软件组件。
文档编号G06F11/14GK101676876SQ20091017375
公开日2010年3月24日 申请日期2009年9月14日 优先权日2008年9月15日
发明者史蒂芬·R·汉纳 申请人:丛林网络公司