保护存储器设备的制作方法

文档序号:21886683发布日期:2020-08-18 17:21阅读:198来源:国知局
保护存储器设备的制作方法

相关申请的交叉引用

本申请根据35u.s.c.119(e)要求于2019年2月10日提交的美国临时申请号62/803,575的权益。



背景技术:

闪速只读存储器(rom)设备是用于数据的大容量存储和二级存储以及其他用途的非易失性、电可擦除且可重新编程的存储器芯片。闪速rom设备可以存储允许计算机系统进行操作的信息。例如,闪速rom设备可以用于存储计算机系统的基本输入/输出系统(bios)、基本系统配置信息和其他敏感数据。

附图说明

通过参考以下详细描述和附图更好地理解本发明技术的示例,在附图中:

图1a是根据本公开的示例计算系统的框图;

图1b是根据本公开的另一个示例计算系统的框图;

图2是根据本公开的用于保护图1的示例计算系统的闪速存储器设备的示例方法的过程图;

图3是根据本公开的用于填充(populate)定位在计算系统的管理控制器中的寄存器表的示例方法的过程图;

图4是根据本公开的与访问闪速存储器设备上的数据相关的操作的示例流程图;

图5是示出了根据本公开的存储被配置成保护闪速存储器设备的代码的示例有形非暂态计算机可读介质的框图;

图6是根据本公开的另一个示例计算系统的框图;

图7是根据本公开的用于保护图6的示例计算系统的闪速存储器设备的示例方法的过程图;

图8是根据本公开的与访问闪速存储器设备上的数据相关的操作的示例流程图;以及

图9是示出了根据本公开的存储被配置成保护闪速存储器设备的代码的另一个示例有形非暂态计算机可读介质的框图。

具体实施方式

闪速只读存储器(闪速rom)可以存在于各种设备中,所述设备如服务器、个人计算机、数码相机、闪速存储器驱动器以及其他类型的计算设备和系统。闪速rom设备通常用于存储基本固件(例如,包括机器可读指令)和配置文件。例如,闪速rom设备可以存储用于启动计算设备的操作系统(os)的基本输入和输出系统并且在启动os之后提供其他操作服务,如对到其他设备的接口的低级访问。

因此,可以在闪速rom中存储的数据的敏感性可能使计算机系统容易受到意外损坏或有意攻击。例如,在更新闪速rom中的bios期间出现的问题(如数据传送期间出现的断电)可能导致闪速rom中的数据损坏。这可能使计算机系统不工作。程序向闪速rom的控制器发出具有非法写入命令、针对非法地址范围的写入命令等的命令可能引起其他可能的问题。此外,来自恶意代码的命令可能试图插入代码以允许远程访问计算机系统及其数据。

闪速rom设备通常被视为难以防止用户修改,因为设备无法区分经授权访问和非授权访问。现有的保护方法通常锁定设备或区域以使其免于任何修改,从而使得无法进行经授权更改和期望更改。闪速rom设备通常被视为难以防止用户修改,因为可能期望可信实体修改存储器的期望区域的能力。进一步地,可能无法使可能存在的安全特征标准化,并且因此所述安全特征可能由各个供应商以不同方式实施。

闪速rom设备的进一步的技术弱点源于对在闪速rom设备变得不可操作之前设备的任何扇区可以进行写入/编程或擦除操作的次数的固有限制。对于所谓的“nor闪速”存储器(其中单元并联连接至位线从而使单元被单个地读取和编程、并且单元的并联连接类似于cmos或非门中的晶体管的并联连接),闪速rom的每个扇区在其操作寿命期间可以容许仅约十万次写入/编程或擦除操作,或者对于不太稳健的设备实施方式而言,可以容许的操作甚至更少。对于所谓的“nand闪速”存储器(其中存储器单元串联连接,类似于cmos与非门),容差明显更低,能够在其寿命期间经历仅约几千个写入/编程或擦除循环。这种限制在正常寿命操作要求的情况下可能不会造成重大问题,即使对于要求相对较高的用例(如在可能遭受特别频繁的固件更新的开发系统中)也是如此。然而,有意和/或恶意代码(有时称为“恶意软件”)可能被秘密激活以便以软件循环发出足够数量的写入/编程或擦除命令,从而导致闪速rom过早失效。例如,这种恶意代码可能以后台执行模式部署,由此在造成不可修复的损害之前躲避检测。对于如关键网络服务器等系统,意料之外和出乎意料的故障可能产生非常不利的后果。

本文描述的示例可以保护闪速rom中的数据免受未经授权访问、不正确命令或恶意攻击。所述保护包括将对闪速rom发出的命令和参数与闪速rom允许的命令和命令属性的列表进行比较。如果命令和/或其属性未被允许,则所述命令被拒绝,而不会发送至闪速rom。在一个示例中,允许的命令的列表存储在包括闪速rom控制器的专用集成电路(asic)中的寄存器中。所述保护进一步包括评估闪速rom访问的使用模式和行为模式,以标识并防止闪速rom设备的无意或恶意禁用。可以定义使用度量和行为度量并将其用于区分闪速存储器访问的允许模式和不允许模式。应用这样的度量可以保护包括闪速rom设备的系统免受有意或无意的攻击。

在本说明书中,出于解释的目的,阐述了许多具体细节,以提供对本文公开的示例的透彻理解。然而,对于本领域的技术人员来说将明显的是,可以在没有这些具体细节的情况下实践所公开的示例实施方式。在其他情况下,结构和设备以框图形式示出,以避免模糊所公开的示例。此外,本公开中使用的语言主要是出于可读性和指导性目的而选择,而不是出于描绘或限制本发明的主题的目的而选择的,确定这种发明主题必须借助于权利要求书。说明书中对“一个示例”或“示例”的引用意味着结合示例描述的特定特征、结构或特性包括在至少一种实施方式中。

术语“计算机”、“计算系统”和“计算资源”通常旨在指代包括但不限于包括单个计算机、虚拟机、虚拟容器、主机、服务器、膝上型计算机和/或移动设备的至少一个电子计算设备,或者指代一起工作以执行被描述为在计算系统上执行或由计算系统执行的(多个)功能的多个电子计算设备。所述术语还可以用于指代彼此电子通信的多个这种电子计算设备。

术语“非暂态存储介质”是指一个或多个非暂态物理存储介质,所述一个或多个非暂态物理存储介质一起存储被描述为存储于其上的内容。示例可以包括非易失性二级存储装置、只读存储器(rom)、闪速存储器和/或随机存取存储器(ram)。这种介质可以是光学介质或磁性介质。

术语“应用”和“功能”是指由计算系统执行的一个或多个计算模块、程序、过程、工作负荷、线程和/或计算指令集。应用和功能的示例实施方式包括软件模块、软件对象、软件实例和/或其他类型的可执行代码。注意,当在云计算的上下文中使用时,术语“应用实例”的使用是指用于执行应用(例如,在顾客的隔离实例中执行所述顾客的应用)的云基础设施内的示例。

本文使用的术语“度量(metric)”是指用于测量的系统或标准,并且具体地是指可以用来评估事物的构造。通常,度量可以依据可量化参数来定义,并且所考虑的给定主题可以容易根据任何数量的依据一个或多个相关参数定义的度量进行评估。例如,为了评估和描述闪速存储器设备的访问模式,一个度量可以是被定义为在指定时间段内发生的访问次数的函数的“使用频率度量”。度量可以被进一步定义为一个或多个参考值的函数或关于一个或多个参考值进行定义,所述一个或多个参考值是可以与所计算度量值进行比较的值。在例如上述“使用频率度量”的情况下,一个相关联的参考值可以表示定义是否已发生“违反”所述度量的访问次数。指定时间段的持续时间将是与“使用频率度量”相关联的附加参考值。

作为进一步的示例,用于评估和描述闪速存储器设备的访问模式的“行为度量”可以依据连续访问的存储器位置之间的关系来定义。在用于计算这种度量的参数中,可以利用反映前一时间段内的访问行为的历史数据。适用于闪速存储器访问模式的另一行为度量可以被定义为访问模式相对于预期访问模式表现出的偏差程度或范围的函数。再次,可以依据反映历史访问信息的参数来定义这种度量,并且可以指定度量参考参数以确定所计算度量是否构成度量违反。

应当注意,在前述示例中,使用度量和行为度量(统称为“访问度量”)两者均可以被定义为用于计算用于与度量参考值进行比较以标识度量违反的值的可变时间(即,时间相关的)参数和/或经量化的参数的函数。一些度量可以完全或主要依据可量化参数来定义,而其他度量可能不太容易进行纯粹可量化的定义,但是仍然可以以允许与指定参考参数进行比较的形式来表示。

尽管本文描述的示例讨论了与闪速rom相关的技术,但是所述技术不限于闪速rom。可以理解,所述技术还可以用于保护其他存储器设备,包括例如随机存取存储器、固态驱动器、硬盘驱动器等。在这些示例中,命令列表和命令比较电路可以驻留在例如存储器控制器、驱动控制器或其他低级电路中。

图1a是根据本公开的示例计算系统100的框图。计算系统100可以是服务器、个人计算机、平板计算机、数码相机、智能电话等。计算系统100可以包括中央处理单元(cpu)102。cpu102可以是单核处理器、多核处理器、处理器集群或其他类型的cpu。cpu102可以执行存储在如经由ram接口总线106连接至cpu102的随机存取存储器(ram)104(如双倍数据速率3(ddr3)或ddr4等)的存储器中的指令。ram104可以包括一个或多个ram设备、ram存储器模块以及其他存储器设备,所述ram存储器模块包括但不限于动态随机存取存储器(dram)设备或模块或静态随机存取存储器(sram)设备或模块。

cpu102可以通过互连110耦接至平台控制器中枢(pch)108、南桥(southbridge)或其他控制器中枢,所述互连可以根据cpu供应商和实施方式细节而变化。互连110的示例可以包括专有互连(如英特尔(intel)直接媒体接口(dmi))或通过标准互连(如超传输或外围部件快速互连(pcie)等)。

pch108包括集成电路或芯片组,所述集成电路或芯片组管理cpu102与系统100的其他内部或外部硬件设备之间的数据流。pch108可以允许cpu102访问例如任何数量的类型的互连116上的网络接口控制器(nic)112和输入/输出(i/o)设备114。通过nic112,cpu102可以访问生产网络118以实现正常的服务器和数据功能,如数据库访问、提供数据等。

pch108还可以通过互连116将cpu102耦接至执行系统管理功能的电路,如基板管理控制器(bmc)120。互连116可以包括任何数量的宽度上的任何数量的互连。bmc120可以包括专用集成电路(asic)、asic集群、单板系统或任何数量的其他配置。在图1所示的示例中,bmc120是单个asic。bmc120可以为系统提供多个基本管理实用程序,包括根据集成无人值守(ilo)系统的专有功能,以及由其他标准定义的功能,如智能平台管理接口(ipmi)、面向系统硬件的桌面和移动架构(desktopandmobilearchitectureforsystemhardware,dash)或报警标准格式(asf)平台管理规范等。根据标准,bmc120可以执行一系列系统服务,如监测计算系统100的物理变量,例如,温度、电源电压和操作系统功能。进一步地,bmc120可以为计算系统100提供其他管理功能,如远程kvm(键盘视频鼠标)、虚拟介质等。

bmc120可以包括桥122,以从pch108耦接至互连116。桥122可以充当互连116与内部总线124之间的接口。内部总线124可以包括任何数量的配置,如将不同的逻辑块(例如,单个管芯或多个管芯上的电路)耦接在一起的串行总线、并行总线或高速互连。

bmc120可以包括bmccpu126。bmccpu126可以执行代码以支持bmc120的功能。作为示例,可以指示bmccpu126获得并暂时保存使bios代码在稍后时间实施的更新。bmccpu126可以使用bmc120中的网络接口控制器(nic)128来从管理网络130获得经更新的bios代码。存储器控制器132可以用于将bios代码的临时副本存储到耦接至bmc120的ram134。

进一步地,bmccpu126可以用于辅助本文在示例中描述的功能,如确认命令符合经授权的命令模板。在其他示例中,比较功能可以由例如闪速存储器控制器中的硬编码电路执行。

bmc120可以包括可以用于存储命令列表138的寄存器136。命令列表138可以包括如闪速存储器控制器140等存储器控制器被授权通过如串行外设接口(spi)总线144等通信链路向闪速rom142发出的命令。spi协议是可以用于通过用串行接口替代传统的并行总线来减少板上布线并且同时在两个方向上传送数据的高速四线串行通信协议。应当理解,尽管在本发明示例中描述了spi总线144,但是还可以使用其他总线协议来操作性地连接bmc120和闪速rom142。例如,命令可以包括如写入等命令类型和如芯片选择、定义经授权地址范围的开始的起始地址、和定义经授权地址范围的结束的终止地址等参数值。在此示例中,闪速rom142保持用于启动计算机系统100并为一些i/o设备114提供低级接口代码的bios或固件146。

bmc120可以以两种模式操作。在上电时启动的直接模式下,cpu102对对应于闪速rom142中的存储器范围的地址执行读取循环。闪速存储器控制器140将读取请求转换成命令,例如,spi逻辑可以将读取循环转换成对闪速rom142的快速读取spi循环。在启动过程期间,可以使寄存器136加载有例如来自闪速rom142的命令列表138。在一些示例中,可以使用命令列表138对寄存器136进行预编程。在其他示例中,命令列表138可以硬编码到bmc120中的电路中。

在启动过程期间或一旦启动过程完成,用于访问闪速rom142的第二模式变得可能。这种被称为手动模式的模式允许命令发送到闪速存储器控制器140(例如,加载到命令寄存器148)以访问闪速rom142。在本文描述的一些示例中,可以在bmc120中的控制寄存器中设置写入保护位以表明在将命令寄存器148中的命令发出至闪速rom142之前将对照命令列表138检查所述命令。这防止了使用不在列表上或具有可能引起问题的参数的命令来访问闪速rom142,所述问题如数据损坏或恶意软件代码插入到固件146中。

cpu102可以尝试例如通过将写入命令和地址范围加载到命令寄存器148来手动访问闪速rom142中的存储器地址。闪速存储器控制器140中的授权电路150可以包括命令比较器152,所述命令比较器将命令寄存器148中的命令与命令列表138中的每个经授权命令进行比较。如果所述命令与经授权命令之一相匹配,包括正确的地址范围和其他参数,则命令接受器154可以将所述命令传递至命令发出器156(例如,spi控制器)以发送至闪速rom142。如果命令寄存器148中的命令与任何经授权命令都不匹配或者包括不正确的参数,则接受模块可以例如通过向cpu102返回错误来拒绝所述命令。

作为示例,如果bmccpu126试图用固件146的更新来更新闪速rom142,则其可以将来自存储在与bmc120相关联的ram134中的固件146的临时副本写入闪速rom142。然而,如果写入命令的地址不正确或损坏,则固件146可能被损坏的或无效的数据重写。例如,如果地址范围大于闪速rom142可以存储的范围,或者从在耗尽存储器空间之后才保持数据的点开始,则结果可能无法预测。将命令和参数与寄存器136中的命令列表138进行比较可以保护闪速rom142的内容。此外,如果命令的地址范围有效,但以无效的方式发出至闪速rom142,则其可能允许恶意软件访问闪速rom142。通过在命令的参数列表中包括命令发出的方式,可以防止这种情况。

计算机系统100不限于图1所示的块或系统。例如,代替spi协议或除了spi协议之外,可以使用任何数量的接口类型来访问闪速rom142。此外,本文描述的技术可以直接在存储器或磁盘控制器中实施,而不使用bmc120。例如,可以在磁盘控制器中实施命令列表,以保护硬盘驱动器的某些区域免于重写。这可以用于保护操作系统等。

cpu102的启动可以与bmc120的启动一起发生。例如,可以执行这一操作以加载经授权的命令表。在一个示例中,bmc120以与主机相同的方式从闪速rom142启动。bmccpu126发出总线循环,所述总线循环被转换成spi读取命令并由闪速存储器控制器140发出至闪速rom142。在bmc120启动后,其接着标识所附接的闪速rom142和附加设备。然后,基于设备的类型和制造商,其填充寄存器136中的命令列表138。然后,bmc120锁定所述表,使得所附接的rom设备仅可以接收来自主机cpu102或bmc120的可接受命令。在这完成之后,允许系统100启动,从而向所附接的闪速rom142或使用直接模式的rom发出代码读取。

如关于图1b所描述的,并非在每个示例中都可能使用到图1a所示的每个块。此外,可以使用附加块,如多个闪速rom或其他存储器设备。

图1b是根据本公开的另一个示例计算系统100的框图。在此框图中,计算系统100被简化以阐明可以用于执行本文描述的功能的块。

图2是根据本公开的用于保护图1的示例计算系统的闪速存储器设备的示例方法200的过程图。命令列表可以定位在闪速存储器控制器、存储器控制器或磁盘控制器的寄存器中。在各个示例中,命令可以包括约20个命令,或约32个命令或更多,这取决于系统和所需的保护。

在框202处,将命令寄存器中的命令与寄存器中的命令列表进行比较。可以执行所述比较的简化代码段的示例如下所示。可以理解,可以执行比简化代码段中所示的参数比较更多的参数比较。

commandallowed=valid&((command==spiauthcc.command)&&

((chipsel==spiauthcc.chipsel)&&spiauthcq.cscmpen)&&

((datadir==spiauthcc.datadir)&&spiauthcq.datadiren)&&

((datawidth==spiauthcc.datawidth)&&spiauthcq.datawidthen)&&

((addy>=spiauthas)&&spiauthcq.addrcmpen)&&

(((addr+count)<=spiauthae)&&spiauthcq.addrcmpen)&&

((count<spiauthdc)&&spiauthcq.countcmpen))

在所述代码段中,spiauthcc是指向保持命令列表的寄存器的指针,而spiauthcc之后的各个项指示指针,所述指针指向可以保持经授权命令以及与该命令相关联的经授权参数列表的寄存器中的特定位范围。代码段中的其他指针指向其他经授权属性,包括指向包括标记的寄存器的指针spiauthcq,所述标记指示是否要比较特定参数。可以使用的其他指针包括指示命令的经授权起始地址的spiauthas、指示命令的经授权终止地址的spiauthae和指示可以使用的字节或其他数据单元的经授权数量的spiauthdc。

第一确定是命令本身是否被授权,如通过比较“command==spiauthcc.command”所确定的。如果这为假,例如,指示未经授权的命令,则可以比较其余相关联参数,如后面几行所示,但是整个表达默认为假。如果第一比较为真,则表达的总体值由剩余的比较确定,所述剩余的比较确定参数是否经授权。

每个参数比较包括两个元素:参数值比较和指示是否应忽略该比较的参数使能位。例如,“(datadir==spiauthcc.datadir)&&spiauthcq.datadiren”是用于确定命令是否受限于特定数据方向“datadir.”的比较。比较的第二部分,例如“spiauthcq.datadiren”,是指向确定是否将执行比较的位标记的指针,例如默认为假。可以执行的其他比较的示例包括芯片选择“chipsel”、地址范围“addr”、数据计数“count”以及许多其他未在列表中示出的项。例如,命令的长度可以用来确定命令是否有效。这可以阻断附带有恶意序列的命令。

作为示例,可以将块擦除命令或读取命令发送至闪速rom的命令寄存器。块擦除命令可以从闪速rom中删除数据,而读取命令可以从闪速rom中取得数据。然而,在将命令发出至闪速rom之前,所述比较用于确定所传输的命令是否被授权。

例如,可以将块擦除或读取命令与例如寄存器136中的命令列表进行比较。在此示例中,块擦除命令可能无法与命令列表中的命令之一相匹配。因此,可以拒绝块擦除命令,并且可以将错误返回至尝试所述命令的单元。

相比之下,读取命令可以位于命令列表中,从而表明读取命令是经授权的命令。此外,读取的地址范围可以与和寄存器中的读取命令相关联的参数相匹配。因此,可以将读取命令发出至闪速rom,从而允许访问和读回存储器位置的内容。

在框204处,如果所传输的命令与包括所述参数的经授权命令相匹配,则可以将所述命令视为经认证,并且此后,在接受所述命令并将其发送至闪速rom142之前,在闪速存储器使用和行为监测电路中对所述命令进行评估。在框206处,闪速存储器控制器可以将所接受的命令发出至闪速rom,所述闪速rom实施所述命令,例如,从而将存储器位置序列的内容提供回cpu。

图3是根据本公开的用于填充定位在计算系统的管理控制器中的寄存器表的示例方法300的过程图。在框302处,在启动序列期间,cpu可以访问固件以定位和读取命令列表。在框304处,将命令写入bmc、存储器控制器、磁盘控制器或其他单元中的寄存器或其他存储装置。在框306处,可以例如通过设置位标记来锁定寄存器,从而防止对经授权命令列表进行修改。如本文所述,经授权命令列表可以在制造期间预编程到bmc、prom或其他asic的寄存器中,从而防止对经授权命令列表进行修改。通过将经授权命令列表硬编码到bmc或其他asic内的逻辑块中(例如作为在asic制造期间实施的设计参数),可以获得类似的益处。可以设置所述位标记以执行寄存器中的数据的不变性。例如,如果设置了位标记,则可以防止对寄存器进行修改,直到管理控制器复位。

图4是根据本公开的与访问闪速存储器设备上的数据相关的操作的示例流程图400。经授权命令列表可以限制对闪速存储器设备的未授权访问和恶意攻击。此经授权命令列表可以填充例如bmc或其他存储器或磁盘控制器中的寄存器。可以锁定寄存器以防止对命令列表或其参数进行修改。

在框402处,可以将针对闪速rom的命令发送至闪速存储器控制器,例如,存储在闪速存储器控制器的命令寄存器中。在一些示例中,命令可能由恶意或故障代码发送,并且因此可以不发出至闪速rom。在框404处,闪速存储器控制器、bmccpu或其他硬件可以确定命令寄存器中的命令是否与来自命令列表的经授权命令相匹配。这包括确定命令的参数是否处于可接受的范围内。如果匹配,则在框406处,闪速存储器控制器可以接受命令。在框408处,可以将所接受的命令发出至闪速rom。

如果在框404处命令与命令列表之间不存在匹配,则闪速存储器控制器可以在框410处将所述命令作为非法命令而拒绝所述命令。在拒绝非法命令之后,闪速存储器控制器可以在框412处通过发出篡改检测通知来向cpu、bmccpu或其他单元提供状态。篡改检测通知可以包括返回至cpu的错误信号,或者可以是一系列信号,如至cpu的错误信号和至bmccpu的篡改检测警报等。

进一步地,篡改检测固件可以采取纠正措施以处理未授权命令。在一些示例中,可以记录未遂的未授权命令以执行分析。所记录的命令可用于指示错误或恶意代码。在拒绝之后,所述方法在框414处结束。

图5是框图,示出了根据本公开的存储被配置成保护闪速存储器设备的代码的示例有形非暂态计算机可读介质500。如本文所述,这可以处于与bmccpu相关联的rom中。在一些实施例中,代码硬接线到bmc或其他asic或存储器或磁盘控制器的逻辑电路中。计算机可读介质500可以包括图1的闪速rom142。计算机可读介质500可以通过计算机总线504由如bmccpu等处理器502进行访问,并且可以包括被配置成执行本文所述的方法的代码。

本文讨论的各种部件可以使用计算机可读介质500来实施。所述部件可以包括用于保护和防护闪速存储器设备免于未授权访问和恶意攻击的各种模块。比较模块506可以将存储在闪速存储器控制器的命令寄存器中的命令与寄存器或其他存储器位置中的命令列表进行比较。可以拒绝与寄存器中的经授权命令不匹配的传输至闪速rom的任何命令,并且因此不将其发出至闪速rom。相反,接受模块508可以接受与寄存器中的命令相匹配的所传输的任何命令。一旦命令被视为是经授权的,发出模块510就可以将所述命令发出至闪速存储器设备以供执行。

图6是根据本公开的另一个示例计算系统600的框图。计算系统600可以是服务器、个人计算机、平板计算机、数码相机、智能电话等。计算系统600可以包括中央处理单元(cpu)602。cpu602可以是单核处理器、多核处理器、处理器集群或其他类型的cpu。cpu602可以执行存储在如经由ram接口总线606连接至cpu602的随机存取存储器(ram)设备604(如双倍数据速率3(ddr3)或ddr4等)的存储器设备中的指令。ram604可以包括一个或多个ram设备、ram存储器模块以及其他存储器设备,所述ram存储器模块包括但不限于动态随机存取存储器(dram)设备或模块或静态随机存取存储器(sram)设备或模块。

cpu602可以通过互连610耦接至平台控制器中枢(pch)608、南桥或其他控制器中枢,所述互连可以根据cpu供应商和实施方式细节而变化。互连610的示例可以包括专有互连(如英特尔(intel)直接媒体接口(dmi))或通过标准互连(如超传输或外围部件快速互连(pcie))等。

pch608包括集成电路或芯片组,所述集成电路或芯片组管理cpu602与系统600的其他内部或外部硬件设备之间的数据流。pch608可以允许cpu602访问例如任何数量的类型的互连616上的网络接口控制器(nic)612和输入/输出(i/o)设备614。通过nic612,cpu602可以访问生产网络618以实现正常的服务器和数据功能,如数据库访问、提供数据等。

pch608还可以通过互连616将cpu602耦接至执行系统管理功能的电路,如基板管理控制器(bmc)620。互连616可以包括任何数量的宽度上的任何数量的互连;一个示例是pci-e接口。bmc620可以包括专用集成电路(asic)、asic集群、单板系统或任何数量的其他配置。在图6所示的示例中,bmc620是单个asic。bmc620可以为系统提供多个基本管理实用程序,包括根据集成无人值守(ilo)系统的专有功能,以及由其他标准定义的功能,如智能平台管理接口(ipmi)、面向系统硬件的桌面和移动架构(dash)或报警标准格式(asf)平台管理规范等。根据标准,bmc620可以执行一系列系统服务,如监测计算系统600的物理变量,例如,温度、电源电压和操作系统功能。进一步地,bmc620可以为计算系统600提供其他管理功能,如远程kvm(键盘视频鼠标)、虚拟介质等。

bmc620可以包括桥622,以从pch608耦接至互连616。桥622可以充当互连616与内部总线624之间的接口。内部总线624可以包括任何数量的配置,如将不同的逻辑块(例如,单个管芯或多个管芯上的电路)耦接在一起的串行总线、并行总线或高速互连。

bmc620可以包括bmccpu626。bmccpu626可以执行代码以支持bmc620的功能。作为示例,可以指示bmccpu626获得并暂时保存使bios代码在稍后时间实施的更新。bmccpu626可以使用bmc620中的网络接口控制器(nic)628来从管理网络630获得经更新的bios代码。存储器控制器632可以用于将bios代码的临时副本存储到耦接至bmc620的ram634。

进一步地,bmccpu626可以用于辅助本文在示例中描述的功能,如确认命令符合经授权的命令模板。在其他示例中,比较功能可以由例如如闪速存储器控制器640等存储器控制器中的硬编码电路执行。

在一个示例中,本文所述的闪速存储器控制器640的功能可以通过专用硬件逻辑来实现,如利用一个或多个专用集成电路(asic)来实现。在另一个示例中,本文中在各个示例中描述的闪速存储器控制器640的功能可以通过由微处理器或微控制器执行的软件来实施。通过专用硬件逻辑实施闪速存储器控制器640功能可以降低以下的可能性:可能通过对本文中的各个示例的安全功能(认证和闪速存储器使用和行为监测)执行的可执行代码的秘密操纵或未经授权更改(即,恶意软件)来规避通过本文所述的各个示例实现的闪速存储器保护。闪速存储器控制器640可以可替代地使用专用硬件逻辑和软件控制元件的组合来实施。

bmc620可以包括可以用于存储命令列表638的寄存器636。命令列表638可以包括闪速存储器控制器640被授权通过如串行外设接口(spi)总线644等通信链路发出至闪速rom642的命令。spi协议是可以用于通过用串行接口替代传统的并行总线来减少板上布线并且同时在两个方向上传送数据的高速四线串行通信协议。应当理解,尽管在本发明示例中描述了spi总线644,但是可以使用其他总线协议(包括但不限于“quadspi”协议)来操作性地连接bmc620和闪速rom642。例如,命令可以包括如写入等命令类型和如芯片选择、定义经授权地址范围的开始的起始地址、定义经授权地址范围的结束的终止地址等参数值。在此示例中,闪速rom642保持用于启动计算机系统600并为一些i/o设备614提供低级接口代码的bios或固件646。

一些寄存器636可以用于存储与针对使用评估电路658和行为评估电路660定义的度量相关联的度量参考值639。存储在寄存器636中的度量参考值639可以用于根据预定义的使用度量和行为度量对闪速存储器使用和访问行为模式进行评估。寄存器636中的度量参考值639可以被定义成促进标识和防止不期望的闪速存储器访问。度量参数参考值可以依据使用阈值来定义,所述使用阈值比如但不限于:指定时间段内允许的最大闪速存储器访问次数;两次或更多次连续闪速存储器访问之间所需的最小时间段;以及其他量和时间访问阈值。其他度量可以依据访问行为特性来定义,所述访问行为特性比如但不限于:连续存储器访问中的所访问位置的地址之间的关系;写入或擦除存储器的特定扇区的频率;或者存储器访问模式在特定上下文中匹配或偏离预期模式的程度。

bmc620可以进一步包括用于维持存储器访问的历史统计数据以及用于促进根据本公开中的各个示例评估闪速存储器访问行为模式的其他数据的访问统计数据存储装置637。在系统600的操作期间编译的统计数据可以维持在访问统计数据存储装置637的统计数据块641中。此外,访问统计数据存储装置637可以包括用于提供反映定量和时变统计数据的一个或多个计数器643,所述定量和时变统计数据如例如接收到的命令的相对顺序、对各种存储器位置的各种类型的访问计数的运行总数等。可以将时钟(clk)信号645提供给bmc620,以充当时间(即,与时间相关的)参考。可以将计数器643与时钟信号645结合使用,以生成时间统计数据。时钟信号645还可以用于在记录各种存储器访问统计数据时提供所述存储器访问统计数据的“时间戳”。在各个示例中,可以将许多不同的统计数据编译在访问统计数据存储装置637中,这取决于本文所述的用于评估访问命令的访问度量的定义。

bmc620可以以两种模式操作。在上电时启动的直接模式下,cpu602对对应于闪速rom642中的存储器范围的地址执行读取循环。闪速存储器控制器640将读取请求转换成命令,例如,spi逻辑可以将读取循环转换成闪速rom642的快速读取spi循环。在启动过程期间,可以使寄存器636加载有例如来自闪速rom642的命令列表638和度量参考值639。在一些示例中,可以使用命令列表638和度量参考值639对寄存器636进行预编程。在其他示例中,可以将命令列表638和度量参考值639硬编码到bmc620中的电路中,或者可以将其提供在与闪速rom642本身分离的附加专用非易失性存储装置(图6中未示出)中。

在启动过程期间或一旦启动过程完成,用于访问闪速rom642的第二模式变得可能。这种被称为手动模式的模式允许将序列中的多个访问命令发送至闪速存储器控制器640(例如,按顺序加载到命令寄存器648中)以访问闪速rom642。在本文描述的一些示例中,可以在bmc620中的控制寄存器中设置写入保护位或“锁定位”以表明在命令寄存器648中的接收到的命令发出至闪速rom642之前,将对照命令列表638和度量参考值639检查所述命令。这防止了使用不在列表上或具有可能引起问题的参数的命令来访问闪速rom642,所述问题如数据损坏或恶意软件代码插入到固件646中。

cpu602可以尝试例如通过将写入/编程命令和地址范围加载到命令寄存器648来手动访问闪速rom642中的存储器地址。闪速存储器控制器640中的授权电路650可以包括命令比较器652,所述命令比较器将命令寄存器648中的接收到的命令与命令列表638中的每个经授权命令进行比较。如果接收到的命令与经授权命令之一相匹配,包括正确的地址范围和其他参数,则命令接受器654可以将命令传递至访问监测电路656,以进一步评估命令寄存器648中的命令。

在一个示例中,访问监测电路656用于根据下文所描述的一个或多个预定义度量来标识闪速存储器控制器640的命令使用模式和访问行为模式。

假设命令寄存器中的命令已经在认证电路650中进行认证,并且被确定为未违反访问监测电路656建立的任何使用或行为度量,访问监测电路656可以将命令寄存器648中的命令传递至命令发出电路662(例如,spi控制器)以发送至闪速rom642。如果命令寄存器648中的命令与任何授权命令都不匹配,或者包括不正确的参数,或者被确定违反访问监测电路656建立的任何使用或行为度量,则闪速存储器控制器640可以例如通过向cpu602返回错误来拒绝所述命令。

作为与用于防止对闪速rom642的不期望访问的认证电路650的操作相关的示例,如果bmccpu626试图用固件646的更新来更新闪速rom642,则其可以将来自存储在与bmc620相关联的ram634中的固件646的临时副本的数据写入闪速rom642。然而,如果写入命令的地址不正确或损坏,则固件646可能被损坏的或无效的数据重写。例如,如果地址范围大于闪速rom642可以存储的范围,或者从在耗尽存储器空间之后才保持数据的点开始,则结果可能无法预测。将命令和参数与寄存器636中的命令列表638进行比较可以保护闪速rom642的内容。此外,如果命令的地址范围有效,但以无效的方式发出至闪速rom642,则其可能允许恶意软件访问闪速rom642。通过在命令的参数列表中包括命令发出的方式,可以防止这种情况。

计算机系统600不限于图6所示的块或系统。例如,代替spi或quadspi协议或除了spi或quadspi协议之外,可以使用任何数量的接口类型来访问闪速rom642。此外,本文描述的技术可以直接在存储器或磁盘控制器中实施,而不使用bmc620。例如,可以在磁盘控制器中实施命令列表,以保护硬盘驱动器的某些区域免于重写。这可以用于保护操作系统等。

cpu602的启动可以与bmc620的启动一起发生。例如,可以执行这一操作以加载经授权的命令表。在一个示例中,bmc620以与主机相同的方式从闪速rom642启动。bmccpu626发出总线循环,所述总线循环被转换成spi读取命令并由闪速存储器控制器640发出至闪速rom642。在bmc620启动后,其接着标识所附接的闪速rom642和附加设备。然后,基于设备的类型和制造商,其填充寄存器636中的命令列表638以及访问监测电路656用于评估存储器访问的使用和行为模式的度量参考值639。然后,bmc620锁定所述表,使得所附接的rom设备仅可以接收来自主机cpu602或bmc620的可接受命令。在这完成之后,允许系统600启动,从而向所附接的闪速rom642或使用如上所述的直接模式的rom发出代码读取。

图7是根据一个或多个示例的用于保护闪速存储器的示例方法700的过程图。在一个示例中,图7所描绘的方法700包括认证阶段和评估阶段。在认证阶段中,将接收到命令寄存器648中的命令与命令列表638进行比较,以确保接收到的命令是经授权命令。对命令的认证可以包括确保命令本身(即,命令的类型)被列为命令列表638中的经授权命令,并且可以进一步包括确保命令的特定属性(如针对命令指定的(多个)地址参数)处于允许的范围内。一些地址范围可以被视为“关键”存储器区域,使得在那些范围内未授权任何访问。可以选择性地授权访问其他地址或地址范围,这取决于命令类型或其他命令属性。在评估阶段中,可以对命令进行评估,以确定命令的执行是否指示不当或恶意的行为模式或类型。参考维持在使用统计数据存储装置637中的访问统计数据,图7的方法700可以在一个或多个之前的命令(及其属性)的上下文中评估每个命令(及其属性,如地址或其他命令参数)。然后,可以选择性地执行或拒绝命令,以防止发生不期望的访问行为。

参考图7,方法700开始于将接收在命令寄存器648中的命令与寄存器636中的命令列表638进行比较,如框702所表示的。在框704中,当确定命令与命令列表638中的经授权命令相匹配时,命令通过认证。如前所述,认证接收到的命令包括考虑命令类型和命令属性(如指定的地址参数)两者。

在框704中的认证确认之后,在框706中,接下来将接收到的命令传递至访问监测电路656,所述访问监测电路包括访问统计数据更新电路657、使用评估电路658和行为评估电路660。访问统计数据更新电路657用于在统计数据块641中存储与接收到的命令相关的统计数据。可以记录各种访问命令统计数据,包括但不限于发出不同访问命令类型的运行计数以及所述不同访问命令类型的属性和参数。当在访问统计数据存储装置中编译统计数据时,关于所述统计数据的时间相关的(即,时间)关系——相对关系(如通过利用计数器643)或绝对或实时关系(如通过利用时钟信号645)——的信息。然后,这种附加统计信息可供用作访问监测电路656应用于接收到的命令的使用度量和行为度量的一部分。

继续参考图7,在如框706所表示的更新访问统计数据存储装置637之后,使用评估电路658可以对照一个或多个预定义使用度量评估接收到的命令。在框708中,通过应用一个或多个使用度量来评估接收到的命令使得能够确定正在评估的接收到的命令是否表示违反一个或多个预定义使用度量,下文中进一步详细描述了所述违反的示例。

假设在框708中未标识使用度量违反,则接下来,将接收到的命令传递至行为评估电路660(图6),以对照一个或多个预定义行为度量评估所述命令。因此,在图7的框710中,确定正在评估的命令是否表示违反一个或多个预定义行为度量,下文进一步详细描述了所述违反的示例。

假设在框710中未标识行为度量违反,则在框712中,然后可以将命令发送至发出电路662(图6),以发出至闪速rom642并由其执行。

图8是根据本公开的用于保护如图6的示例计算系统600的闪速rom642等闪速存储器设备的示例方法800的流程图。命令列表可以定位于如闪速存储器控制器(如bmc620)、存储器控制器或磁盘控制器的寄存器636等寄存器中。在各个示例中,可以存在任何任意数量的命令,这取决于系统和所需的保护。与预定义行为度量和使用度量相关联的度量参考值639可以存储在如闪速存储器控制器、存储器控制器或磁盘控制器的寄存器636等寄存器中。在各个示例中,可以存储任何任意和可变数量的行为和使用参数。

在框802处,将命令寄存器648中的接收到的命令与寄存器636中的命令列表638进行比较。参考上文如参照图1a和1b的示例所详尽提供的、可执行比较的简化代码段的详细示例。。

流程图800中的决策框804处的第一确定评估命令本身是否被认证电路650授权,如通过将所请求命令与经授权命令列表进行比较来确定的。再次,应当注意,如命令列表638中所指定的,可以根据命令的类型和其他命令属性(如针对命令指定的参数)授权或不授权命令。例如,可以仅对某些地址或地址范围授权如写入/编程命令或擦除命令等访问命令,而可以不对其他地址或地址范围授权所述命令。也就是说,在任何情况下,命令的授权都可以取决于通过特定类型命令的发出所指定的其他属性。如果图8中的决策框804处的比较证明为假,例如,指示未授权的命令类型/属性组合,则可以比较其余的相关参数,如后续行所示,但是整个表达默认为假。如果第一比较为真,则表达的总体值由剩余的比较确定,所述剩余的比较确定参数是否经授权。

作为示例,可以将块擦除命令或读取命令发送至闪速rom的命令寄存器。块擦除命令可以从闪速rom中删除数据,而读取命令可以从闪速rom中取得数据。然而,在将命令发出至闪速rom之前,所述比较用于确定所传输的命令是否被授权。

例如,可以将块擦除或读取命令(以及属性,如命令的地址)与例如寄存器636中的命令列表638进行比较。在此示例中,具有指定属性的块擦除命令可能无法与命令列表638中的条目之一相匹配。因此,可以拒绝块擦除命令,并且可以将错误返回至尝试所述命令的单元,如下所述。

相比之下,具有某些属性(例如,(多个)地址)的读取命令可以位于命令列表638上,从而表明读取命令是经授权命令。另一方面,具有其他属性的读取命令可以不位于命令列表638上,并且因此可以被拒绝,如图8中的框806所表示的。此后,在框808处,闪速存储器控制器640可以如向cpu602或bmc620中的bmccpu626发出篡改检测通知。在框806中拒绝未授权命令并在框808中发出篡改检测通知之后,随后在框810中将接收到的命令传递至访问监测电路656。尽管在这种情况下命令被拒绝,但其仍被传递至访问监测电路656,因为访问命令的发出,无论是否被执行,都可以是要根据本公开的各个示例检测的访问行为模式的证据。

如果在框804处确定所传输命令与经授权命令(包括命令的属性)相匹配,则所述命令可以被视为通过认证,但是在本示例中,所述命令在访问监测电路656中进行进一步评估,然后才被执行。图8中的框810表示了命令从认证电路650到访问监测电路656的传递。如本文所述,闪速存储器使用和行为监测促进评估命令以标识不期望的访问行为模式。

具体地,从框810开始,在命令寄存器648中的命令已经被认证电路650认证或拒绝之后,所述命令的统计数据由统计数据更新电路657添加至访问统计数据存储装置637,如图8中的框812所表示的。通过在使用统计数据存储装置637中的统计数据块641中维持和更新这种使用统计数据,向访问监测电路656提供历史访问统计数据,所述历史访问统计数据使得能够在发出至闪速rom642的访问命令序列中检测不期望的和/或恶意的访问模式。

接下来,在框814中,然后使命令在使用评估电路658中进行评估。使用评估涉及将一个或多个使用度量应用于接收到的命令,以确定命令是否反映了在系统600的操作期间对闪速rom642的不期望使用。因此,通过使用评估电路658实施的一个或多个使用度量的定义来确定是什么构成了不期望使用,如将在下文中进一步详细描述的。

如果在框814中,根据一个或多个使用度量评估接收到的命令并且确定已经发生了对使用度量的违反,则拒绝接收到的命令,如图8中的框816所表示的。可以向如cpu602或bmc620中的bmccpu626发出使用度量违反通知,如框818所表示的,在这之后,将命令传递至行为评估电路660,如图8中的框820所表示的。

而且,如果在框814中确定接收到的命令未违反使用度量,则将所述命令传递至表示由图6中的行为评估电路660执行的评估的决策框820。

在框820中,使命令在图6中的行为评估电路660中进行评估。行为评估涉及将一个或多个行为度量应用于接收到的命令,以确定命令是否反映了在系统600的操作期间的不期望的行为模式。因此,通过行为评估电路660实施的一个或多个行为度量的定义来确定是什么构成了不期望的行为模式,如将在下文中进一步详细描述的。

如果在框820中,根据一个或多个行为度量评估接收到的命令并且确定已经发生了对行为度量的违反,则拒绝接收到的命令,如图8中的框822所表示的。可以向如cpu602或bmc620中的bmccpu626发出使用度量违反通知,如框824所表示的,在这之后,将命令传递至发出电路662,如框826所表示的。

而且,如果在框820中确定接收到的命令未违反使用度量,则将所述命令传递至决策框826,所述决策框确定在决策框804、814或820中的评估时是否拒绝了接收到的命令。若否,则将命令传递至发出电路662,如图8中的框828所表示的。发出电路662被实施成基于认证电路650或访问监测电路656中的评估仅发出未被拒绝的那些命令。

如上所述,访问监测电路656用于将一个或多个访问度量(使用度量和行为度量)应用于接收到的命令。如此,访问监测电路656能够标识其他合法命令(即,基于认证电路650中的评估未被拒绝的命令),尽管如此,所述合法命令仍有可能是恶意的或在其他方面不期望的命令。

如图6的示例中的访问监测电路656所应用的每个访问度量可以被定义为多个变量(包括命令的类型和属性)以及在访问统计数据存储装置637中维持的访问统计数据的函数。适当定义的使用度量和行为度量(由访问监测块656反映,并且包括图6的示例中的块658和660)促进标识可能发生和/或通过命令或命令序列表现的特定访问行为模式。使用度量可以主要是定量的,如给定时间段内发生的访问次数。行为度量可以涉及特定命令可以作为一部分的访问行为的模式。使用历史、时间和/或定量统计数据,如访问统计数据存储装置637中维持的统计数据,访问行为度量可以考虑一个命令与一个或多个先前命令的关系。例如,当未发生中间写入/编程命令时,可以定义度量以确定在发出针对某个位置的擦除命令之后,是否已经发出针对同一位置的读取命令。可以定义另一个行为度量以确定正在发生跨存储器中的不相关地址范围的访问。基本上,任何使用或行为模式都可以通过适当定义的度量进行检测。事实上,明确指示旨在通过加速访问磨损过程来引起闪速存储器过早失效的恶意访问的行为可能相对容易检测。部分原因是要实现这种恶意目标,必须进行高度重复的行为。

以下是对如可以由图6的示例中的访问监测电路656应用的一些示例度量的非详尽列表的讨论。

可以由访问监测电路656定义和应用的度量是借此确定执行正在评估的命令是否会引起超过对闪速rom642的访问次数的预定义限制的度量。这种阈值度量可以结合访问阈值参数和时间参数。例如,使用阈值度量可以被定义为在访问统计数据存储装置637中维持的访问统计数据的函数,并且具体地定义为指定时间段内的访问的运行计数的函数。例如,使用度量在指定的时间段内只允许进行指定的有限数量的闪速存储器访问。用于确定是否发生了对度量的违反的度量参考参数可以存储在寄存器636中,如前所述。可以针对每次访问评估作为访问的运行计数的函数的度量,并且如果通过访问命令的评估发现运行记录在度量的时间段(存储在寄存器636中)内超过度量的参考值639(也存储在寄存器636中),则可以指示度量违反。可以针对不同类型的存储器访问定义不同的参考参数,并且可以基于闪速rom642内的特定地址范围以不同方式定义不同的参考参数。在访问统计数据存储装置637中维持的任何运行计数统计数据都可以根据期望的时间表并根据计数统计数据所用于的度量定义周期性地重置或以其他方式重新校准。

度量可以对在指定时间段内访问闪速rom642的特定扇区或页面的次数建立限制。使用度量的另一个示例可能需要在任何两次连续闪速rom访问之间经过最小时间间隔。

可以将某个度量定义成标识完整的有效闪速存储器序列,如由“擦除扇区”命令以及随后的页面编程命令的单调递增序列构成的序列。如果这种序列在预定义时间段内发生的频率比预定阈值更大,则访问监测电路656可以将所述序列标识为恶意序列。例如,恶意代码可能有目的地使固件更新在两个有效闪速存储器映像之间重复交替,以试图磨损部件并超过每个单元的写入次数。

可以将某个度量定义成标识由有效闪速存储器区域的子集中的集中活动构成的“聚焦(focused)”闪速存储器命令序列。例如,恶意代码可以通过发出重复的擦除/写入命令来将敏感的闪速存储器扇区作为目标。擦除/写入命令不会表现为单调递增的扇区/页面位置,而是集中在有效固件区域的特定扇区/页面或“部分”上。再次,可以存在此度量的时间组分以及“序列”组分。也就是说,命令可以以可标识为不服务于合法操作目的的序列发出,并且其在预定时间段内可以重复太多次。然而,序列中的每个命令可以被视为是允许的/合法的(至少根据在图6的示例中的认证电路650中评估的标准),但是如果正确执行,仍然可能构成恶意代码。

可以将某个度量定义成标识不遵循预期顺序的允许的命令。

可以将某个度量定义成标识未正确发出的允许的命令。例如,擦除扇区命令之后通常是一个或多个状态命令读取,以确保在可以发出任何进一步的命令之前完成擦除命令。如果发出了进一步的命令,则闪速存储器部件可能会出现故障,因为本质上已经违反了其设计和使用规范。这可能导致部件损坏,从而损害bmc620和/或系统600启动的能力,由此导致“拒绝服务”场景。在这种情况下,访问监测电路656不仅可以监测发出的命令,还可以监测那些命令的结果。例如,擦除命令之后是一个或多个状态命令,其中最后一个状态读取返回良好状态。

在前述非详尽列表中的每个示例中,活动检测可以基于一个或多个可定义地址范围的标识。不同的规则集可以适用于不同的范围。例如,可以存在针对固件646定义的一个或多个预定范围,其中本文描述的活动可以适用,同时可以存在其中可以合理预期发生某些行为的其他范围。

旨在禁用闪速rom的恶意攻击可以涉及如利用程序循环进行的重复的写入/编程或擦除命令。由命令序列访问的存储器位置可以是不加区分的,或者可以遵循不反映合法目的的序列。通过一系列访问命令访问的地址可以跨不反映合法目的的位置范围。例如,由于固件646通常占据闪速rom642内的指定范围,包括但不限于固件646的地址范围的一系列访问命令可能不符合合法的固件更新。此外,由于合法固件更新通常不会重复发生,所以异常重复的命令序列也将不符合合法目的。作为另一个示例,访问闪速rom642的整个地址范围内的顺序位置的命令序列将构成可疑的访问行为模式,如对同一位置或位置范围的命令序列一样。作为另一个示例,一系列访问中的访问命令的类型可能构成可疑或不期望的行为。例如,在擦除访问之后是对同一位置的读取访问可能被视为不合逻辑,并且因此表示不期望的行为。使用这种推理,可以定义和应用各种行为度量;前述内容并非是一些示例行为度量的详尽列表。

如前所述,使用统计数据存储装置637可以包括一个或多个计数器643,并且可以进一步提供有时钟(clk)信号645。可以利用不同的计数器643来维持访问循环或其他事件的发生的运行记录。结合时钟信号645,这些计数器643可以维持访问计数,持续任何期望的时间段。可以周期性地重置计数,以使统计数据与所定义的行为和访问度量相容。时钟信号645可以用于提供记录在使用统计数据存储装置中的访问统计数据的“时间戳”信息,以便使用度量和行为度量结合时间参数。

图9是框图,示出了根据本公开的示例有形非暂态计算机可读介质900,所述示例有形非暂态计算机可读介质存储或以其他方式具体化被配置成保护可以是例如闪速存储器设备的存储器设备902的代码。如本文所述,存储器设备902可以位于与bmccpu相关联的rom中,如与图6的示例中的bmccpu626相关联的闪速rom642中。计算机可读介质900可以经由存储器总线904访问存储器设备902。在其他示例中,由介质900具体化的代码可以如利用asic或其他专用电路硬连线到逻辑电路中、到bmc或存储器或磁盘控制器中。计算机可读介质900可以通过计算机总线908由如bmccpu等处理器906访问,并且可以具体化被配置成执行本文描述的方法的代码。

本文讨论的各种部件可以使用计算机可读介质900来实施。所述部件可以包括用于保护和防护存储器设备902免于未授权访问和恶意攻击的各种模块。接收模块910可以经由计算机总线908从处理器906接收存储器设备902的访问命令。比较模块912可以将接收在模块910中的命令与寄存器或其他存储器位置中的命令列表进行比较。可以拒绝接收在模块910中的与寄存器中的经授权命令不匹配的任何命令,并且因此不将其发出至存储器设备902。相反,可以将与寄存器中的命令相匹配的任何接收到的命令传递至评估模块914,以根据被定义成标识恶意访问命令或访问命令模式的一个或多个访问度量来评估接收到的命令。如果在模块914中评估接收到的命令并且确定接收到的命令违反访问度量,则可以拒绝接收到的命令,并且因此不将接收到的命令发出至存储器设备902。然而,如果在模块914中确定没有度量违反,则可以将所述命令接受在模块916中,并传递至发出模块918,以将访问命令发出至存储器902。

在本说明和权利要求中使用了某些术语来指代特定系统部件。如本领域技术人员将理解的,不同方可以用不同的名称来指代部件。本文件无意区分名称不同但功能相同的部件。在本公开和权利要求书中,术语“包括”和“包含”以开放式的方式使用,并且因此应该被解释为意指“包括但不限于……”。此外,术语“耦接”意在表示间接或直接有线或无线连接。因此,如果第一设备耦接至第二设备,则所述连接可以通过直接连接或者通过经由其他设备和连接的间接连接实现。叙述“基于”意在表示“至少部分地基于”。因此,如果x基于y,则x可以是y和任何数量的其他因素的函数。

本文描述的示例可以具有各种修改和替代形式。应当理解,所述技术并不旨在局限于本文公开的特定示例。实际上,所述示例包括落入所附权利要求书的真实精神和范围内的所有替代方案、修改和等效物。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1