CN108694316A - 用于现场可编程门阵列(fpga)存储器内控制器的安全监测代理 - Google Patents
用于现场可编程门阵列(fpga)存储器内控制器的安全监测代理 Download PDFInfo
- Publication number
- CN108694316A CN108694316A CN201810166613.0A CN201810166613A CN108694316A CN 108694316 A CN108694316 A CN 108694316A CN 201810166613 A CN201810166613 A CN 201810166613A CN 108694316 A CN108694316 A CN 108694316A
- Authority
- CN
- China
- Prior art keywords
- memory
- fpga
- strategy
- unauthorized access
- trial
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 263
- 238000012544 monitoring process Methods 0.000 title claims description 12
- 230000009471 action Effects 0.000 claims abstract description 36
- 238000012545 processing Methods 0.000 claims description 50
- 238000003860 storage Methods 0.000 claims description 18
- 238000013507 mapping Methods 0.000 claims description 14
- 238000000034 method Methods 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 7
- 230000002452 interceptive effect Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 11
- 238000007726 management method Methods 0.000 description 16
- 239000003990 capacitor Substances 0.000 description 7
- 230000008859 change Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
公开了与防止获得对计算设备的未授权访问相关的技术。所述技术包括一种机器可读介质,在其上存储有指令,所述指令包括当被执行时使设备进行以下操作的指令:识别主机硬件配置;获得基于所述主机硬件配置的策略;基于所述策略监测两个或更多个存储器事务;基于所述存储器事务识别存储器事务模式,其中,所述存储器事务模式与获得对所述设备的未授权访问的尝试相关联;以及基于所述策略采取一个或多个动作来干扰对所述设备进行未经授权访问的尝试。
Description
技术领域
本文中描述的实施例总体上涉及计算机安全领域,并且更具体地涉及与用于FPGA存储器内控制器的安全监测代理相关的方法和系统。
背景技术
在当今社会中,计算机安全领域已经变得越来越重要且复杂。针对通常具有多个互连计算机(例如,终端用户计算机、膝上型计算机、服务器、打印设备等)的几乎每个企业或组织而配置计算机网络环境。在许多这种企业中,信息技术(IT)管理员的任务可能是维护和控制网络环境,包括主机、服务器以及其他网络计算机上的可执行软件文件(例如,web应用文件)。随着网络环境中的可执行软件文件的数量增大,高效地控制、维护以及修复这些文件的能力可能变得更加困难。此外,当今计算机和通信网络涵盖如智能电话、平板计算机等移动设备,所述移动设备允许用户在这些设备上快速地并且以最低限度监管下载和安装应用。因此,需要创新工具来帮助IT管理员对在计算机和通信网络环境内的移动设备上的应用进行有效控制和管理。这种工具可以包括与用于FPGA存储器内控制器的安全监测代理相关的工具。
恶意软件可能尝试通过利用计算设备的物理特性来获得对计算设备的未授权访问。作为示例,被称为rowhammer的一类攻击可能尝试使用特别精心制作的存储器事务模式来获得未授权访问。这些存储器事务模式被精心制作成以本身就是被允许的特定方式访问存储器。然而,在rowhammer攻击中,这些存储器访问迅速地重复例如“锤击(hammering)”特定存储器行、使相邻行中的一个或多存储器位翻转并且允许对存储器的特权部分的访问。因此,需要一种用于监测并减轻基于存储器的利用的有效方法,比如,用于FPGA存储器内控制器的安全监测代理。
附图说明
图1是框图,展示了根据一个实施例的用于监测FPGA存储器内控制器的系统。
图2是流程图,展示了根据一个实施例的对用于FPGA存储器内控制器的安全代理的调用。
图3是流程图,展示了根据一个实施例的用于监测FPGA存储器内控制器的技术。
图4是调用流程图,展示了根据一个实施例的用于FPGA存储器内控制器的调用流程。
图5是框图,展示了根据一个实施例的可编程设备。
图6是框图,展示了根据一个实施例的可编程设备。
具体实施方式
在以下描述中,出于解释的目的,阐述了许多具体细节以提供对本发明的透彻理解。然而,对于本领域技术人员而言将明显的是,可以在不具有这些具体细节的情况下实践本发明。在其他实例中,为了避免使本发明模糊,以框图的形式示出了结构和设备。对不具有下标或后缀的数字的引用被理解为引用对应于所引用数字的下标和后缀的全部实例。此外,在本公开中使用的语言主要是为了可读性和指导的目的而被选择的,并且可能尚未被选择为描绘或限制创造性主题,有必要借助权利要求书来确定这样的创造性主题。在说明书中提及“一个实施例”或者“实施例”意味着结合实施例所描述的特定特征、结构或特性被包含在本发明的至少一个实施例中,并且多次提及“一个实施例”或“实施例”不应当被理解为一定都是指相同的实施例。
如本文中所使用的,信任通常是指设备将出于特定目的以特定方式表现的预期。在建立信任关系时,可信组件能够通过收集并提供组件还未被篡改的证据来保证或证明其自身的完整性。例如,可以对组件进行测量以生成与组件相关联的指示,使得组件的任何变化都产生指示的变化。在一个示例中,可以产生组件的密码散列值,密码散列具有很强的耐冲突性,使得组件的任何变化都导致不同的散列值。可以将这种所产生的散列值与预期值进行比较,以便检测组件的任何变化。然后,可以传递对组件完整性的指示,从而证明在建立信任关系时组件还未被篡改。另外,可以使用其他证明技术,并且还可以根据需要使用其他类型的测量技术。
如本文中所使用的,术语“计算设备”可以指单个计算设备或一起工作以执行被描述为在计算设备上执行或由计算设备执行的功能的多个计算设备。类似地,“机器可读介质”可以指可以一起存储被描述为存储在机器可读介质上的材料的单个物理介质或多个介质。
如以上所指示的,恶意软件可能尝试通过利用计算设备的组件的物理特性来获得对计算设备的未授权访问。作为示例,一些恶意软件可能对计算设备的存储器执行rowhammer型攻击。
在许多情况下,计算设备包括存储器,所述存储器包括用于提供具有成本效益且大容量的主存储器的动态随机存取存储器(DRAM)。一般而言,DRAM结构简单,每位(例如,存储器单元)仅具有一个晶体管和一个电容器。基于位的电容器的充电状态将数据存储在DRAM中。位的电容器随着时间的推移而失去电荷并且必须被周期性地重写(例如,刷新)以便保持位的状态。由于位相对简单,所以可以以具有经由字线连接的行以及经由位线连接的列的阵列来密集地安排位。位线连接至感测放大器。为了读取特定位,特定位所处的行中的所有位被激活并且被感测放大器感测。当激活时,位的电容器充电或放电到位线和感测放大器中,这读取电压变化。行内的所有位被同时读取,即使软件过程仅请求了单个位。对行的位的这种读取破坏了存储在位中的电荷,并且需要在读取操作之后重写位。
随着DRAM密度已经增大,位的大小和充电容量已经减小,从而导致更低的操作噪声容限以及对不想要的电磁交互的增大的敏感性。可以通过快速访问目标行附近的特定DRAM行来利用这种敏感性。快速行激活可能引起相邻行选择线中的电压波动,从而潜在地引起相邻行中的高于预期的电容器放电率。如果位未被及时刷新,则这种增大的放电率可能使某些电容器失去足以翻转与电容器相关联的位的电荷。
解决这种漏洞的先前尝试已经尝试增大刷新存储器的速率。虽然增大存储器的刷新速率减小了rowhammer型攻击将成功的概率,但是这并不尝试解决基本漏洞。
通常,为了使位翻转,一个或多个相邻行被快速访问。为了有效地利用所引起的位翻转,攻击者通常以特定行或位为目标。这种特定的目标选择利用系统物理地址(SPA)到DRAM物理地址(DPA)之间的一致性映射。通常,处理器可以使用特定SPA来对存储器进行寻址。这种特定SPA表示特定DPA,但是SPA自身不指示DRAM中的确切行和列地址。相反,SPA必须被映射到行和列DPA。例如,SPA可以是十六进制数,比如,0xf0000001。然而,这种数本身并不指示由SPA引用的特定位物理地位于何处。相反,SPA被映射到特定DPA。这种映射可以由例如存储器控制器来执行,所述存储器控制器将SPA映射到相关联DPA。然后,存储器控制器可以从存储器模块请求来自特定行的所有位。存储器控制器在接收到来自所请求行的所有位之后选择特定位,并且返回由SPA引用的所选位。
SPA与DPA之间的这种映射可能基于存储器模块的物理特性(比如,模块内的存储器芯片的数量、存储器芯片的容量、所利用的行和列的数量等)而变化。然而,在给定特定的一组硬件特性的情况下,SPA与DPA之间的映射通常是固定的,并且所述映射可以被猜到或被反向工程化。在一些情况下,这种映射可能在存储器控制器中在制造时间固定并且不可以被改变。
在某些情况下,将存储器控制器实现为FPGA允许存储器控制器以及映射被重新配置并且更新以便应对发展中的安全威胁。通常,FPGA是可以在制造之后被重新配置的集成电路。例如,可以在制造之后更新在FPGA上实现的存储器控制器以改变SPA与DPA之间的映射。在检测到尝试获得未授权访问的情况下,可以更新FPGA存储器控制器以对SPA到DPA映射进行加扰。这种加扰防止恶意软件将行定位在特定行或位附近。可以上传并分析来自所检测到的尝试的信息以帮助识别新的或发展的威胁,并且可以更新FPGA存储器控制器以解决这些威胁。
应该理解的是,尽管结合DRAM和rowhammer型攻击进行了描述,但是本文中所描述的技术可以应用于其他类型的存储器以及具有可描述的存储器事务模式的其他利用。
图1是框图,展示了根据一个实施例的用于监测FPGA存储器内控制器的系统100。如所展示的,系统100可以包括计算设备102、网络150以及云管理服务器设备160。计算设备可以包括CPU 104连同系统存储器106、FPGA存储器控制器112以及可信执行环境(TEE)114。系统存储器106可以包括一个或多个存储器模块108A、...、108N(统称为108)。存储器模块108可以用于系统主存储器并且可以包括DRAM模块。每个DRAM模块还可以包含一个或多个存储器芯片(未示出)。然而,虽然结合基于DRAM的存储器呈现了示例,但是应该理解的是,可以利用其他类型的存储器来实现其他实施例。每个存储器模块108可以包括串行存在检测(SPD)模块110A、...、110N(统称为110)。SPD模块包含SPD信息,所述信息描述了存储器模块的特性,比如,时序信息、模块的大小、所支持的电压、修订号、制造商、序列号等等。
FPGA存储器控制器112可以包括用于处理存储器事务的多个模块,比如,用于解码所请求的存储器事务的命令解码模块116、用于初始化DRAM模块状态的初始化模块118、用于基于DPA对特定位通道进行映射的数据路径模块120以及应用模块122。FPGA存储器控制器还可以包括安全代理124,所述安全代理可以包括存储器访问监测器126、记录管理器128、撤销管理器130以及加扰器模块132。安全代理124的存储器访问监测器126可以监测存储器请求和事务以识别与获得未授权访问的尝试相关联的可疑存储器事务模式。记录管理器128可以记录所监测到的存储器请求或安全代理的其他功能。这些记录可以被加密并且上传至云管理服务器160以供进一步分析。撤销管理器130可以执行安全策略。例如,可以在云管理服务器160中将存储器模块和存储器控制器的安全组合的列表维持在白名单中。如果存储器模块和存储器控制器的特定组合未被列入白名单(或被列入黑名单),则对某些资源的访问对于存储器模块和FPGA存储器控制器组合来说可能是受限的。例如,对敏感数据的访问可能受限制、在TEE中的执行可能受限、传递警告或产生错误,或者可以强加其他策略限制。加扰器模块132可以实现并协调DPA到SPA加扰。
如所示的,FPGA存储器控制器112将存储器控制器的功能实现为FPGA。可以理解的是,FPGA可以用于结合在制造之后不可重新配置的其他类型的处理器和集成电路(比如,专用集成电路(ASIC))为存储器控制器提供某些功能。
TEE 114可以通信地耦合至FPGA存储器控制器112。TEE 114可以由安全组件(比如,可信平台模块(TPM))提供。通常,TPM是驻留在处理系统内的硬件组件,并且提供各种设施和服务以通过实现对信任关系的建立来增强处理系统的安全性。可以经由例如通过对软件、固件、加载器或其他组件执行密码散列来测量软件组件和硬件组件从而证明计算系统的组件的真实性来建立信任关系。可以对代码、数据结构、配置、信息或可以加载到存储器中的任何事物进行测量,并且测量被执行为使得如果正被测量的组件已经更改或改变,则测量的结果将会不同。经证明的软件可以在TEE 114中执行或可以从所述TEE处获得服务,并且TEE 114确保在其内执行的软件是真实且可信的。TEE 114还可以经由网络150通信地耦合至云管理服务器160。这种连接可以是带外(例如,单独的专用通信信道)连接,并且这种连接可以用于对FPGA存储器控制器进行远程管理和配置。
如所示,FPGA寄存器传送级(RTL)管理器134以及FPGA策略管理器136可以在TEE114的上下文中执行。FPGA策略管理器136可以获得指示攻击的存储器事务模式并且可以向FPGA存储器控制器提供所述存储器事务模式。FPGA策略管理器136还可以提供并且执行可以针对FPGA存储器控制器112而设置的各种策略。RTL管理器134可以协调对FPGA存储器控制器112的重新配置。例如,RTL控制管理器134可以与配置控制器138一起基于对FPGA电路配置的特定RTL描述对重构安全代理124的一个或多个模块进行协调。
可以经由网络150从云管理服务器160上的RTL-SPD撤销管理器162处获得特定比特流或策略。网络150的示例包括局域网(LAN)、一般广域网(WAN)和/或公共网络(例如,互联网)。
RTL-SPD撤销管理器162可以基于来自存储器模块的SPD信息维持存储器模块和FPGA存储器控制器的组合的白名单。RTL-SPD撤销管理器162还可以包括与FPGA存储器控制器和存储器模块的某些组合相关联的RTL。这些RTL可以描述FPGA存储器控制器的各种配置,所述配置可以帮助解决潜在漏洞。例如,如果某个存储器模块和存储器控制器组合容易受到rowhammer型攻击的影响,则可以产生描述FPGA存储器控制器的实现DPA到SPA加扰的RTL并且可以向FPGA计算设备传输所述RTL。在具有存储器模块和FPGA存储器控制器的某些组合的计算设备接触RTL-SPD撤销管理器162的情况下,计算设备可以接收实现DPA到SPA加扰的RTL以供由FPGA存储器控制器使用。
RTL-SPD撤销管理器162还可以随着时间的推移经由针对存储器访问请求的记录管理器128从多个计算设备接收记录信息。这种记录信息可以由特性排名引擎166进行分析,所述特性排名引擎可以应用各种机器学习和模式识别技术来判定特定FPGA存储器控制器和存储器模块组合是否易受攻击。如果是,则推荐引擎164可以确定适当策略或启动过程,可以通过所述过程准备RTL。
图2是流程图,展示了根据一个实施例的用于配置FPGA存储器内控制器的技术200。在框202处,存储器控制器被验证为基于FPGA的存储器控制器。在框204处,识别主机硬件能力。例如,FPGA RTL管理器可以基于SPD信息识别与FPGA存储器控制器的能力(比如,可用逻辑块或当前RTL版本)以及存储器模块的能力相关的信息。在框206处,可以获得策略和动作。例如,FPGA RTL管理器可以经由网络连接至RTL-SPD撤销管理器并且可以向所述RTL-SPD撤销管理器提供存储器模块和FPGA存储器控制器能力信息。当被FPGA RTL管理器接触时,RTL-SPD撤销管理器向FPGA RTL管理器返回策略、动作以及RTL。
RTL-SPD撤销管理器可以具有与FPGA存储器控制器和存储器模块相关的信息。例如,RTL-SPD撤销管理器可以维持SPD和与SPD相关联的策略以及针对兼容FPGA存储器控制器的相应RTL的列表,所述FPGA存储器控制器用于所述列表中的SPD。可能存在多于一个列表。一种可能性包括针对FPGA存储器控制器和SPD的组合的白名单,所述SPD被认为是安全的和/或存在可用于解决已知漏洞的针对所述SPD的RTL。所述列表还可以包括SPD的黑名单,已知所述黑名单是可利用的并且可能不存在可用于解决所述利用的针对所述SPD的RTL。
针对特定的一组存储器模块和FPGA存储器控制器的动作和策略可以例如指定针对已知攻击的一个或多个攻击特征存储器事务模式。所述动作和策略可以包括可疑存储器事务模式,比如,具有在某个时间段内访问特定行的一定数量的尝试的存储器事务模式。可以响应于检测到已知或可疑存储器事务模式而采取的指定动作的示例可以包括加扰或记录。所述动作和策略还可以例如指示特定的一组存储器模块和FPGA存储器控制器不被认为是安全的。在这种情况下,可以向操作系统或应用层传递指示这种状态的警告。在一些情况下,可以禁用对敏感数据的访问,或将执行基于其他策略的动作。
在框208处,可以验证任何所接收到的RTL和相关联策略。例如,FPGA策略管理器可以作为证明过程的一部分而检查所接收到的RTL以及相关联策略和动作的证明信息。如果在框210处被成功验证,则可以在框212处安装或配置所接收到的RTL以及相关联策略和动作。策略和动作可以由FPGA策略管理器实施。对于所接收到的RTL,FPGA RTL管理器可以确定FPGA存储器控制器的哪些部分应当被重新配置,并且指示配置控制器将FPGA存储器控制器置于FPGA存储器控制器的那些部分可以被重新配置的状态。例如,在特定RTL可以重新配置安全代理的加扰器模块的情况下,配置控制器可以接收表明特定RTL比特流重新配置加扰器模块的指示。然后,配置控制器准备FPGA的那个部分用于重新配置。然后,RTL比特流可以被写入到FPGA的那个部分中。
图3是流程图,展示了根据一个实施例的用于监测FPGA存储器内控制器的技术300。在框302处,存储器控制器被验证为基于FPGA的存储器控制器。在框304处,可以监测存储器事务。存储器访问监测器可以包括或可以能够访问提供与存储器访问相关的信息的各种存储器计数器。例如,存储器计数器可以对以下各项进行计数:行被访问的次数、访问发生的频率(就所使用的存储器宽带而言)、由于存储器访问而发送多少吞吐量数据等等。存储器访问监测器可以监测存储器计数器,以便识别可疑存储器事务模式或与攻击特征相关联的存储器事务模式。另外,监测也可以考虑存储器配置。例如,还可以监测存储器位刷新的速率或存储器是否被节流。如果在框306处检测到可疑或攻击存储器事务模式,则在框308处执行已配置的策略。特定策略可以与已知攻击特征存储器事务模式(比如,rowhammer型攻击)相关联。如果检测到已知攻击特征存储器事务模式,则特定策略可以实施DPA到SPA加扰。在某些情况下,这种加扰可以通过重新配置FPGA存储器控制器的一个或多个模块(比如,数据路径模块)来实施。这种重新配置可以基于之前获得的RTL。在这种情况下,FPGA可以由FPGA RTL管理器和配置控制器来重新配置。在其他情况下,在之前未获得RTL的情况下,FPGA策略管理器可以尝试连接至RTL-SPD撤销管理器以检查RTL是否可用或下载可用RTL。在某些情况下,可以采取默认动作。例如,在可疑存储器事务模式的情况下,可以启动记录或比通常情况更详细的记录。还可以提高刷新存储器位的速率。在框310处,可以记录所采取的任何动作。例如,记录管理器可以被配置成记录安全代理的任何功能,比如,存储器事务模式比较、重新配置、加扰、存储器配置等。还可以基于例如存储器状态、所观察到的存储器事务模式、策略等而改变记录的级别。
图4是调用流程图,展示了根据一个实施例的用于FPGA存储器内控制器的调用流程400。在流程402处,FPGA策略管理器向云管理服务器传输主机硬件信息。在识别主机硬件(比如,基于SPD信息的存储器模块以及FPGA存储器控制器)之后,FPGA策略管理器连接至云管理服务器并且传输主机硬件信息。云管理服务器可以使用这种信息来识别RTL、策略、撤消信息、攻击特征或与所识别的主机硬件相关联的其他信息。在流程404处,向FPGA策略管理器返回由云管理服务器识别的信息。可以基于由FPGA策略管理器识别的这种信息实施策略、重新配置FPGA存储器控制器或更新攻击特征。可以通过由TEE进行的证明来验证所返回的信息以确保信息可信。FPGA RTL管理器可以在流程406处确认接收并且验证了信息。
在流程408处,可以由FPGA存储器控制器的一个或多个模块(例如,由存储器访问监测器)实施策略、RTL或攻击特征。存储器访问监测器可以接收攻击,监测攻击特征的存储器事务模式,并且如果检测到攻击特征则采取由策略指定的动作。另外,可以记录与存储器事务相关的信息。例如,可以记录与由存储器监测器观察到的存储器事务模式相关的信息。在某些情况下,比如当观察到可疑存储器事务模式时,如相比于在不存在可疑存储器事务模式的情况下记录的记录,可以保持与更详细的记录。另外,当存储器模块针对设备而改变时(比如,在热添加或热插拔期间),可以触发对与存储器事务模式相关的信息的记录。在某些情况下,可以根据策略例如以设定的间隔配置记录或由云管理服务器在按需基础上触发记录。在410处,可以将存储器事务记录上传至云管理服务器。云管理服务器可以从多个计算设备处收集存储器事务记录并且应用机器学习算法来检测例如与获得跨多个计算设备的未授权访问的尝试相关联的存储器事务模式。然后,可以将所检测到的存储器事务模式添加到已知攻击模式,或者可以准备RTL例如以实施加扰。
现在参考图5,框图展示了根据一个实施例的可以用于实施本文中所描述的技术的可编程设备500。图5中所示的可编程设备500是包括第一处理元件570和第二处理元件580的多处理器可编程设备。虽然示出了两个处理元件570和580,但是可编程设备500的实施例也可以只包括一个这种处理元件。
可编程设备500被展示为点到点互连系统,在所述系统中,第一处理元件570和第二处理元件580经由点到点互连550耦合。图5中所示的互连中的任何或全部互连可以被实现为多点总线,而不是点到点互连。
如图5所示,处理元件570以及580中的每一个可以是包括第一处理器核和第二处理器核(即,处理器核574a和574b以及处理器核584a和584b)的多核处理器。这种核574a、574b、584a、584b可以被配置成执行指令代码。然而,根据需要,其他实施例可以使用作为单核处理器的处理元件。在具有多个处理元件570、580的实施例中,根据需要,可以使用不同数量的核来实现每个处理元件。
每个处理元件570、580可以包括至少一个共享高速缓存546。共享高速缓存546a、546b可以存储分别由处理元件的一个或多个组件(诸如核574a、574b和584a、584b)利用的数据(例如,指令)。例如,共享高速缓存可以本地高速缓存存储在存储器532、534中的数据以供由处理元件570、580的组件更快速地访问。在一个或多个实施例中,共享高速缓存546a、546b可以包括一个或多个中级高速缓存,比如2级(L2)、3级(L3)、4级(L4)或其他级别的高速缓存、最后一级高速缓存(LLC)或其组合。
虽然图5出于附图的清晰性的目的展示了具有两个处理元件570、580的可编程设备,但是本发明的范围不限于此并且可以存在任何数量的处理元件。可替代地,处理元件570、580中的一个或多个可以是除了处理器之外的元件,比如图形处理单元(GPU)、数字信号处理(DSP)单元、现场可编程门阵列或任何其他可编程处理元件。处理元件580可以是与处理元件570异构的或非对称的。就包括架构特性、微架构特性、热特性、功耗特性等的优点的度量范围而言,处理元件570、580之间可能存在各种各样的差异。这些差异可以有效地将其本身表现为处理元件570、580之间的不对称性和异构性。在一些实施例中,各种处理元件570、580可以驻留在同一管芯封装体中。
第一处理元件570可以进一步包括存储器控制器逻辑(MC)572和点到点(P-P)互连576和578。类似地,第二处理元件580可以包括MC 582以及P-P互连586和588。如图5所展示的,MC 572和MC 582将处理元件570、580耦合至对应存储器(即,存储器532和存储器534),这些存储器可以是主存储器的本地附接至对应处理器的部分。虽然MC逻辑572和582被展示为集成到处理元件570、580中,但是在一些实施例中,存储器控制器逻辑可以是处理元件570、580之外的分立逻辑而不是集成在其中。
处理元件570和处理元件580可以通过链路552和554经由对应的P-P互连576和586耦合至I/O子系统590。如在图5中所展示的,I/O子系统590包括P-P互连594和598。此外,I/O子系统590包括用于将I/O子系统590与高性能图形引擎538耦合的接口592。在一个实施例中,总线(未示出)可以用于将图形引擎538耦合到I/O子系统590。可替代地,点到点互连539可以耦合这些组件。
进而,I/O子系统590可以经由接口596耦合至第一链路516。在一个实施例中,第一链路516可以是外围组件互连(PCI)总线,或诸如PCI快速总线或另一I/O互连总线等总线,但是本发明的范围不限于此。
如图5中所展示的,各种I/O设备514、524可连同桥接器518一起耦合至第一链路516,所述桥接器可以将第一链路516耦合至第二链路510。在一个实施例中,第二链路520可以是低管脚数(LPC)总线。在一个实施例中,各种设备可以耦合至第二链路520,所述设备包括例如键盘/鼠标512、(多个)通信设备526(所述通信设备进而可以与计算机网络503进行通信)、以及可以包括代码530的数据存储单元528(如磁盘驱动器或者其他大容量存储设备)。代码530可以包括用于执行上文所描述的技术中的一种或多种的实施例的指令。进一步地,音频I/O 524可以耦合至第二链路520。
注意,设想了其他实施例。例如,系统可以实现多分支总线或另一个这种通信拓扑结构,而不是图5的点到点架构。虽然链路516和520在图5中被展示为总线,但是可以使用任何期望类型的链路。此外,可以可替代地使用比图5中所展示的更多或更少的集成芯片来对图5的元件进行分区。
现在参考图6,框图展示了根据另一个实施例的可编程设备600。已经从图6中省略了图6的某些方面以避免使图6的其他方面模糊。
图6展示了处理元件670、680可以分别包括集成存储器和I/O控制逻辑(“CL”)672和682。在一些实施例中,672、682可以包括如以上结合图6所描述的存储器控制逻辑(MC)。此外,CL 672、682还可以包括I/O控制逻辑。图6展示了不仅存储器632、634可以耦合至CL672、682,而且那个I/O设备644也可以耦合至控制逻辑672、682。传统I/O设备615可以通过接口696耦合到I/O子系统690。每个处理元件670、680可以包括多个处理器核,所述多个处理器核在图6中被展示为处理器核674A、674B、684A和684B。如图6所示,I/O子系统690包括使用链路652和654连接至处理元件670和680的点到点(P-P)互连676和686的P-P互连694和698。还可以分别通过链路650以及互连678和688将处理元件670与680进行互连。
在图5和图6中描绘的可编程设备是可以用于实现本文所讨论的各种实施例的可编程设备的实施例的示意性说明。在图5和图6中描绘的可编程设备的各个组件可以被组合在片上系统(SoC)架构中。
以下示例涉及进一步实施例。
示例1是一种机器可读介质,在其上存储有指令,所述指令包括当被执行时使设备进行以下操作的指令:识别主机硬件配置;获得基于所述主机硬件配置的策略;基于所述策略监测两个或更多个存储器事务;基于所述两个或更多个存储器事务识别存储器事务模式,其中,所述存储器事务模式与获得对所述设备的未授权访问的尝试相关联;以及基于所述策略采取动作来干扰获得对所述设备的未授权访问的尝试。
在示例2中,如示例1所述的主题可选地包括:其中,所述指令进一步包括当被执行时使所述设备在可信执行环境内验证所获得的所述策略的指令。
在示例3中,如示例1所述的主题可选地包括:其中,所述动作包括重新配置存储器映射。
在示例4中,如示例1所述的主题可选地包括:其中,所述主机硬件配置包括与存储器控制器和存储器模块相关的信息。
在示例5中,如示例1至4中任一项所述的主题可选地包括:其中,所述指令进一步包括当被执行时使所述设备进行以下操作的指令:记录与所述两个或更多个存储器事务相关的信息;以及向服务器设备传输所记录的信息。
在示例6中,如示例5所述的主题可选地包括:其中,所述记录是基于所述策略、对存储器模块进行热插拔或对存储器模块进行热添加中的至少一项来配置的。
在示例7中,如示例1所述的主题可选地包括:其中,所述策略是使用可信执行环境与服务器设备之间的通信信道来获得的。
示例8是一种可编程设备,被配置成防止获得对所述可编程设备的未授权访问,所述可编程设备包括:处理元件;现场可编程门阵列(FPGA)存储器控制器,耦合至所述处理元件;以及存储器,在其上存储有指令,所述指令包括当被执行时使所述处理元件进行以下操作的指令:基于策略监测两个或更多个存储器事务;基于所述两个或更多个存储器事务识别与获得对所述可编程设备的未授权访问的尝试相关联的存储器事务模式;以及响应于所述识别而将所述FPGA存储器控制器配置成干扰所述尝试。
在示例9中,如示例8所述的主题可选地包括:其中,所述指令进一步包括当被执行时使所述处理元件进行以下操作的指令:获得用于重新配置所述FPGA存储器控制器的比特流;以及在可信执行环境内验证所述比特流,其中,当被执行时使所述处理元件配置所述FPGA存储器控制器的所述指令包括当被执行时使所述处理元件向所述FPGA存储器控制器应用所述比特流的指令。
在示例10中,如示例9所述的主题可选地包括:其中,所述比特流包括对FPGA电路配置的寄存器传送级描述。
示例11是一种机器可读介质,在其上存储有指令,所述指令包括当被执行时使服务器设备进行以下操作的指令:从客户端设备接收主机硬件配置;识别基于所述主机硬件配置的策略,所述策略指示供由所述客户端设备基于在两个或更多个存储器事务的基础上确定的存储器事务模式来实施的动作;以及向所述客户端设备发送所述策略。
在示例12中,如示例11所述的主题可选地包括:其中,所述动作包括重新配置存储器映射。
在示例13中,如示例11所述的主题可选地包括:其中,所述主机硬件配置包括与存储器控制器和存储器模块相关的信息。
在示例14中,如示例13所述的主题可选地包括:其中,所述存储器控制器包括现场可编程门阵列存储器控制器。
在示例15中,如示例11至14中任一项所述的主题可选地包括:其中,所述指令进一步包括当被执行时使所述服务器设备进行以下操作的指令:向所述客户端设备发送用于重新配置现场可编程门阵列(FPGA)存储器控制器的比特流,并且其中,重新配置存储器映射包括向所述FPGA存储器控制器应用所述比特流。
在示例16中,如示例15所述的主题可选地包括:其中,所述比特流包括对FPGA电路配置的寄存器传送级描述。
在示例17中,如示例11至14中任一项所述的主题可选地包括:其中,所述指令进一步包括当被执行时使所述服务器设备进行以下操作的指令:获得与所述两个或更多个存储器事务相关的记录信息;确定用于干扰获得对所述客户端设备的未授权访问的尝试的动作;以及向所述客户端设备发送所确定的动作。
在示例18中,如示例11所述的主题可选地包括:其中,所述指令进一步包括当被执行时使所述服务器设备进行以下操作的指令:从多个客户端设备处获得与两个或更多个存储器事务相关的记录信息;基于来自所述多个客户端设备的所述记录信息来识别获得未授权访问的尝试;确定用于干扰获得未授权访问的尝试的动作;以及向所述多个客户端设备发送所确定的动作。
示例19是一种用于防止未授权访问的方法,包括:识别设备的主机硬件配置;获得基于所述主机硬件配置的策略;基于所述策略监测两个或更多个存储器事务;基于所述两个或更多个存储器事务识别存储器事务模式,其中,所述存储器事务模式与对所述设备获得未授权访问的尝试相关联;以及基于所述策略采取动作来干扰获得对所述设备的未授权访问的尝试。
在示例20中,如示例19所述的主题可选地包括:其中,所述动作包括重新配置存储器映射。
在示例21中,如示例19所述的主题可选地包括:其中,所述主机硬件配置包括与存储器控制器和存储器模块相关的信息。
在示例22中,如示例21所述的主题可选地包括:其中,所述存储器控制器包括现场可编程门阵列存储器控制器。
在示例23中,如示例19至23中任一项所述的主题可选地包括:进一步包括:获得用于重新配置现场可编程门阵列(FPGA)存储器控制器的比特流,其中,所述动作包括验证所述比特流以及向所述FPGA存储器控制器应用所述比特流。
在示例24中,如示例23所述的主题可选地包括:其中,所述比特流包括对FPGA电路配置的寄存器传送级描述。
在示例25中,如示例19至23中任一项所述的主题可选地包括:进一步包括:记录与所述两个或更多个存储器事务相关的信息;以及向服务器设备传输所记录的信息。
示例26是一种用于防止由设备获得未授权访问的装置,包括:用于识别所述设备的主机硬件配置的装置;用于获得基于所述主机硬件配置的策略的装置;用于基于所述策略监测两个或更多个存储器事务的装置;用于基于所述两个或更多个存储器事务识别存储器事务模式的装置,其中,所述存储器事务模式与获得对所述设备的未授权访问的尝试相关联;以及用于基于所述策略采取动作来干扰获得对所述设备的未授权访问的尝试的装置。
在示例27中,如示例26所述的主题可选地包括:进一步包括用于在可信执行环境内验证所获得的所述策略的装置。
在示例28中,如示例26所述的主题可选地包括:其中,所述动作包括重新配置存储器映射。
在示例29中,如示例26所述的主题可选地包括:其中,所述主机硬件配置包括与存储器控制器和存储器模块相关的信息。
在示例30中,如示例26至29中任一项所述的主题可选地包括:进一步包括用于记录与所述两个或更多个存储器事务相关的信息的装置;以及用于向服务器设备传输所记录的信息的装置。
在示例31中,如示例30所述的主题可选地包括:其中,所述记录是基于所述策略、对存储器模块进行热插拔或对存储器模块进行热添加中的至少一项来配置的。
在示例32中,如示例26所述的主题可选地包括:其中,所述策略是使用可信执行环境与服务器设备之间的通信信道来获得的。
示例33是一种用于防止获得对客户端设备的未授权访问的装置,包括:用于识别所述客户端设备的主机硬件配置的装置;用于识别基于所述主机硬件配置的策略的装置,所述策略指示供由所述客户端设备基于在两个或更多个存储器事务的基础上确定的存储器事务模式来实施的动作;以及用于向所述客户端设备发送所述策略的装置。
在示例34中,如示例33所述的主题可选地包括:其中,所述动作包括重新配置存储器映射。
在示例35中,如示例33所述的主题可选地包括:其中,所述主机硬件配置包括与存储器控制器和存储器模块相关的信息。
在示例36中,如示例35所述的主题可选地包括:其中,所述存储器控制器包括现场可编程门阵列存储器控制器。
在示例37中,如示例33至36中任一项所述的主题可选地包括:进一步包括用于向所述客户端设备发送用于重新配置现场可编程门阵列(FPGA)存储器控制器的比特流的装置,并且其中,重新配置存储器映射包括向所述FPGA存储器控制器应用所述比特流。
在示例38中,如示例37所述的主题可选地包括:其中,所述比特流包括对FPGA电路配置的寄存器传送级描述。
在示例39中,如示例33至36中任一项所述的主题可选地包括:进一步包括用于获得与所述两个或更多个存储器事务相关的记录信息的装置;用于确定用于干扰获得对所述客户端设备的未授权访问的尝试的动作的装置;以及用于向所述客户端设备发送所确定的动作的装置。
在示例40中,如示例33至所述的主题可选地包括:进一步包括用于从多个客户端设备处获得与两个或更多个存储器事务相关的记录信息的装置;用于基于来自所述多个客户端设备的所述记录信息来识别获得未授权访问的尝试的装置;用于确定用于干扰获得未授权访问的尝试的动作的装置;以及用于向所述多个客户端设备发送所确定的动作的装置。
应当理解的是,以上描述旨在是说明性的,而非限制性的。例如,上述实施例可以彼此组合地使用。对本领域技术人员而言,在阅读了以上说明之后,许多其他的实施例都将是明显的。因此,本发明的范围应当参照所附权利要求书以及这种权利要求书有权获得的等效物的全部范围来确定。
Claims (25)
1.一种用于防止设备的未授权访问的装置,包括:
用于识别所述设备的主机硬件配置的装置;
用于获得基于所述主机硬件配置的策略的装置;
用于基于所述策略监测两个或更多个存储器事务的装置;
用于基于所述两个或更多个存储器事务识别存储器事务模式的装置,其中,所述存储器事务模式与获得对所述设备的未授权访问的尝试相关联;以及
用于基于所述策略采取动作来干扰获得对所述设备的未授权访问的尝试的装置。
2.如权利要求1所述的装置,进一步包括:用于在可信执行环境内验证所获得的所述策略的装置。
3.如权利要求1所述的装置,其中,所述动作包括重新配置存储器映射。
4.如权利要求1所述的装置,其中,所述主机硬件配置包括与存储器控制器和存储器模块相关的信息。
5.如权利要求1-4中的任一项所述的装置,进一步包括:
用于记录与所述两个或更多个存储器事务相关的信息的装置;以及
用于向服务器设备传输所记录的信息的装置。
6.如权利要求5所述的装置,其中,所述记录是基于所述策略、对存储器模块进行热插拔或对存储器模块进行热添加中的至少一项来配置的。
7.如权利要求1所述的装置,其中,所述策略是使用可信执行环境与服务器设备之间的通信信道来获得的。
8.一种可编程设备,被配置成防止对所述可编程设备的未授权访问,所述可编程设备包括:
处理元件;
现场可编程门阵列(FPGA)存储器控制器,耦合至所述处理元件;以及
存储器,在其上存储有指令,所述指令包括当被执行时使所述处理元件进行以下操作的指令:
基于策略监测两个或更多个存储器事务;
基于所述两个或更多个存储器事务,识别与获得对所述设备的未授权访问的尝试相关联的存储器事务模式;以及
响应于所述识别而将所述FPGA存储器控制器配置成干扰所述尝试。
9.如权利要求8所述的可编程设备,其中,所述指令进一步包括当被执行时使所述处理元件进行以下操作的指令:
获得用于重新配置所述FPGA存储器控制器的比特流;以及
在可信执行环境内验证所述比特流,
其中,当被执行时使所述处理元件配置所述FPGA存储器控制器的所述指令包括当被执行时使所述处理元件向所述FPGA存储器控制器应用所述比特流的指令。
10.如权利要求9所述的可编程设备,其中,所述比特流包括对FPGA电路配置的寄存器传送级描述。
11.一种用于防止对客户端设备的未授权访问的装置,包括:
用于由服务器设备从所述客户端设备接收主机硬件配置的装置;
用于识别基于所述主机硬件配置的策略的装置,所述策略指示供由所述客户端设备基于在两个或更多个存储器事务的基础上确定的存储器事务模式来实施的动作;以及
用于向所述客户端设备发送所述策略的装置。
12.如权利要求11所述的装置,其中,所述动作包括重新配置存储器映射。
13.如权利要求11所述的装置,其中,所述主机硬件配置包括与存储器控制器和存储器模块相关的信息。
14.如权利要求13所述的装置,其中,所述存储器控制器包括现场可编程门阵列存储器控制器。
15.如权利要求11-14中的任一项所述的装置,进一步包括:
用于向所述客户端设备发送用于重新配置现场可编程门阵列(FPGA)存储器控制器的比特流的装置,并且其中,重新配置存储器映射包括向所述FPGA存储器控制器应用所述比特流。
16.如权利要求15所述的装置,其中,所述比特流包括对FPGA电路配置的寄存器传送级描述。
17.如权利要求11-14中的任一项所述的装置,进一步包括:
用于获得与所述两个或更多个存储器事务相关的记录信息的装置;
用于确定用于干扰获得对所述客户端设备的未授权访问的尝试的动作的装置;以及
用于向所述客户端设备发送所确定的动作的装置。
18.如权利要求11所述的装置,进一步包括:
用于从多个客户端设备处获得与两个或更多个存储器事务相关的记录信息的装置;
用于基于来自所述多个客户端设备的所述记录信息来识别获得未授权访问的尝试的装置;
用于确定用于干扰获得未授权访问的尝试的动作的装置;以及
用于向所述多个客户端设备发送所确定的动作的装置。
19.一种用于防止未授权访问的方法,包括:
识别设备的主机硬件配置;
获得基于所述主机硬件配置的策略;
基于所述策略监测两个或更多个存储器事务;
基于所述两个或更多个存储器事务识别存储器事务模式,其中,所述存储器事务模式与获得对所述设备的未授权访问的尝试相关联;以及
基于所述策略采取动作来干扰获得对所述设备的未授权访问的尝试。
20.如权利要求19所述的方法,其中,所述动作包括重新配置存储器映射。
21.如权利要求19所述的方法,其中,所述主机硬件配置包括与存储器控制器和存储器模块相关的信息。
22.如权利要求21所述的方法,其中,所述存储器控制器包括现场可编程门阵列存储器控制器。
23.如权利要求19-23中的任一项所述的方法,进一步包括:
获得用于重新配置现场可编程门阵列(FPGA)存储器控制器的比特流,
其中,所述动作包括:验证所述比特流;以及向所述FPGA存储器控制器应用所述比特流。
24.如权利要求23所述的方法,其中,所述比特流包括对FPGA电路配置的寄存器传送级描述。
25.如权利要求19-23中的任一项所述的方法,进一步包括:
记录与所述两个或更多个存储器事务相关的信息;以及
向服务器设备传输所记录的信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/476,693 | 2017-03-31 | ||
US15/476,693 US10768863B2 (en) | 2017-03-31 | 2017-03-31 | Security monitoring agent for field programmable gate array (FPGA) in-memory controller |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108694316A true CN108694316A (zh) | 2018-10-23 |
CN108694316B CN108694316B (zh) | 2024-06-11 |
Family
ID=63286986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810166613.0A Active CN108694316B (zh) | 2017-03-31 | 2018-02-28 | 用于现场可编程门阵列(fpga)存储器内控制器的安全监测代理 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10768863B2 (zh) |
EP (1) | EP3382593B1 (zh) |
CN (1) | CN108694316B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10685110B2 (en) * | 2017-12-29 | 2020-06-16 | Sonicwall Inc. | Detection of exploitative program code |
US11443072B2 (en) * | 2018-06-29 | 2022-09-13 | Microsoft Technology Licensing, Llc | Peripheral device with resource isolation |
US11126757B2 (en) * | 2018-10-19 | 2021-09-21 | Microsoft Technology Licensing, Llc | Peripheral device |
US11210149B2 (en) * | 2018-11-16 | 2021-12-28 | International Business Machines Corporation | Prioritization of data collection and analysis for incident detection |
EP3664358A1 (en) * | 2018-12-03 | 2020-06-10 | Nagravision S.A. | Methods and devices for remote integrity verification |
EP3702947B1 (en) * | 2019-03-01 | 2021-10-20 | Siemens Aktiengesellschaft | Method for verifying at runtime of a hardware-application component a current configuration setting of an execution environment provided by a configurable hardware module |
EP3709201A1 (en) * | 2019-03-13 | 2020-09-16 | Siemens Aktiengesellschaft | Method for verifying an execution environment used for execution of at least one hardware-application provided by a configurable hardware module |
US20210334373A1 (en) * | 2020-04-22 | 2021-10-28 | Arm Limited | Moderator system for a security analytics framework |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5428758A (en) * | 1991-05-10 | 1995-06-27 | Unisys Corporation | Method and system for remapping memory from one physical configuration to another physical configuration |
US20120240185A1 (en) * | 2000-09-25 | 2012-09-20 | Harsh Kapoor | Systems and methods for processing data flows |
US20140059287A1 (en) * | 2012-06-30 | 2014-02-27 | Kuljit Bains | Row hammer refresh command |
US20140095780A1 (en) * | 2012-09-28 | 2014-04-03 | Kuljit S. Bains | Distributed row hammer tracking |
US20140156923A1 (en) * | 2012-11-30 | 2014-06-05 | Intel Corporation | Row hammer monitoring based on stored row hammer threshold value |
CN104350546A (zh) * | 2012-06-30 | 2015-02-11 | 英特尔公司 | 行锤击刷新命令 |
US20150109871A1 (en) * | 2012-11-30 | 2015-04-23 | Kuljit Bains | Row hammer monitoring based on stored row hammer threshold value |
CN104781885A (zh) * | 2012-12-21 | 2015-07-15 | 英特尔公司 | 用于对行敲击事件进行响应的方法、装置和系统 |
US20150206558A1 (en) * | 2014-01-17 | 2015-07-23 | Apple Inc. | Systems and methods for monitoring and controlling repetitive accesses to volatile memory |
US20160048457A1 (en) * | 2014-08-13 | 2016-02-18 | The Boeing Company | Dynamic memory address remapping in computing systems |
US20160080418A1 (en) * | 2014-09-14 | 2016-03-17 | Sophos Limited | Normalized indications of compromise |
US20170011792A1 (en) * | 2015-07-06 | 2017-01-12 | Samsung Electronics Co., Ltd. | Embedded refresh controllers and memory devices including the same |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4376233B2 (ja) * | 2005-02-04 | 2009-12-02 | 株式会社エヌ・ティ・ティ・ドコモ | クライアント装置、デバイス検証装置及び検証方法 |
US20090228963A1 (en) * | 2007-11-26 | 2009-09-10 | Nortel Networks Limited | Context-based network security |
US9483282B1 (en) * | 2014-05-30 | 2016-11-01 | Altera Corporation | Methods and systems for run-time hardware configuration change management |
US20160202749A1 (en) * | 2015-01-13 | 2016-07-14 | Netlist, Inc. | System and method for determining charge of a secondary power supply for a memory system |
US9449134B1 (en) * | 2015-06-25 | 2016-09-20 | International Business Machines Corporation | Dynamically reconfigurable logic circuits using native field-programmable gate array primitives |
-
2017
- 2017-03-31 US US15/476,693 patent/US10768863B2/en active Active
-
2018
- 2018-02-28 CN CN201810166613.0A patent/CN108694316B/zh active Active
- 2018-03-07 EP EP18160608.8A patent/EP3382593B1/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5428758A (en) * | 1991-05-10 | 1995-06-27 | Unisys Corporation | Method and system for remapping memory from one physical configuration to another physical configuration |
US20120240185A1 (en) * | 2000-09-25 | 2012-09-20 | Harsh Kapoor | Systems and methods for processing data flows |
US20140059287A1 (en) * | 2012-06-30 | 2014-02-27 | Kuljit Bains | Row hammer refresh command |
CN104350546A (zh) * | 2012-06-30 | 2015-02-11 | 英特尔公司 | 行锤击刷新命令 |
US20140095780A1 (en) * | 2012-09-28 | 2014-04-03 | Kuljit S. Bains | Distributed row hammer tracking |
US20140156923A1 (en) * | 2012-11-30 | 2014-06-05 | Intel Corporation | Row hammer monitoring based on stored row hammer threshold value |
US20150109871A1 (en) * | 2012-11-30 | 2015-04-23 | Kuljit Bains | Row hammer monitoring based on stored row hammer threshold value |
CN104781885A (zh) * | 2012-12-21 | 2015-07-15 | 英特尔公司 | 用于对行敲击事件进行响应的方法、装置和系统 |
US20150206558A1 (en) * | 2014-01-17 | 2015-07-23 | Apple Inc. | Systems and methods for monitoring and controlling repetitive accesses to volatile memory |
US20160048457A1 (en) * | 2014-08-13 | 2016-02-18 | The Boeing Company | Dynamic memory address remapping in computing systems |
US20160080418A1 (en) * | 2014-09-14 | 2016-03-17 | Sophos Limited | Normalized indications of compromise |
US20170011792A1 (en) * | 2015-07-06 | 2017-01-12 | Samsung Electronics Co., Ltd. | Embedded refresh controllers and memory devices including the same |
Also Published As
Publication number | Publication date |
---|---|
US10768863B2 (en) | 2020-09-08 |
US20180288097A1 (en) | 2018-10-04 |
EP3382593B1 (en) | 2021-02-24 |
EP3382593A1 (en) | 2018-10-03 |
CN108694316B (zh) | 2024-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108694316A (zh) | 用于现场可编程门阵列(fpga)存储器内控制器的安全监测代理 | |
TWI740409B (zh) | 使用密鑰之身份驗證 | |
US20220171841A1 (en) | Remote attestation for multi-core processor | |
CN103201746B (zh) | 用于数据存储装置处的安全管理供应的技术 | |
EP1754126B1 (en) | Enhancing trusted platform module performance | |
CN104969234B (zh) | 用于虚拟机的测量的信任根 | |
US10771264B2 (en) | Securing firmware | |
US20190050598A1 (en) | Secure data storage | |
US20190319807A1 (en) | Dynamic certificate management for a distributed authentication system | |
CN106326738A (zh) | 计算机安全体系架构及相关的计算方法 | |
US20170250802A1 (en) | Information-processing system, information-processing apparatus, management apparatus, and processing method | |
CN110383277A (zh) | 虚拟机监视器测量代理 | |
CN110799979B (zh) | 用于多核处理器的安全密钥存储 | |
CN107092495A (zh) | 平台固件铠装技术 | |
US10783075B2 (en) | Data security for multiple banks of memory | |
CN109587106A (zh) | 密码分区的云中的跨域安全性 | |
CN108073351A (zh) | 芯片中非易失性存储空间的数据存储方法和可信芯片 | |
CN112930659A (zh) | 用于安全密钥生成的方法和设备 | |
Deng et al. | Evaluation of cache attacks on arm processors and secure caches | |
CN111989677B (zh) | Nop雪橇防御 | |
US8429423B1 (en) | Trusted platform modules | |
US20230368193A1 (en) | Code transparency system operation | |
Dutta | Covert-and Side-Channel Attacks on Integrated and Distributed GPU Systems | |
Tian et al. | Fingerprinting and Mapping Cloud FPGA Infrastructures |
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 |