一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于存储器攻击缓解的方法和系统与流程

2023-08-22 21:07:23 来源:中国专利 TAG:

用于存储器攻击缓解的方法和系统
1.相关申请的交叉引用
2.本技术要求2020年12月17日提交的名称为

用于存储器攻击缓解的方法和系统(method and system for memory attack mitigation)

的待审美国非临时专利申请17/125,978号的权益,其全部内容据此以引用方式并入本文。


背景技术:

3.当前及未来的存储器(例如,动态随机存取存储器(dram))易受可影响系统安全性的各种存储器故障(诸如rowhammer)的影响。现代dram设备使用专有的内部算法来跟踪攻击方-被攻击方行对以管理rowhammer,而很少或没有对主机的洞察。然而,厂商实施的rowhammer机制可被规避。攻击利用rowhammer的方式之一是在分配给其进程/vm的存储页面中寻找潜在攻击方-被攻击方对(可能是经由边信道),并且使用该信息来执行影响整个系统的利用。
附图说明
4.可以从以下描述中获得更详细的理解,通过示例结合附图给出,其中:
5.图1是可实现本公开的一个或多个特征的示例设备的框图;
6.图2是可实现本公开的一个或多个特征的示例存储器的框图;并且
7.图3是存储器攻击缓解的示例方法的流程图。
具体实施方式
8.尽管在下面将进一步详细地扩展方法和装置,但此处简要描述用于缓解存储器攻击的方法。
9.当在诸如动态随机存取存储器(dram)之类的存储器中分配页面时,设备控制器内部地检查在那个操作系统(os)可见页面内是否存在攻击方-被攻击方对。如果检测到这样的对,则dram经由包含刚刚分配的页面的基地址的寄存器(例如,adjacent_row寄存器)来通知系统。系统软件使用该信息来对这个物理页面解除映射并将其重新映射到dram设备认为安全的其它地方,或者修复/替换物理页面的受影响部分(例如,dram行)。
10.这个邻接性检查也可在运行时经由命令(例如,check_adjacency命令)而显式地被触发,使得存储器控制器可检查是否已出现潜在的rowhammer漏洞,然后系统软件可使用其来触发页面退出。此类检查可被集成作为由os/管理程序实现的周期性安全性扫描的一部分。另外,可添加新的x86指令(例如,security_check指令),其基于系统的存储器交错配置向存储该页面的数据的所有dram设备发出邻接性检查。然而,尽管出于示例目的描述了x86指令的使用,但是可利用任何指令集架构(isa)指令来执行下面描述的方法的步骤。
11.由于rowhammer是可影响安全性计算机系统的关键dram故障模式,因此本文描述了对dram片上系统(soc)接口的增量改变以提供针对该故障模式的防御。因此,dram可向系统提供关于页面中物理行邻接性的洞察,使得可在使该页面对用户可用之前采取主动动作
以降低rowhammer利用的风险。
12.一种用于存储器设备中存储器攻击缓解的方法包括在存储器控制器处接收存储器中页面的分配。一个或多个设备控制器检测该存储器内的攻击方-被攻击方集合。基于该检测,标识被分配页面的地址以用于进一步动作。
13.一种用于存储器攻击缓解的系统包括:存储器,该存储器包括设备控制器;存储器控制器,该存储器控制器与该设备控制器操作地耦接并且与其通信;以及处理器,该处理器与该存储器控制器操作地耦接并且与其通信。该存储器控制器被配置为接收存储器中页面的分配。设备控制器检测该存储器内的攻击方-被攻击方集合,并且基于该检测,该存储器控制器标识存储器中被分配页面的地址以用于进一步动作。
14.一种用于存储器攻击缓解的非暂态计算机可读介质,该非暂态计算机可读介质具有记录在其上的指令,该指令在由处理器执行时使该处理器执行操作。该操作包括在存储器控制器处接收存储器中页面的分配。一个或多个设备控制器检测该存储器内的攻击方-被攻击方集合。基于该检测,标识被分配页面的地址以用于进一步动作。
15.图1是可实现本公开的一个或多个特征的示例设备100的框图。设备100可包括例如计算机、服务器、游戏设备、手持设备、机顶盒、电视、移动电话或平板计算机。设备100包括处理器102、存储器104、存储装置106、一个或多个输入设备108以及一个或多个输出设备110。设备100还可任选地包括输入驱动器112和输出驱动器114。另外,设备100包括存储器控制器115,该存储器控制器与处理器102和存储器104通信,并且还可与外部存储器116通信。在一些实施方案中,存储器控制器115将被包括在处理器102内。应当理解,设备100可包括图1中未示出的另外部件。
16.在各种另选方案中,处理器102包括中央处理单元(cpu)、图形处理单元(gpu)、位于同一管芯上的cpu和gpu、或一个或多个处理器核心,其中每个处理器核心可为cpu或gpu。在各种另选方案中,存储器104位于与处理器102相同的管芯上,或与处理器102分开定位。存储器104包括易失性或非易失性存储器,例如dram或高速缓存。
17.存储装置106包括固定或可移动存储装置,例如硬盘驱动器、固态驱动器、光盘或闪存驱动器。输入设备108包括但不限于键盘、小键盘、触摸屏、触控板、检测器、麦克风、加速度计、陀螺仪、生物扫描仪或网络连接(例如,用于发射和/或接收无线ieee 802信号的无线局域网卡)。输出设备110包括但不限于显示器、扬声器、打印机、触觉反馈设备、一个或多个灯、天线或网络连接(例如,用于发射和/或接收无线ieee 802信号的无线局域网卡)。
18.输入驱动器112与处理器102和输入设备108通信,并允许处理器102从输入设备108接收输入。输出驱动器114与处理器102和输出设备110通信,并允许处理器102向输出设备110发送输出。应注意,输入驱动器112和输出驱动器114是任选的部件,并且如果输入驱动器112和输出驱动器114不存在,则设备100将以相同方式操作。
19.外部存储器116可类似于存储器104,并且可以片外存储器的形式驻留。另外,外部存储器可以是驻留于服务器中的存储器,其中存储器控制器115通过网络接口通信以存取存储器116。
20.图2是可实现本公开的一个或多个特征的示例存储器104或外部存储器116的框图。存储器104/116包括设备控制器201。设备控制器201与处理器102和存储器控制器115通信。设备控制器201可被实现成存储器104或外部存储器116内的硬件或软件。如图2所示,设
备控制器201驻留在存储器104或外部存储器116中。然而,应当指出的是,设备控制器201可驻留在别处。因此,设备控制器201可执行下文所描述的方法300的功能性。另外,尽管未示出,但是可在存储器控制器115、存储器104、外部存储器116中或者在与之通信以便接收数据的其它地方提供单独的处理逻辑。
21.根据图1和图2中描绘的设备100和存储器控制器115,图3是存储器攻击缓解的示例方法300的流程图。
22.在步骤310中,计算机上的操作系统分配页面。存储器控制器检查被分配页面的地址是否是攻击方-被攻击方集合的一部分(步骤320)。例如,当os/管理程序分配dram中的页面时,os发出指令,诸如安全性检查指令,并且提供该页面的第一(例如,4kb对齐的)系统物理地址作为对该指令的输入。另选地,os可向页面中的所有高速缓存行发出安全性检查指令。
23.存储器控制器通过向将数据存储在该页面(例如,4kb页面)中的所有dram设备发出检查邻接性命令以及适当地址(例如,page_base_addr)来执行安全性检查指令。存储器控制器考虑诸如存储器交错之类的配置以确保向所有受影响的dram设备的设备控制器发出检查邻接性命令,并且执行任何必要的地址转译(例如,如果dram所看到的地址不是系统物理地址的话)。设备控制器可在步骤320中通过目标行刷新(trr)例程或利用用于跟踪攻击方-被攻击方对的任何跟踪例程来检查那个页面内的潜在攻击方-被攻击方物理行对。
24.如果地址是攻击方-被攻击方集合的一部分(步骤330),则邻接检测位被设置为第一值(步骤340)。例如,adj_detect位被设置为
″1″
。另外,页面地址被写到存储器(步骤350)。即,该页面的基地址被写到page_base_addr寄存器,其中page_base_addr是包含通知主机的地址的寄存器。因此,存储器控制器和os知道在存储器中在那个位置处存在潜在漏洞。
25.如果地址不是攻击方-被攻击方集合的一部分(步骤330),则邻接检测位被设置为第二值(步骤360)。例如,adj_detect位被设置为
″0″

26.返回值可被存储器控制器创建为受影响dram设备中所有adj_detect位的逻辑or,并且该值可作为安全性检查指令的结果被返回(例如,在进位标志中)。然后,os可基于该信息采取附加动作。
27.例如,物理地址可被解除映射并重新映射到别处。另选地,可向用户返回错误。如果尝试重新映射,则可再次执行上述方法300以检查新的页面分配是否被dram设备视为从rowhammer是安全的。
28.除此之外或另选地,例如,上文所描述的os动作可由处理器102自身执行(例如,x86微码,在转译后备缓冲器(tlb)未命中上或在从页面故障返回上)。可触发硬件动作(例如,页面修复或具有独特代码的对os的第二页面故障)。
29.系统软件可执行安全性检查指令作为系统的周期性安全性扫描的一部分,其中os或管理程序可选择退出该dram页面以降低该页面中rowhammer位翻转的风险。
30.安全性检查指令也可在用户应用或虚拟机(vm)中可用,而不对系统软件/管理程序可用(例如,在用户应用或vm是可信实体的情况下)。因为安全性检查指令仅返回分配给该应用/vm的虚拟地址是否是被攻击方,而不返回关于哪些其他地址或vm是攻击方或者页面本身是否是攻击方的信息,所以vm可检查其自身的安全性并且基于潜在页面漏洞来选择
是否采取动作而不损害其他应用/vm的安全性。
31.所提供的方法可以在通用计算机、处理器或处理器核心中实现。举例来说,合适的处理器包括通用处理器、专用处理器、常规处理器、数字信号处理器(dsp)、多个微处理器、与dsp核相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(asic)、现场可编程门阵列(fpga)电路,任何其他类型的集成电路(ic)和/或状态机。可以通过使用处理的硬件描述语言(hdl)指令和包括网表的其他中间数据(能够存储在计算机可读介质上的此类指令)的结果来配置制造过程而制造此类处理器。这种处理的结果可以是掩码,然后在半导体制造过程中使用这些掩码来制造实现本公开的特征的处理器。此外,尽管以上描述的方法和装置是在控制和配置pcie链路和端口的上下文中描述的,但这些方法和装置可在任何在其中协商链路宽度的互连协议中使用。
32.本文提供的方法或流程图可以在并入非暂态计算机可读存储介质中的计算机程序、软件或固件中实现,以供通用计算机或处理器执行。非暂态计算机可读存储介质的示例包括只读存储器(rom)、随机存取存储器(ram)、寄存器、高速缓存存储器、半导体存储器设备、磁性介质(例如内部硬盘和可移动磁盘)、磁光介质和光学介质(例如cd-rom磁盘)以及数字多功能磁盘(dvd)。例如,上述方法可在处理器102中或在计算机系统100中的任何其他处理器上实现。
33.***
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表