CN106662994B - 检测系统管理模式bios代码的改变 - Google Patents

检测系统管理模式bios代码的改变 Download PDF

Info

Publication number
CN106662994B
CN106662994B CN201480081769.9A CN201480081769A CN106662994B CN 106662994 B CN106662994 B CN 106662994B CN 201480081769 A CN201480081769 A CN 201480081769A CN 106662994 B CN106662994 B CN 106662994B
Authority
CN
China
Prior art keywords
bios code
smm bios
smm
controller
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201480081769.9A
Other languages
English (en)
Other versions
CN106662994A (zh
Inventor
杰弗里·凯文·耶安松尼
波利斯·巴拉切夫
瓦柳丁·阿里
克里斯·I·道尔顿
大卫·普拉坎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN106662994A publication Critical patent/CN106662994A/zh
Application granted granted Critical
Publication of CN106662994B publication Critical patent/CN106662994B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Abstract

本文的示例公开了在运行系统管理模式(SMM)BIOS代码时监视预期功能。该示例基于监视预期功能来检测SMM BIOS代码是否已发生改变。该改变指示SMM BIOS代码被破坏。

Description

检测系统管理模式BIOS代码的改变
背景技术
计算系统可以包括诸如执行计算设备的各种启动功能的基本输入/输出系统(BIOS)之类的代码。BIOS代码可以初始化并测试计算设备的硬件,照此BIOS代码可以从计算设备的存储器加载引导代码和/或操作系统。
附图说明
在附图中,相似编号指示相似部件或块。以下具体实施方式参考附图,其中:
图1是示例性系统的框图,该系统包括运行来自存储器的SMM BIOS代码的处理器、以及在运行SMM BIOS代码时监视预期功能以检测指示SMM BIOS代码已经被破坏的SMMBIOS代码改变的控制器;
图2是示例性系统的框图,该系统包括在运行SMM BIOS代码时控制器监视系统的预期功能之前完成引导数据的运行的处理器;
图3是可由控制器运行的示例性方法的流程图,该控制器在SMM BIOS代码的运行期间监视计算系统的预期功能以检测SMM BIOS代码的改变,该改变指示SMM BIOS代码被破坏;
图4是可由控制器运行的示例性方法的流程图,该控制器确定引导信息的运行是否完成,并且如果是,该控制器在运行SMM BIOS代码时监视预期功能,该控制器通过监视预期功能来检测SMM BIOS代码的改变;
图5是可由控制器运行的示例性方法的流程图,该控制器在运行SMM BIOS代码时监视至少一个预期功能,该控制器检测SMM BIOS代码的改变以检测是否可能存在预期功能的偏差;以及
图6是具有处理器的示例性计算设备的框图,该处理器运行机器可读存储介质中的指令,以用于在SMM BIOS代码的运行期间监视预期功能并检测SMM BIOS代码是否已改变。
具体实施方式
BIOS代码可被运行以配置和测试计算设备中的硬件。照此,BIOS代码可以包括系统管理模式(SMM)BIOS代码。SMM BIOS代码以最高权限等级运行,所以一旦SMM BIOS代码被破坏,就可能不能检测SMM BIOS代码的漏洞。因此,这可能导致计算设备运行被破坏的SMMBIOS代码,从而可能进一步导致BIOS代码的不合规操作。当BIOS代码从低上电状态恢复而开始运行时,诸如在BIOS代码的预运行期间,其他机制提供保护;但是这些机制可能在运行期间不提供保护以防攻击,该攻击将SMM BIOS代码的修改作为目标。进一步,这些机制在计算设备处于低上电状态时进行保护以防攻击,而在计算设备保持在持续开机状态一延长时段时可能不提供保护。
为了解决这些问题,本文公开的示例提供一种在通过处理器运行SMM BIOS代码时监视预期功能的控制器。预期功能是由于SMM BIOS代码的运行而可能发生的计算设备内的行为或功能。以这种方式,预期功能是可以在运行SMM BIOS代码时预测的那些行为和/或功能。例如,开发人员可以包括此功能或行为以作为SMM BIOS代码的一部分,因而创建SMMBIOS代码的运行的透明度。进一步,监视此预期功能使得控制器能够监视可在运行SMMBIOS代码时产生的功能。
此外,在运行期间监视SMM BIOS代码的预期功能使得控制器能够检测SMM BIOS代码是否已发生改变。检测SMM BIOS代码的改变使能够识别SMM BIOS代码是否已被破坏。识别SMM BIOS代码是否已被破坏指示SMM BIOS代码可能被损毁和/或可能包括SMM BIOS代码的未授权修改。运行被破坏的SMM BIOS代码可能出现额外的易损性和/或导致BIOS代码的不合规操作。此外,检测SMM BIOS代码是否被破坏可用于针对安全性更重要的功能(诸如监视管理程序并提供其他更重要的服务)增强SMM BIOS代码。
在本文讨论的另一示例中,控制器通过检测与预期功能的偏差来检测SMM BIOS代码的改变。该偏差是根据SMM BIOS代码的运行无法预期的功能。照此,该偏差可包括基于SMM BIOS代码的运行而预测的那些功能的缺失和/或改变。例如,假设预期功能包括向寄存器中的一个写入指定值,因此控制器进行检查以验证在那个寄存器中是否存在该指定值。如果不存在指定值或者如果值为指定值之外的一些值,则这指示预期功能的偏差。根据SMMBIOS代码的运行检测功能和/或行为的偏差使得控制器能够检测SMM BIOS是否被破坏。
因此,本文公开的示例提供一种通过在SMM BIOS代码的运行期间监视预期功能来检测SMM BIOS代码是否已经被破坏的机制。
现在参照附图,图1是示例性计算设备的框图,该计算设备包括可以访问存储器106以在模块104处运行SMM BIOS代码的处理器102。当在模块104处运行SMM BIOS代码108时,控制器110监视根据SMM BIOS代码108的运行而发生的预期功能。控制器110在模块112处监视预期功能以在模块114处检测SMM BIOS代码108的改变。存储器106保存包括用于由处理器102运行的SMM BIOS代码108的BIOS代码116。在模块114处通过检测SMM BIOS代码108的改变,控制器110检测SMM BIOS代码108是否已经被破坏。SMM BIOS代码108的改变指示SMM BIOS代码108已经被破坏,这表示SMM BIOS代码108可能被损毁和/或可能包括SMMBIOS代码108的未授权修改。因此,由处理器102运行被破坏的SMM BIOS代码可能导致BIOS代码116的不合规操作并且可能出现计算设备的额外的易损性。
图1将处理器102、控制器110和存储器106例示为计算设备内部的部件。计算设备是可以被编程以实施一系列操作和/或功能的电子设备。照此,计算设备的实施方式包括目标设备、移动设备、个人计算机、台式计算器、膝上型电脑、平板电脑、便携式设备、智能手机、可穿戴计算设备、游戏设备、智能电视、零售销售点设备、或者包括处理器102、控制器110和存储器106的其他类型的电子设备。
处理器102是计算设备内部的在模块104处运行SMM BIOS代码的硬件部件。尽管图1将处理器102例示为在模块104处运行SMM BIOS代码,但实施方式不应被限制,因为这是为例示目的而做出的。例如,处理器102可以在SMM BIOS代码108的运行之前从存储器106取回BIOS代码116并运行BIOS代码116的引导信息。在此示例中,引导信息包括处理器102从低上电状态进行上电的预运行信息。因此,当从运行引导信息过渡到在模块104处运行SMM BIOS代码108时,处理器102处于上电状态。以示例的方式,处理器102的实施方式可以包括能够从存储器106取回SMM BIOS代码108并且在模块104处运行SMM BIOS代码的处理单元、主机处理器、微处理器、半导体、集成电路、或其他类型的电子设备。
在模块104处,处理器102运行来自存储器106的SMM BIOS代码108。相应地,模块104包括处理器102从存储器106取回SMM BIOS代码108以供运行。当在模块104处运行SMMBIOS代码时,处理器102可以向控制器110传送信号。该信号向控制器110指示监视由SMMBIOS代码108的运行所产生的预期功能。因此,如果处理器102还未开始运行SMM BIOS代码108,则控制器将不能监视在模块104处产生的预期功能。模块104可以包括可由处理器102运行以运行SMM BIOS代码108的指令、指令集、过程、操作、逻辑、技术、功能、固件、和/或软件。
存储器106是计算设备内的保存BIOS代码116并且照此可被处理器102访问的存储区域。在另一实施方式中,存储器106可被处理器102访问,但不能被控制器110访问。处理器102访问存储器106来取回包括SMM BIOS代码108的BIOS代码116以供运行。尽管图1将存储器106例示为从处理器102分离的部件,但这是为了例示目的而做出的,因为存储器106可作为处理器102的部分而被包括。以示例的方式,存储器106的实施方式包括只读存储器、闪存、铁电存储器、铁电RAM、磁性贮存存储器、纳米驱动、贮存驱动、存储器部件、或用于保存BIOS代码116和SMM BIOS代码108的此类存储器部件的组合。
BIOS代码116是作为操作系统(未示出)的一致性机制用于初始化并测试硬件部件的接口,以与键盘、显示器、以及与计算设备相关联的其他设备接合。BIOS代码116被保存在存储器106中,并且在运行时可以从存储器106加载操作系统(未示出)。尽管图1将BIOS代码116例示为包括SMM BIOS代码108,但实施方式不应当被限制,因为BIOS代码116可以进一步包括引导信息和其他预运行代码。
SMM BIOS代码108是指定实施的固件中的由处理器102以高权限模式运行的操作模式。SMM BIOS代码108处理诸如电力管理、系统硬件控制、或专有原始设备制造商设计的代码之类的全系统功能。例如,SMM BIOS代码108的使用包括如存储器错误、芯片集错误的系统事件,管理包括处理器102的掉电的系统安全功能,控制电力管理操作等。SMM BIOS代码108可以通过系统中断向处理器102触发,以指示来运行SMM BIOS代码108。这可以在BIOS代码116的引导信息的运行完成时发生。在后面的图中详细讨论此实施方式。
控制器110是能够在处理器102于模块104处运行SMM BIOS代码108时监视预期功能的硬件部件。在监视预期功能时,控制器110检测SMM BIOS代码108是否可能已经历可破坏SMM BIOS代码108的改变。以示例的方式,控制器110的实施方式可以包括能够监视由SMMBIOS代码108的运行产生的预期功能以检测SMM BIOS代码108的改变的嵌入式控制器、微控制器、半导体、电子设备、微芯片、芯片集、或其他类型的硬件部件。
在模块112至114处,控制器110在通过处理器102运行SMM BIOS代码108时监视预期功能。当在处理器102运行SMM BIOS代码时监视预期功能时,控制器110检测SMM BIOS代码是否已经历改变。检测到SMM BIOS代码108的改变表明SMM BIOS代码108可能被破坏,这表示SMM BIOS代码108可能被损毁和/或可能包括未授权的修改。在一实施方式中,检测SMMBIOS代码108的改变可以包括检测预期功能的偏差。该偏差是在处理器102运行SMM BIOS代码108时发生的非预期功能。例如,开发人员以如下这种方式生成SMM BIOS代码108:当处理器102运行此代码108时,在运行SMM BIOS代码108时发生特定行为。偏差可包括那些特定行为的缺失和/或改变。这创建了SMM BIOS代码108的运行的透明度。检测到偏差指示SMMBIOS代码108的改变,因此进一步指示被破坏的SMM BIOS代码108。在后面的图中详细讨论此实施方式。模块112至114可以包括可由控制器110运行的用于在处理器102运行SMM BIOS代码108时监视预期功能的指令、指令集、过程、操作、逻辑、技术、功能、固件和/或软件。
图2是示例性计算设备的框图,该计算设备包括在模块104处运行SMM BIOS代码108之前在模块220处完成对来自存储器106的引导数据218的运行的处理器102。处理器102向控制器110传送表示在模块220处完成引导信息的信号。来自处理器102的信号向控制器110指示处理器102正进入SMM BIOS模式,以在模块104处运行SMM BIOS代码108。计算设备包括控制器110,控制器110在模块112处监视SMM BIOS代码108的预期功能。当处理器102在模块104处运行SMM BIOS代码108时,控制器110在模块112处监视预期功能。在模块112处监视预期功能使得控制器110能够在模块114处检测SMM BIOS代码108的改变,预期功能由在模块104处运行SMM BIOS代码108产生。检测到这种改变指示SMM BIOS代码108可能被破坏,这表示SMM BIOS代码108可能被损毁和/或可能包括未授权的修改。运行被破坏的BIOS代码可能导致BIOS代码116的不合规操作并且可能出现计算设备的额外的易损性。
引导数据218被认为是从存储器106获取的BIOS代码116的部分。在运行引导数据218时,处理器102从诸如休眠或睡眠等的低上电状态过渡到诸如开机状态的较高上电状态。在此过渡期间,处理器102可以苏醒并过渡到操作状态。引导数据218包括处理器102从低上电状态恢复时运行的预运行信息。因此,引导数据218初始化计算设备的引导序列,并且以示例的方式,该引导序列可以包括用于执行自测试、加载配置设置、加载软件和/或固件等的处理数据。当从执行引导数据218过渡到运行SMM BIOS代码108时,处理器102保持在持续的上电状态。这指示处理器102已经开机了一持续的时间段。如果控制器110确定处理器102还未在模块220处完成引导数据218的运行,则这表示处理器102还未进入SMM BIOS模式来运行SMM BIOS代码108。因此,控制器110将不能够在模块112处监视预期功能。
在模块220处,处理器102完成了引导数据218的运行,因此使得处理器102能够继续进行以运行来自存储器106的SMM BIOS代码108。当在模块220处完成引导数据的运行时,处理器102可以发送信号中断,因此向控制器110指示在模块112处监视预期功能。模块220可以包括可由控制器110运行以完成引导数据218的运行的指令、指令集、过程、操作、逻辑、技术、功能、固件和/或软件。
图3是可由控制器运行的用于在处理器运行SMM BIOS代码时监视预期功能的示例性方法的流程图。控制器监视可以由SMM BIOS代码的运行产生的预期功能,以检测SMMBIOS代码的改变。该改变指示SMM BIOS代码可能已经被破坏,并且照此可能已经经历指示SMM BIOS代码可能已遭受攻击和/或损毁的未授权修改。在讨论图3时可以参考图1至图2中的部件以提供承接上下文的示例。例如,图1至图2中的处理器102运行SMM BIOS代码以产生预期功能。在另一示例中,图1至图2中的控制器110运行操作302至304,来在运行SMM BIOS代码时监视预期功能,以用于检测是否存在SMM BIOS代码的改变。进一步,尽管图3被描述为由控制器实施,但其可以在其他合适的部件上运行。例如,图3可以以在如图6中的机器可读存储介质604上的可运行指令的形式实施。
在操作302处,控制器在处理器运行SMM BIOS代码时监视预期功能。在操作302处,处理器向控制器发送信号,以指示处理器何时进入SMM BIOS模式并且因此运行SMM BIOS代码。响应于接收到此信号,控制器在SMM BIOS代码的运行期间监视预期功能。预期功能是由运行SMM BIOS代码的结果而发生的行为。照此,该行为可以在逐行遍历SMM BIOS代码时或在完成SMM BIOS代码时来观测。例如,开发人员可以将此特定行为创建为SMM BIOS代码的部分,因此创建SMM BIOS代码的运行的可观测性或透明度。监视此特定行为使得控制器能够监视在运行SMM BIOS代码时产生的功能。在一个实施方式中,控制器在SMM BIOS代码运行时监视预期功能之前确定处理器是否已完成引导信息的运行。在另一实施方式中,控制器监视以下中的至少一个:跟踪处理器多久运行SMM BIOS代码;处理器运行SMM BIOS代码所花费的时间量;监视特定寄存器的设置;以及跟踪由SMM BIOS代码的运行所生成的I/O循环的数量。在后面的图中详细讨论这些示例。在SMM BIOS代码的运行期间监视预期功能,控制器检测SMM BIOS代码的改变,如在操作304处。
在操作304处,控制器通过在SMM BIOS代码的运行期间观测预期功能来检测SMMBIOS代码的改变。该SMM BIOS代码的改变指示SMM BIOS代码已经被破坏,这意味着SMMBIOS代码可能被损毁和/或可能包括SMM BIOS代码的未授权修改。运行被破坏的代码可能导致BIOS代码的不合规操作。控制器在SMM BIOS代码的间接监视期间检测SMM BIOS代码的改变。在间接监视中,开发人员将特定功能编程在BIOS代码中。由于这些功能是根据SMMBIOS代码的运行预测的,所以这些特定功能是预期功能。控制器通过跟踪预期功能来预测这些预期功能。如果存在偏差或非预期功能,则这指示SMM BIOS代码的改变并且因此指示被破坏的SMM BIOS代码。在接下来的图中详细讨论此实施方式。
图4是可由控制器运行的用于确定处理器运行引导信息是否完成的示例性方法的流程图。如果引导信息的运行完成,则处理器继续进行以运行SMM BIOS代码,同时其向控制器发信号以监视预期功能。控制器监视预期功能以检测SMM BIOS代码的改变。控制器通过监视是否可能存在预期功能的偏差来检测SMM BIOS代码的改变。如果控制器检测到偏差,则控制器可以继续进行以传送偏差的警告。偏差指示SMM BIOS代码的改变,SMM BIOS代码的改变进一步指示SMM BIOS代码已经被破坏。针对偏差监视预期功能是对SMM代码的行为分析,使得功能可被观测,以确认功能完整性并且检测功能(并且因此SMM BIOS代码)是否发生改变。在讨论图4时,可以参考图1至图2中的部件以提供承接上下文的示例。例如,图1至图2中的处理器102运行引导信息和SMM BIOS代码。在另一示例中,图1至图2中的控制器110运行操作402至414,以检测是否存在SMM BIOS代码的改变。另外,尽管图4被描述为由控制器实施,但其可以在其他合适的部件上运行。例如,图4可以以在如图6中的机器可读存储介质604上的可运行指令的形式来实施。
在操作402处,控制器确定处理器是否已完成引导信息的运行。引导信息包括处理器从低上电状态恢复时运行的预运行信息。因此,引导信息初始化计算设备的引导序列,并且照此,引导序列指的是一旦处理器上电就向存储器中加载BIOS代码以供处理器运行的过程。以示例的方式,引导信息包括用于执行自测试、加载配置设置、加载软件和/或固件等的处理数据。以此方式,计算设备通过它的引导拉起自身。具体地,引导信息还被称为引导操作,该引导操作指的是向计算设备的存储器中加载BIOS代码以供处理器运行的过程。确定引导信息的运行是否完成表示:从运行引导信息到继续运行SMM BIOS代码,处理器处于持续的开机状态。如果控制器确定处理器还未完成引导信息的运行,则如在操作404处那样,控制器不继续监视由SMM BIOSD代码的运行引起的预期功能。如果控制器确定处理器已经完成引导信息的运行,则这指示处理器已经开机一持续的时间段,并且控制器可以继续进行至操作406。
在操作404处,当在操作402处确定处理器还未完成BIOS代码的引导信息的运行时,控制器不在操作406处在SMM BIOS代码运行期间监视预期功能。SMM BIOS代码是以高权限模式运行分离软件的操作模式。在此模式期间,处理器保持开机以运行SMM BIOS代码。如果控制器确定处理器正在运行引导信息,则这指示计算设备处于预运行模式,这表示处理器还未进入运行SMM BIOS的模式,因此使控制器不能监视作为运行SMM BIOS代码的结果的预期功能。
在操作406处,当确定处理器完成了引导信息的运行时,控制器在通过处理器运行SMM BIOS代码时监视预期功能。在引导信息的运行完成时,处理器向控制器发送完成信号。这向控制器发送了处理器正在继续运行SMM BIOS代码的信号。这转而又指示控制器开始监视预期功能。在执行SMM BIOS代码时监视预期功能表示:从运行引导信息到继续运行SMMBIOS代码,处理器保持上电。操作406涉及使用跟踪SMM BIOS代码的预期行为的机制。预期行为可由开发人员安置,以使得在运行SMM BIOS代码时发生特定功能。包括特定功能使得能够提供作为运行SMM BIOS代码的结果的行为,因此使特定功能可由控制器观测。因此,预期功能是在运行SMM BIOS代码时预测的行为和/或功能。照此,由于该功能被认为是根据由开发人员安置到SMM BIOS代码中的编程而预期或预测的。因此控制器监视此预期功能,以在操作410处检测是否可能存在此预期功能的偏差。以示例的方式,控制器监视此类预期功能包括但不限于:处理器多久运行SMM BIOS代码;处理器运行SMM BIOS代码所花费的时间量;监视特定寄存器的设置;以及跟踪由SMM BIOS代码的运行生成的I/O循环的数量。在接下来的图中详细描述此示例。操作406可以与图3中的操作302在功能上类似。
在操作408处,控制器响应于如在操作406处的监视预期功能而检测SMM BIOS代码的改变。在此实施方式中,控制器通过间接监视SMM BIOS代码来检测SMM BIOS代码的改变。间接检测SMM BIOS代码包括监视作为运行SMM BIOS代码的结果的预期功能、以及诸如在操作410处的检测是否可能存在此预期功能的偏差。操作408可以与图3中的操作304在功能上类似。
在操作410处,控制器确定是否存在预期功能的偏差。该偏差是控制器通过监视来自SMM BIOS代码的运行的预期功能而检测到的非预期功能。例如,假设预期功能包括向寄存器中的一个写入指定值,因此控制器进行检查以验证在那个寄存器中是否存在该指定值。如果不存在指定值或者如果该值是指定值之外的某些值,则这指示预期功能的偏差。如果控制器确定不存在预期功能的偏差,则控制器继续进行至操作414并且不传送警告或通知。如果控制器确定存在预期功能的偏差,则这指示存在产生该偏差的SMM BIOS代码的未授权改变。照此,控制器继续进行至416以传送偏差警告。
在操作412处,在检测不到预期功能的偏差时,控制器不传送警告。检测不到预期功能的偏差表示控制器未检测到SMM BIOS代码的改变,这表示SMM BIOS代码可能没被破坏。
在操作414处,控制器传送预期功能的偏差的警告。预期功能的偏差指示SMM BIOS代码的改变,因此进一步指示SMM BIOS代码已经被破坏。SMM BIOS代码的被破坏的情况表示SMM BIOS代码可能被损毁和/或可能包括SMM BIOS代码的未授权修改。
图5是可由控制器运行的用于在运行SMM BIOS代码期间监视预期功能的示例性方法的流程图。控制器通过监视以下功能中的至少一个来监视预期功能,该功能包括:监视计算设备的寄存器设置;跟踪处理器进入SMM BIOS模式以进行运行的次数;跟踪处理器运行SMM BIOS代码所花费的时间量;以及跟踪可在运行SMM BIOS代码时生成的I/O循环的数量。此外,尽管图5描述了以上提到的功能,但实施方式不应被限制,因为这是为了例示目的而做出的。例如,控制器还可以监视处理器处的指定时钟信号或者监视其他类型的可观测行为。
控制器监视这些功能中的至少一个以检测指示SMM BIOS代码已经被破坏的SMMBIOS代码的改变。控制器通过检测预期功能的偏差来检测SMM BIOS代码的改变。预期功能是在运行SMM BIOS代码时发生的预期行为。偏差是非预期的行为,在某种意义上,偏差是被认为是异常的并且指示计算设备的功能完整性可能存在风险的行为。照此,使控制器能够监视预期功能为控制器提供了这样的机制:对行为进行跟踪以观测可能作为运行SMM BIOS的结果而产生的异常性。在讨论图5时,可以参考图1至图2中的部件以提供承接上下文的示例。例如,图1至图2中的处理器102运行SMM BIOS代码,以使控制器在操作502处在SMM BIOS代码运行期间监视预期功能。在另一示例中,图1至图2中的控制器110运行操作502至516,以检测是否存在SMM BIOS代码的改变。另外,尽管图5被描述为由控制器实施,但其还可以在其他合适的部件上运行。例如,图5可以以在如图6中的机器可读存储介质604上的可运行指令的形式来实施。
在操作502处,控制器在处理器运行SMM BIOS代码时监视计算设备的预期功能。处理器向控制器传送指示处理器在进入SMM BIOS模式的过程中的信号。此信号指示控制器在运行SMM BIOS代码的过程期间监视预期功能。控制器可以使用指示处理器何时运行SMMBIOS代码的指南被编程,控制器通过监视预期功能作出反应。预期功能是在运行SMM BIOS代码期间发生的行为。照此,开发人员可以创建可由控制器观测的行为。监视此特定行为使得控制器能够作为观看者来操作以监视预期功能。在操作502处,控制器可以操作以观测在操作504至510处的功能中的至少一个。在此实施方式中,可以使这些功能中的至少一个可由开发人员进行观测。以此方式,这些功能可以由控制器观测,使得控制器能够从这些功能中预期特定行为。操作502可以与图3和图4中的操作302和406在功能上类似。
在操作504处,控制器可以监视计算设备内部的寄存器中的一个寄存器的设置。该寄存器可以包括运行SMM BIOS代码的处理器的寄存器或其他类型的硬件寄存器。这些寄存器提供值的占位符,其可以包括存储关于处理器的特定条件的信息或者存储其他信息。控制器可以跟踪在寄存器处的值,以在运行SMM BIOS代码的特定部分时确定那个值是否应该是预期值。如果该值不是预期值,则这可以指示预期功能的偏差。例如,假设在运行SMMBIOS代码时预期处理器寄存器存储位“0”,但处理器寄存器存储位“1”。这指示预期功能的偏差,该偏差指示SMM BIOS代码的改变。
在操作506处,控制器跟踪处理器进入SMM BIOS模式以运行SMM BIOS代码的次数。照此,控制器确定处理器是否已经达到运行SMM BIOS代码的阈值次数。在此实施方式中,如果处理器达到此进入SMM BIOS模式的阈值次数或超出该阈值次数,则这向控制器传送偏差信号。
在操作508处,控制器跟踪处理器运行SMM BIOS代码的时间量。控制器使用指定的时间量作为阈值,以指示处理器运行SMM BIOS代码所花费的时间量是否异常。如果处理器花费至少指定的时间量或更多时间量,则这向控制器指示异常性或预期功能的偏差。相应地,此偏差指示SMM BIOS代码的改变。
在操作510处,控制器跟踪由运行SMM BIOS代码的处理器生成的I/O循环的数量。I/O循环的数量可以包括在运行SMM BIOS代码时发生的至控制器的消息的数量。因此,向控制器发消息使得控制器能够跟踪在运行SMM BIOS代码时生成的I/O循环的数量。因此,控制器可以跟踪每次处理器运行SMM BIOS代码时应当生成的I/O循环的数量。因此,如果未达到或超过此数量,则这指示运行SMM BIOS代码的功能的偏差或异常性。
在操作512处,控制器根据如在操作502处的在运行SMM BIOS代码期间监视预期功能来检测SMM BIOS代码的改变。在一个实施方式中,检测SMM BIOS代码的改变包括间接监视SMM BIOS代码。在此实施方式中,控制器在操作514处检测预期功能的偏差。间接监视包括监视预期功能以确定SMM BIOS代码是否已经保存计算设备的功能完整性。操作512可以与图4中的操作408在功能上类似。
在操作514处,如果控制器检测到预期功能的偏差,则此偏差指示存在SMM BIOS代码的改变。该偏差是在处理器运行SMM BIOS代码时发生的非预期功能。开发人员以这样的方式开发SMM BIOS代码中的代码:当处理器运行此代码时,存在在运行SMM BIOS代码时发生的特定行为。偏差可包括那些特定行为的缺失和/或改变。通过检测预期功能的偏差来检测改变指示SMM BIOS代码可能被破坏。相应地,在操作516处,控制器可以传送此改变的通知或警告。操作514可以与图4中的操作410在功能上类似。
在操作516处,当在操作512处检测到SMM BIOS代码的改变时,控制器可以继续进行至传送SMM BIOS代码的改变的警告。操作516可以与图4中的操作414在功能上类似。
图6是计算设备600的框图,计算设备600具有用于运行机器可读存储介质604中的指令606至614的控制器602。具体地,具有控制器602的计算设备600用于运行指令606至614,以在SMM BIOS代码的运行期间监视计算设备600的预期功能。控制器602用于在SMMBIOS代码的运行期间监视预期功能,以检测SMM BIOS代码的改变。如果控制器602检测到SMM BIOS代码的改变,则由于该改变指示SMM BIOS代码已经被破坏,所以控制器602还可以运行指令606至614以传送警告。
尽管计算设备600包括控制器602和机器可读存储介质604,但其还可以包括对于本领域技术人员而言合适的其他部件。例如,计算设备600可以包括如图1中的用于运行SMMBIOS代码的处理器102。计算设备600是具有能够运行指令606至614的控制器602的电子设备,并且照此,计算设备600的这种实施例包括能够运行指令606至614的计算设备、移动设备、客户端设备、个人计算机、台式计算机、膝上型计算机、平板、视频游戏操控台、或其他类型的电子设备。指令606至614可被实施为方法、功能、操作、和被实施为存储在存储介质604上的机器可读指令的其他过程,该存储介质604可以是非暂时性的,诸如硬件存储设备(例如,随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程ROM、电可擦除ROM、硬盘和闪存)。
控制器602可以提取、解码和运行指令606至614,以通过在运行SMM BIOS代码时监视预期功能来检测SMM BIOS代码是否已经被破坏。在一个实施方式中,控制器602运行指令606至608,以通过监视预期功能来检测SMM BIOS代码的改变,并且检测是否存在此预期功能的偏差。在另一实施方式中,在运行指令606至612时,控制器602运行指令614,以通过在运行SMM BIOS代码期间监视预期功能并检测预期功能的偏差来检测SMM BIOS代码的改变。具体地,控制器602运行指令606至608以进行以下操作:在运行SMM BIOS时监视计算设备600的预期功能;以及通过监视预期功能来检测SMM BIOS代码的改变。控制器602继续进行至通过运行指令610至612来检测SMM BIOS的改变,以进行以下操作:检测预期功能的偏差;以及在完成SMM BIOS代码的运行之前检测改变。控制器602继续进行至在检测到改变时,传送SMM BIOS代码已经被破坏的警告,处理器602运行指令614以进行以下操作:传送指示SMMBIOS代码已经被破坏的SMM BIOS代码的改变的警告。
机器可读存储介质604包括供控制器602提取、解码和运行的指令606至614。在另一实施例中,机器可读存储介质604可以是包含或存储可运行指令的电子设备、磁性设备、光学设备、存储器设备、贮存设备、快闪驱动设备、或其他实体设备。因此,机器可读存储介质604可以包括例如随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、贮存驱动、存储器高速缓存、网络贮存器、压缩盘只读存储器(CDROM)等。照此,机器可读存储介质604可包括可独立使用和/或结合控制器602使用以提取、解码、和/或运行机器可读存储介质604的指令的应用和/或固件。应用和/或固件可存储在机器可读存储介质604上,和/或存储在计算设备600的另一位置上。
因此,本文公开的示例提供一种通过在SMM BIOS代码的运行期间监视预期功能来检测SMM BIOS代码是否已经被破坏的机制。

Claims (13)

1.一种用于检测系统管理模式SMM BIOS代码的改变的系统,包括:
处理器,用于运行所述SMM BIOS代码;
控制器,用于:
在运行所述SMM BIOS代码时监视所述SMM BIOS代码的预期功能;并且
基于监视所述SMM BIOS代码的预期功能来检测所述SMM BIOS代码是否已发生改变,所述改变指示所述SMM BIOS代码被破坏,
其中所述预期功能是在运行所述SMM BIOS代码时预期的特定行为,并且
其中所述控制器不访问与所述处理器相关联的用于保存所述SMM BIOS代码以供所述处理器运行的存储器。
2.根据权利要求1所述的系统,其中所述处理器用于在操作系统的运行时期间运行所述SMM BIOS代码。
3.根据权利要求1所述的系统,其中:
所述处理器用于在运行所述SMM BIOS代码之前完成所述BIOS代码的引导信息的运行。
4.根据权利要求1所述的系统,其中检测所述SMM BIOS代码的改变,所述控制器用于:
检测所述SMM BIOS代码的所述预期功能的偏差,所述预期功能的偏差指示所述SMMBIOS代码的改变。
5.一种用于检测系统管理模式SMM BIOS代码的改变的方法,包括:
通过控制器在由处理器运行所述SMM BIOS代码时监视预期功能;并且
通过所述控制器基于监视所述预期功能来检测所述SMM BIOS代码是否已发生改变,所述改变的检测在完成所述SMM BIOS代码的运行之前发生,所述改变指示所述SMM BIOS代码被破坏,
其中所述预期功能是在运行所述SMM BIOS代码时预期的特定行为,并且
其中所述控制器不访问与所述处理器相关联的用于保存所述SMM BIOS代码以供所述处理器运行的存储器。
6.根据权利要求5所述的方法,包括:
在运行期间监视所述SMM BIOS代码之前完成所述SMM BIOS代码的引导信息的运行。
7.根据权利要求5所述的方法,其中基于监视所述预期功能来检测所述SMM BIOS代码是否已发生改变包括:
检测所述SMM BIOS代码的所述预期功能的偏差,所述预期功能的偏差指示所述SMMBIOS代码的改变。
8.根据权利要求5所述的方法,其中在运行所述SMM BIOS代码时监视所述预期功能包括监视以下中的至少一个:监视寄存器的设置;跟踪所述处理器运行所述SMM BIOS代码的次数;跟踪所述处理器运行所述SMM BIOS代码的时间量;以及跟踪由所述SMM BIOS代码生成的I/O循环的数量。
9.根据权利要求5所述的方法,包括:
传送所述SMM BIOS代码的改变的警告,所述改变指示所述SMM BIOS代码已经被破坏。
10.一种包括指令的非暂时性计算机可读存储介质,所述指令在由控制器运行时使计算设备用以:
通过控制器在由处理器运行系统管理模式SMM BIOS代码时监视预期功能;并且
通过所述控制器基于监视所述预期功能来检测所述SMM BIOS代码是否已发生改变,所述改变指示所述SMM BIOS代码被破坏,
其中所述预期功能是在运行所述SMM BIOS代码时预期的特定行为,并且
其中所述控制器不访问与所述处理器相关联的用于保存所述SMM BIOS代码以供所述处理器运行的存储器。
11.根据权利要求10所述的包括指令的非暂时性计算机可读存储介质,其中所述基于监视所述预期功能来检测所述SMM BIOS代码是否已发生改变包括在由所述控制器运行时使所述计算设备进行以下操作的指令:
检测所述SMM BIOS代码的所述预期功能的偏差,所述预期功能的偏差指示所述SMMBIOS代码的改变。
12.根据权利要求10所述的包括指令的非暂时性计算机可读存储介质,其中所述基于监视所述预期功能来检测所述SMM BIOS代码是否已发生改变包括在由所述控制器运行时使所述计算设备进行以下操作的指令:
在完成所述SMM BIOS代码的运行之前检测所述改变。
13.根据权利要求10所述的包括指令的非暂时性计算机可读存储介质,包括在由所述控制器运行时使所述计算设备进行以下操作的指令:
基于检测到所述SMM BIOS代码的改变,传送指示所述SMM BIOS代码已经被破坏的改变的警告。
CN201480081769.9A 2014-09-23 2014-09-23 检测系统管理模式bios代码的改变 Active CN106662994B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2014/057026 WO2016048288A1 (en) 2014-09-23 2014-09-23 Detecting a change to system management mode bios code

Publications (2)

Publication Number Publication Date
CN106662994A CN106662994A (zh) 2017-05-10
CN106662994B true CN106662994B (zh) 2020-01-03

Family

ID=55581615

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480081769.9A Active CN106662994B (zh) 2014-09-23 2014-09-23 检测系统管理模式bios代码的改变

Country Status (4)

Country Link
US (1) US10387651B2 (zh)
EP (1) EP3198399B1 (zh)
CN (1) CN106662994B (zh)
WO (1) WO2016048288A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108139901B (zh) * 2015-09-30 2022-04-26 惠普发展公司,有限责任合伙企业 使用外部设备的运行时间验证
US9875113B2 (en) * 2015-12-09 2018-01-23 Quanta Computer Inc. System and method for managing BIOS setting configurations
EP3413532A1 (en) * 2017-06-07 2018-12-12 Hewlett-Packard Development Company, L.P. Monitoring control-flow integrity
US10783138B2 (en) * 2017-10-23 2020-09-22 Google Llc Verifying structured data
US20210209205A1 (en) * 2017-10-30 2021-07-08 Hewlett-Packard Development Company, L.P. Regulating access
EP3570197A1 (en) * 2018-05-16 2019-11-20 Gemalto Sa Electronic system and method for preventing malicious actions on a processing system of the electronic system
US11221841B2 (en) 2018-08-03 2022-01-11 Hewlett-Packard Development Company, L.P. BIOS personalities
TWI750442B (zh) 2019-01-15 2021-12-21 緯穎科技服務股份有限公司 韌體安全防護方法與使用此方法的電子系統
CN110096888B (zh) * 2019-04-18 2021-02-09 苏州浪潮智能科技有限公司 一种加快验证及分析smm安全隐患的方法及系统
US11948008B2 (en) 2019-04-30 2024-04-02 Hewlett-Packard Development Company, L.P. System management memory coherency detection
US11151256B2 (en) * 2019-05-13 2021-10-19 Dell Products, L.P. Detecting security threats by monitoring chains of configuration changes made to basic input/output system (BIOS) or unified extensible firmware interface (UEFI) attributes

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079003A (zh) * 2006-05-23 2007-11-28 北京金元龙脉信息科技有限公司 对计算机bios固件进行安全风险检测的系统和方法
CN101140535A (zh) * 2006-09-08 2008-03-12 鸿富锦精密工业(深圳)有限公司 防止bios芯片数据丢失的方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080163212A1 (en) 2006-12-29 2008-07-03 Zimmer Vincent J Paralleled management mode integrity checks
US7895472B2 (en) * 2008-05-21 2011-02-22 Dell Products, Lp System and method of managing BIOS test routnes
US7984286B2 (en) 2008-06-25 2011-07-19 Intel Corporation Apparatus and method for secure boot environment
US8086838B2 (en) 2008-08-13 2011-12-27 Dell Products L.P. Methods and systems for providing manufacturing mode detection and functionality in a UEFI BIOS
US8832454B2 (en) * 2008-12-30 2014-09-09 Intel Corporation Apparatus and method for runtime integrity verification
US8533445B2 (en) 2009-04-21 2013-09-10 Hewlett-Packard Development Company, L.P. Disabling a feature that prevents access to persistent secondary storage
US8275982B2 (en) * 2009-10-19 2012-09-25 Dell Products L.P. System and method for a managed BIOS
US8296579B2 (en) 2009-11-06 2012-10-23 Hewlett-Packard Development Company, L.P. System and method for updating a basic input/output system (BIOS)
US20120297177A1 (en) 2010-11-15 2012-11-22 Ghosh Anup K Hardware Assisted Operating System Switch
US8819225B2 (en) 2010-11-15 2014-08-26 George Mason Research Foundation, Inc. Hardware-assisted integrity monitor
WO2013101083A1 (en) * 2011-12-29 2013-07-04 Intel Corporation An apparatus for hardware accelerated runtime integrity measurement
US8832435B2 (en) * 2012-12-17 2014-09-09 International Business Machines Corporation Providing a real-time indication of platform trust
US9842209B2 (en) * 2015-05-08 2017-12-12 Mcafee, Llc Hardened event counters for anomaly detection
US9998483B2 (en) * 2015-12-22 2018-06-12 Mcafee, Llc Service assurance and security of computing systems using fingerprinting

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079003A (zh) * 2006-05-23 2007-11-28 北京金元龙脉信息科技有限公司 对计算机bios固件进行安全风险检测的系统和方法
CN101140535A (zh) * 2006-09-08 2008-03-12 鸿富锦精密工业(深圳)有限公司 防止bios芯片数据丢失的方法

Also Published As

Publication number Publication date
CN106662994A (zh) 2017-05-10
EP3198399A4 (en) 2018-05-30
US10387651B2 (en) 2019-08-20
WO2016048288A1 (en) 2016-03-31
US20170262352A1 (en) 2017-09-14
EP3198399A1 (en) 2017-08-02
EP3198399B1 (en) 2019-04-03

Similar Documents

Publication Publication Date Title
CN106662994B (zh) 检测系统管理模式bios代码的改变
TWI530790B (zh) 系統啓動碼恢復方法、運算系統、及供於系統中使用之控制器
TWI539324B (zh) 驗證控制器碼及系統啓動碼之技術
CN107122321B (zh) 硬件修复方法、硬件修复系统以及计算机可读取存储装置
US9734339B2 (en) Retrieving system boot code from a non-volatile memory
KR102183852B1 (ko) 전자 장치의 무결성 검증을 위한 방법, 저장 매체 및 전자 장치
US20120110378A1 (en) Firmware recovery system and method of baseboard management controller of computing device
US10671416B2 (en) Layered virtual machine integrity monitoring
US20150005949A1 (en) Multiple level computer system temperature management
US8510501B2 (en) Write-protection system and method thereof
US8892860B2 (en) Clearing secure system resources in a computing device
US11256589B2 (en) Detecting a change to system management mode bios code
US10776214B1 (en) System protecting data stored on NVDIMM devices after BIOS update
RU2538286C9 (ru) Способ запуска гипервизора в компьютерной системе на ранней стадии загрузки компьютера
EP2691853B1 (en) Supervisor system resuming control
RU2537814C9 (ru) Способ запуска гипервизора в компьютерной системе на ранней стадии загрузки компьютера
US20230273670A1 (en) Operational change control action
JP5884801B2 (ja) パス切替装置、パス切替方法及びパス切替プログラム
CN111356965A (zh) 睡眠状态检测
US9785448B2 (en) System suspending method, system resuming method and computer system using the same

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant