用于监控对内部存储器的数据访问的装置以及内部存储器的制作方法

文档序号:12365269阅读:225来源:国知局
用于监控对内部存储器的数据访问的装置以及内部存储器的制作方法

本申请涉及存储器技术领域,更具体地,涉及一种用于监控对内部存储器的数据访问的装置以及具有该监控装置的内部存储器。



背景技术:

互联网技术的迅速发展使得计算机、移动终端等网络设备能够相互连通并进行通信。通过这些相互连通的网络设备,人们能够非常方便地获取信息。然而,在便利信息获取的同时,数据和信息安全问题也日益凸显。联网的设备很容易因偶然或恶意的原因而受到未授权外部设备的攻击,从而造成内部数据的破坏、泄露或更改。现有的计算机安全系统通常采用软件来进行监控和排查,但是软件监控具有滞后性。当软件监控到非法程序和指令时,系统数据可能已经被破坏或已被泄露。

因此,有必要对现有的计算机系统进行改进,以提高其数据安全性。



技术实现要素:

本申请的一个目的在于改进现有的计算机或电子设备,以提高其数据安全性和系统的稳定性。

在本申请的一个方面,提供了一种用于监控对内部存储器的数据访问的装置,其中所述内部存储器通过内存总线耦接到内存控制器,所述监控装置包括:缓存模块,其被配置为与所述内存总线相耦接,用以接收并缓存经由所述内存总线交互的数据和/或与所交互数据相关联的数据访问命令及目标地址;以及安全控制模块,其被配置为对所缓存的数据和/或数据访问命令及目标地址进行处理,以识别对所述内部存储器进行的数据访问是否存在安全风险。

在一些实施例中,所述安全控制模块包括预处理单元和主控单元,其中,所述预处理单元被配置为对所缓存的数据和/或数据访问命令及目标地址进行预处理;所述主控单元被配置为对数据和/或数据访问命令及目标地址的预处理结果进行进一步的处理,以识别对所述内部存储器进行的数据访问是否存在安全风险。

在一些实施例中,所述预处理单元被配置为将所缓存的数据与参考数据进行比较,以确定所缓存的数据中是否包括所述参考数据;所述主控单元被配置为根据所缓存的数据是否包括所述参考数据的比较结果确定数据访问是否存在安全风险。

在一些实施例中,所述预处理单元被配置为根据预定数据分类规则对所缓存的数据进行分类;所述主控单元被配置为根据所缓存的数据的分类结果确定数据访问是否存在安全风险。

在一些实施例中,所述预处理单元被配置为根据预定数据访问行为识别规则识别对所述内部存储器进行的数据访问的行为模式;所述主控单元被配置为根据所识别的数据访问的行为模式来确定所述数据访问是否存在安全风险。

在一些实施例中,所述预处理单元被配置为将所述目标地址与参考地址空间进行比较,以确定所述目标地址是否属于所述参考地址空间;所述主控单元被配置为根据所述目标地址是否属于所述参考地址空间的比较结果确定数据访问是否存在安全风险。

在一些实施例中,所述主控单元被进一步配置为对所述预处理单元进行设置,以使其具有预定的安全风险识别规则。

在一些实施例中,所述预处理单元由专用硬件处理逻辑实现。

在一些实施例中,所述主控单元由嵌入式处理器或通用处理器实现。

在一些实施例中,所述安全控制模块由嵌入式处理器或通用处理器实现,其中,所述安全控制模块中被配置有安全风险识别规则。

在一些实施例中,所述安全控制模块包括数据存储单元,其被配置为存储安全风险识别规则和/或安全风险识别结果。

在一些实施例中,所述安全控制模块被进一步配置为根据对所述内部存储器进行的数据访问是否存在安全风险的判断结果来确定是否进行安全控制操作。

在一些实施例中,所述安全控制操作包括限制对所述内部存储器的数据访问。

在一些实施例中,所述安全控制模块限制对所述内部存储器的数据访问包括:所述安全控制模块被配置为禁止所述内部存储器经由所述内存总线与所述内存控制器交互数据;或者所述安全控制模块被配置为将替换数据提供给所述内存总线以用于在后续数据交互中取代之前被交互的数据。

在一些实施例中,所述内部存储器具有命令/地址处理模块,其配置为从所述内存总线接收所交互的数据相关联的数据访问命令及目标地址,并且根据所述数据访问命令及目标地址控制对所述内部存储器的数据访问;其中,所述安全控制模块被配置为耦接到所述命令/地址处理模块,并且在对所述内部存储器进行的数据访问存在安全风险时通过所述命令/地址处理模块限制对所述内部存储器的数据访问。

在一些实施例中,所述内部存储器具有数据缓冲模块,所述内部存储器的存储模块通过所述数据缓冲模块与所述内存总线交互数据;其中,所述安全控制模块被配置为耦接到所述数据缓冲模块,并且在对所述内部存储器进行的数据访问存在安全风险时通过所述数据缓冲模块限制对所述内部存储器的数据访问。

在一些实施例中,所述安全控制模块被进一步配置为根据对所述内部存储器进行的数据访问是否存在安全风险的判断结果来生成安全警示信号。

在一些实施例中,所述监控装置还包括通信端口,所述安全控制模块被配置为通过所述通信端口与所述监控装置外部的模块进行通信。

在一些实施例中,所述缓存模块采用FIFO结构。

在一些实施例中,所述监控装置还包括:监控接口,所述监控装置通过所述监控接口耦接到所述内存总线;数据缓冲模块,其耦接在所述缓存模块和所述监控接口之间,被配置为缓冲接收自所述内存总线的数据,并将其提供给所述缓存模块;以及命令/地址处理模块,其耦接在所述缓存模块和所述监控接口之间,被配置为从所述内存总线接收所交互数据相关联的数据访问命令及目标地址,并且将所述数据访问命令和目标地址提供给所述缓存模块。

在一些实施例中,所述监控接口符合内部存储器的存储器接口的标准。

在一些实施例中,所述命令/地址处理模块还被配置为获取片选信号,所述片选信号用于指示被监控的内部存储器的哪一组存储芯片被选中进行数据访问,所述命令/地址处理模块被进一步配置为将所述片选信号和目标地址与所交互的数据相关联。

在一些实施例中,所述缓存模块和所述数据缓冲模块采用分布式结构或集中式结构。

在一些实施例中,所述监控装置与所述内部存储器被集成在同一电路板上,并且通过所述内部存储器的存储器接口耦接到所述内存总线。

在一些实施例中,所述内部存储器包括存储模块和数据缓冲模块,所述存储模块经由所述数据缓冲模块与所述存储器接口交互数据;其中,所述缓存模块包括与所述存储模块并行地耦接到所述数据缓冲模块的第一部分,和/或耦接到所述内部存储器的命令/地址处理模块的第二部分。

在一些实施例中,所述数据缓冲模块以及与其耦接的缓存模块和存储模块采用分布式结构或集中式结构。

在一些实施例中,所述命令/地址处理模块被进一步配置为控制所述缓存模块缓存所述数据和/或与所交互数据相关联的数据访问命令及目标地址。

在本申请的另一方面,还提供了一种内部存储器。该内部存储器包括:存储模块;存储器接口,所述存储模块通过所述存储器接口耦接到内存总线,以从所述内存总线接收数据访问命令和目标地址,并且与所述内存总线交互数据;数据缓冲模块,其耦接在所述存储模块和所述存储器接口之间,被配置为缓冲在所述存储模块与所述内存总线之间交互的数据;命令/地址处理模块,其被配置为从所述存储器接口接收数据访问命令和目标地址;缓存模块,其耦接到所述数据缓冲模块,被配置为接收并缓存所述数据缓冲模块所缓冲的数据;和/或耦接到所述命令/地址处理模块,被配置为接收并缓存与所缓冲的数据相关联的数据访问命令及目标地址;以及安全控制模块,其被配置为对所述缓存模块所缓存的数据和/或数据访问命令及目标地址进行处理,以识别对所述内部存储器进行的数据访问是否存在安全风险。

在本申请的又一方面,还提供了一种计算机系统或电子设备,其包括根据前述一个方面中所述的监控装置,或者包括前述另一方面中所述的内部存储器。

在本申请其他方面,还提供了一种用于监控对内部存储器的数据访问的方法,其中所述内部存储器通过内存总线耦接到内存控制器。所述监控方法包括:接收并缓存所述内部存储器经由所述内存总线与所述内存控制器交互的数据和/或与所交互数据相关联的数据访问命令及目标地址;以及对所缓存的数据和/或数据访问命令及目标地址进行处理,以识别对所述内部存储器进行的数据访问是否存在安全风险。

可以看出,本申请实施例的监控装置能够通过侦听内存总线即时传输的数据和数据访问命令、目标地址等访问控制信息来对对内存总线耦接的内部存储器数据访问进行监控,从而识别可能存在的安全风险。该监控装置的监控操作不会影响内部存储器的操作,因而能够很好地兼容于现有计算机和电子设备的系统结构。此外,针对所识别的安全风险,还可以通过在被监控的内部存储器内或内存控制器设置访问控制机制来限制不安全的数据访问,从而避免内部存储器中的数据未经授权地调用或修改,进而提高系统的安全性和稳定性。

以上为本申请的概述,可能有简化、概括和省略细节的情况,因此本领域的技术人员应该认识到,该部分仅是示例说明性的,而不旨在以任何方式限定本申请范围。本概述部分既非旨在确定所要求保护主题的关键特征或必要特征,也非旨在用作为确定所要求保护主题的范围的辅助手段。

附图说明

通过下面说明书和所附的权利要求书并与附图结合,将会更加充分地清楚理解本申请内容的上述和其他特征。可以理解,这些附图仅描绘了本申请内容的若干实施方式,因此不应认为是对本申请内容范围的限定。通过采用附图,本申请内容将会得到更加明确和详细地说明。

图1是一种现有服务器架构的示意图;

图2示出了根据本申请一个实施例的用于监控对内部存储器的数据访问的装置;

图3示出了图2所示的监控装置进行数据访问监控的流程;

图4示出了根据本申请一个实施例集成监控功能的内部存储器;

图5示出了根据本申请的一个实施例的用于监控对内部存储器的数据访问的方法。

具体实施方式

在下面的详细描述中,参考了构成其一部分的附图。在附图中,类似的符号通常表示类似的组成部分,除非上下文另有说明。详细描述、附图和权利要求书中描述的说明性实施方式并非旨在限定。在不偏离本申请的主题的精神或范围的情况下,可以采用其他实施 方式,并且可以做出其他变化。可以理解,可以对本申请中一般性描述的、在附图中图解说明的本申请内容的各个方面进行多种不同构成的配置、替换、组合,设计,而所有这些都明确地构成本申请内容的一部分。

本申请的发明人发现,对于计算机系统、移动终端或其他智能化电子设备而言,内存总线是其系统架构中的关键部件。图1是一种现有计算机系统架构的示意图。如图1所示,该计算机系统10(例如服务器)采用了2个中央处理器12,其通过QPI总线14相互进行通信。对于每个中央处理器12,其通过内存总线16(例如,DDR3、DDR4总线等)连接内部存储器18,通过PCIE接口20连接以太网接口22(进而连接到互联网),以及通过DMI接口24连接主板芯片26。其中,主板芯片26还提供了例如SAS接口28、SATA接口30、USB接口32等,以连接低速组件(图中未示出)。

当计算机系统10正常运行时,程序运行所依赖的指令和非指令数据均被存储到内部存储器18中。因此,对于图1所示的计算机系统10所进行的数据处理操作,其通常都需要由中央处理器12经由内存总线16访问内部存储器18来实现。本申请的发明人发现,内存总线16具有广播式通信的特点,换言之,得到内存总线16控制权的一个设备向内存总线16发送的数据可以被连接到内存总线16上的所有其他设备接收。利用该特点,可以通过侦听内存总线16上即时传输的数据和数据访问命令、目标地址等访问控制信息来对针对内部存储器18进行的数据访问进行监控,从而识别可能存在的安全风险。进一步地,针对所识别的安全风险,还可以通过在被监控的内部存储器内或内存控制器设置访问控制机制来限制不安全的数据访问,从而避免内部存储器18中的数据未经授权地调用或修改,进而提高系统的安全性和稳定性。

图2示出了根据本申请一个实施例的用于监控对内部存储器150的数据访问的装置100。其中,内部存储器150被用于计算机系统、智能移动终端或其他类似的电子设备中。内部存储器150可以通过存储器接口152耦接到该电子设备的内存总线160,并且进一步地通过该内存总线160耦接到内存控制器162。内存总线160通常包括用于传输数据的数据总线部分,用于传输命令、地址等控制信号的命令/地址总线部分。在内存控制器162的控制下,内部存储器150可以经由内存总线160与内存控制器162交互数据,或者进一步地与电子设备的其他模块进行数据交互。在一些实施例中,内存控制器162可以被集成在电子设备的主板芯片组中,或者被集成在电子设备的中央处理器中。在另一些例子中,内存控制器162也可以被实现为一个独立模块。

在一些实施例中,内部存储器150可以是符合JEDEC双倍速率同步动态随机存取存储器(SDRAM)标准的内部存储器,包括JEDEC DDR、DDR2、DDR3、DDR4以及其他双倍速率存储器标准。相应地,内存总线160和内存控制器162也符合上述存储器标准。此外,内部存储器150、内存总线160和内存控制器162也可以是符合其他标准或协议的内部存储器,例如SDRAM或RAMBUS内部存储器标准。

具体地,内部存储器150包括存储模块154。在一些实施例中,内部存储器150的存储模块154可以包括易失性存储器(例如随机存储器)、非易失性存储器(快闪存储器)或者这两者的组合。在图2所示的实施例中,存储模块154被示例地表示为包括采用分布式结构的一组或多组存储芯片(也即存储颗粒或内存颗粒)154i,并且每组存储芯片154i构成了一个物理存储体(Physical Bank或Rank),其数据位宽与内存总线160以及中央处理器(图中未示出)的数据位宽一致。例如,图2所示的实施例可以适用于DDR4存储器标准,其标准数据位宽为64位。图2中示出了9个存储芯片154i,其中每个存储芯片154i具有8位数据位宽,因而一组存储芯片154i的数据位宽为72位。72位中的8位为数据校验位,其余的64位数据位即被用于传输有用数据。本领域技术人员可以理解,存储模块154也可以采用集中式存储芯片来实现。在下文中,均以内部存储器150的存储模块采用分布式结构对本申请的监控装置进行说明,但是本领域技术人员可以理解,这不作为对本申请的限制,采用集中式存储模块的内部存储器也可以被以相同或相似的方式进行监控。

内部存储器150还包括数据缓冲模块(DB)156,其耦接在存储器接口152和存储模块154之间,用于缓冲在存储模块154与存储器接口152之间交互的数据。与分布式结构的一组或多组存储芯片对应,数据缓冲模块156也包括一组或多组数据缓冲子模块156i,其中每个数据缓冲子模块156i对应于一个存储芯片154i。此外,内部存储器150还包括命令/地址处理模块158。该命令/地址处理模块158可以从存储器接口152接收来自于内存控制器162的数据访问命令和目标地址,并且根据所接收的数据访问命令和目标地址来控制数据缓冲模块156在存储模块154与存储器接口152(进一步地,内存总线160)之间交互数据。

具体地,命令/地址处理模块158通过命令/地址(Command/Address,C/A)信道耦接到存储器接口152以接收来自于内存总线160的命令/地址信号。该命令/地址信号通常是由内存控制器162提供的,其中包含有数据访问命令和目标地址。对于采用DDR4标准的存储器接口152,该命令/地址信道可以包括管脚A0-A17、管脚BG0-BG1和/或管脚 BA0-BA1。其中,管脚BG0-BG1用于确定存储模块154中的哪个存储体组(Memory Bank Group)被处理,例如被写入或被读取;管脚BA0-BA1用于确定存储模块203中的哪个存储体(Memory Bank)被处理;而管脚A0-A17则用于寻址并确定一个存储体中的哪一个存储单元被处理。这些管脚用于确定目标地址。此外,A16(RAS_n)、A15(CAS_n)以及A14(WE_n)这三个管脚的输入还用于确定被输入的数据访问命令,例如读取命令、写入命令以及其他被预先定义的控制命令。命令/地址处理模块158还可以通过其他管脚来接收其他访问控制信号,例如片选信号。片选信号可以用于控制从多组存储芯片中选择一组存储芯片进行数据交互。关于DDR3、DDR4标准以及命令/地址处理模块、数据缓冲模块可以适用的信号、接口描述,可以参考JEDEC于2012年9月发布的JEDEC标准“DDR4 SDRAM”,以及澜起科技于2015年1月公开的“DDR4 Data Buffer M88DDR4DB02”数据手册、2014年10月公开的“DDR4 Registering Clock Driver M88DDR4RCD02”数据手册、2012年12月公开的“Memory Buffer for DDR3 Load Reduced DIMM M88MB6000”数据手册。这些文件的内容通过引用方式全部并入本申请。

在一些实施例中,命令/地址处理模块158可以是内部存储器电路板上的一个独立芯片;在另一些实施例中,命令/地址处理模块158也可以被与数据缓冲模块156集成在同一芯片中。

仍参考图2所示,用于监控内部存储器150数据访问的装置100同样被耦接到内存总线160上,进而通过该内存总线160与内存控制器162和内部存储器150相耦接。在一些实施例中,该监控装置100可以被构造为与内部存储器150电路板结构类似的电路板形式,并且可以被插入到电子设备的内存插槽上,从而直接耦接到内存总线160上。这种硬件结构便于监控装置100与待监控的电子设备的连接或解除连接,并且可以很好地兼容现有的电子设备。在一些其他的实施例中,该监控装置100也可以被固定地集成在电子设备的主板电路板中,从而直接耦接到内存总线160上。可以理解,监控装置100也可以被间接地耦接到内存总线160上。例如,监控装置100可以借用被监控的内部存储器的存储器接口耦接到内存总线160,这将在下文中详述。

在图2所示的实施例中,监控装置100被示例地构造为单独的硬件结构,其可以具有与内部存储器存储器接口152类似的监控接口102,并且符合内部存储器150以及内存总线160的相关存储器标准,例如符合双倍速率同步动态随机存取存储器标准。通过监控接口102,监控装置100被耦接内存总线160。监控装置100还包括数据缓冲模块(DB)104, 其耦接到监控接口102,用以缓冲来自于内存总线160的数据。此外,监控装置100还包括命令/地址处理模块106,其耦接到监控接口102以接收来自于内存总线160的数据访问命令及目标地址,或者还进一步地接收例如片选信号等其他控制信号。其中,数据访问命令及目标地址与所交互的数据相关联,其具体指示了对内部存储器150进行何种类型的数据访问操作,以及对内部存储器150上的哪个存储单元进行数据访问操作,等等。

在一些优选的实施例中,数据缓冲模块104和命令/地址处理模块106可以采用与内部存储器的数据缓冲模块156和命令/地址处理模块158相同或相似的结构,从而使得该监控装置100能够较好地兼容内部存储器150的相关标准和信号格式。例如,数据缓冲模块104可以采用类似于数据缓冲模块156的分布式结构,其包括一组或多组数据缓冲子模块104i;或者数据缓冲模块104也可以采用集中式结构,也即仅包括一个数据缓冲子模块。

类似于内部存储器150的命令/地址处理模块158,命令/地址处理模块106通过命令/地址信道耦接到监控接口102以接收来自于内存总线160的命令/地址信号。对于符合DDR4标准的监控接口102,该命令/地址信道可以包括管脚A0-A17、管脚BG0-BG1和/或管脚BA0-BA1。其中,A16(RAS_n)、A15(CAS_n)以及A14(WE_n)这三个管脚的输入还用于确定被输入的数据访问命令,例如读取命令、写入命令以及其他被预先定义的控制命令。在一些实施例中,命令/地址处理模块106可以仅用于接收数据访问命令和目标地址,并且将其接收的数据访问命令和目标地址转发出去。在另一些实施例中,命令/地址处理模块106可以对其所接收的数据访问命令和/或目标地址进行某些数据处理,例如转换格式,或者对其进行解码或编码处理等,之后再将处理过的数据访问命令和/或目标地址提供给其他模块。例如,在命令/地址处理模块106接收数据访问操作的目标地址时,该目标地址中一个存储体的行地址和列地址可能是通过时分复用管脚A0-A17中的部分管脚来传输的。在这种情况下,命令/地址处理模块106可以将不同时刻接收的行地址、列地址以及其他地址信息和控制信息(例如存储体地址、存储体组地址和/或片选信号(其指示哪个存储芯片组被选中))组合在一起以用于确定被访问的存储位置。

仍参考图2所示,监控装置100具有缓存模块108,其耦接到数据缓冲模块104,以接收经其缓冲的来自于内存总线160的数据。缓存模块108还耦接到命令/地址处理模块106,以接收数据访问命令和目标地址和/或其他控制信号。缓存模块108可以将其接收的数据、数据访问命令和目标地址缓存起来,以用于后续的数据处理、分析和统计。缓存模块108可以采用例如先入先出(FIFO)结构,或者后入先出(LIFO)结构,亦或其他类型 的缓存器结构。优选地,缓存模块108可以采用FIFO结构。FIFO结构的缓存模块108可以在一个端口接收数据,而在另一个端口发送数据以供后续安全识别处理,因而效率较高。

在图2所示的实施例中,缓存模块108可以包括两个部分,其中第一部分采用与数据缓冲模块104相似的分布式结构,每组缓存子模块108i中的每个缓存子模块108i可以耦接到一个数据缓冲子模块104i,接收并缓存该数据缓冲子模块104i提供的数据;而第二部分可以耦接到命令/地址处理模块106,用于接收并缓存数据访问命令和目标地址。可以理解,缓存模块108也可以被构造为集中式的结构,而非图2所示的分布式结构。在一些实施例中,缓存模块108可以仅接收并缓存数据,而不接收并缓存数据访问命令和目标地址。在这种情况下,缓存模块108可以仅包括前述与数据缓冲模块104耦接的第一部分,而不包括与命令/地址处理模块106耦接的第二部分。在另一些实施例中,缓存模块108还可以仅接收并缓存目标地址和数据访问命令,而不缓存数据。在这种情况下,缓存模块108可以仅包括与命令/地址处理模块106耦接的第二部分。在一些实施例中,分布式结构的缓存模块108中的每个缓存子模块都可以直接或间接地耦接到命令/地址处理模块106,以在命令/地址处理模块106的控制下缓存来自于对应数据缓冲子模块104i的数据,例如同步地缓存数据。可以理解,采用集中式结构的缓存模块也可以同时耦接到数据缓冲模块104和命令/地址处理模块106,以在命令/地址处理模块106的控制下缓存数据数据模块104提供的数据。

仍参考图2所示,监控装置100还具有安全控制模块110,其耦接到缓存模块108,用于对缓存模块108缓存的数据和数据访问命令、目标地址进行处理,以识别对内部存储器150进行的数据访问是否存在安全风险。例如,安全控制模块110可以在缓存的数据中查找特征数据或参考数据,其中该特征数据或参考数据指示了被限制访问或被允许访问的数据。如果查找到被限制访问的特征数据或参考数据(“黑名单”),则认为存在安全风险,反之则认为不存在安全风险;或者如果查找到被允许访问的特征数据或参考数据(“白名单”),则认为不存在安全风险。特征数据或参考数据的查找可以针对对内部存储器150的一次或多次数据访问操作所进行,或者也可以针对一段时间内对内部存储器150进行的数据访问所进行。再例如,安全控制模块110可以将缓存的目标地址与预定地址空间进行比较,该预定地址空间指示了内部存储器150中被限制访问或允许访问的存储空间,例如用于存储指令的存储区域。如果目标地址属于被限制访问的预定地址空间,则认为存在安 全风险,反之则认为不存在安全风险;或者如果目标地址属于被允许访问的预定地址空间,则认为不存在安全风险。

正如之前所说明的,之所以可以采用监控装置100来对内部存储器150的数据访问进行监控,是因为监控装置100和内部存储器150均耦接到内存总线160。经由内存总线160传输的数据,包括写入到内部存储器150中的数据以及从内部存储器150读出的数据,都会被发送到内存总线160。由于内存总线160具有广播式通信的特点,发送到其上的数据可以被耦接到内存总线160的所有设备或模块接收,因此内部存储器150与内存总线160之间交互的数据、数据访问命令和目标地址均可以被监控装置100接收。进一步地,监控装置100可以对其所接收的数据和其他信息进行处理,或者对数据访问操作的行为模式进行识别,从而确定可能存在的安全风险。

在一些实施例中,监控装置100可以根据数据访问命令和目标地址将其所缓存的数据以类似于内部存储器150中的存储方式进行存储,也即数据被“镜像”地存储到监控装置100的缓存模块108中。可以每隔预定时间间隔对缓存模块108进行重置,例如全部重置为0或1。在另一些实施例中,监控装置100可以以不同于内部存储器150中的存储方式来存储目标地址、数据访问命令和数据,例如,可以构建一数据库,其中该数据库中的每个数据单元可以包括目标地址、数据访问命令和相关联的数据。

正如之前所说明的,在实际应用中,内部存储器150通常可以包括多组存储芯片154i。在对内部存储器150进行数据访问时,内存控制器162还可以提供片选信号,该片选信号用于从多组存储芯片154i中选取一组存储芯片154i以对其进行数据访问,而片选信号未选中的一组或多组存储芯片154i不会响应数据访问的请求或命令。在这种情况下,监控装置100的命令/地址处理模块106可以被配置为无论片选信号为何值,其均响应命令/地址信号接收与其相关联的数据。此外,监控装置100还可以获取片选信号,并根据该片选信号确定哪一组存储芯片154i被选中进行数据访问。例如,片选信号可以由内存控制器162直接提供给监控装置100,例如通过一专用端口。再例如,由于内部存储150中不同组存储芯片154i存储的数据内容不同,而不同的数据访问通常是针对特定的数据内容所在的某一或某些存储地址进行的,因此可以根据数据访问命令来确定哪组存储芯片154i被选中。相应地,监控装置100也可以通过执行一算法来根据数据访问命令和目标地址来恢复片选信号,从而获得片选信号。相应地,命令/地址处理模块106可以进一步地将片选信号和目标地址与所交互的数据相关联。这样,对不同组存储芯片154i中不同目标地址的数据访问 操作均可以被唯一地确定,从而使得能够更有效地监控内部存储器150。特别地,当内存总线160上耦接有多个内部存储器150时,或者当一个内部存储器150包含多组存储芯片时154i,监控装置100仍能够根据片选信号来区别对不同内部存储器150以及不同内部存储器150中不同组存储芯片154i所进行的数据访问。

仍参考图2所示,安全控制模块110可以包括预处理单元112和主控单元114。其中,预处理单元112耦接到缓存模块108,用于接收所缓存的数据和/或数据访问命令和目标地址,并且对其进行预处理。主控单元114耦接到预处理单元112,用于对数据和/或数据访问命令和目标地址的预处理结果进行进一步的处理,以识别对内部存储器150进行的数据访问是否存在安全风险。其中,预处理单元112所进行的预处理使得待处理的数据量降低,从而可以减少主控单元114的数据处理负荷或处理压力。这样,主控单元114可以采用通用处理器实现,或者也可以用嵌入式处理器实现。嵌入式处理器例如为数字信号处理器(DSP)、嵌入式微处理器或嵌入式微控制器。由于需要处理较多的数据,预处理单元112可以由专用硬件处理逻辑实现,例如ASIC电路或者FPGA电路。专用硬件处理逻辑可以针对数据处理的特点和格式来进行设计,因而其具有较高的处理效率。一般来说,预处理单元112和主控单元114的整体数据处理能力应当被设计为能够满足对所缓存的数据进行监控处理的要求,并且与缓存模块108的容量相匹配。可以理解,预处理单元112和主控单元114也可以被整合为一个处理单元,其可以采用通用处理器或嵌入式处理器实现。在此情况下,该通用处理器或嵌入式处理器的处理能力也需要满足对所缓存的数据进行监控处理的要求。

根据不同的监控要求,安全控制模块110可以被配置为具有各种不同的安全风险识别规则,以识别不同的安全风险。在一些实施例中,这些安全风险识别规则可以被设置在预处理单元112中,例如由主控单元114对预处理单元112进行设置。在另一些实施例中,安全风险识别规则也可以被设置在安全控制模块110中(在安全控制模块110采用通用处理器或嵌入式处理器实现的情况下)。安全控制模块110可以包括数据存储单元116,例如采用非易失性存储器(诸如快闪存储器、可编程只读存储器等)的形式,以用于存储安全风险识别规则。当系统需要进行数据访问监控时,主控单元114可以对数据存储单元116存储的安全风险识别规则进行调用,并且将其设置到预处理单元112中。在实际应用中,安全控制模块110中安全风险识别规则可以在系统或监控装置100初始化时进行设置,也可以在监控过程中即时地更新和修改。

在一些实施例中,预处理单元112中可以被设置具有参考数据,其进一步地被配置为将所缓存的数据与该参考数据进行比较,以确定所缓存的数据中是否包括参考数据。预处理单元112可以例如被实现为多位数字比较器,或者也可以被实现为数据比较软件或程序。相应地,主控单元114根据所缓存的数据是否包括参考数据的比较结果确定数据访问是否存在安全风险。例如,如果所缓存的数据包括被限制访问的参考数据,则认为数据访问存在安全风险。

在一些实施例中,预处理单元112中可以被设置有安全风险识别规则,其中包含了一个或多个预定数据区间,这些不同的数据区间指示了待监控数据的不同分类。例如,预定数据区间定义了标准位宽数据中的某些数据位的值,而剩余数据位可以为任意值。预处理单元112可以根据预定数据分类规则对缓存模块108所缓存的数据进行分类,并且生成对应的数据分类结果。预处理单元112可以例如被实现为多位数字比较器,或者也可以被实现为数据比较软件或程序。例如,数据分类结果可以包括不同分类的数据出现的频率,或者不同分类的数据出现的次数,等等。根据预处理单元112的数据分类结果,主控单元114可以相应地确定数据访问是否存在安全风险。例如,当在一定时间段内某一分类数据的出现频率或次数超过预定阈值时,可以确定数据访问存在安全风险。

在一些实施例中,预处理单元112中可以被设置有预定数据访问行为识别规则。例如,该数据访问行为识别规则可以根据对内部存储器150中某些地址或地址空间访问的频率、次数、间隔或其他参数来定义数据访问的行为模式,并且不同的行为模式可以被分类为不同的安全级别,例如正常访问和异常访问。预处理单元112可以根据预定的数据访问行为识别规则识别对内部存储器150进行的数据访问的行为模式。相应地,主控单元114可以根据所识别的数据访问的行为模式来确定数据访问是否安全。例如,当在一定时间段内对某些存储地址或地址空间的数据访问频率超过预定阈值时,可以识别该行为为异常访问,也即存在安全风险。

例如,在数据访问识别规则中,可以定义下述数据访问行为为异常访问行为:在步骤1,第一地址空间被写入数据;在步骤2,该第一地址空间被读取数据;在步骤3,该第一地址空间被反复写入数据,写入周期例如为1毫秒;在步骤4,存储有关键数据(通常不可被改写)的第二地址空间被写入数据。一些攻击程序或黑客程序有可能采用上述数据访问流程来攻击计算机系统,试图修改关键数据。关键数据被非授权的改写可能会影响系统的稳定性。利用设置好的数据访问识别规则,安全控制模块110可以根据所缓存的目标地 址以及数据访问命令来识别对内部存储器150进行的数据访问是否符合上述异常访问行为的行为模式。如果确定已有的数据访问操作已顺序地执行了步骤1-3,则安全控制模块110即可识别该数据访问的行为模式符合上述异常访问行为。相应地,安全控制模块110可以进行安全控制操作,在一定时间内禁止对第二地址空间的数据写入操作。相反,对于系统授权的安全程序,其并不会顺序地执行上述4个步骤,而可能仅执行其中的第1、2、4步骤,或者直接执行第4步骤。因此,安全控制模块110可以识别出该安全程序的行为模式是正常访问行为,因而不会限制其对第二地址空间的数据访问。可以理解,上述数据访问行为模式的定义以及相应的行为识别仅是示例性的,在实际应用中,系统管理人员或其他安全管理人员可以根据攻击程序的行为模式来设计、定义相应的数据访问行为识别规则。例如,可以组合数据写入或读取操作的先后顺序、频率和/或次数,以及数据访问的目标地址来定义数据访问行为识别规则,或者进一步地结合允许访问或限制访问的数据来定义。

在一些实施例中,预处理单元112中可以被设置具有参考地址空间,其进一步地被配置为将所缓存的目标地址与该参考地址空间进行比较,以确定所缓存的目标地址是否属于该参考地址空间。预处理单元112可以例如被实现为多位数字比较器,或者也可以被实现为数据比较软件或程序。相应地,主控单元114根据所缓存的目标地址空间是否属于参考地址空间的比较结果确定数据访问是否存在安全风险。如果目标地址空间属于被限制访问的参考地址空间,则认为数据访问存在安全风险。

需要说明的是,上述对于安全风险监控和识别规则或策略仅是示例性,并非对本申请监控装置的限制。本领域技术人员可以认识到,可以根据实际安全监控的需要,设计不同的安全风险监控和识别规则,并且由安全控制模块110执行。

在一些实施例中,安全控制模块110还可以将其进行的安全风险识别结果记录到例如数据存储单元116中。安全控制模块110还可以将安全风险识别结果发送出去。例如,安全控制模块110可以将安全风险识别结果发送给命令/地址处理模块106;命令/地址处理模块106之后将安全风险识别结果通过内存总线160反馈给内存控制器162。再例如,安全控制模块110可以包括一通信端口118。安全控制模块110可以通过该通信端口外部的模块进行通信,从而将安全风险识别结果发送出去。例如,监控装置100可以通过通信端口118与中央处理器进行通信,或者与内存控制器162进行通信。可以理解,安全控制模块110还可以通过该通信端口118进行其他操作,例如协调监控进程,获取安全风险识别规则等。

在实际应用中,当安全控制模块110确定存在对内部存储器150的数据访问存在安全风险之后,其还可以相应地进行一些控制操作,以对这些数据访问进行控制,或者提示系统存在安全风险。

在一些实施例中,安全控制模块110可以根据对内部存储器150进行的数据访问是否存在安全风险的判断结果来生成安全警示信号。例如,当判断存在安全风险的情况下,安全控制模块110可以生成相应的安全警示信号。安全控制模块110可以进一步地耦接到例如中央处理器等其他外部模块,以将该安全警示信号提供给外部模块,并且进而通过例如电子设备的显示装置、扬声器或其他装置提示给用户。

在一些实施例中,安全控制模块110可以根据对内部存储器150进行的数据访问是否存在安全风险的判断结果来确定是否进行安全控制操作。在一些实施例中,安全控制操作包括限制对内部存储器的数据访问。例如,安全控制模块110可以禁止内部存储器150经由内存总线160与内存控制器162交互数据;或者控制内部存储器150将替换数据提供给内存总线160以用于在后续数据交互中取代之前被交互的数据。

安全控制操作可以通过不同的模块来进行实现。例如,安全控制模块110可以耦接到内部存储器150的命令/地址处理模块158或数据缓冲模块156。例如,安全控制模块110可以通过例如通信端口118耦接到命令/地址处理模块158和/或数据缓冲模块156。当对内部存储器150进行的数据访问存在安全风险时,安全控制模块110可以生成控制命令,通过命令/地址处理模块158或数据缓冲模块156限制对内部存储器150的数据访问。

图3示出了图2所示的监控装置进行数据访问监控的流程。接下来,以内存控制器162指示对内部存储器150进行数据写入操作为例,结合图2和图3,对监控装置100的处理过程进行进一步地说明。

首先,在步骤S182,内存控制器162通过内存总线160向内部存储器150发送数据写入命令以及相应的目标地址。同时,待写入的数据也被发送给内存总线160。

接着,在步骤S184,监控装置100通过其监控接口102接收待写入的数据、数据写入命令以及目标地址。其中,待写入的数据经数据缓冲模块104缓冲后,被缓存到缓存模块108中。同时,数据写入命令以及目标地址经命令/地址处理模块处理后,也被缓存到缓存模块108中。

之后,在步骤S186中,缓存模块108中缓存的待写入数据、数据写入命令以及目标地址均被提供给安全控制模块110。安全控制模块110然后根据预定的安全风险识别规则来处理待写入数据、数据写入命令以及目标地址,例如将待写入数据与参考数据进行比较,或者将目标地址与预定地址空间进行比较,从而识别可能的安全风险。安全风险识别的具体操作可以参考前述实施例中的描述,在此不再赘述。

然而,在步骤S188中,安全控制模块110可以根据安全风险识别结果,确定是否需要发送警示信号,或者是否需要进行进一步的安全控制操作。

可以理解,监控装置100对数据读取操作和数据写入操作的监控过程大体是相同的,其区别主要在于,在执行数据写入操作时,数据是由内存控制器162发送到内存总线160上的,监控装置100相应地接收并缓存该数据;而在执行数据读取操作时,数据是由内部存储器150发送到内部总线160的,监控装置100相应地接收并缓存该数据。因此,对数据读取操作的监控处理过程可以参考上述关于对数据写入操作的监控处理过程的描述,在此不再赘述。

在图2所示的实施例中,监控装置100被构造为能够直接连接到内存总线160的独立设备或模块。在本申请的另一些实施例中,监控装置也可以被集成在内部存储器中,并且通过内部存储器连接内存总线的存储器接口获取数据,以对数据访问进行侦听。图4即示出了集成有监控装置的内部存储器200。

如图4所示,该内部存储器200通过存储器接口252耦接到内存总线260,并且进一步地通过该内存总线260耦接到内存控制器262。在一些实施例中,该内部存储器200可以是符合JEDEC双倍速率同步动态随机存取存储器(SDRAM)标准的内部存储器,相应地,内存总线260和内存控制器262也符合上述存储器标准。在另一些实施例中,内部存储器200、内存总线260和内存控制器262也可以是符合其他标准或协议的内部存储器,例如SDRAM或RAMBUS内部存储器标准。

具体地,内部存储器200包括存储模块254。存储模块254被示例地表示为包括采用分布式结构的一组或多组存储芯片(也即存储颗粒或内存颗粒)254i,并且每组存储芯片254i构成了一个物理存储体(Physical Bank或Rank),其数据位宽与内存总线160以及中央处理器(图中未示出)的数据位宽一致。

内部存储器200还包括数据缓冲模块256,其耦接在存储器接口252和存储模块254之间,用于缓冲在存储模块254与存储器接口252之间交互的数据。与分布式结构的一组或多组存储芯片254i对应,数据缓冲模块256也包括一组或多组数据缓冲子模块256i,其中每个数据缓冲子模块256i对应于一个存储芯片254i。此外,内部存储器250还包括命令/地址处理模块258。该命令/地址处理模块258可以从存储器接口252接收来自于内存控制器262的数据访问命令和目标地址,并且根据所接收的数据访问命令和目标地址来控制数据缓冲模块256在存储模块254与存储器接口252(进一步地,内存总线260)之间交互数据。

该内部存储器200还包括缓存模块208,其耦接到数据缓冲模块256,以接收并缓存数据缓冲模块256所缓冲的数据。此外,缓存模块208还耦接到命令/地址处理模块258,以接收并缓存与所缓冲的数据相关联的数据访问命令及目标地址。因此,缓存模块208可以包括与数据缓冲模块256相耦接的第一部分,以及与命令/地址处理模块258相耦接的第二部分。在一些实施例中,缓存模块208可以采用FIFO结构。类似地,分布式结构的缓存模块208中的每个缓存子模块208i都可以直接或间接地耦接到命令/地址处理模块258,以在命令/地址处理模块258的控制下缓存来自于对应数据缓冲子模块256i的数据,例如同步地缓存数据。需要说明的是,在一些情况下,缓存模块208也可以不在命令/地址处理模块258的控制下接收并缓存数据,例如,其可以根据数据缓冲模块256输出端口的信号变化来确定是否缓存数据。

由于需要读取和写入数据,因此数据缓冲模块256与存储模块254之间的数据交互通过双向总线实现。缓存模块208可以也耦接到该双向总线上。这样,无论是来自存储器接口252的待写入到存储模块254中的数据,还是读取自存储模块254的数据,都可以被发送到该双向总线上。相应地,缓存模块208可以对数据访问进行侦听,并且将接收到的数据缓存到其中。

内部存储器200还包括安全控制模块210,其耦接到缓存模块208,并且对所缓存的数据和/或数据访问命令及目标地址进行处理,以识别对内部存储器200进行的数据访问是否存在安全风险。在图4所示的实施例中,安全控制模块210包括预处理单元212、主控单元214以及数据存储单元216。安全控制模块210的结构和操作可以参考图2所示的安全控制模块110的相关说明。需要说明的是,由于安全控制模块210被集成在内部存储器200中,因而其便于耦接到命令/地址处理模块258和数据缓冲模块256,从而通过控制命 令/地址处理模块258和数据缓冲模块256来控制内部存储器200的数据访问。例如,在确定数据访问存在安全风险时,安全控制模块210可以控制数据缓冲模块256,使得其不向内存总线260发送数据,或者可以使得数据缓冲模块256向内存储总线260发送替换数据(例如无效数据)以供后续的数据交互。数据缓冲模块256中可以设置寄存器来存储该替换数据。

可以看出,内部存储器200中集成了监控功能,因此其仅能够对包含其的内部存储器200进行监控,而不能够对内存总线260耦接的其他内部存储器进行监控。因此,在一些实施例中,内部存储器还包括通信端口218。安全控制模块210可以通过该通信端口218与内部存储器外部的模块或内部存储器中的其他模块进行通信。例如,一个内部存储器的安全控制模块可以通过该通信端口与其他内部存储器的安全控制模块进行通信,从而协调安全监控操作,共享安全风险识别结果。具体地,例如,安全控制模块可以指示针对每次访问,检测所交互的数据中是否存在有参考数据。如果一个内部存储器中检测到参考数据,其可以将该检索结果发送给另一个内部存储器,以指示其可以停止检索;或者如果一个内部存储器中未检测到参考数据,其也可以将检索结果发送给另一个内部存储器,以指示器继续检索。

可以看出,本申请实施例的监控装置能够通过侦听内存总线即时传输的数据和数据访问命令、目标地址等访问控制信息来对对内存总线耦接的内部存储器数据访问进行监控,从而识别可能存在的安全风险。该监控装置的监控操作不会影响内部存储器的操作,因而能够很好地兼容于现有计算机和电子设备的系统结构。此外,针对所识别的安全风险,还可以通过在被监控的内部存储器内或内存控制器设置访问控制机制来限制不安全的数据访问,从而避免内部存储器中的数据未经授权地调用或修改,进而提高系统的安全性和稳定性。

图5示出了根据本申请的一个实施例的用于监控对内部存储器的数据访问的方法300。该监控方法300可以由图2或图4所示的监控装置来执行。其中,被监控的内部存储器通过内存总线耦接到内存控制器。

如图5所示,在步骤S302,接收并缓存内部存储器经由内存总线与内存控制器交互的数据和/或与所交互数据相关联的数据访问命令及目标地址。

在步骤S304,对所缓存的数据和/或数据访问命令及目标地址进行处理,以识别对内部存储器进行的数据访问是否存在安全风险。

在一些实施例中,所交互的数据和/或数据访问命令及目标地址是通过与内部存储器一同耦接到内存总线上的监控装置,例如图2所示的监控装置,所接收并缓存的。

在一些实施例中,所交互的数据和/或数据访问命令及目标地址是通过集成在内部存储器中的监控装置,例如图4所示的监控装置,所接收并缓存的。

在一些实施例中,该监控方法300进一步包括:根据对内部存储器进行的数据访问是否存在安全风险的判断结果来确定是否进行安全控制操作。

在一些实施例中,安全控制操作包括限制对内部存储器的数据访问,数据访问的限制通过内部存储器的数据缓冲模块和/或命令/地址处理模块来执行。

应当注意,尽管在上文详细描述中提及了用于监控对内部存储器的数据交互的装置、以及集成有该监控装置的内部存储器的若干模块或子模块,但是这种划分仅仅是示例性的而非强制性的。实际上,根据本申请的实施例,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。

那些本技术领域的一般技术人员可以通过研究说明书、公开的内容及附图和所附的权利要求书,理解和实施对披露的实施方式的其他改变。在权利要求中,措词“包括”不排除其他的元素和步骤,并且措辞“一”、“一个”不排除复数。在本申请的实际应用中,一个零件可能执行权利要求中所引用的多个技术特征的功能。权利要求中的任何附图标记不应理解为对范围的限制。

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