平码五不中公式规律
  • / 17
  • 下载费用:30 金币  

检测系统管理模式BIOS代码的改变.pdf

关 键 ?#21097;?/dt>
检测 系统 管理模式 BIOS 代码 改变
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201480081769.9

申请日:

2014.09.23

公开号:

CN106662994A

公开日:

2017.05.10

当前法律状态:

实审

?#34892;?#24615;:

审中

法?#19978;?#24773;: 实质审查的生效IPC(主分类):G06F 9/24申请日:20140923|||公开
IPC分类号: G06F9/24; G06F11/30 主分类号: G06F9/24
申请人: 惠普发展公司 有限责任合伙企业
发明人: 杰弗里·凯文·耶安松尼; 波利斯·巴拉切夫; 瓦柳丁·阿里; 克里斯·I·道尔顿; 大卫·普拉坎
地址: 美国德克萨斯州
优?#28909;ǎ?/td>
专利代理机构: ?#26412;?#24503;琦知识产权代理有限公司 11018 代理人: 严芬;康泉
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201480081769.9

授权公告号:

|||

法律状态公告日:

2017.06.06|||2017.05.10

法律状态类型:

实质审查的生效|||公开

摘要

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

权利要求书

1.一种系统,包括:
处理器,用于运行系统管理模式(SMM)BIOS代码;
控?#30772;鰨?#29992;于:
在运行所述SMM BIOS代码时监视所述SMM BIOS代码的预期功能;并且
基于监视所述SMM BIOS代码的预期功能来检测所述SMM BIOS代码是否已发生改变,所
述改变指示所述SMM BIOS代码被破坏。
2.根据权利要求1所述的系统,包括:
与所述处理器相关联的用于保存所述SMM BIOS代码以供所述处理器运行的存储器;并

其中所述控?#30772;?#19981;访?#35270;?#25152;述处理器相关联的所述存储器。
3.根据权利要求1所述的系统,其中所述处理器用于在操作系统的运行时期间运行所
述SMM BIOS代码。
4.根据权利要求1所述的系统,其中:
所述处理器用于在运行所述SMM BIOS代码之前完成所述BIOS代码的引导信息的运行。
5.根据权利要求1所述的系统,其中所述预期功能是在运行所述SMM BIOS代码时预期
的特定行为,并且其中检测所述SMM BIOS代码的改变,所述控?#30772;?#29992;于:
检测所述SMM BIOS代码的所述预期功能的偏差,所述预期功能的偏差指示所述SMM
BIOS代码的改变。
6.一种方法,包括:
在运行系统管理模式(SMM)BIOS代码时监视预期功能;并且
基于监视所述预期功能来检测所述SMM BIOS代码是否已发生改变,所述改变的检测在
完成所述SMM BIOS代码的运行之前发生,所述改变指示所述SMM BIOS代码被破坏。
7.根据权利要求6所述的方法,包括:
在运行期间监视所述SMM代码之前完成所述BIOS代码的引导信息的运行。
8.根据权利要求6所述的方法,其中所述预期功能是在运行所述SMM BIOS代码时预期
的特定行为,并且其中基于监视所述预期功能来检测所述SMM BIOS代码是否已发生改变包
括:
检测所述SMM BIOS代码的所述预期功能的偏差,所述预期功能的偏差指示所述SMM
BIOS代码的改变。
9.根据权利要求6所述的方法,其中在运行所述SMM BIOS代码时监视所述预期功能包
括监视以下中的至少一个:监视寄存器的设置;跟踪所述处理器运行所述SMM BIOS代码的
次数;跟踪所述处理器运行所述SMM BIOS代码的时间量;以及跟踪由所述SMM BIOS代码生
成的I/O循环的数量。
10.根据权利要求6所述的方法,包括:
传送所述SMM BIOS代码的改变的警告,所述改变指示所述SMM BIOS代码已经被破坏。
11.一种包括指令的非暂时性计算机可读存储介?#21097;?#25152;述指令在由控?#30772;?#36816;行时使计
算设备用以:
在运行系统管理模式(SMM)BIOS代码时监视预期功能;并且
基于监视所述预期功能来检测所述SMM BIOS代码是否已发生改变,所述改变指示所述
SMM BIOS代码被破坏。
12.根据权利要求11所述的包括指令的非暂时性计算机可读存储介?#21097;?#20854;中所述基于
监视所述预期功能来检测所述SMM BIOS代码是否已发生改变包括在由所述控?#30772;?#36816;行时
使所述计算设备进行以下操作的指令:
检测所述SMM BIOS代码的所述预期功能的偏差,所述预期功能的偏差指示所述SMM
BIOS代码的改变。
13.根据权利要求11所述的包括指令的非暂时性计算机可读存储介?#21097;?#20854;中所述预期
功能是由所述SMM BIOS代码的运行而导致的能由所述控?#30772;?#35266;测的特定行为。
14.根据权利要求11所述的包括指令的非暂时性计算机可读存储介?#21097;?#20854;中所述基于
监视所述预期功能来检测所述SMM BIOS代码是否已发生改变包括在由所述控?#30772;?#36816;行时
使所述计算设备进行以下操作的指令:
在完成所述SMM BIOS代码的运行之前检测所述改变。
15.根据权利要求11所述的包括指令的非暂时性计算机可读存储介?#21097;?#21253;括在由所述
控?#30772;?#36816;行时使所述计算设备进行以下操作的指令:
基于检测到所述SMM BIOS代码的改变,传送指示所述SMM BIOS代码已经被破坏的改变
的警告。

说明书

检测系统管理模式BIOS代码的改变

背景技术

计算系统可以包括诸如执行计算设备的各?#21046;?#21160;功能的基本输入/输出系统
(BIOS)之类的代码。BIOS代码可以初始化并测试计算设备的硬件,照此BIOS代码可?#28304;?#35745;
算设备的存储器加载引导代码和/或操作系统。

附图说明

在附图中,相似编号指示相似部件或块。以下具体实施方式参考附图,其中:

图1是示例性系统的框图,该系统包括运行来?#28304;?#20648;器的SMM BIOS代码的处理器、
以及在运行SMM BIOS代码时监视预期功能以检测指示SMM BIOS代码已经被破坏的SMM
BIOS代码改变的控?#30772;鰨?br />

图2是示例性系统的框图,该系统包括在运行SMM BIOS代码时控?#30772;?#30417;视系统的
预期功能之前完成引导数据的运行的处理器;

图3是可由控?#30772;?#36816;行的示例性方法的流程图,该控?#30772;?#22312;SMM BIOS代码的运行
期间监视计算系统的预期功能以检测SMM BIOS代码的改变,该改变指示SMM BIOS代码被破
坏;

图4是可由控?#30772;?#36816;行的示例性方法的流程图,该控?#30772;?#30830;定引导信息的运行是
否完成,并且如果是,该控?#30772;?#22312;运行SMM BIOS代码时监视预期功能,该控?#30772;?#36890;过监视预
期功能来检测SMM BIOS代码的改变;

图5是可由控?#30772;?#36816;行的示例性方法的流程图,该控?#30772;?#22312;运行SMM BIOS代码时
监视至少一个预期功能,该控?#30772;?#26816;测SMM BIOS代码的改变以检测是否可能存在预期功能
的偏差;以及

图6是具有处理器的示例性计算设备的框图,该处理器运行机器可读存储介质中
的指令,以用于在SMM BIOS代码的运行期间监视预期功能并检测SMM BIOS代码是否已改
变。

具体实施方式

BIOS代码可被运行以配置和测试计算设备中的硬件。照此,BIOS代码可以包括系
统管理模式(SMM)BIOS代码。SMM BIOS代码以最高权限等级运行,所以?#22351;㏒MM BIOS代码被
破坏,就可能不能检测SMM BIOS代码的漏洞。因此,这可能导致计算设备运行被破坏的SMM
BIOS代码,从而可能进一步导致BIOS代码的不合规操作。当BIOS代码从低?#31995;?#29366;态?#25351;?#32780;
开始运行时,诸如在BIOS代码的预运行期间,其他机制提供保护?#22351;?#26159;这些机制可能在运行
期间不提供保护以防攻击,该攻击将SMM BIOS代码的修改作为目标。进一步,这些机制在计
算设备处于低?#31995;?#29366;态时进行保护以防攻击,而在计算设备保持在持续开机状态一延长时
段时可能不提供保护。

为了解决这些问题,本文公开的示例提供一种在通过处理器运行SMM BIOS代码时
监视预期功能的控?#30772;鰲?#39044;期功能是由于SMM BIOS代码的运行而可能发生的计算设?#25913;?#30340;
行为或功能。以这种方式,预期功能是可以在运行SMM BIOS代码时预测的?#20999;?#34892;为和/或功
能。例如,开发人员可以包括此功能或行为以作为SMM BIOS代码的一部分,因而创建SMM
BIOS代码的运行的?#35813;?#24230;。进一步,监视此预期功能使得控?#30772;?#33021;够监视可在运行SMM
BIOS代码时产生的功能。

此外,在运行期间监视SMM BIOS代码的预期功能使得控?#30772;?#33021;够检测SMM BIOS代
码是否已发生改变。检测SMM BIOS代码的改变使能够识别SMM BIOS代码是否已被破坏。识
别SMM BIOS代码是否已被破坏指示SMM BIOS代码可能被损毁和/或可能包括SMM BIOS代码
的未授权修改。运行被破坏的SMM BIOS代码可能出现额外的易损性和/或导致BIOS代码的
不合规操作。此外,检测SMM BIOS代码是否被破坏可用于针对安全性更重要的功能(诸如监
视管理程序并提供其他更重要的服务)增强SMM BIOS代码。

在本文?#33268;?#30340;另一示例中,控?#30772;?#36890;过检测与预期功能的偏差来检测SMM BIOS代
码的改变。该偏差是根据SMM BIOS代码的运行无法预期的功能。照此,该偏差可包括基于
SMM BIOS代码的运行而预测的?#20999;?#21151;能的缺失和/或改变。例如,假设预期功能包括向寄存
器中的一个写入指定值,因此控?#30772;?#36827;行检查以验证在那个寄存器中是否存在该指定值。
如果不存在指定值或者如果值为指定值之外的一些值,则这指示预期功能的偏差。根据SMM
BIOS代码的运行检测功能和/或行为的偏差使得控?#30772;?#33021;够检测SMM BIOS是否被破坏。

因此,本文公开的示例提供一种通过在SMM BIOS代码的运行期间监视预期功能来
检测SMM BIOS代码是否已经被破坏的机制。

现在参照附图,图1是示例性计算设备的框图,该计算设备包括可以访问存储器
106以在模块104处运行SMM BIOS代码的处理器102。当在模块104处运行SMM BIOS代码108
时,控?#30772;?10监视根据SMM BIOS代码108的运行而发生的预期功能。控?#30772;?10在模块112
处监视预期功能以在模块114处检测SMM BIOS代码108的改变。存储器106保存包括用于由
处理器102运行的SMM BIOS代码108的BIOS代码116。在模块114处通过检测SMM BIOS代码
108的改变,控?#30772;?10检测SMM BIOS代码108是否已经被破坏。SMM BIOS代码108的改变指
示SMM BIOS代码108已经被破坏,这表示SMM BIOS代码108可能被损毁和/或可能包括SMM
BIOS代码108的未授权修改。因此,由处理器102运行被破坏的SMM BIOS代码可能导致BIOS
代码116的不合规操作并且可能出现计算设备的额外的易损性。

图1将处理器102、控?#30772;?10和存储器106例示为计算设?#25913;?#37096;的部件。计算设备
是可以被编程以实施一系列操作和/或功能的电子设备。照此,计算设备的实施方式包括目
标设备、移动设备、个人计算机、台式计算器、膝上型电脑、平板电脑、便携式设备、智能手
机、可穿戴计算设备、游戏设备、智能电视、零售销售点设备、或者包括处理器102、控?#30772;?br />110和存储器106的其他类型的电子设备。

处理器102是计算设?#25913;?#37096;的在模块104处运行SMM BIOS代码的硬件部件。尽管图
1将处理器102例示为在模块104处运行SMM BIOS代码,但实施方式不应被限制,因为这是为
例示目的而做出的。例如,处理器102可以在SMM BIOS代码108的运行之前从存储器106取回
BIOS代码116并运行BIOS代码116的引导信息。在此示例中,引导信息包括处理器102从低上
电状态进行?#31995;?#30340;预运行信息。因此,当从运行引导信息过渡到在模块104处运行SMM BIOS
代码108时,处理器102处于?#31995;?#29366;态。以示例的方式,处理器102的实施方式可以包括能够
从存储器106取回SMM BIOS代码108并且在模块104处运行SMM BIOS代码的处理单元、主机
处理器、微处理器、半导体、集成电路、或其他类型的电子设备。

在模块104处,处理器102运行来?#28304;?#20648;器106的SMM BIOS代码108。相应地,模块
104包括处理器102从存储器106取回SMM BIOS代码108以供运行。当在模块104处运行SMM
BIOS代码时,处理器102可以向控?#30772;?10传送信号。该信号向控?#30772;?10指示监视由SMM
BIOS代码108的运行所产生的预期功能。因此,如果处理器102还未开始运行SMM BIOS代码
108,则控?#30772;?#23558;不能监视在模块104处产生的预期功能。模块104可以包括可由处理器102
运行以运行SMM BIOS代码108的指令、指令集、过程、操作、逻辑、技术、功能、固件、和/或软
件。

存储器106是计算设?#25913;?#30340;保存BIOS代码116并且照此可被处理器102访问的存储
区域。在另一实施方式中,存储器106可被处理器102访?#21097;?#20294;不能被控?#30772;?10访问。处理器
102访问存储器106来取回包括SMM BIOS代码108的BIOS代码116以供运行。尽管图1将存储
器106例示为从处理器102分离的部件,但这是为了例示目的而做出?#27169;?#22240;为存储器106可作
为处理器102的部分而被包括。以示例的方式,存储器106的实施方式包括只读存储器、闪
存、铁电存储器、铁电RAM、磁性贮存存储器、纳米驱动、贮存驱动、存储器部件、或用于保存
BIOS代码116和SMM BIOS代码108的此类存储器部件的组合。

BIOS代码116是作为操作系统(未示出)的一致性机制用于初始化并测试硬件部件
的接口,以与键盘、显示器、以及与计算设备相关联的其他设备接合。BIOS代码116被保存在
存储器106中,并且在运行时可?#28304;?#23384;储器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的引导信息的运行完成时发生。在后面的图中详细?#33268;?#27492;实施方式。

控?#30772;?10是能够在处理器102于模块104处运行SMM BIOS代码108时监视预期功
能的硬件部件。在监视预期功能时,控?#30772;?10检测SMM BIOS代码108是否可能已经历可破
坏SMM BIOS代码108的改变。以示例的方式,控?#30772;?10的实施方式可以包括能够监视由SMM
BIOS代码108的运行产生的预期功能以检测SMM BIOS代码108的改变的?#24230;?#24335;控?#30772;鰲?#24494;控
?#30772;鰲?#21322;导体、电子设备、微芯片、芯片集、或其他类型的硬件部件。

在模块112至114处,控?#30772;?10在通过处理器102运行SMM BIOS代码108时监视预
期功能。当在处理器102运行SMM BIOS代码时监视预期功能时,控?#30772;?10检测SMM BIOS代
码是否已经历改变。检测到SMM BIOS代码108的改变表明SMM BIOS代码108可能被破坏,这
表示SMM BIOS代码108可能被损毁和/或可能包括未授权的修改。在一实施方式中,检测SMM
BIOS代码108的改变可以包括检测预期功能的偏差。该偏差是在处理器102运行SMM BIOS代
码108时发生的非预期功能。例如,开发人?#24065;?#22914;下这种方式生成SMM BIOS代码108:当处理
器102运行此代码108时,在运行SMM BIOS代码108时发生特定行为。偏差可包括?#20999;?#29305;定行
为的缺失和/或改变。这创建了SMM BIOS代码108的运行的?#35813;?#24230;。检测到偏差指示SMM
BIOS代码108的改变,因?#31169;?#19968;步指示被破坏的SMM BIOS代码108。在后面的图中详细?#33268;?br />此实施方式。模块112至114可以包括可由控?#30772;?10运行的用于在处理器102运行SMM BIOS
代码108时监视预期功能的指令、指令集、过程、操作、逻辑、技术、功能、固件和/或软件。

图2是示例性计算设备的框图,该计算设备包括在模块104处运行SMM BIOS代码
108之前在模块220处完成对来?#28304;?#20648;器106的引导数据218的运行的处理器102。处理器102
向控?#30772;?10传送表示在模块220处完成引导信息的信号。来?#28304;?#29702;器102的信号向控?#30772;?br />110指示处理器102正进入SMM BIOS模式,以在模块104处运行SMM BIOS代码108。计算设备
包括控?#30772;?10,控?#30772;?10在模块112处监视SMM BIOS代码108的预期功能。当处理器102在
模块104处运行SMM BIOS代码108时,控?#30772;?10在模块112处监视预期功能。在模块112处监
视预期功能使得控?#30772;?10能够在模块114处检测SMM BIOS代码108的改变,预期功能由在
模块104处运行SMM BIOS代码108产生。检测到这种改变指示SMM BIOS代码108可能被破坏,
这表示SMM BIOS代码108可能被损毁和/或可能包括未授权的修改。运行被破坏的BIOS代码
可能导致BIOS代码116的不合规操作并且可能出现计算设备的额外的易损性。

引导数据218被认为是从存储器106获取的BIOS代码116的部分。在运行引导数据
218时,处理器102从诸如休眠或睡眠等的低?#31995;?#29366;态过渡到诸如开机状态的较高?#31995;?#29366;
态。在此过渡期间,处理器102可?#36816;?#37266;并过渡到操作状态。引导数据218包括处理器102从
低?#31995;?#29366;态?#25351;?#26102;运行的预运行信息。因此,引导数据218初始化计算设备的引导序列,并
且以示例的方式,该引导序列可以包括用于执行自测试、加载配置设置、加载软件和/或固
件等的处理数据。当从执行引导数据218过渡到运行SMM BIOS代码108时,处理器102保持在
持续的?#31995;?#29366;态。这指示处理器102已经开机了一持续的时间段。如果控?#30772;?10确定处理
器102还未在模块220处完成引导数据218的运行,则这表示处理器102还未进入SMM BIOS模
式来运行SMM BIOS代码108。因此,控?#30772;?10将不能够在模块112处监视预期功能。

在模块220处,处理器102完成了引导数据218的运行,因此使得处理器102能够继
续进行以运行来?#28304;?#20648;器106的SMM BIOS代码108。当在模块220处完成引导数据的运行时,
处理器102可以发送信号中断,因此向控?#30772;?10指示在模块112处监视预期功能。模块220
可以包括可由控?#30772;?10运行以完成引导数据218的运行的指令、指令集、过程、操作、逻辑、
技术、功能、固件和/或软件。

图3是可由控?#30772;?#36816;行的用于在处理器运行SMM BIOS代码时监视预期功能的示例
性方法的流程图。控?#30772;?#30417;视可以由SMM BIOS代码的运行产生的预期功能,以检测SMM
BIOS代码的改变。该改变指示SMM BIOS代码可能已经被破坏,并且照此可能已经经历指示
SMM BIOS代码可能已遭受攻击和/或损毁的未授权修改。在?#33268;?#22270;3时可以参考图1至图2中
的部件以提供承接上下文的示例。例如,图1至图2中的处理器102运行SMM BIOS代码以产生
预期功能。在另一示例中,图1至图2中的控?#30772;?10运行操作302至304,来在运行SMM BIOS
代码时监视预期功能,以用于检测是否存在SMM BIOS代码的改变。进一步,尽管图3被描述
为由控?#30772;?#23454;施,但其可以在其他合适的部件上运行。例如,图3可以以在如图6中的机器可
读存储介质604?#31995;?#21487;运行指令的形式实施。

在操作302处,控?#30772;?#22312;处理器运行SMM BIOS代码时监视预期功能。在操作302处,
处理器向控?#30772;?#21457;送信号,以指示处理器何时进入SMM BIOS模式并且因此运行SMM BIOS代
码。响应于接收到此信号,控?#30772;?#22312;SMM BIOS代码的运行期间监视预期功能。预期功能是由
运行SMM BIOS代码的结果而发生的行为。照此,该行为可以在逐行遍历SMM BIOS代码时或
在完成SMM BIOS代码时来观测。例如,开发人员可以将此特定行为创建为SMM BIOS代码的
部分,因此创建SMM BIOS代码的运行的可观测性或?#35813;?#24230;。监视此特定行为使得控?#30772;?#33021;
够监视在运行SMM BIOS代码时产生的功能。在一个实施方式中,控?#30772;?#22312;SMM BIOS代码运
行时监视预期功能之前确定处理器是否已完成引导信息的运行。在另一实施方式中,控制
器监视以下中的至少一个:跟踪处理器多久运行SMM BIOS代码;处理器运行SMM BIOS代码
所花费的时间量;监视特定寄存器的设置;以及跟踪由SMM BIOS代码的运行所生成的I/O循
环的数量。在后面的图中详细?#33268;?#36825;些示例。在SMM BIOS代码的运行期间监视预期功能,控
?#30772;?#26816;测SMM BIOS代码的改变,如在操作304处。

在操作304处,控?#30772;?#36890;过在SMM BIOS代码的运行期间观测预期功能来检测SMM
BIOS代码的改变。该SMM BIOS代码的改变指示SMM BIOS代码已经被破坏,这意味着SMM
BIOS代码可能被损毁和/或可能包括SMM BIOS代码的未授权修改。运行被破坏的代码可能
导致BIOS代码的不合规操作。控?#30772;?#22312;SMM BIOS代码的间接监视期间检测SMM BIOS代码的
改变。在间接监视中,开发人员将特定功能编程在BIOS代码中。由于这些功能是根据SMM
BIOS代码的运行预测?#27169;?#25152;以这些特定功能是预期功能。控?#30772;?#36890;过跟踪预期功能来预测
这些预期功能。如果存在偏差或非预期功能,则这指示SMM BIOS代码的改变并且因此指示
被破坏的SMM BIOS代码。在接下来的图中详细?#33268;?#27492;实施方式。

图4是可由控?#30772;?#36816;行的用于确定处理器运行引导信息是否完成的示例性方法的
流程图。如果引导信息的运行完成,则处理器继续进行以运行SMM BIOS代码,同时其向控制
器发信号以监视预期功能。控?#30772;?#30417;视预期功能以检测SMM BIOS代码的改变。控?#30772;?#36890;过
监视是否可能存在预期功能的偏差来检测SMM BIOS代码的改变。如果控?#30772;?#26816;测到偏差,
则控?#30772;?#21487;以继续进行?#28304;推?#24046;的警告。偏差指示SMM BIOS代码的改变,SMM BIOS代码
的改变进一步指示SMM BIOS代码已经被破坏。针对偏差监视预期功能是对SMM代码的行为
分析,使得功能可被观测,以确认功能完整性并且检测功能(并且因此SMM BIOS代码)是否
发生改变。在?#33268;?#22270;4时,可以参考图1至图2中的部件以提供承接上下文的示例。例如,图1
至图2中的处理器102运行引导信息和SMM BIOS代码。在另一示例中,图1至图2中的控?#30772;?br />110运行操作402至414,以检测是否存在SMM BIOS代码的改变。另外,尽管图4被描述为由控
?#30772;?#23454;施,但其可以在其他合适的部件上运行。例如,图4可以以在如图6中的机器可读存储
介质604?#31995;?#21487;运行指令的形式来实施。

在操作402处,控?#30772;?#30830;定处理器是否已完成引导信息的运行。引导信息包括处理
器从低?#31995;?#29366;态?#25351;?#26102;运行的预运行信息。因此,引导信息初始化计算设备的引导序列,并
且照此,引导序列指的是?#22351;?#22788;理器?#31995;?#23601;向存储器中加载BIOS代码以供处理器运行的过
程。以示例的方式,引导信息包括用于执行自测试、加载配置设置、加载软件和/或固件等的
处理数据。?#28304;?#26041;式,计算设备通过它的引导拉起自身。具体地,引导信息还被称为引导操
作,该引导操作指的是向计算设备的存储器中加载BIOS代码以供处理器运行的过程。确定
引导信息的运行是否完成表示:从运行引导信息到继续运行SMM BIOS代码,处理器处于持
续的开机状态。如果控?#30772;?#30830;定处理器还未完成引导信息的运行,则如在操作404处那样,
控?#30772;?#19981;继续监视由SMM BIOSD代码的运行引起的预期功能。如果控?#30772;?#30830;定处理器已经
完成引导信息的运行,则这指示处理器已经开机一持续的时间段,并且控?#30772;?#21487;以继续进
行至操作406。

在操作404处,当在操作402处确定处理器还未完成BIOS代码的引导信息的运行
时,控?#30772;?#19981;在操作406处在SMM BIOS代码运行期间监视预期功能。SMM BIOS代码是以高权
限模式运行分离软件的操作模式。在此模式期间,处理器保持开机以运行SMM BIOS代码。如
果控?#30772;?#30830;定处理器正在运行引导信息,则这指示计算设备处于预运行模式,这表示处理
器还未进入运行SMM BIOS的模式,因此使控?#30772;?#19981;能监视作为运行SMM BIOS代码的结果的
预期功能。

在操作406处,当确定处理器完成了引导信息的运行时,控?#30772;?#22312;通过处理器运行
SMM BIOS代码时监视预期功能。在引导信息的运行完成时,处理器向控?#30772;?#21457;送完成信号。
这向控?#30772;?#21457;送了处理器正在继续运行SMM BIOS代码的信号。这转而又指示控?#30772;?#24320;始监
视预期功能。在执行SMM BIOS代码时监视预期功能表示:从运行引导信息到继续运行SMM
BIOS代码,处理器保持?#31995;紜?#25805;作406涉及使用跟踪SMM BIOS代码的预期行为的机制。预期
行为可由开发人员安置,以使得在运行SMM BIOS代码时发生特定功能。包括特定功能使得
能够提供作为运行SMM BIOS代码的结果的行为,因此?#22266;?#23450;功能可由控?#30772;?#35266;测。因此,预
期功能是在运行SMM BIOS代码时预测的行为和/或功能。照此,由于该功能被认为是根据由
开发人员安置到SMM BIOS代码中的编程而预期或预测的。因此控?#30772;?#30417;视此预期功能,以
在操作410处检测是否可能存在此预期功能的偏差。以示例的方式,控?#30772;?#30417;视此类预期功
能包括但不限于:处理器多久运行SMM BIOS代码;处理器运行SMM BIOS代码所花费的时间
量;监视特定寄存器的设置;以及跟踪由SMM BIOS代码的运行生成的I/O循环的数量。在接
下来的图中详?#35813;?#36848;此示例。操作406可以与图3中的操作302在功能上类似。

在操作408处,控?#30772;?#21709;应于如在操作406处的监视预期功能而检测SMM BIOS代码
的改变。在此实施方式中,控?#30772;?#36890;过间接监视SMM BIOS代码来检测SMM BIOS代码的改变。
间接检测SMM BIOS代码包括监视作为运行SMM BIOS代码的结果的预期功能、以及诸如在操
作410处的检测是否可能存在此预期功能的偏差。操作408可以与图3中的操作304在功能上
类似。

在操作410处,控?#30772;?#30830;定是否存在预期功能的偏差。该偏差是控?#30772;?#36890;过监视来
自SMM BIOS代码的运行的预期功能而检测到的非预期功能。例如,假设预期功能包括向寄
存器中的一个写入指定值,因此控?#30772;?#36827;行检查以验证在那个寄存器中是否存在该指定
值。如果不存在指定值或者如果该值是指定值之外的某些值,则这指示预期功能的偏差。如
果控?#30772;?#30830;定不存在预期功能的偏差,则控?#30772;?#32487;续进行至操作414并?#20063;?#20256;送警告或通
知。如果控?#30772;?#30830;定存在预期功能的偏差,则这指示存在产生该偏差的SMM BIOS代码的未
授权改变。照此,控?#30772;?#32487;续进行至416?#28304;推?#24046;警告。

在操作412处,在检测?#22351;?#39044;期功能的偏差时,控?#30772;?#19981;传送警告。检测?#22351;?#39044;期
功能的偏差表示控?#30772;?#26410;检测到SMM BIOS代码的改变,这表示SMM BIOS代码可能没被破
坏。

在操作414处,控?#30772;?#20256;送预期功能的偏差的警告。预期功能的偏差指示SMM BIOS
代码的改变,因?#31169;?#19968;步指示SMM BIOS代码已经被破坏。SMM BIOS代码的被破坏的情况表
示SMM BIOS代码可能被损毁和/或可能包括SMM BIOS代码的未授权修改。

图5是可由控?#30772;?#36816;行的用于在运行SMM BIOS代码期间监视预期功能的示例性方
法的流程图。控?#30772;?#36890;过监视以下功能中的至少一个来监视预期功能,该功能包括:监视计
算设备的寄存器设置;跟踪处理器进入SMM BIOS模式以进行运行的次数;跟踪处理器运行
SMM BIOS代码所花费的时间量;以及跟踪可在运行SMM BIOS代码时生成的I/O循环的数量。
此外,尽管图5描述了以上提到的功能,但实施方式不应被限制,因为这是为了例示目的而
做出的。例如,控?#30772;?#36824;可以监视处理器处的指定时?#26377;?#21495;或者监视其他类型的可观测行
为。

控?#30772;?#30417;视这些功能中的至少一个以检测指示SMM BIOS代码已经被破坏的SMM
BIOS代码的改变。控?#30772;?#36890;过检测预期功能的偏差来检测SMM BIOS代码的改变。预期功能
是在运行SMM BIOS代码时发生的预期行为。偏差是非预期的行为,在?#25345;?#24847;义上,偏差是被
认为是异常的并且指示计算设备的功能完整性可能存在风险的行为。照此,使控?#30772;?#33021;够
监视预期功能为控?#30772;?#25552;供了这样的机制:对行为进行跟踪以观测可能作为运行SMM BIOS
的结果而产生的异常性。在?#33268;?#22270;5时,可以参考图1至图2中的部件以提供承接上下文的示
例。例如,图1至图2中的处理器102运行SMM BIOS代码,以使控?#30772;?#22312;操作502处在SMM BIOS
代码运行期间监视预期功能。在另一示例中,图1至图2中的控?#30772;?10运行操作502至516,
以检测是否存在SMM BIOS代码的改变。另外,尽管图5被描述为由控?#30772;?#23454;施,但其还可以
在其他合适的部件上运行。例如,图5可以以在如图6中的机器可读存储介质604?#31995;?#21487;运行
指令的形式来实施。

在操作502处,控?#30772;?#22312;处理器运行SMM BIOS代码时监视计算设备的预期功能。处
理器向控?#30772;?#20256;送指示处理器在进入SMM BIOS模式的过程中的信号。此信号指示控?#30772;?#22312;
运行SMM BIOS代码的过程期间监视预期功能。控?#30772;?#21487;以使用指示处理器何时运行SMM
BIOS代码的?#25913;?#34987;编程,控?#30772;?#36890;过监视预期功能作出?#20174;Α?#39044;期功能是在运行SMM BIOS
代码期间发生的行为。照此,开发人员可?#28304;?#24314;可由控?#30772;?#35266;测的行为。监视此特定行为使
得控?#30772;?#33021;够作为观看者来操作以监视预期功能。在操作502处,控?#30772;?#21487;以操作以观测在
操作504至510处的功能中的至少一个。在此实施方式中,可以使这些功能中的至少一个可
由开发人员进行观测。?#28304;?#26041;式,这些功能可以由控?#30772;?#35266;测,使得控?#30772;?#33021;够从这些功能
中预期特定行为。操作502可以与图3和图4中的操作302和406在功能上类似。

在操作504处,控?#30772;?#21487;以监视计算设?#25913;?#37096;的寄存器中的一个寄存器的设置。该
寄存器可以包括运行SMM BIOS代码的处理器的寄存器或其他类型的硬件寄存器。这些寄存
器提供值的占?#29615;?#20854;可以包括存储关于处理器的特定条件的信息或者存储其他信息。控
?#30772;?#21487;以跟踪在寄存器处的值,以在运行SMM BIOS代码的特定部分时确定那个值是否应该
是预期值。如果该值不是预期值,则这可以指示预期功能的偏差。例如,假设在运行SMM
BIOS代码时预期处理器寄存器存储位“0?#20445;?#20294;处理器寄存器存储位“1”。这指示预期功能的
偏差,该偏差指示SMM BIOS代码的改变。

在操作506处,控?#30772;?#36319;踪处理器进入SMM BIOS模式以运行SMM BIOS代码的次数。
照此,控?#30772;?#30830;定处理器是否已经达到运行SMM BIOS代码的阈值次数。在此实施方式中,如
果处理器达到?#31169;?#20837;SMM BIOS模式的阈值次数或超出该阈值次数,则这向控?#30772;?#20256;?#25512;?#24046;
信号。

在操作508处,控?#30772;?#36319;踪处理器运行SMM BIOS代码的时间量。控?#30772;?#20351;用指定的
时间量作为阈值,以指示处理器运行SMM BIOS代码所花费的时间量是否异常。如果处理器
花费至少指定的时间量或更多时间量,则这向控?#30772;?#25351;示异常性或预期功能的偏差。相应
地,此偏差指示SMM BIOS代码的改变。

在操作510处,控?#30772;?#36319;踪由运行SMM BIOS代码的处理器生成的I/O循环的数量。
I/O循环的数量可以包括在运行SMM BIOS代码时发生的至控?#30772;?#30340;消息的数量。因此,向控
?#30772;?#21457;消息使得控?#30772;?#33021;够跟踪在运行SMM BIOS代码时生成的I/O循环的数量。因此,控制
器可以跟踪?#30475;未?#29702;器运行SMM BIOS代码时应当生成的I/O循环的数量。因此,如果未达到
或超过此数量,则这指示运行SMM BIOS代码的功能的偏差或异常性。

在操作512处,控?#30772;?#26681;据如在操作502处的在运行SMM BIOS代码期间监视预期功
能来检测SMM BIOS代码的改变。在一个实施方式中,检测SMM BIOS代码的改变包括间接监
视SMM BIOS代码。在此实施方式中,控?#30772;?#22312;操作514处检测预期功能的偏差。间接监视包
括监视预期功能以确定SMM BIOS代码是否已经保存计算设备的功能完整性。操作512可以
与图4中的操作408在功能上类似。

在操作514处,如果控?#30772;?#26816;测到预期功能的偏差,则此偏差指示存在SMM BIOS代
码的改变。该偏差是在处理器运行SMM BIOS代码时发生的非预期功能。开发人?#24065;?#36825;样的
方式开发SMM BIOS代码中的代码:当处理器运行此代码时,存在在运行SMM BIOS代码时发
生的特定行为。偏差可包括?#20999;?#29305;定行为的缺失和/或改变。通过检测预期功能的偏差来检
测改变指示SMM BIOS代码可能被破坏。相应地,在操作516处,控?#30772;?#21487;?#28304;?#36865;此改变的通
知或警告。操作514可以与图4中的操作410在功能上类似。

在操作516处,当在操作512处检测到SMM BIOS代码的改变时,控?#30772;?#21487;以继续进
行至传送SMM BIOS代码的改变的警告。操作516可以与图4中的操作414在功能上类似。

图6是计算设备600的框图,计算设备600具有用于运行机器可读存储介质604中的
指令606至614的控?#30772;?02。具体地,具有控?#30772;?02的计算设备600用于运行指令606至
614,以在SMM BIOS代码的运行期间监视计算设备600的预期功能。控?#30772;?02用于在SMM
BIOS代码的运行期间监视预期功能,以检测SMM BIOS代码的改变。如果控?#30772;?02检测到
SMM BIOS代码的改变,则由于该改变指示SMM BIOS代码已经被破坏,所以控?#30772;?02还可以
运行指令606至614?#28304;?#36865;警告。

尽管计算设备600包括控?#30772;?02和机器可读存储介质604,但其还可以包括对于
本领域技术人员而言合适的其他部件。例如,计算设备600可以包括如图1中的用于运行SMM
BIOS代码的处理器102。计算设备600是具有能够运行指令606至614的控?#30772;?02的电子设
备,并且照此,计算设备600的这种实施例包括能够运行指令606至614的计算设备、移动设
备、客户端设备、个人计算机、台式计算机、膝上型计算机、平板、视频游戏操控台、或其他类
型的电子设备。指令606至614可被实施为方法、功能、操作、和被实施为存储在存储介质604
?#31995;?#26426;器可读指令的其他过程,该存储介质604可以是非暂时性?#27169;?#35832;如硬件存储设备(例
如,随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程ROM、电可擦除ROM、硬盘和闪
存)。

控?#30772;?02可以提取、解码和运行指令606至614,以通过在运行SMM BIOS代码时监
视预期功能来检测SMM BIOS代码是否已经被破坏。在一个实施方式中,控?#30772;?02运行指令
606至608,以通过监视预期功能来检测SMM BIOS代码的改变,并且检测是否存在此预期功
能的偏差。在另一实施方式中,在运行指令606至612时,控?#30772;?02运行指令614,以通过在
运行SMM BIOS代码期间监视预期功能并检测预期功能的偏差来检测SMM BIOS代码的改变。
具体地,控?#30772;?02运行指令606至608以进行以下操作:在运行SMM BIOS时监视计算设备
600的预期功能;以?#24052;?#36807;监视预期功能来检测SMM BIOS代码的改变。控?#30772;?02继续进行
至通过运行指令610至612来检测SMM BIOS的改变,以进行以下操作:检测预期功能的偏差;
以及在完成SMM BIOS代码的运行之前检测改变。控?#30772;?02继续进行至在检测到改变时,传
送SMM BIOS代码已经被破坏的警告,处理器602运行指令614以进行以下操作:传送指示SMM
BIOS代码已经被破坏的SMM BIOS代码的改变的警告。

机器可读存储介质604包括供控?#30772;?02提取、解码和运行的指令606至614。在另
一实施例中,机器可读存储介质604可以是包含或存储可运行指令的电子设备、磁性设备、
光学设备、存储器设备、贮存设备、快闪驱动设备、或其他实体设备。因此,机器可读存储介
质604可以包括例如随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、贮存驱
动、存储器高速缓存、网络贮存器、压缩盘只读存储器(CDROM)等。照此,机器可读存储介质
604可包括可独立使用和/或结合控?#30772;?02使用以提取、解码、和/或运行机器可读存储介
质604的指令的应用和/或固件。应用和/或固件可存储在机器可读存储介质604上,和/或存
储在计算设备600的另一位置上。

因此,本文公开的示例提供一种通过在SMM BIOS代码的运行期间监视预期功能来
检测SMM BIOS代码是否已经被破坏的机制。

关于本文
本文标题:检测系统管理模式BIOS代码的改变.pdf
链接地址:http://www.pqiex.tw/p-6091729.html
关于我们 - 网站声明 - 网?#38236;?#22270; - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
平码五不中公式规律 斗地主游戏规则 金博棋牌网站是多少 北斗导航股票 陕西十一选五开奖结果走势图走势图 北京11选5综合走势图 2013048福彩开奖号 棋牌捕鱼游戏平台 排列五红球走势图 新疆11选5中奖助手 新加坡二分彩软件