CN112256396A - 内存管理方法、系统及安全处理装置、数据处理装置 - Google Patents

内存管理方法、系统及安全处理装置、数据处理装置 Download PDF

Info

Publication number
CN112256396A
CN112256396A CN202011149069.2A CN202011149069A CN112256396A CN 112256396 A CN112256396 A CN 112256396A CN 202011149069 A CN202011149069 A CN 202011149069A CN 112256396 A CN112256396 A CN 112256396A
Authority
CN
China
Prior art keywords
processing device
base address
page table
data processing
table base
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
Application number
CN202011149069.2A
Other languages
English (en)
Other versions
CN112256396B (zh
Inventor
刘子行
应志伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202011149069.2A priority Critical patent/CN112256396B/zh
Publication of CN112256396A publication Critical patent/CN112256396A/zh
Application granted granted Critical
Publication of CN112256396B publication Critical patent/CN112256396B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

内存管理方法、系统及安全处理装置、数据处理装置,其中,所述内存管理方法包括:响应于来自数据处理装置的页表基地址寄存器写请求,安全处理装置将所述写请求对应的进程基地址写入所述页表基地址寄存器;其中,所述数据处理装置与所述安全处理装置硬件隔离,所述数据处理装置适于运行操作系统,且所述操作系统的源代码指令中不包含页表基地址寄存器的写指令;基于所述安全处理装置的设置,所述数据处理装置不具有所述页表基地址寄存器的写权限。采用上述方案能够避免ROP攻击页表基地址,提高进程页表的安全性。

Description

内存管理方法、系统及安全处理装置、数据处理装置
技术领域
本发明实施例涉及数据安全技术领域,尤其涉及一种内存管理方法、系统及安全处理装置、数据处理装置。
背景技术
页表(Page Table)是主流中央处理器(Central Processing Unit,CPU)中内存管理的核心功能。在支持分页的内存管理系统中,存放内存虚拟地址与物理地址的对应关系。为了隔离不同进程的内存访问,CPU限制进程只能访问虚拟地址,CPU通过页表可以将虚拟地址转换成物理地址,不同的进程使用不同的页表,从而达到隔离进程内存的目的。由于进程的虚拟地址空间很大,页表通常采用分级结构存储。页表通过分级结构,把虚拟地址分段映射到物理地址,并将最顶层的地址,即页表基地址保存在CR3寄存器中,故CR3寄存器也可称为页表基地址寄存器。CPU启动后,操作系统需要构建页表,并将页目录指针的物理地址,即页表基地址,放入CR3寄存器。
然而,目前的CR3寄存器中存储的页表基地址有被攻击者利用面向返回地址编程(Return-Oriented Programming,ROP)攻击进行攻击的可能。ROP攻击一种新型的基于代码复用技术的攻击,攻击者通过查找已加载的代码来构造可以执行任意逻辑的攻击链,并利用程序中的缓冲区溢出漏洞,跳转到攻击链代码并实施攻击者预设目标。
为防止ROP攻击,目前通常是把操作系统的镜像所在的页表配置为只读状态,且不可执行,CR3寄存器完全由操作系统管理。操作系统在启动时,配置操作系统本身的页表,在用户进程创建时,配置用户的进程页表。操作系统在调度用户进程时,将切换进程页表。
上述方案依赖于操作系统的高权限来保证进程页表的安全,只要攻击者不具有操作系统的权限,就无法对进程页表进行攻击。但是,由于操作系统本身是极其复杂的系统,源代码量极其庞大,软件缺陷和安全漏洞也难以避免,因此,一旦攻击者获得了操作系统权限,就可能发起ROP攻击。
发明内容
针对上述问题,本发明实施例提供一种内存管理方法、系统及安全处理装置、数据处理装置,以避免ROP攻击页表基地址,提高进程页表的安全性。
本发明实施例提供了一种内存管理方法,包括:
响应于来自数据处理装置的页表基地址寄存器写请求,安全处理装置将所述写请求对应的进程基地址写入所述页表基地址寄存器;
其中,所述数据处理装置与所述安全处理装置硬件隔离,所述数据处理装置适于运行操作系统,且所述操作系统的源代码指令中不包含页表基地址寄存器的写指令;基于所述安全处理装置的设置,所述数据处理装置不具有所述页表基地址寄存器的写权限。
可选地,所述方法还包括:响应于所述数据处理装置的镜像配置请求,所述安全处理装置配置安全页面属性表中对应的操作系统的镜像的内存空间的属性为只读,其中,所述镜像配置请求适于在所述数据处理装置将所述操作系统的镜像加载至内存后生成,所述安全页面属性表存储于内存控制器中,用于所述内存控制器对内存物理地址的直接控制。
可选地,所述操作系统的镜像对应内存中多段不连续内存空间,所述安全处理装置在所述安全页面属性表中配置多个条目,每一条目分别对应所述操作系统的镜像在所述内存中的一段内存空间的地址信息。
可选地,所述安全页面属性表中的条目包含如下信息:地址空间标识、所述地址空间标识对应的地址空间的读写权限、起始地址和地址空间长度,其中,所述地址空间标识表征所述条目对应宿主机的地址空间。
可选地,所述方法还包括:当监测到所述数据处理装置向所述页表基地址寄存器写入数据时,所述安全处理装置输出对应的安全告警信息。
可选地,所述响应于来自数据处理装置的页表基地址寄存器写请求,安全处理装置将所述写请求对应的基地址写入所述页表基地址寄存器,包括以下至少一种:
响应于来自数据处理装置的页表基地址寄存器设置请求,所述安全处理装置将所述页表基地址寄存器设置请求对应的进程基地址写入所述页表基地址寄存器;
响应于来自数据处理装置的页表基地址寄存器更新请求,所述安全处理装置将所述页表基地址寄存器更新请求对应的进程基地址写入所述页表基地址寄存器,其中,所述页表基地址寄存器更新请求基于进程切换请求触发。
本发明实施例还提供了另一种内存管理方法,包括:
数据处理装置向安全处理装置发送页表基地址寄存器写请求,使得所述安全处理装置将所述写请求对应的进程基地址写入所述页表基地址寄存器;
其中,所述数据处理装置与所述安全处理装置硬件隔离,所述数据处理装置适于运行操作系统,且所述操作系统的源代码指令中不包含页表基地址寄存器的写指令;基于所述安全处理装置的设置,所述数据处理装置不具有所述页表基地址寄存器的写权限。
可选地,所述方法还包括:所述数据处理装置将所述操作系统的镜像加载至内存后,向所述安全处理装置发送镜像配置请求,使得所述安全处理装置配置安全页面属性表中对应的操作系统的镜像的内存空间的属性为只读,其中,所述安全页面属性表存储于内存控制器中,用于所述内存控制器对内存物理地址的直接控制。
可选地,所述数据处理装置向安全处理装置发送页表基地址寄存器写请求,包括以下至少一种:
所述数据处理装置向所述安全处理装置发送页表基地址寄存器设置请求,使得所述安全处理装置将所述页表基地址寄存器设置请求对应的进程基地址写入所述页表基地址寄存器;
响应于进程切换请求,所述数据处理装置向所述安全处理装置发送页表基地址寄存器更新请求,使得所述安全处理装置将所述页表基地址寄存器更新请求对应的进程基地址写入所述页表基地址寄存器。
本发明实施例还提供了一种安全处理装置,适于与数据处理装置进行通信交互,所述安全处理装置与数据处理装置硬件隔离,所述数据处理装置适于运行操作系统,且所述操作系统的源代码指令中不包含页表基地址寄存器的写指令;基于所述安全处理装置的设置,所述数据处理装置不具有页表基地址寄存器的写权限;所述安全处理装置包括:
第一请求接收单元,适于接收来自数据处理装置的页表基地址寄存器写请求;
页表基地址写单元,适于响应于所述页表基地址寄存器写请求,将对应的进程基地址写入所述页表基地址寄存器。
可选地,所述安全处理装置还包括:
第二请求接收单元,适于接收所述数据处理装置的镜像配置请求,所述镜像配置请求适于在所述数据处理装置将所述操作系统的镜像加载至内存后生成;
配置单元,适于响应于所述数据处理装置的镜像配置请求,配置存储于内存控制器中的安全页面属性表中对应的操作系统的镜像的内存空间的属性为只读。
可选地,所述安全处理装置还包括:异常监测单元,适于当监测到所述数据处理装置向所述页表基地址寄存器写入数据时,输出对应的安全告警信息。
本发明实施例还提供了一种数据处理装置,适于与安全处理装置进行交互通信,所述数据处理装置与所述安全处理装置硬件隔离,所述数据处理装置适于运行操作系统,且所述操作系统的源代码指令中不包含页表基地址寄存器的写指令;基于所述安全处理装置的设置,所述数据处理装置不具有页表基地址寄存器的写权限,所述数据处理装置包括:
第一请求发送单元,适于向所述安全处理装置发送页表基地址寄存器写请求,使得所述安全处理装置将所述写请求对应的进程基地址写入所述页表基地址寄存器中。
可选地,所述数据处理装置还包括:第二请求发送单元,适于在确定所述操作系统的镜像加载至内存后,向所述安全处理装置发送镜像配置请求,使得所述安全处理装置配置安全页面属性表中对应的操作系统的镜像的内存空间的属性为只读,其中,所述安全页面属性表存储于内存控制器中,用于所述内存控制器对内存物理地址的直接控制。
本发明实施例还提供了一种内存管理系统,包括:数据处理装置、安全处理装置和页表基地址寄存器,其中:
所述页表基地址寄存器,适于存储页表基地址;
所述数据处理装置,适于运行操作系统,以及向所述安全处理装置发送页表基地址寄存器写请求;其中:所述操作系统的源代码指令中不包含页表基地址寄存器的写指令;所述数据处理装置不具有所述页表基地址寄存器的写权限;
所述安全处理装置,与所述数据处理装置硬件隔离,适于设置所述数据处理装置不具有所述页表基地址寄存器的写权限,以及响应于所述数据处理装置的页表基地址寄存器写请求,将所述写请求对应的进程基地址写入所述页表基地址寄存器。
可选地,所述内存管理系统还包括:内存控制器,适于存储安全页面属性表,所述安全页面属性表用于所述内存控制器对内存物理地址的直接控制;
所述数据处理装置,还适于在将所述操作系统的镜像加载至内存后,向所述安全处理装置发送镜像配置请求;
所述安全处理装置,还适于响应于所述数据处理装置的镜像配置请求,配置所述安全页面属性表中对应操作系统的镜像的内存空间的属性为只读。
可选地,所述安全处理装置,还适于当监测到所述数据处理装置向所述页表基地址寄存器写入数据时,输出对应的安全告警信息。
采用本发明实施例的内存管理方案,安全处理装置响应于来自数据处理装置的页表基地址寄存器写请求,将所述写请求对应的基地址写入页表基地址寄存器,采用所述安全处理装置对所述页表基地址寄存器这一硬件资源进行使用和管理,由于所述安全处理装置与所述数据处理装置硬件隔离,而所述数据处理装置不具有页表基地址寄存器的写权限,且所述数据处理装置中运行的操作系统的源代码指令中不包含页表基地址寄存器的写指令,因此攻击者即使获得了所述操作系统的权限,攻击者也不具有页表基地址的写权限,且从所述数据处理装置中无法找到页表基地址寄存器的写指令,故攻击者无法使用ROP攻击替换页表基地址,故可以提高进程页表的安全性。
进一步地,采用安全处理装置管理用于内存控制器对内存物理地址进行直接控制的安全页面属性表,由于所述数据处理装置在将所述操作系统的镜像加载至内存后,及时生成镜像配置请求并向所述安全处理装置发送,使得所述安全处理装置配置内存控制器中存储的安全页面属性表中的操作系统的镜像的内存空间的属性为只读,这样,可以避免操作系统运行时被更改,因此即使攻击者获得所述操作系统的权限,即使在页表中配置的所述操作系统的镜像的属性为页面可写,若对内存的访问请求与所述安全页面属性表中配置的权限不一致,可以拒绝内存访问,因此攻击者也无法在所述操作系统中添加恶意指令,从而可以进一步增强系统安全性。
进一步地,当监测到所述数据处理装置向所述页表基地址寄存器写入数据时,所述安全处理装置通过输出对应的安全告警信息,使得用户可以及时发现攻击,从而可以进一步增强系统安全性。
进一步地,在进程切换时,所述数据处理装置向所述安全处理装置发送页表基地址寄存器更新请求,由所述安全处理装置更新所述页面基地址寄存器的基地址,可以避免攻击者使用ROP,替换页表基地址寄存器中存储的基地址,从而可以提高进程页表的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本发明的一些实施例,而非对本发明的限制。
图1示出了一种ROP攻击的场景示意图;
图2示出了一种页表结构示意图;
图3示出了本发明实施例中一种内存管理系统的结构示意图;
图4示出了本发明实施例中一具体应用场景对应的内存管理方法实施示意图;
图5示出了本发明实施例中另一具体应用场景对应的内存管理方法实施示意图;
图6示出了本发明实施例中一种安全页面属性表的设置方法示意图;
图7示出了本发明实施例中一种安全处理装置的结构示意图;
图8示出了本发明实施例中一种数据处理装置的结构示意图。
具体实施方式
如背景部分所述,攻击者使用ROP攻击,可能攻击页表基地址,威胁页表安全。
攻击者使用ROP攻击,可以将已加载到内存中的小代码片段链接起来形成攻击链,并控制函数栈中的返回地址,跳转到攻击链并执行攻击。为使本领域技术人员更好地理解和实施本发明实施例,以下首先通过一个具体应用场景说明ROP的攻击原理。
参照图1所示的ROP攻击的场景示意图,内存10中存储有多个代码片段,其中包括代码片段1、代码片段2和代码片段3,代码片段1~3对应的返回地址依次对应为返回地址1、返回地址2和返回地址3。攻击者可以不向所述内存中注入攻击代码片段,而是从所述内存中已有的代码片段搜索到的代码片段,例如,攻击者将上述代码片段1~3的返回地址1~3修改为攻击代码片段地址,并将所述代码片段1、代码片段2和代码片段3链接起来,即可实施ROP攻击。
页表是主流CPU内存管理的核心功能,其采用一种特殊的数据结构,在支持分页的内存管理系统中,页表存放内存虚拟地址与物理地址的对应关系。CPU通过页表可以将虚拟地址转换成物理地址,不同的进程使用不同的页表,从而达到隔离进程内存的目的。
在现代大多数CPU架构上,由于进程的虚拟地址空间很大(232~264),页表通常采用分级结构存储,上层页表结构指向下层页表结构的地址,逐层寻址。页表结构的最上层的地址,即页表的基地址,称为页目录指针表地址(Page Directory Pointer Table,PDPT)。如图2所示的页表结构的示意图,在32位x86 CPU架构中,页表基地址存储于CR3寄存器中,因此CR3寄存器也可以称为页表基地址寄存器。CPU启动后,操作系统需要构建页表,并将页目录指针表的物理地址(即页表基地址)放入CR3寄存器,操作系统通常使用“mov reg,cr3”指令来初始化和修改cr3,其中,reg是一个通用寄存器,存放页表基地址,采用“mov reg,cr3”指令,可以将reg中存储的内容复制到cr3寄存器中,即完成页表的配置。
然而,该指令给攻击者利用ROP攻击页表基地址提供了可能。
这是因为,攻击者可以构造另外一张假页表,攻击者可以完全按照需要构造和操纵假页表,攻击者需要做的就是把假页表的基地址放置到CR3中替换当前的页表的基地址。ROP攻击让这种替换有了可能:攻击者不需要注入修改页表指令,只需要重利用已经存在的设置CR3寄存器的指令即可完成攻击。
为防止ROP攻击,目前所采用的一种方案是:将操作系统的镜像所在的页表的属性配置成只读且不可执行,页表基地址寄存器完全由操作系统管理。操作系统在启动时,配置操作系统本身的页表,在用户创建进程时,配置用户进程页表。操作系统在调度用户进程时,将切换进程页表。
上述现有技术方案依赖于操作系统的高权限来保证进程页表的安全,只要攻击者不具有操作系统权限,就无法对页表进行攻击。
然而,操作系统本身是极其复杂的系统,源代码量极其庞大,软件缺陷和安全漏洞难以避免。因此,一旦攻击者获得了操作系统权限,就可能利用操作系统自身的“mov reg,cr3”指令发起ROP攻击。
综上可知,操作系统中的页表基地址写指令,如“mov reg,cr3”指令,是设置页码的重要指令,利用ROP攻击调用页表基地址寄存器写指令能够实现替换页表的功能,必须加以防御。
为避免攻击者使用ROP攻击页表基地址,提高进程页表的安全性,本发明实施例修改目前CPU架构,采用专用的安全处理装置对页表基地址寄存器这一硬件资源进行使用和管理,并将目前操作系统中存在的页表基地址寄存器的写指令删除,这样,即使攻击者获得了操作系统的权限,也无法找到页表基地址寄存器的写指令,从而无法发起ROP攻击。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图3所示的一种内存管理系统的结构示意图,在本发明实施例中,为避免ROP攻击,可以采用如图3所示的内存管理系统,其中,内存管理系统30包括:页表基地址寄存器31、数据处理装置32和安全处理装置33,其中:
所述页表基地址寄存器31,适于存储页表基地址;
所述数据处理装置32,适于运行操作系统,以及向所述安全处理装置33发送页表基地址寄存器写请求;其中:所述操作系统的源代码指令中不包含页表基地址寄存器的写指令;所述数据处理装置32不具有所述页表基地址寄存器的写权限;
所述安全处理装置33,与所述数据处理装置32硬件隔离,适于设置所述数据处理装置32不具有所述页表基地址寄存器的写权限,以及响应于所述数据处理装置32的页表基地址寄存器写请求,将所述写请求对应的进程基地址写入所述页表基地址寄存器31。
采用上述内存管理系统,其中,所述数据处理装置32不具有页表基地址寄存器的写权限,且所述数据处理装置32中运行的操作系统的源代码指令中不包含页表基地址的写指令,而是由与所述数据处理装置32硬件隔离的所述安全处理装置33对所述页表基地址寄存器进行使用和管理,因此攻击者即使获得了所述数据处理装置32中运行的操作系统的权限,攻击者也不具有页表基地址的写权限,且从所述数据处理装置中无法找到页表基地址寄存器的写指令,故攻击者无法使用ROP攻击替换页表基地址,故可以提高进程页表的安全性。
在具体实施中,所述数据处理装置可以为一个或者多个通用计算核心,或者为一个独立封装的CPU芯片,所述安全处理装置可以为与所述数据处理装置独立封装的安全处理器,或者为与所述数据处理装置封装在一起的专用于控制安全功能的核心。安全处理装置33具有内存管理系统30的最高权限,比数据处理装置32具有更高的安全权限。
在本发明一具体示例中,所述内存管理系统为一片上系统(System on Chip,SoC),数据处理装置为一通用计算核心,所述安全处理装置为一安全保护的专用核心。
在具体实施中,页表可以存储于内存中,不同的进程可以对应不同的页表,操作系统也具有相应的页表,且操作系统的页表可以供各个进程共享。
在具体实施中,为进一步提高系统安全性,所述安全处理装置可以具有独立于所述数据处理装置的内存之外的独享内存。
继续参照图3,在具体实施中,作为一计算核心,所述数据处理装置32可以通过例如内存控制器访问内存3A,所述安全处理装置33可以为一安全控制核心,如前示例,页表基地址寄存器31可以为CR3寄存器。
如前所述,基于所述安全处理装置33的设置,所述数据处理装置31不具有所述页表基地址寄存器31的写权限,在具体实施中,若所述安全处理装置33监测到所述数据处理装置32向所述页表基地址寄存器31直接写入数据时,可以输出对应的安全告警信息进行安全告警。在一具体示例中,当数据处理装置违反所述安全处理装置33设置的权限向所述页表基地址寄存器31直接写入数据时,所述安全处理装置33可以产生通用保护(General-Protection,GP)异常告警信号。
操作系统运行时必须保证代码不被更改,然而,如果攻击者获得了操作系统的超级用户权限后,能够修改代码段,插入恶意指令。为防止攻击者获得操作系统权限后,恶意修改代码段增加操纵基地址寄存器的指令,本发明实施例中还提供了对应的安全防护措施。
在本发明一些实施例中,可以在内存控制器中设置安全页面属性表(Secure PageOwner Table,SPOT),在SPOT中限制操作系统的镜像的代码段对应的物理内存为只读。其中,SPOT是本发明一些实施例中除了页表之外,用于控制内存读写权限的另一张表格,在本说明书实施例中,SPOT只能由安全处理装置控制,数据处理装置无权修改。
继续参照图3,本发明实施例为避免攻击者获得操作系统权限后恶意增加操纵基地址寄存器的指令,可以在内存控制器34中存储SPOT 35,所述SPOT35用于所述内存控制器34对内存物理地址的直接控制。在具体实施中,操作系统被编译成镜像,加载到内存中,所述数据处理装置32,可以在将所述操作系统的镜像加载至内存3A后,向所述安全处理装置33发送镜像配置请求;所述安全处理装置33,响应于所述数据处理装置32的镜像配置请求,配置所述内存控制器34中存储的SPOT 35中对应操作系统的镜像的内存空间的属性为只读。
采用上述实施例,通过安全处理装置33管理用于内存控制器34对内存物理地址进行直接控制的安全页面属性表,由于所述数据处理装置32在将所述操作系统的镜像加载至内存后,及时生成镜像配置请求并向所述安全处理装置33发送,使得所述安全处理装置33配置内存控制器34中存储的安全页面属性表中的操作系统的镜像的内存空间的属性为只读,这样,可以避免操作系统运行时被更改,因此即使攻击者获得所述操作系统的权限,即使在页表中配置的所述操作系统的镜像的属性为页面可写,若对内存3A的访问请求与所述安全页面属性表中配置的权限不一致,可以拒绝内存访问,因此攻击者也无法在所述操作系统中添加恶意指令,从而可以进一步增强系统安全性。
为避免页表基地址受到ROP攻击,提高进程页表的安全性,本说明书实施例还提供了相应的内存管理方法,本使本领域技术人员更好地理解和实施,以下通过具体实施例进行详细描述。
如前所述,本发明实施例中由专用于安全控制的安全处理装置管理和使用基地址寄存器,对于安全处理装置而言,具体可以执行如下步骤:响应于来自数据处理装置的页表基地址寄存器写请求,安全处理装置可以将所述写请求对应的进程基地址写入所述页表基地址寄存器。
其中,如本发明前述实施例所述,所述数据处理装置与所述安全处理装置硬件隔离,所述数据处理装置适于运行操作系统,且所述操作系统的源代码指令中不包含页表基地址寄存器的写指令;基于所述安全处理装置的设置,所述数据处理装置不具有所述页表基地址寄存器的写权限。
作为一具体应用示例,操作系统在初始化过程中,可以由安全处理装置对所述页表基地址寄存器中的页表基地址进行设置。具体而言,响应于来自数据处理装置的页表基地址寄存器设置请求,所述安全处理装置可以将所述页表基地址寄存器设置请求对应的进程基地址写入所述页表基地址寄存器。
作为另一具体应用示例,在进程切换时,可以由安全处理装置对所述页表基地址寄存器中的页表基地址进行修改。具体而言,基于进程切换请求可以触发数据处理装置向安全处理装置发送页表基地址更新请求,响应于来自数据处理装置的页表基地址寄存器更新请求,所述安全处理装置将所述页表基地址寄存器更新请求对应的进程基地址写入所述页表基地址寄存器。
进程是操作系统进行资源分配和调度的基本单位,进程作为程序独立运行的载体保障程序正常运行,在多道程序环境下,允许多个进程并发执行,为了隔离不同进程的内存访问,数据处理装置(如通用计算核)限制进程只能访问虚拟地址,并通过页表将虚拟地址转换为物理地址,不同的进程使用不同的页表,以隔离进程内存。参照图4所示的一具体应用场景对应的内存管理方法实施示意图,其中,通用计算核41中可以运行操作系统,且所述操作系统的源代码指令中不包含页表基地址寄存器的写指令,例如,所述通用计算核41中运行的操作系统的源代码中删除了写CR3的指令:mov reg,cr3,将CR3寄存器的管理权限交给安全处理器。
在本说明书一些实施例中,安全处理器42可以采用如下方式管理CR3寄存器:设置一模式专用寄存器(Model Specific Register,MSR),其中可以存储安全处理器使能权限信息,这一信息可以表示为MSR_SP_MMU_EN,用于控制是否使能所述安全处理器42管理内存控制器(Memory Management Unit,MMU)的功能,作为一可选示例,若MSR_SP_MMU_EN设置为1,则使能安全处理器42管理内存控制器,通用计算核41不再有权限修改CR3寄存器,而是必须向安全处理器42发送CR3更新请求,由安全处理器42完成CR3寄存器中地址的更新。
对于传统的操作系统,可以检查操作系统中所有的基地址寄存器写指令,如“movreg,cr3”指令,将其替换为向安全处理器发送基地址寄存器写请求,完成对基地址寄存器写指令的替换。
由于操作系统中删除了所有的基地址寄存器写指令,因此攻击者无法在内存中找到基地址寄存器写指令的代码片段,无法发起ROP攻击。通过这一方式,可以消除传统操作系统中存在的安全漏洞,提升系统安全性。
继续参照图4,在通用计算核41中可以运行多个进程,其中包括进程X和进程Y等,在某一时刻,通用计算核41中发生进程切换,由进程X切换为进程Y,相应地,通用计算核41所使用的页表需要由进程X的页表切换至进程Y对应的页表,以能够寻址至进程Y对应的内存空间,通用计算核接收到页表切换请求,生成更新CR3请求(即页表基地址更新请求)并发送至安全处理器42,安全处理器42执行设置CR3操作,将页表基地址寄存器CR3中的页表基地址更新为进程Y对应的页表基地址。
如前所述,通用计算核41不具有管理页表基地址寄存器的权限,在具体实施中,为进一步提高系统安全性,当监测到所述通用计算核41向所述页表基地址寄存器写入数据时,安全处理器42可以输出对应的安全告警信息。例如,在本发明一具体示例中,安全处理器监测到所述通用计算核41向CR3寄存器写入数据时,可以生成GP异常告警信号,以提示用户CR3寄存器受到攻击。
操作系统运行时必须保证代码不被更改。然而,如果攻击者获得了操作系统的超级用户权限(操作系统的最高权限)后,能够修改代码段,插入恶意指令。
针对上述安全隐患,本发明实施例中,采用SPOT来避免操作系统代码段被修改。在具体实施中,可以在内存控制器中存储SPOT,所述SPOT用于所述内存控制器对内存物理地址的直接控制。相应地,由安全处理装置对所述SPOT进行管理。具体而言,操作系统在编译后镜像,加载到内存后,数据处理装置可以生成镜像配置请求,相应地,安全处理装置可以采用如下的内存管理方法:响应于所述数据处理装置的镜像配置请求,所述安全处理装置配置SPOT中对应操作系统的镜像的内存空间的属性为只读。
以下简述其安全防护原理:
SPOT是位于内存控制器中的一个控制模块,是内存控制器对内存物理地址的直接控制,即使页表中配置了页面可写,若SPOT中配置相应的页面不可写,则页面最终是不可写的。
在内存控制器访问内存之前,SPOT检查其中配置的物理地址的权限,若对内存的访问请求与SPOT中配置的权限不一致,SPOT拒绝内存访问。
基于本发明上述实施例中安全处理装置的配置,SPOT中对应操作系统的镜像的内存空间的属性为只读,若攻击者获得了操作系统的超级用户权限,并配置页表中的页面可写,而在操作系统的添加代码段,接收到添加代码段这一操作对应的内存写请求时,SPOT检查发现这一内存请求所对应的存储空间的属性为只读,因此可以拒绝这一内存写请求,从而可以避免攻击者在操作系统中添加可以直接修改基地址寄存器的指令,进行恶意攻击。
参照图5所示的另一具体应用场景中的内存管理方法实施示意图,通用计算核51在操作系统启动后,通过编译,可以得到操作系统的镜像,可以将所述操作系统的镜像加载到内存54中,在所述操作系统的镜像加载完毕后,所述通用计算核51获取到所述操作系统的镜像的物理内存空间后,立刻向安全处理器52发送镜像配置请求,由所述安全处理器52配置存储于所述内存控制器53中的SPOT,保护操作系统的镜像不被改写。
以Linux操作系统为例,基本输入/输出系统(Basic Input/Output System,BIOS)加载Linux操作系统镜像后,跳转到Linux操作系统执行。Linux操作系统在解压缩内核,并在完成对安全处理器通信通道的初始化后,即发送镜像配置请求,安全处理器在接收到所述镜像配置请求后,即配置SPOT中操作系统的镜像对应的内存空间的属性为只读。
在具体实施中,若操作系统的镜像物理内存不连续,分散在多个内存段,每一内存段均对应设置一SPOT条目。如图6所示的安全页面属性表的设置方示意图,操作系统的镜像在内存中可以存储于内存中多段不连续内存空间,如操作系统代码片段1和操作系统代码片段2在内存60中不连续分布,其中,操作系统代码片段1存储于内存空间61,操作系统代码片段2存储于内存空间62,内存空间63中存储了其他的代码或者处于空闲状态,则安全处理器可以在SPOT中为所述操作系统代码片段1设置条目1,为所述操作系统代码片段2设置条目2,分别对应操作系统代码片段1和操作系统代码片段2在所述内存空间中的地址信息。又如图5所示,其中安全处理器52配置的SPOT,其中包括条目53-1,条目53-2,分别对应操作系统的镜像片段在内存中的存储空间。
以下示出一种可选的条目的数据结构,继续参照图5,所述SPOT中,对于任一条目,可以包含如下信息:地址空间标识(Address Space ID,ASID)、所述地址空间标识对应的地址空间的读写权限(读/写)、起始地址和地址空间长度(长度),其中,所述地址空间标识表征所述条目对应宿主机的地址空间。其中,所述地址空间标识可以用于区分宿主机与不同的虚拟机的ID,作为一具体示例,所述地址空间标识设置为0,表示所述条目对应宿主机的地址空间。
在具体实施中,继续参照图5,在操作系统运行过程中,操作系统的镜像存储于内存54中。若进程A获得了通用计算核51中操作系统的权限,并且恶意修改了页表中操作系统的镜像对应的地址空间的访问权限,若所述进程A欲在操作系统中添加可以修改页表基地址的指令,则通用计算核51会向内存控制器53发出内存写请求,以修改内存中存储的操作系统的镜像,内存控制器53中存储的SPOT接收到这一内存写请求时,检查其SPOT中配置的物理地址的权限,发现这一内存写请求对应的SPOT中配置的操作系统的镜像的存储空间的属性为只读,因此SPOT拒绝对这一写请求,因此,进程A即使获得了操作系统的超级管理员的权限,也无法对存储操作系统的镜像的内存空间进行修改,因此无法修改操作系统的指令,包括页表基地址寄存器的写指令,从而可以避免攻击者利用ROP攻击修改页表基地址寄存器,从而可以进一步提高页表的安全性。
相应地,本发明实施例还提供了可以适用于数据处理装置的内存管理方法,总体而言,数据处理装置本身不具有内存管理的权限,而是在有相应的需求时,向安全处理器发起请求。
针对前述的页表基地址寄存器中存储的地址易于被ROP攻击的问题,在本发明实施例中,在硬件上,设置数据处理装置与安全处理装置硬件隔离,所述数据处理装置适于运行操作系统,且所述操作系统的源代码指令中不包含页表基地址寄存器的写指令,例如,不包含“mov reg,cr3”指令;基于所述安全处理装置的设置,所述数据处理装置不具有所述页表基地址寄存器的写权限。
作为具体的内存管理方法,数据处理装置可以向安全处理装置发送页表基地址寄存器写请求,使得所述安全处理装置将所述写请求对应的进程基地址写入所述页表基地址寄存器。
在具体实施中,所述数据处理装置可以向所述安全处理装置发送页表基地址寄存器设置请求,使得所述安全处理装置将所述页表基地址寄存器设置请求对应的进程基地址写入所述页表基地址寄存器;或者,响应于进程切换请求,所述数据处理装置向所述安全处理装置发送页表基地址寄存器更新请求,使得所述安全处理装置将所述页表基地址寄存器更新请求对应的进程基地址写入所述页表基地址寄存器。
采用上述内存管理方法,由于数据处理装置中运行的操作系统中并不包含页表基地址写指令,并将页表基地址寄存器的管理权限转移到安全处理器,因此从源头上阻断了ROP对页表基地址的替换攻击。
为防止攻击者获得操作系统权限后,修改操作系统的代码段,加入CR3写指令等页表基地址寄存器写指令,在SPOT上加入操作系统镜像的配置项,控制操作系统的镜像所对应的内存空间为只读。具体而言,所述数据处理装置将所述操作系统的镜像加载至内存后,可以向所述安全处理装置发送镜像配置请求,使得所述安全处理装置配置安全页面属性表中对应的操作系统的镜像的内存空间的属性为只读,其中,所述安全页面属性表存储于内存控制器中,用于所述内存控制器对内存物理地址的直接控制。
采用上述实施例,即使攻击者获得操作系统的超级管理员权限,修改页表为可读可执行,由于SPOT中设置操作系统的镜像的存储空间的属性为只读,使得攻击者仍然无法修改操作系统镜像的代码段,因此无法加入页表基地址写指令,故无法发起ROP攻击。
本发明实施例还提供了相应的安全处理装置,参照图7所示的安全处理装置的结构示意图,安全处理装置70,适于与数据处理装置7A进行通信交互,并且,所述安全处理装置70与数据处理装置7A硬件隔离,其中:所述数据处理装置7A适于运行操作系统,且所述操作系统的源代码指令中不包含页表基地址寄存器的写指令;基于所述安全处理装置70的设置,所述数据处理装置7A不具有页表基地址寄存器7B的写权限。所述安全处理装置70可以包括:
第一请求接收单元71,适于接收来自数据处理装置的页表基地址寄存器写请求;
页表基地址写单元72,适于响应于所述页表基地址寄存器写请求,将对应的进程基地址写入所述页表基地址寄存器7B。
采用上述安全处理装置,可以从源头上阻止ROP对页表基地址的替换攻击。
在具体实施中,继续参照图7,安全处理器70还可包括:第二请求接收单元73和配置单元74,其中:
所述第二请求接收单元73,适于接收所述数据处理装置的镜像配置请求,所述镜像配置请求适于在所述数据处理装置将所述操作系统的镜像加载至内存后生成;
所述配置单元74,适于响应于所述数据处理装置的镜像配置请求,配置存储于内存控制器中的安全页面属性表中对应的操作系统的镜像的内存空间的属性为只读。
采用上述安全处理装置,通过配置SPOT,可以阻止攻击者获得操作系统权限后在操作系统的镜像中恶意添加指令,包括页表基地址寄存器写指令,从而使得攻击者即使获得操作系统权限,修改页表为可写可执行,仍然无法修改操作系统的代码段,从而无法发起ROP攻击。
在具体实施中,为了进一步提高系统安全性,安全处理器可以进行内存访问监测。如图7所示,安全处理装置还可以包括:异常监测单元75,适于当监测到所述数据处理装置7A向所述页表基地址寄存器写入数据时,输出对应的安全告警信息。
在具体实施中,所述安全处理装置可以为硬件独立封装的安全处理器,也可以为与其他通用计算核封装在一起的专用于安全控制的核心。
本发明实施例还提供了相应的数据处理装置,如图8所示,数据处理装置80,适于与安全处理装置8A进行交互通信,且所述数据处理装置80与所述安全处理装置8A硬件隔离,所述数据处理装置80适于运行操作系统,且所述操作系统的源代码指令中不包含页表基地址寄存器的写指令;基于所述安全处理装置8A的设置,所述数据处理装置80不具有页表基地址寄存器的写权限,所述数据处理装置80具体可以包括:
第一请求发送单元81,适于向所述安全处理装置发送页表基地址寄存器写请求,使得所述安全处理装置将所述写请求对应的进程基地址写入所述页表基地址寄存器中。
在本说明书另一些实施例中,为避免攻击者获得操作系统权限后,修改操作系统代码指令,进而进行页表基地址替换攻击,继续参照图8,所述数据处理装置80还可以包括:
第二请求发送单元82,适于在确定所述操作系统的镜像加载至内存后,向所述安全处理装置8A发送镜像配置请求,使得所述安全处理装置8A配置SPOT中对应的操作系统的镜像的内存空间的属性为只读,其中,所述SPOT存储于内存控制器8C中,用于所述内存控制器8C对内存物理地址的直接控制。
需要说明的是,在本说明书中,内存管理系统、内存管理方法及相应装置中的实施例具有对应关系,其工作原理、具体示例等均可相互参照,此外,特定特征、结构或特征可以在一个或多个实施例中以任何适当的方式组合。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (17)

1.一种内存管理方法,其特征在于,包括:
响应于来自数据处理装置的页表基地址寄存器写请求,安全处理装置将所述写请求对应的进程基地址写入所述页表基地址寄存器;
其中,所述数据处理装置与所述安全处理装置硬件隔离,所述数据处理装置适于运行操作系统,且所述操作系统的源代码指令中不包含页表基地址寄存器的写指令;基于所述安全处理装置的设置,所述数据处理装置不具有所述页表基地址寄存器的写权限。
2.根据权利要求1所述的内存管理方法,其特征在于,还包括:
响应于所述数据处理装置的镜像配置请求,所述安全处理装置配置安全页面属性表中对应的操作系统的镜像的内存空间的属性为只读,其中,所述镜像配置请求适于在所述数据处理装置将所述操作系统的镜像加载至内存后生成,所述安全页面属性表存储于内存控制器中,用于所述内存控制器对内存物理地址的直接控制。
3.根据权利要求2所述的内存管理方法,其特征在于,所述操作系统的镜像对应内存中多段不连续内存空间,所述安全处理装置在所述安全页面属性表中配置多个条目,每一条目分别对应所述操作系统的镜像在所述内存中的一段内存空间的地址信息。
4.根据权利要求3所述的内存管理方法,其特征在于,所述安全页面属性表中的条目包含如下信息:地址空间标识、所述地址空间标识对应的地址空间的读写权限、起始地址和地址空间长度,其中,所述地址空间标识表征所述条目对应宿主机的地址空间。
5.根据权利要求1所述的内存管理方法,其特征在于,还包括:
当监测到所述数据处理装置向所述页表基地址寄存器写入数据时,所述安全处理装置输出对应的安全告警信息。
6.根据权利要求1至5任一项所述的内存管理方法,其特征在于,所述响应于来自数据处理装置的页表基地址寄存器写请求,安全处理装置将所述写请求对应的基地址写入所述页表基地址寄存器,包括以下至少一种:
响应于来自数据处理装置的页表基地址寄存器设置请求,所述安全处理装置将所述页表基地址寄存器设置请求对应的进程基地址写入所述页表基地址寄存器;
响应于来自数据处理装置的页表基地址寄存器更新请求,所述安全处理装置将所述页表基地址寄存器更新请求对应的进程基地址写入所述页表基地址寄存器,其中,所述页表基地址寄存器更新请求基于进程切换请求触发。
7.一种内存管理方法,其特征在于,包括:
数据处理装置向安全处理装置发送页表基地址寄存器写请求,使得所述安全处理装置将所述写请求对应的进程基地址写入所述页表基地址寄存器;
其中,所述数据处理装置与所述安全处理装置硬件隔离,所述数据处理装置适于运行操作系统,且所述操作系统的源代码指令中不包含页表基地址寄存器的写指令;基于所述安全处理装置的设置,所述数据处理装置不具有所述页表基地址寄存器的写权限。
8.根据权利要求7所述的内存管理方法,其特征在于,还包括:
所述数据处理装置将所述操作系统的镜像加载至内存后,向所述安全处理装置发送镜像配置请求,使得所述安全处理装置配置安全页面属性表中对应的操作系统的镜像的内存空间的属性为只读,其中,所述安全页面属性表存储于内存控制器中,用于所述内存控制器对内存物理地址的直接控制。
9.根据权利要求7或8所述的内存管理方法,其特征在于,所述数据处理装置向安全处理装置发送页表基地址寄存器写请求,包括以下至少一种:
所述数据处理装置向所述安全处理装置发送页表基地址寄存器设置请求,使得所述安全处理装置将所述页表基地址寄存器设置请求对应的进程基地址写入所述页表基地址寄存器;
响应于进程切换请求,所述数据处理装置向所述安全处理装置发送页表基地址寄存器更新请求,使得所述安全处理装置将所述页表基地址寄存器更新请求对应的进程基地址写入所述页表基地址寄存器。
10.一种安全处理装置,适于与数据处理装置进行通信交互,其特征在于,所述安全处理装置与数据处理装置硬件隔离,所述数据处理装置适于运行操作系统,且所述操作系统的源代码指令中不包含页表基地址寄存器的写指令;基于所述安全处理装置的设置,所述数据处理装置不具有页表基地址寄存器的写权限;所述安全处理装置包括:
第一请求接收单元,适于接收来自数据处理装置的页表基地址寄存器写请求;
页表基地址写单元,适于响应于所述页表基地址寄存器写请求,将对应的进程基地址写入所述页表基地址寄存器。
11.根据权利要求10所述的安全处理装置,其特征在于,还包括:
第二请求接收单元,适于接收所述数据处理装置的镜像配置请求,所述镜像配置请求适于在所述数据处理装置将所述操作系统的镜像加载至内存后生成;
配置单元,适于响应于所述数据处理装置的镜像配置请求,配置存储于内存控制器中的安全页面属性表中对应的操作系统的镜像的内存空间的属性为只读。
12.根据权利要求10或11所述的安全处理装置,其特征在于,还包括:
异常监测单元,适于当监测到所述数据处理装置向所述页表基地址寄存器写入数据时,输出对应的安全告警信息。
13.一种数据处理装置,适于与安全处理装置进行交互通信,其特征在于,所述数据处理装置与所述安全处理装置硬件隔离,所述数据处理装置适于运行操作系统,且所述操作系统的源代码指令中不包含页表基地址寄存器的写指令;基于所述安全处理装置的设置,所述数据处理装置不具有页表基地址寄存器的写权限,所述数据处理装置包括:
第一请求发送单元,适于向所述安全处理装置发送页表基地址寄存器写请求,使得所述安全处理装置将所述写请求对应的进程基地址写入所述页表基地址寄存器中。
14.根据权利要求13所述的数据处理装置,其特征在于,所述数据处理装置还包括:
第二请求发送单元,适于在确定所述操作系统的镜像加载至内存后,向所述安全处理装置发送镜像配置请求,使得所述安全处理装置配置安全页面属性表中对应的操作系统的镜像的内存空间的属性为只读,其中,所述安全页面属性表存储于内存控制器中,用于所述内存控制器对内存物理地址的直接控制。
15.一种内存管理系统,其特征在于,包括:数据处理装置、安全处理装置和页表基地址寄存器,其中:
所述页表基地址寄存器,适于存储页表基地址;
所述数据处理装置,适于运行操作系统,以及向所述安全处理装置发送页表基地址寄存器写请求;其中:所述操作系统的源代码指令中不包含页表基地址寄存器的写指令;所述数据处理装置不具有所述页表基地址寄存器的写权限;
所述安全处理装置,与所述数据处理装置硬件隔离,适于设置所述数据处理装置不具有所述页表基地址寄存器的写权限,以及响应于所述数据处理装置的页表基地址寄存器写请求,将所述写请求对应的进程基地址写入所述页表基地址寄存器。
16.根据权利要求15所述的内存管理系统,其特征在于,还包括:内存控制器,适于存储安全页面属性表,所述安全页面属性表用于所述内存控制器对内存物理地址的直接控制;
所述数据处理装置,还适于在将所述操作系统的镜像加载至内存后,向所述安全处理装置发送镜像配置请求;
所述安全处理装置,还适于响应于所述数据处理装置的镜像配置请求,配置所述安全页面属性表中对应操作系统的镜像的内存空间的属性为只读。
17.根据权利要求15或16所述的内存管理系统,其特征在于,所述安全处理装置,还适于当监测到所述数据处理装置向所述页表基地址寄存器写入数据时,输出对应的安全告警信息。
CN202011149069.2A 2020-10-23 2020-10-23 内存管理方法、系统及安全处理装置、数据处理装置 Active CN112256396B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011149069.2A CN112256396B (zh) 2020-10-23 2020-10-23 内存管理方法、系统及安全处理装置、数据处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011149069.2A CN112256396B (zh) 2020-10-23 2020-10-23 内存管理方法、系统及安全处理装置、数据处理装置

Publications (2)

Publication Number Publication Date
CN112256396A true CN112256396A (zh) 2021-01-22
CN112256396B CN112256396B (zh) 2022-10-21

Family

ID=74261871

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011149069.2A Active CN112256396B (zh) 2020-10-23 2020-10-23 内存管理方法、系统及安全处理装置、数据处理装置

Country Status (1)

Country Link
CN (1) CN112256396B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113111012A (zh) * 2021-04-14 2021-07-13 景德镇市明泰精工瓷业有限公司 一种应用数据定位器生成方法及应用数据定位方法
WO2022193768A1 (zh) * 2021-03-16 2022-09-22 华为技术有限公司 内存读写指令的执行方法及计算设备
CN117851290A (zh) * 2024-03-07 2024-04-09 北京象帝先计算技术有限公司 页表管理方法、系统、电子组件及电子设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103955438A (zh) * 2014-05-21 2014-07-30 南京大学 基于硬件辅助虚拟化技术的进程内存保护方法
US20140223129A1 (en) * 2013-02-06 2014-08-07 International Business Machines Corporation Key-based data security management
CN104520867A (zh) * 2012-08-03 2015-04-15 北卡罗莱纳州立大学 用于目标装置的主动监测、存储器保护和完整性验证的方法、系统和计算机可读介质
CN105354155A (zh) * 2015-12-03 2016-02-24 上海高性能集成电路设计中心 一种基于页表检查机制的存储器访问权限控制方法
CN105989758A (zh) * 2015-02-05 2016-10-05 龙芯中科技术有限公司 地址翻译方法和装置
CN108154032A (zh) * 2017-11-16 2018-06-12 中国科学院软件研究所 一种基于可信执行环境的具有内存完整性保障功能的计算机系统信任根构建方法
CN108733455A (zh) * 2018-05-31 2018-11-02 上海交通大学 基于ARM TrustZone的容器隔离性增强系统
CN111400702A (zh) * 2020-03-24 2020-07-10 上海瓶钵信息科技有限公司 一种虚拟化的操作系统内核保护方法
CN111651778A (zh) * 2020-05-26 2020-09-11 上海交通大学 基于risc-v指令架构的物理内存隔离方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104520867A (zh) * 2012-08-03 2015-04-15 北卡罗莱纳州立大学 用于目标装置的主动监测、存储器保护和完整性验证的方法、系统和计算机可读介质
US20140223129A1 (en) * 2013-02-06 2014-08-07 International Business Machines Corporation Key-based data security management
CN103955438A (zh) * 2014-05-21 2014-07-30 南京大学 基于硬件辅助虚拟化技术的进程内存保护方法
CN105989758A (zh) * 2015-02-05 2016-10-05 龙芯中科技术有限公司 地址翻译方法和装置
CN105354155A (zh) * 2015-12-03 2016-02-24 上海高性能集成电路设计中心 一种基于页表检查机制的存储器访问权限控制方法
CN108154032A (zh) * 2017-11-16 2018-06-12 中国科学院软件研究所 一种基于可信执行环境的具有内存完整性保障功能的计算机系统信任根构建方法
CN108733455A (zh) * 2018-05-31 2018-11-02 上海交通大学 基于ARM TrustZone的容器隔离性增强系统
CN111400702A (zh) * 2020-03-24 2020-07-10 上海瓶钵信息科技有限公司 一种虚拟化的操作系统内核保护方法
CN111651778A (zh) * 2020-05-26 2020-09-11 上海交通大学 基于risc-v指令架构的物理内存隔离方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022193768A1 (zh) * 2021-03-16 2022-09-22 华为技术有限公司 内存读写指令的执行方法及计算设备
CN113111012A (zh) * 2021-04-14 2021-07-13 景德镇市明泰精工瓷业有限公司 一种应用数据定位器生成方法及应用数据定位方法
CN113111012B (zh) * 2021-04-14 2023-07-25 景德镇市明泰精工瓷业有限公司 一种应用数据定位器生成方法及应用数据定位方法
CN117851290A (zh) * 2024-03-07 2024-04-09 北京象帝先计算技术有限公司 页表管理方法、系统、电子组件及电子设备

Also Published As

Publication number Publication date
CN112256396B (zh) 2022-10-21

Similar Documents

Publication Publication Date Title
CN112256396B (zh) 内存管理方法、系统及安全处理装置、数据处理装置
JP6218859B2 (ja) 仮想マシンの完全性保護のためのメモリイントロスペクションエンジン
US7865683B2 (en) Identifier associated with memory locations for managing memory accesses
US9202046B2 (en) Systems and methods for executing arbitrary applications in secure environments
JP6306578B2 (ja) メモリ保護装置及び保護方法
KR101477080B1 (ko) 메모리 액세스 보안 관리
US10296470B2 (en) Systems and methods for dynamically protecting a stack from below the operating system
US9274974B1 (en) Isolating data within a computer system using private shadow mappings
JP4759059B2 (ja) メモリページをプログラムに対応付けるページカラーリング
KR102189296B1 (ko) 가상 머신 보안 어플리케이션을 위한 이벤트 필터링
RU2513909C1 (ru) Ограничение областей памяти для считывания команд в зависимости от аппаратного режима и флага безопасности
US20150379263A1 (en) Technologies for preventing hook-skipping attacks using processor virtualization features
US20030101322A1 (en) Protection of user process data in a secure platform architecture
US20160210069A1 (en) Systems and Methods For Overriding Memory Access Permissions In A Virtual Machine
US20150026807A1 (en) Page Fault Injection In Virtual Machines
US10108800B1 (en) ARM processor-based hardware enforcement of providing separate operating system environments for mobile devices with capability to employ different switching methods
KR20210070974A (ko) 레인지 체킹 명령
US20150379265A1 (en) Systems And Methods For Preventing Code Injection In Virtualized Environments
JP2009009232A (ja) コンピュータとカーネル保護方法並びにコンピュータソフトウエア
JP2023526811A (ja) タグチェック装置及び方法
CN111949995A (zh) 安全管理硬件资源的主机cpu架构系统和方法
US11150887B2 (en) Secure code patching
CN116701251A (zh) 在计算设备中管理tlb的方法和对应计算设备
CN116635855A (zh) 基于执行上下文管理可执行代码对数据内存的访问的装置和方法

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