CN109154963B - 一种防止内存数据泄露的设备及方法 - Google Patents

一种防止内存数据泄露的设备及方法 Download PDF

Info

Publication number
CN109154963B
CN109154963B CN201680085453.6A CN201680085453A CN109154963B CN 109154963 B CN109154963 B CN 109154963B CN 201680085453 A CN201680085453 A CN 201680085453A CN 109154963 B CN109154963 B CN 109154963B
Authority
CN
China
Prior art keywords
memory
entity
data
bits
ownership
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.)
Active
Application number
CN201680085453.6A
Other languages
English (en)
Other versions
CN109154963A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN109154963A publication Critical patent/CN109154963A/zh
Application granted granted Critical
Publication of CN109154963B publication Critical patent/CN109154963B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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
    • 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/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

一种防止内存数据泄露的设备,所述设备包括:确定单元,用于确定第一实体(特别是第一应用)是否访问存储器以获得第一数据以及是否允许所述第一实体访问所述存储器;控制单元,用于:如果所述第一实体访问所述存储器且不允许所述第一实体访问所述存储器,则触发异常功能。因此,不仅可以检测到恶意实体,防止由于残留内存数据而造成的数据泄露,还可以改善所述设备的性能、降低功耗。

Description

一种防止内存数据泄露的设备及方法
技术领域
本发明涉及计算机技术领域,特别涉及一种防止内存数据泄露的设备及方法。
背景技术
在共享基础设施(例如,共享物理处理器和物理内存)的计算机系统中,共享基础设施包含敏感数据,例如密码、银行帐户和用户名。特别在运行不同虚拟机的公共云环境中,同一物理服务器硬件上来自不同客户的虚拟机会由于服务器内存导致数据泄露。与可信VM运行在相同的服务器上的攻击性(不可信)虚拟机可以利用虚拟机监视器请求VMM分配物理内存。
如图1所示,可信应用程序1(或可信VM 1)将敏感数据保存在物理内存中;VMM可以将先前由可信应用程序1(或可信VM 1)使用的物理内存(简称内存)(特别是内存页)分配给不可信应用程序3(或攻击性VM 2)。可信应用程序1未察觉到所有权已更改,敏感数据仍保留在物理内存中。不可信应用程序3(或攻击性VM 2)然后可以从物理内存中读取敏感数据。因此,无法确保云安全,且对公共云客户生成不利影响。
传统的防止内存数据泄露的解决方案是在将任何存储单元分配给VM之前,由VMM清理该存储单元。无论是否存在攻击性VM,所述VMM都必须检查待分配给虚拟机的存储单元,并将预定值(通常为0)写入到存储单元中的所有内存位置(地址)中。
然而,传统解决方案的性能差且功耗大。
发明内容
因此,本发明的目标是提供一种有效防止内存数据泄露的设备和方法。
本发明的另一目标是提供一种将数据写入存储器的设备。
本发明上述提及的目标通过独立权利要求提供的方案实现。在从属权利要求中进一步定义了实施方案。
本发明的第一方面提供了一种防止内存数据泄露的设备,包括:
确定单元,用于确定第一实体(特别是第一应用程序、第一虚拟机或第一容器)是否访问存储器以获得第一数据,以及是否允许所述第一实体访问所述存储器;
控制单元,用于:如果所述第一实体访问所述存储器且不允许所述第一实体访问所述存储器,则触发异常功能。
因此,不仅可以检测到恶意实体(例如恶意VM、容器或应用程序),防止由于残留内存数据而造成的数据泄露,还可以改善所述第一方面中的所述设备的性能、降低功耗。这是因为在本发明中,所有无害的VM或容器或应用程序的存储器都不需要清理,因此可以减小能耗,且在分配物理内存之前省去了冗长的内存写入(例如填充0),从而性能得到改善。
根据所述第一方面,在所述设备的第一种实施方式中,所述确定单元用于:
根据标识号码(identification number,简称ID),特别是VM ID或容器ID或进程ID,和/或一个或多个所有权比特值确定所述第一实体,特别是确定所述第一实体是否与提供所述存储器的所述第一数据的实体相关,特别地,确定所述第一实体是否就是所述实体。
因此,所述第一种实施方式中的设备提供了一种检测对存储器中的残留数据进行钓鱼式攻击的恶意VM或恶意容器或恶意应用程序的有效方式,例如通过确定所述第一实体是否是提供所述第一数据或将所述第一数据写入内存地址的实体。
根据所述第一方面的第一种实施方式,在所述设备的第二种实施方式中,所述确定单元用于:
从所述存储器获得所述ID,特别是结合错误检测信息或所述第一数据,例如XOR组合、纠错码(error correction code,简称ECC)方案、CRC校验和或散列和。
因此,所述第二种实施方式中的设备可以进行所有权检测(例如,检测恶意VM或恶意容器或恶意应用程序)和错误检测。这是通过ID和错误检测信息的组合而实现的。该ID可以用来识别对存储器中的残留数据进行钓鱼式攻击的不同实体。所述错误检测信息,特别是一个或多个纠错码(error correction code,简称ECC)比特可以用于检测和/或纠正所述第一数据的误码。
根据所述第一方面的前述任一实施方式,在所述设备的第三种实施方式中,所述确定单元用于:
从一个或多个所有权比特,特别是所述存储器的一个或多个纠错码(ErrorCorrection Code,简称ECC)比特中获取所述ID。
因此,所述第三种实施方式中的设备可以进行所有权检测(例如,检测恶意VM或恶意容器或恶意应用程序)和错误检测,同时仍确保了高兼容性。这是因为该ID可以用来识别对存储器中的残留数据进行钓鱼式攻击的不同实体。所述ECC比特可以用于检测和/或纠正内存数据的误码。此外,设计将ID编码到存储器中可用的ECC比特中,因此不需要改变存储器设备。
根据所述第一方面的前述任一实施方式,在所述设备的第四种实施方式中,所述确定单元用于:
通过比较所述第一实体的ID和所述获得的ID或者通过比较一个或多个计算得到的所有权比特与所述存储器中存储的一个或多个所有权比特来确定所述第一实体是否与提供所述存储器的所述第一数据的实体相关,特别地,确定所述第一实体是否就是所述实体。
因此,所述第四种实施方式中的设备提供了一种特别有效的检测对存储器中的残留数据进行钓鱼式攻击的恶意实体的方式。
根据所述第一方面或所述第一方面的前述实施方式中的任一种,在所述设备的第五种实施方式中,所述确定单元用于:
如果所述第一实体与提供所述存储器的所述第一数据的实体相关,特别地,所述第一实体是所述实体,则确定允许所述第一实体访问所述存储器。
根据所述第一方面或所述第一方面的前述实施方式中的任一种,在所述设备的第六种实施方式中,所述控制单元用于:触发异常功能,其中所述异常功能包括以下任何一个或其组合:
防止所述第一实体读取所述第一数据;和/或
将所述第一实体通知给第二实体;和/或
终止所述第一实体;和/或
删除所述存储器上的所述第一数据和/或其他数据;和/或
清理所述存储器;和/或
利用预定义值重写所述第一数据和/或其他数据。
这代表了另一种防止内存数据泄露的有效方法。
根据所述第一方面或所述第一方面的前述实施方式中的任一种,在所述设备的第七种实施方式中,所述确定单元用于:
检查所述存储器是否发生了物理故障。
因此,所述第七种实施方式中的设备提高了检测恶意VM或容器或应用程序的可靠性和准确性。这是因为可以避免将物理故障误认作恶意VM或容器或应用程序的活动。
根据所述第一方面或所述第一方面的前述实施方式中的任一种,在所述设备的第八种实施方式中,所述控制单元用于:
如果所述确定单元确定发生了内存故障,则向第三设备上报所述内存故障。
因此,可以提高所述第八种实施方式中的设备的可靠性。
根据所述第一方面或所述第一方面的前述实施方式中的任一种,在所述设备的第九种实施方式中,
所述设备用于切换到非活跃状态;或
所述控制单元用于切换到非活跃状态。
因此,所述第九种实施方式中的设备可以灵活地用于不同的场景,特别是对于处于非活跃状态的可信VM或容器或应用程序,至少不需要执行任何异常处理。
本发明的第二方面提供了一种将数据写入存储器的设备,其中该设备用于:
将识别号码(identification number,简称ID)写入所述存储器中,其中,所述ID提供实体的标识,所述实体提供待写入所述存储器的数据。
特别地,该ID可以是VM ID或容器ID或进程ID。
所述第二方面中的设备可以检测对存储器中的残留数据进行钓鱼式攻击的恶意实体(例如,恶意VM或恶意容器或恶意应用程序)。这是因为该ID可以用来识别对存储器中的残留数据进行钓鱼式攻击的不同实体,例如,可以使用写入的VM ID来识别试图从所述写入的VM ID指示的VM中读取残留数据的不同VM。
根据所述第二方面,在所述设备的第一种实施方式中,将所述ID写入到一个或多个所有权比特中,特别是结合错误检测信息或待写入数据,例如XOR组合、纠错码(errorcorrection code,简称ECC)方案、CRC校验和或散列和。
因此,所述第一种实施方式中的设备可以进行所有权检测(例如,检测敌对VM或恶意容器或恶意应用程序)和错误检测。这是因为一个或多个所有权比特值是ID和错误检测信息的组合。所述错误检测信息,特别是一个或多个纠错码(error correction code,简称ECC)比特可以用于检测和/或纠正写入数据的误码。
本发明的第三方面提供了一种防止内存数据泄露的方法,包括:
确定第一实体(特别是第一虚拟机或第一容器或第一应用程序)是否访问存储器以获得第一数据,以及是否允许所述第一实体访问所述存储器以获得所述第一数据;
如果所述第一实体访问所述存储器且不允许所述第一实体访问所述存储器以获得所述第一数据,则触发异常功能。
因此,不仅可以检测到恶意实体(例如恶意VM、容器或应用程序),防止由于残留内存数据而造成的数据泄露,还可以改善所述第三方面中的方法的性能、降低功耗。这是因为在本发明中,所有无害的VM或容器或应用程序的存储器都不需要清理,因此可以减小能耗,且在分配物理内存之前省去了冗长的内存写入(例如填充0),从而性能得到改善。
本发明第三方面所述的方法可以由本发明第一方面所述的设备执行。本发明第三方面所述的方法的进一步特征或实施方式可以执行本发明第一方面及其不同实施方式所述的设备的功能。
在所述第三方面所述方法的第一种实施方式中,所述确定第一实体是否访问存储器以获得第一数据以及是否允许所述第一实体访问所述存储器可以包括:
根据标识号码(identification number,简称ID),特别是VM ID或容器ID或进程ID,和/或一个或多个所有权比特值确定所述第一实体,特别是确定所述第一实体是否与提供所述存储器的所述第一数据的实体相关,特别地,确定所述第一实体是否就是所述实体。
因此,所述第一种实施方式中的方法提供了一种检测对存储器中的残留数据进行钓鱼式攻击的恶意VM或恶意容器或恶意应用的有效方式,例如通过确定所述第一实体是否是提供所述第一数据或将所述第一数据写入内存地址的实体。
根据所述第三方面或所述第三方面的前述任一实施方式,在所述方法的第二种实施方式中,所述确定第一实体是否访问存储器以获得第一数据以及是否允许所述第一实体访问所述存储器可以包括:
通过比较所述第一实体的所述ID和从一个或多个存储的所有权比特,特别是从所述存储器中存储的一个或多个纠错码(error correction code,简称ECC)比特中获得的ID,或者通过比较一个或多个计算得到的所有权比特和所述存储器中存储的一个或多个所有权比特,确定所述第一实体是否与提供所述存储器的所述第一数据的实体相关,特别地,确定所述第一实体是否就是所述实体。
因此,该第二种实施方式中所述的方法提供了一种特别有效的检测对存储器中的残留数据进行钓鱼式攻击的恶意实体的方式。
根据所述第三方面或第三方面的前述任一实施方式,在所述方法的第三种实施方式中,所述异常功能包括以下任一项或其组合:
防止所述第一实体读取所述第一数据;和/或
将所述第一实体通知给第二实体;和/或
终止所述第一实体;和/或
删除所述存储器上的所述第一数据和/或其他数据;和/或
清理所述存储器;和/或
利用预定义值重写所述第一数据和/或其他数据。
这代表了另一种防止内存数据泄露的有效方法。
本发明的方法具有与上述设备相同的优点。该方法可以用其他方法步骤来执行,该方法步骤对应于上述描述的该设备的各种实施方式所执行的功能。
本发明的第四方面提供一种存储程序代码的计算机可读存储介质,所述程序代码包括用于执行第三方面或第三方面的任一种实施方式所述的方法的指令。
附图说明
结合所附附图,下面具体实施例的描述将阐述上述本发明的各方面及其实施方式,其中:
图1示出了一种描绘内存数据泄露情况的图;
图2a示出了计算系统的虚拟化架构的示例性框图;
图2b示出了计算系统的另一种架构的示例性框图;
图3示出了根据本发明实施例的一种防止内存数据泄露的设备的示例性框图;
图4示出了根据本发明实施例的一种将数据写入存储器的设备的示例性框图;
图5示出了根据本发明另一实施例的一种计算系统50的示例性框图;
图5a示出了根据本发明实施例的图5所述的计算系统50的内存数据写入流程;
图5b示出了根据本发明实施例的图5所述的计算系统50的内存数据读取流程;
图6a示出了根据本发明实施例的图5所述的计算系统50的另一种内存数据写入流程;
图6b示出了根据本发明实施例的图5所述的计算系统50的另一种内存数据读取流程;
图6c示出了根据本发明实施例的一种XOR计算示例;
图6d示出了根据本发明实施例的图5所述的计算系统50的另一种内存数据读取流程;
图7示出了根据本发明实施例的一种方法的示例性框图;
图8示出了根据本发明实施例的一种页表的示例性框图。
具体实施方式
下文结合附图对本发明实施例的方案进行清楚全面的描述。
为了便于理解本发明实施例,在此首先描述在描述本发明实施例时要引入的若干元件。
虚拟机(virtual machine,简称VM):可以通过虚拟机软件在一台物理计算机上模拟出一台或多台虚拟计算机。这些虚拟机就像真正的计算机一样工作,其中操作系统和应用程序可安装在所述虚拟机上,所述虚拟机可进一步访问网络资源。在虚拟机中运行的应用程序在所述虚拟机中工作时,犹如在真实计算机中工作一样。
硬件层:所述硬件层是运行虚拟化环境的硬件平台。所述硬件层可包括各种硬件。例如,计算节点的硬件层可以包括处理器(例如CPU、GPU或DSP)和存储器,还可以包括高速/低速输入/输出(input/output,简称I/O)设备,例如网络接口卡和存储设备,以及具有特定处理功能的其他设备,例如输入/输出存储管理单元(input/output memory managementunit,简称IOMMU)。所述IOMMU可用于进行虚拟机的物理地址与主机的物理地址之间的转换。
主机:作为管理层,所述主机用于管理和分配硬件资源、向虚拟机提供虚拟硬件平台以及调度和隔离虚拟机。所述主机可以是虚拟机监视器(virtual machine monitor,简称VMM)。另外,在某些情况下,VMM与一个特权虚拟机配合,所述VMM与所述虚拟机相结合形成一个主机。所述虚拟硬件平台为运行在所述虚拟硬件平台上的每个虚拟机提供各种硬件资源,例如提供虚拟中央处理单元(virtual central processing unit,简称VCPU)、虚拟内存、虚拟磁盘和虚拟网络接口卡等。所述虚拟磁盘可以对应于所述主机的文件或逻辑块设备。所述虚拟机在主机为虚拟机准备的虚拟硬件平台上运行,且在主机上运行有一个或多个虚拟机。
图2a示出了一种计算系统100的虚拟化架构,该架构主要包括三层:硬件层、在所述硬件层运行的VMM 1001以及在所述VMM 1001上运行的一个或多个VM 1002。所述硬件层可以包括处理器1004和由所述VM共享的存储器1005。所述VMM 1001可以动态改变所述VM之间的物理内存所有权,例如VM 1和VM 2。例如,将内存位置/地址(例如内存页)从VM 1重新分配给VM 2。如果VM 2从原先用于VM 1但当前用于VM 2的内存页读取残留数据(例如密码、银行账户、用户名)且不将残留数据初始化,则会发生残留/保留数据的泄露。
图2b示出了计算系统200的另一种架构,该架构主要包括三层:硬件层、在所述硬件层上运行的主机操作系统(operating system,简称OS)2001以及在所述主机OS 2001上运行的一个或多个容器2002。所述硬件层可以包括处理器2004和由所述容器2002共享的存储器2005。所述主机OS可以动态地改变容器的物理内存所有权,例如容器1和容器2。例如,将内存位置/地址(例如内存页)从容器1重新分配给容器2。如果容器2从原先用于容器1但当前用于容器2的内存页读取残留数据且不将残留数据初始化,则会发生残留/保留数据的泄露。
图3示出了根据本发明实施例的一种防止内存数据泄露的设备30。所述设备30可以是计算系统中特别是云计算系统中的计算节点,或是通信系统中的物理服务器。所述设备30可以用于各种场景,其中,可以动态地改变实体,特别是VM、容器或应用程序的物理内存所有权。
如图3所示,所述设备30可以包括:
确定单元301,用于确定第一实体是否访问存储器以获得第一数据,以及是否允许所述第一实体访问所述存储器以获得所述第一数据;
控制单元303,用于:如果所述第一实体访问所述存储器且不允许所述第一实体访问所述存储器以获得所述第一数据,则触发异常过程。
例如,所述确定单元301用于确定所述第一实体是否访问内存位置上的第一数据以及是否允许所述第一实体访问所述内存位置上的所述第一数据。
例如,所述控制单元303用于:如果所述第一实体访问所述内存位置上的所述第一数据且不允许所述第一实体访问所述内存位置上的所述第一数据,则生成异常信号,特别是机器检查异常(machine check exception,简称MCE)信号。所述异常信号表明进行异常处理,特别是MCE处理。值得注意的是,所述MCE信号是一个可以在任何时钟上驱动并在指令执行边界上识别的异步事件。
在以下示例中,可以将第一实体视为在第一虚拟机或第一容器上运行的第一应用程序,如图2a和图2b所示。如图2a所示,第一实体也可以被视为共享存储器1005的多个VM中的第一虚拟机。如图2b所示,第一实体也可以被视为共享存储器2005的多个容器中的第一容器。可以理解的是,所述第一实体可以是共享存储器的多个软件模块/实体中的软件模块/实体。特别地,所述第一实体可以是共享存储器的多个VM中的VM,或共享存储器的多个容器中的容器。应该注意的是,本发明不限于上述这些示例。
在本发明一些实施例中,当所述第一实体发起数据读取操作以获得第一数据时,所述确定单元301用于:
根据标识号码(identification number,简称ID),特别是VM ID或容器ID或进程ID,和/或可以指示所述第一数据的实体所有权的一个或多个所有权比特确定所述第一实体是否与原先提供的/写入所述存储器的所述第一数据的实体相关,特别地,确定所述第一实体是否就是所述实体。
例如,所述确定单元301具体用于:
从一个或多个存储的所有权比特中,特别是与所述存储器的所述第一数据相关联的一个或多个存储的纠错码(Error Correction Code,简称ECC)比特中获得所述ID;
通过比较所述第一实体的ID和所获得的ID来确定所述第一实体是否与提供所述存储器的所述第一数据的实体相关,特别地,确定所述第一实体是否就是所述实体。可以理解的是,所获得的ID对应于原先写入或提供所述第一数据的实体的标识。
还可以理解的是,如果所述第一实体的ID和所获得的ID一致,则所述第一实体与提供所述存储器的所述第一数据的实体相关,特别地,所述第一实体就是所述实体,因此,允许所述第一实体访问所述存储器以获得所述第一数据;相反,如果所述第一实体的ID和所获得的ID不一致,则所述第一实体与提供所述存储器的所述第一数据的实体不相关,特别地,所述第一实体不是所述实体,因此,不允许所述第一实体访问所述存储器以获取所述第一数据。
又如,所述确定单元301具体用于:
通过比较一个或多个计算得到的所有权比特和与所述存储器的所述第一数据相关联的一个或多个所存储的所有权比特来确定所述第一实体是否与提供所述存储器的所述第一数据的实体相关,特别地,确定所述第一实体是否就是所述实体。
例如,可以从所述第一数据和所述第一实体的ID中计算一个或多个计算得到的所有权比特值。可以理解的是,如果计算得到的所有权比特和所存储的所有权比特一致,则所述第一实体与提供所述存储器的所述第一数据的实体相关,特别地,所述第一实体就是所述实体,因此,允许所述第一实体是访问所述存储器以获得所述第一数据;相反,如果计算得到的所有权比特和所存储的所有权比特不一致,则所述第一实体与提供所述存储器的所述第一数据的实体不相关,特别地,所述第一实体不是所述实体,因此,不允许所述第一实体访问所述存储器以获取所述第一数据。
进一步地,所述确定单元301还用于从所述存储器获得/读取一个或多个存储的所有权比特,特别是与所述第一数据相关联的一个或多个纠错码(error correction code,简称ECC)比特。
在本发明一些实施例中,当所述第一数据写入所述存储器时,所述一个或多个存储的所有权比特值是提供所述第一数据的实体的ID与错误检测信息的组合,或提供所述第一数据的实体的ID与所述第一数据的组合,例如XOR组合、纠错码(error correctioncode,简称ECC)方案或校验和方案、CRC(循环冗余校验)方案等。
在本发明一些实施例中,当从所述存储器读取所述第一数据时,所述一个或多个计算出的所有权比特值是执行读取动作的第一实体的ID和错误检测信息的组合或第一实体的ID和第一数据的组合,例如XOR组合、纠错码(error correction code,简称ECC)方案或CRC校验和。
应注意的是,可以使用错误检测信息,特别是一个或多个纠错码(errorcorrection code,简称ECC)比特来检测和/或纠正第一数据的误码,且基于来自第一数据的原始数据比特的算法来计算ECC比特,例如纠错码(error correction code,简称ECC)方案或校验和方案和CRC(循环冗余校验)方案。
在本发明一些实施例中,所述控制单元302用于触发异常过程,所述异常过程包括以下任何一个或其组合:
防止所述第一实体读取所述第一数据;和/或
将所述第一实体通知给第二实体;和/或
终止或怀疑所述第一实体;和/或
删除所述存储器上的所述第一数据和/或其他数据;和/或
清理所述存储器;和/或
利用预定义值重写所述第一数据和/或其他数据。
进一步地,所述确定单元301还用于:
检查所述存储器,特别是存储所述第一数据的内存位置是否发生了物理故障。例如,确定所述内存位置中是否存在数据误码。
相应地,在一个示例中,所述控制单元302用于:如果计算得到的所有权比特和所存储的所有权比特彼此不一致,且如果不存在原始数据误码,则触发异常过程。可选的,所述控制单元302还用于:如果所述判断单元301确定发生了内存故障,向第三设备上报所述内存故障。
进一步地,该设备还可以包括内存控制单元(图3中未示出)。所述内存控制单元用于:当所述第一实体在内存地址上发起数据写入操作时,将待写入数据以及与所述待写入数据相对应的一个或多个所有权比特值写入所述存储器,其中,所述所有权比特值可以根据所述待写入数据和所述第一实体的实体标识符来计算,所述所有权比特值指示内存地址中存储的数据的实体所有权。可以参考相关描述,在此不再赘述。
可选地,所述设备30用于切换到非活跃状态;或者所述控制单元302用于切换到非活跃状态。
从上述可以看出,不仅可以检测到恶意实体(例如恶意VM、容器或应用程序),防止由于残留内存数据而造成的数据泄露,还可以改善本发明中的设备的性能、降低功耗。这是因为在本发明中,所有无害的VM或容器或应用程序的存储器都不需要清理,因此可以减小能耗,且在分配物理内存之前省去了冗长的内存写入(例如填充0),从而性能得到改善。此外,还确定是否存在原始数据误码,因此可以进一步提高恶意VM或容器或应用程序的检测准确度。关于其他优点,可以参考上述说明中的总结部分,此处不再赘述。
图4示出了根据本发明实施例的一种将数据写入存储器的设备40。所述设备40可以是计算系统中特别是云计算系统中的计算节点,或通信系统中的物理服务器。所述设备40可以用于各种场景,其中,可以动态地改变实体,特别是运行在VM或容器上的VM、容器或应用程序的物理内存所有权。
如图4所示,所述设备40用于将识别号码(identification number,简称ID)写入所述存储器中,其中,所述ID提供实体的标识,所述实体提供待写入所述存储器的数据。
可以理解的是,当实体发起数据写入操作时,将待写入数据(即第一数据)和提供所述第一数据的实体的ID写入所述存储器。
在一个示例中,将所述ID写入到一个或多个所有权比特中,特别是结合所述待写入数据的错误检测信息,例如XOR组合、纠错码(error correction code,简称ECC)方案或CRC校验和。可以理解的是,本实施例对获取/计算待写入数据的错误检测信息的方法不作限定,可以参考已知的现有技术,在此不再赘述。
在另一个例子中,将所述ID写入一个或多个所有权比特中,特别是结合所述待写入存储器的数据,例如XOR组合、纠错码(error correction code,简称ECC)方案或CRC校验和。
因此,所述一个或多个所有权比特一起存入所述存储器或与所述存储器中的所述第一数据相关联。
从上述可以看出,该设备可以检测对存储器中的残留数据进行钓鱼式攻击的恶意实体(例如,恶意VM或恶意容器或恶意应用程序)。这是因为该ID可以用来识别对存储器中的残留数据进行钓鱼式攻击的不同实体,例如,写入的VM ID可以用来识别试图从所述写入的VM ID指示的VM中读取残留数据的不同VM。关于其它优点,可以参考上述说明中的总结部分,此处不再赘述。
图5示出了根据本发明另一实施例的一种防止内存数据泄露的设备50。特别地,所述设备50可以是计算系统。所述计算系统50可以包括:处理器501和存储器502。可选地,所述计算系统50还可以包括I/O设备503和通信总线504。所述通信总线504用于实现所述计算系统50内部组件间的连接和通信。所述存储器502可以包括高速RAM存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器。所述存储器502向所述处理器501提供指令和数据。
在一种实施方式中,所述存储器502可以存储表示一个或多个应用程序、一个或多个虚拟机和/或VMM的指令。
在另一种实施方式中,所述存储器502可以存储表示一个或多个容器和/或主机OS的指令。
所述处理器501可以是中央处理单元(central processing unit,简称CPU)、GPU或专用集成电路(application-specific integrated circuit,简称ASIC),或者可以配置为实施本发明实施例的一个或多个集成电路。
所述处理器501通过读取所述存储器502中存储的指令,以:
确定第一实体(特别是第一应用程序、第一虚拟机或第一容器)是否访问存储器以获得第一数据,以及是否允许所述第一实体访问所述存储器以获得第一数据;
如果所述第一实体访问所述存储器且不允许所述第一实体访问所述存储器以获得第一数据,则触发异常功能。
关于其他具体实施细节,可以参考上述和下述实施例。
从上述可以看出,不仅可以检测到恶意实体(例如恶意VM或容器或应用程序),防止由于残留内存数据而造成的数据泄露,还可以改善所述计算系统50的性能、降低功耗方面。这是因为在本发明中,所有无害的VM或容器或应用程序的存储器都不需要清理,因此可以减小能耗,且在分配物理内存之前省去了冗长的内存写入(例如填充0),从而性能得到改善。关于其他优点,可以参考上述说明中的总结部分,此处不再赘述。
以下通过具体实施例对上述设备实施例进行描述。
图5a示出了根据本发明实施例的图5所述的计算系统50的内存数据写入流程。
如图5a所示,所述计算系统50可以包括处理器501和存储器502。所述处理器501可以包括至少一个处理器核、具有待写入数据的写缓冲器和计算模块(例如图6a所示的校验和模块)。所述待写入数据包括一个或多个数据比特单元(单元),例如,一个数据比特单元可以是8个数据比特、64个数据比特或128个数据比特。换句话说,一个数据比特单元可以是所述待写入数据的每个字节、8个字节或者16个字节。
当VM在内存地址上发起数据写入操作时,所述内存地址和执行写入操作的所述VM的VM ID可以存储在图5a所示的所述计算系统50的缓存器、缓冲器或寄存器中,例如,处理器核。
所述校验和模块用于例如通过XOR计算或任何其他ECC生成算法从待写入数据和VM的VM ID中计算一个或多个ECC比特值。所述ECC比特值指示内存地址中存储的数据的VM所有权。特别地,所述校验和模块用于计算每个数据比特单元(例如,所述待读取数据的8个比特)和VM ID的一个或多个比特的ECC比特值。每个数据比特单元对应于所述VM的VM ID的一个或多个比特。例如,对于待写入数据的每个字节,所述ECC比特可以是1比特。
从上述可以看出,这样一来,一个或多个数据比特单元和一个或多个ECC比特以一一对应的关系写入所述存储器502。换句话说,所述存储器502可以存储一个或多个存储单元以及与所述一个或多个存储单元一一对应或相关联的一个或多个ECC比特。关于其他优点,可以参考上述说明,此处不再赘述。
图5b示出了根据本发明实施例的图5所示的计算系统50的内存数据读取流程。
如图5b所示,所述计算系统50可以包括处理器501和存储器502。所述处理器501可以包括至少一个处理器核、具有待读取数据的读缓冲器、计算模块(例如示出的校验和模块)和一个比较器。
当VM在内存地址上发起数据读取操作时,所述内存地址和执行读取操作的所述VM的VM ID存储在图5b所示的所述计算系统50的缓存器、缓冲器或寄存器中,例如,处理器核。
所述校验和模块用于从待读取数据和所述VM的VM ID中计算出一个或多个ECC比特值。特别地,所述校验和模块用于计算每个数据比特单元(例如,所述待读取数据的8个比特)和VM ID的一个或多个比特的ECC比特值。每个数据比特单元对应于所述VM的VM ID的一个或多个比特。例如,对于待读取数据的每个字节,所述ECC比特是1比特。
所述比较器用于将一个或多个计算得到的ECC比特值和与所述待读取数据一起存储在所述存储器502中的一个或多个ECC比特值进行比较,且如果计算得到的ECC比特值与存储的ECC比特值不一致,生成机器检查异常(machine check exception,简称MCE)信号,以调用VMM或操作系统内核来执行异常功能以响应于所述MCE信号。
所述异常功能包括以下任何一项或其组合:
防止所述VM读取待读取数据;和/或
将所述VM通知给另一个写入所述待读取数据的虚拟机;和/或
终止或怀疑所述VM;和/或
删除所述存储器上的所述数据和/或其他数据;和/或
清理所述存储器;和/或
利用预定义值重写所述数据和/或其他数据。
从上述可以看出,不仅可以检测到恶意VM,防止由于残留内存数据而造成的数据泄露,还可以改善所述计算系统50的性能、降低功耗。因为在本发明中,所有无害的VM的存储器都不需要清理,因此可以减小能耗,且在分配物理内存之前省去了冗长的内存写入(例如填充0),从而性能得到改善。关于其他优点,可以参考上述说明,此处不再赘述。
图6a示出了根据本发明另一实施例的图5所示的计算系统50的另一种内存数据写入流程。
如图6a所示,所述计算系统50可以包括处理器501和存储器502。所述处理器501可以包括至少一个处理器核、具有待写入数据的写缓冲器、计算模块(例如示出的校验和模块)以及设置在ECC比特输出端的至少一个XOR门。所述待写入数据包括一个或多个数据比特单元(单元),例如一个数据比特单元可以是8个数据比特、64个数据比特(如图6c所示的64比特的存储行)或128个数据比特。所述XOR门可以是一组XOR门,或组合的XOR门。当VM在内存地址上发起数据写入操作时,所述内存地址和执行写入操作的所述VM的VM ID可以存储在图6a所示的所述计算系统50的缓存器、缓冲器或寄存器中,例如,处理器核。
所述校验和模块用于从待写入数据中计算出一个或多个校验和比特值。特别地,所述校验和模块用于计算每个数据比特单元(例如,所述待写入数据的每个字节)的校验和比特值。可以参考已知的现有技术,在此不再赘述。所述校验和比特可以是待写入数据的错误检测信息的示例。
所述XOR门用于对校验和比特值和执行写入操作的所述VM的VM ID执行XOR计算,以获得一个或多个ECC比特值。特别地,所述XOR门用于对每个数据比特单元的校验和比特值和VM ID对应的一个或多个比特执行XOR计算,以获得所述数据比特单元的ECC比特值。如图6c所示,每个字节对应于所述VM的VM ID的1个比特,换句话说,8字节的存储行对应于执行写入操作的所述VM的VM ID的低8位。对每个字节的校验和比特和VM ID对应的1比特执行XOR计算,以获得每个字节的ECC比特值。例如,对于待写入数据的每个字节,所述ECC比特是1比特。XOR门的延迟很小,不会影响处理器的IO性能。
从上述可以看出,这样一来,一个或多个数据比特单元和一个或多个ECC比特以一一对应的关系写入所述存储器502。换句话说,所述存储器502可以存储一个或多个存储单元以及与所述一个或多个存储单元一一对应或相关联的一个或多个ECC比特。关于其他优点,可以参考上述说明,此处不再赘述。
图6b示出了根据本发明另一实施例的图5所示的计算系统50的另一种内存数据读取流程。
如图6b所示,所述计算系统50可以包括处理器501和存储器502。所述处理器501可以包括至少一个处理器核、具有待读取数据的读缓冲器、计算模块(例如示出的校验和模块)、至少一个XOR门和一个比较器。
当VM在内存地址上发起数据读取操作时,所述内存地址和执行读取操作的所述VM的VM ID存储在图6b所示的所述计算系统50的缓存器、缓冲器或寄存器中,例如,处理器核。
所述校验和模块用于从待读取数据中计算出一个或多个校验和比特值。特别地,所述校验和模块用于计算每个数据比特单元(例如,所述待读取数据的每个字节)的校验和比特值。
所述XOR门用于对校验和比特值和所述VM的VM ID执行XOR计算,以获得一个或多个ECC比特值。特别地,所述XOR门用于对每个数据比特单元的校验和比特值和VM ID对应的一个或多个比特执行XOR计算,以获得所述数据比特单元的ECC比特值。如图6c所示,每个字节对应于所述VM的VM ID的1比特,换句话说,8字节的存储行对应于执行读取操作的所述VM的VM ID的低8位。对每个字节的校验和比特和VM ID对应的1比特执行XOR计算,以获得每个字节的ECC比特值。例如,对于待读取数据的每个字节,所述ECC比特是1比特。
所述比较器用于将一个或多个获得的ECC比特值与从所述存储器502读取到的且与待读取数据对应的一个或多个存储的ECC比特值进行比较,如果所获得的ECC比特值与存储的ECC比特值不一致,生成机器检查异常(machine check exception,简称MCE)信号,以调用VMM或操作系统内核来执行异常功能以响应于所述MCE信号。关于所述异常功能,可以参考上述实施例中的相关描述,此处不再赘述。
从上述可以看出,不仅可以检测到恶意VM,防止由于残留内存数据而造成的数据泄露,还可以改善所述计算系统50的性能、降低功耗。因为在本发明中,所有无害的VM的存储器都不需要清理,因此可以减小能耗,且在分配物理内存之前省去了冗长的内存写入(例如填充0),从而性能得到改善。关于其他优点,可以参考上述说明,此处不再赘述。
图6d示出了根据本发明另一实施例的图5所示的计算系统50的另一种内存数据读取流程。
如图6d所示,所述计算系统50可以包括处理器501和存储器502。所述处理器501可以包括至少一个处理器核、具有待读取数据的读缓冲器、计算模块(例如示出的校验和模块)、至少一个XOR门和一个比较器。
当VM在内存地址上发起数据读取操作时,所述内存地址和执行读取操作的所述VM的VM ID存储在图6d所示的所述计算系统50的缓存器、缓冲器或寄存器中,例如,处理器核。
所述校验和模块用于从待读取数据中计算出一个或多个校验和比特值。特别地,所述校验和模块用于计算每个数据比特单元(例如,所述待读取数据的每个字节)的校验和比特值。
所述XOR门用于对与所述待读取数据对应的一个或多个存储的ECC比特值和所述VM的VM ID执行XOR计算,以获得一个或多个校验比特值。特别地,所述XOR门用于对所存储的对应于每个数据比特单元的ECC比特值和来自处理器核的VM ID对应的一个或多个比特执行XOR计算(即,ECC比特与来自处理器核的VM ID比特相异或),以获得所述数据比特单元的校验比特值。
所述比较器用于将一个或多个获得的校验比特值与对应于所述待读取数据的一个或多个计算的校验和比特值进行比较,且如果所获得的校验比特值与所计算出的校验和比特值不一致,则生成机器检查异常(machine check exception,简称MCE)信号,以便调用VMM或操作系统内核来执行异常功能以响应于所述MCE信号。关于所述异常功能,可以参考上述实施例中的相关描述,此处不再赘述。
从上述可以看出,不仅可以检测到恶意VM,防止由于残留内存数据而造成的数据泄露,还可以改善所述计算系统50的性能、降低功耗。因为在本发明中,所有无害的VM的存储器都不需要清理,因此可以减小能耗,且在分配物理内存之前省去了冗长的内存写入(例如填充0),从而性能得到改善。
此外,设计将数据的VM ID编码到ECC比特中,且在对存储器进行写入之前通过检查存储在所述存储器中的ECC比特的值与计算值的差值来捕获尝试读取所述存储器的VM,因此,不仅可以检测VM所有权,还可以实现错误检测。关于其他优点,可以参考上述说明,此处不再赘述。
图7示出了根据本发明实施例的一种防止内存数据泄露的方法。如图7所示,可以包括下述步骤:
S701:确定第一实体(特别是第一应用程序、第一虚拟机或第一容器)是否访问存储器以获得第一数据,以及是否允许所述第一实体访问所述存储器以获得第一数据;
S702:如果所述第一实体访问所述存储器且不允许所述第一实体访问所述存储器以获得所述第一数据,则触发异常功能。
在本发明一些实施例中,S701可包括:
根据标识号码(identification number,简称ID),特别是VM ID或容器ID或进程ID,和/或可以指示所述第一数据的实体所有权的一个或多个所有权比特值确定所述第一实体,特别是确定所述第一实体是否与提供所述存储器的所述第一数据的实体相关,特别地,确定所述第一实体是否就是所述实体。
例如,所有权比特值可以是一个或多个指示所述第一数据的实体所有权的纠错码(Error Correction Code,简称ECC)比特值。
例如,S701可以包括:
通过比较所述第一实体的ID和从一个或多个存储的所有权比特,特别是与所述存储器的所述第一数据相关联的一个或多个存储的纠错码(error correction code,简称ECC)比特中获得的ID,确定所述第一实体是否与提供所述存储器的所述第一数据的实体相关,特别地,确定所述第一实体是否就是所述实体。
又如,S701可以包括:
通过比较一个或多个计算得到的所有权比特和与所述第一数据相关联的一个或多个所存储的所有权比特确定所述第一实体是否与提供所述存储器的所述第一数据的实体相关,特别地,确定所述第一实体是否就是所述实体。
因此,该实施例的方法提供了一种特别有效的检测对存储器中的残留数据进行钓鱼式攻击的恶意实体的方式。
在本发明一些实施例中,S702可包括:
如果所述第一实体访问所述存储器且不允许所述第一实体访问所述存储器以获得所述第一数据,则触发异常功能,其中,所述异常功能包括以下一种或其组合:
防止所述第一实体读取所述第一数据;和/或
将所述第一实体通知给第二实体;和/或
终止所述第一实体;和/或
删除所述存储器上的所述第一数据和/或其他数据;和/或
清理所述存储器;和/或
利用预定义值重写所述第一数据和/或其他数据。
这代表了另一种防止内存数据泄露的有效方法。
在本发明一些实施例中,所述存储器可以包括大量的内存页。如图8所示,对应所述内存页的页表包括先读后写(Read before write,RBW)比特,所述RBW比特指示是否启用或禁用了内存页的先读后写校验。可选地,页表还可以包括虚拟地址与物理地址之间的映射。
所述方法还包括:
S700a:通过从页表中检查与内存页的条目相对应的RBW比特确定是否启用或禁用了所述内存页的先读后写校验。
当确定启用了所述内存页的先读后写校验时,执行S701的过程。
在本发明一些实施例中,全局先读后写(Read before write,简称RBW)比特存储在处理器或计算系统的缓存器、缓冲器或寄存器中,全局RBW比特指示是否启用或禁用了所述存储器的先读后写校验。
所述方法还包括:
S700b:通过检查缓存器、缓冲器或寄存器中的全局RBW比特,确定是否启用或禁用了所述存储器的先读后写校验。
当确定启用了所述存储器的先读后写校验时,执行S701的过程。
要注意的是,先读后写校验对应于在前述实施例中描述的功能或步骤。
本领域技术人员可清楚地理解到,为了描述方便和简洁,对于前述方法的详细过程,可参考前述设备实施例中的相应设备,此处不再赘述。
从上述可以看出,不仅可以检测到恶意实体,防止由于残留内存数据而造成的数据泄露,还可以改善所述方法的性能、降低功耗。因为在本发明中,所有无害的实体的存储器都不需要清理,因此可以减小能耗,且在分配物理内存之前省去了冗长的内存写入(例如填充0),从而性能得到改善。关于其他优点,可以参考上述说明,此处不再赘述。
上文描述仅仅为本发明的实施方式,本发明的范围并不仅限于此。本领域技术人员可以容易地做出任何变化或替换。因此,本发明的保护范围应以所附权利要求的保护范围为准。

Claims (14)

1.一种防止内存数据泄露的设备,其特征在于,包括:
确定单元,用于确定第一实体是否访问存储器以获得第一数据以及是否允许所述第一实体访问所述存储器,其中,所述第一实体是第一应用;
控制单元,用于:如果所述第一实体访问所述存储器且不允许所述第一实体访问所述存储器,则触发异常功能;
其中,所述确定单元用于:
根据识别号码ID、或一个或多个所有权比特识别所述第一实体,其中,识别所述第一实体具体包括识别所述第一实体是否与提供所述存储器的所述第一数据的实体相关,识别所述第一实体是否与提供所述存储器的所述第一数据的实体相关具体包括:识别所述第一实体是否就是提供所述存储器的所述第一数据的实体;
其中,所述确定单元用于:
结合错误检测信息或所述第一数据从所述存储器获得所述ID,其中,所述错误检测信息为CRC校验和或散列和。
2.根据权利要求1所述的设备,其特征在于,所述确定单元用于:
从一个或多个所有权比特中获取所述ID,所述所有权比特为所述存储器的一个或多个纠错码ECC比特。
3.根据权利要求1所述的设备,其特征在于,所述确定单元用于:通过比较所述第一实体的ID和所述获得的ID或者通过比较一个或多个计算得到的所有权比特与所述存储器中存储的一个或多个所有权比特确定所述第一实体是否与提供所述存储器的所述第一数据的实体相关,其中,确定所述第一实体是否与提供所述存储器的所述第一数据的实体相关具体包括:确定所述第一实体是否就是提供所述存储器的所述第一数据的实体。
4.根据权利要求2所述的设备,其特征在于,所述确定单元用于:通过比较所述第一实体的ID和所述获得的ID或者通过比较一个或多个计算得到的所有权比特与所述存储器中存储的一个或多个所有权比特确定所述第一实体是否与提供所述存储器的所述第一数据的实体相关,确定所述第一实体是否与提供所述存储器的所述第一数据的实体相关具体包括:确定所述第一实体是否就是提供所述存储器的所述第一数据的实体。
5.根据权利要求1至4任意一项所述的设备,其特征在于,所述确定单元用于:
如果所述第一实体为提供所述存储器的所述第一数据的实体,则确定允许所述第一实体访问所述存储器。
6.根据任一权利要求1至4任意一项所述的设备,其特征在于,所述控制单元用于:触发异常功能,其中所述异常功能包括以下任何一个或其组合:
防止所述第一实体读取所述第一数据;和/或
将所述第一实体通知给第二实体;和/或
终止所述第一实体;和/或
删除所述存储器上的所述第一数据和/或其他数据;和/或
清理所述存储器;和/或
利用预定义值重写所述第一数据和/或其他数据。
7.一种防止内存数据泄露的设备,其特征在于,所述设备具有权利要求1至6任意一项所述设备的全部特征,并且,所述确定单元用于:
检查所述存储器是否发生了物理故障。
8.根据权利要求7所述的设备,其特征在于,所述控制单元用于:
如果所述确定单元确定发生了内存故障,则向第三设备上报所述内存故障。
9.一种防止内存数据泄露的设备,其特征在于,所述设备具有权利要求1至8任意一项所述设备的全部特征,并且,所述设备用于切换到非活跃状态;或
所述控制单元用于切换到非活跃状态。
10.一种防止内存数据泄露的设备,其特征在于,包括:
确定单元,用于确定第一实体是否访问存储器以获得第一数据以及是否允许所述第一实体访问所述存储器,其中,所述第一实体是第一应用;
控制单元,用于:如果所述第一实体访问所述存储器且不允许所述第一实体访问所述存储器,则触发异常功能;
其中,所述确定单元用于:
根据识别号码ID、或一个或多个所有权比特识别所述第一实体,其中,识别所述第一实体具体包括识别所述第一实体是否与提供所述存储器的所述第一数据的实体相关,识别所述第一实体是否与提供所述存储器的所述第一数据的实体相关具体包括:识别所述第一实体是否就是提供所述存储器的所述第一数据的实体;
其中,
所述确定单元用于:
从一个或多个所有权比特中获取所述ID,所述所有权比特为所述存储器的一个或多个纠错码ECC比特。
11.一种将数据写入存储器的设备,其特征在于,所述设备用于:
将识别号码ID写入所述存储器中,其中,所述ID提供实体的标识,所述实体提供待写入所述存储器的数据;
其中,
结合错误检测信息或所述待写入的数据将所述ID写入一个或多个所有权比特,具体包括结合错误检测信息或所述待写入的数据,所述错误检测信息为CRC校验和或散列和。
12.一种防止内存数据泄露的方法,其特征在于,包括:
确定第一实体是否访问存储器以获得第一数据,以及是否允许所述第一实体访问所述存储器;所述第一实体是第一应用程序、第一虚拟机或第一容器;
如果所述第一实体访问所述存储器且不允许所述第一实体访问所述存储器,则触发异常功能;
其中,所述确定第一实体是否访问存储器以获得第一数据,以及是否允许所述第一实体访问所述存储器包括:
根据识别号码ID、或一个或多个所有权比特识别所述第一实体是否为提供所述存储器的所述第一数据的实体;
其中,
结合错误检测信息或所述第一数据从所述存储器获得所述ID,所述错误检测信息为CRC校验和或散列和;
或者,
从一个或多个所有权比特中获取所述ID,所述所有权比特为所述存储器的一个或多个纠错码ECC比特。
13.根据权利要求12所述的方法,其特征在于,所述确定第一实体是否访问存储器以获得第一数据,以及是否允许所述第一实体访问所述存储器包括:
通过比较所述第一实体的所述ID和从一个或多个存储的所有权比特,具体包括从所述存储器中存储的一个或多个纠错码ECC比特中获得的ID,或者通过比较一个或多个计算得到的所有权比特和所述存储器中存储的一个或多个所有权比特,确定所述第一实体是否为与提供所述存储器的所述第一数据的实体。
14.根据权利要求12或13所述的方法,其特征在于,所述异常功能包括以下中的任何一个或其组合:
防止所述第一实体读取所述第一数据;和/或
将所述第一实体通知给第二实体;和/或
终止所述第一实体;和/或
删除所述存储器上的所述第一数据和/或其他数据;和/或
清理所述存储器;和/或
利用预定义值重写所述第一数据和/或其他数据。
CN201680085453.6A 2016-07-14 2016-07-14 一种防止内存数据泄露的设备及方法 Active CN109154963B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2016/066753 WO2018010794A1 (en) 2016-07-14 2016-07-14 Device and method for preventing memory data leakage

Publications (2)

Publication Number Publication Date
CN109154963A CN109154963A (zh) 2019-01-04
CN109154963B true CN109154963B (zh) 2021-01-29

Family

ID=56550199

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680085453.6A Active CN109154963B (zh) 2016-07-14 2016-07-14 一种防止内存数据泄露的设备及方法

Country Status (2)

Country Link
CN (1) CN109154963B (zh)
WO (1) WO2018010794A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159703B (zh) * 2019-12-31 2022-12-06 奇安信科技集团股份有限公司 虚拟机数据泄露检测方法及装置
EP3889816A1 (en) * 2020-03-31 2021-10-06 Nagravision SA Method for securely processing digital information in a secure element
CN113672910B (zh) * 2021-07-13 2024-06-11 北京奇艺世纪科技有限公司 安全事件处理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101414272A (zh) * 2008-10-17 2009-04-22 上海华为技术有限公司 内存泄漏的检测方法和装置
CN101965553A (zh) * 2008-01-04 2011-02-02 密刻爱你有限公司 虚拟应用程序系统、存储设备、虚拟应用程序的运行方法及虚拟环境的保护方法
CN102346715A (zh) * 2010-07-30 2012-02-08 国际商业机器公司 保护内存中应用程序的方法、内存控制器和处理器
CN103488588A (zh) * 2013-10-09 2014-01-01 中国科学院计算技术研究所 一种内存保护方法、系统及网络接口控制器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4007873B2 (ja) * 2002-07-09 2007-11-14 富士通株式会社 データ保護プログラムおよびデータ保護方法
WO2009088175A2 (en) * 2008-01-04 2009-07-16 Markany Inc. Virtual application program system, storing device, method for executing virtual application program and method for protecting virtual environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101965553A (zh) * 2008-01-04 2011-02-02 密刻爱你有限公司 虚拟应用程序系统、存储设备、虚拟应用程序的运行方法及虚拟环境的保护方法
CN101414272A (zh) * 2008-10-17 2009-04-22 上海华为技术有限公司 内存泄漏的检测方法和装置
CN102346715A (zh) * 2010-07-30 2012-02-08 国际商业机器公司 保护内存中应用程序的方法、内存控制器和处理器
CN103488588A (zh) * 2013-10-09 2014-01-01 中国科学院计算技术研究所 一种内存保护方法、系统及网络接口控制器

Also Published As

Publication number Publication date
CN109154963A (zh) 2019-01-04
WO2018010794A1 (en) 2018-01-18

Similar Documents

Publication Publication Date Title
US9037873B2 (en) Method and system for preventing tampering with software agent in a virtual machine
US9535807B2 (en) Recovering from uncorrected memory errors
US8627140B2 (en) Failure management method and computer
US9003223B2 (en) Physical memory fault mitigation in a computing environment
US9021605B2 (en) Method and system for protecting sensitive data in a program
US8434067B2 (en) Method and system for whitelisting software components
US20080201540A1 (en) Preservation of integrity of data across a storage hierarchy
KR20130033416A (ko) 메모리의 세그먼트들을 보호하기 위한 방법 및 장치
US10114948B2 (en) Hypervisor-based buffer overflow detection and prevention
US10635307B2 (en) Memory state indicator
US11314635B1 (en) Tracking persistent memory usage
US10061918B2 (en) System, apparatus and method for filtering memory access logging in a processor
CN109154963B (zh) 一种防止内存数据泄露的设备及方法
EP2620875B1 (en) Address translation inspection device, central processing device, and address translation inspection method
US10915640B2 (en) Cyber security testing for authorized services
US8910004B2 (en) Information processing apparatus, and method of controlling information processing apparatus
KR20170060815A (ko) 메모리의 커널영역을 보호하기 위한 전자장치 및 방법
CN116737526A (zh) 一种代码段动态度量方法、装置及电子设备
US11243864B2 (en) Identifying translation errors
US11095313B2 (en) Employing single error correction and triple error detection to optimize bandwidth and resilience under multiple bit failures
US10229070B2 (en) Computer-implemented method and a system for encoding a heap application memory state using shadow memory
US20200110665A1 (en) Handling uncorrected memory errors inside a kernel text section through instruction block emulation
US11625171B2 (en) Hardware support for memory safety with an overflow table
CN117472632A (zh) 一种虚拟机内存故障的处理方法和装置、电子设备
KR20200066011A (ko) 중첩 페이징 없이 커널을 보호하는 방법 및 그 장치

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