CN111373405B - 用于防止计算设备中比特翻转攻击的计算机实现方法 - Google Patents

用于防止计算设备中比特翻转攻击的计算机实现方法 Download PDF

Info

Publication number
CN111373405B
CN111373405B CN201880064569.0A CN201880064569A CN111373405B CN 111373405 B CN111373405 B CN 111373405B CN 201880064569 A CN201880064569 A CN 201880064569A CN 111373405 B CN111373405 B CN 111373405B
Authority
CN
China
Prior art keywords
memory
trusted
untrusted
data
portions
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
CN201880064569.0A
Other languages
English (en)
Other versions
CN111373405A (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 International Pte Ltd
Original Assignee
Huawei International Pte 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 International Pte Ltd filed Critical Huawei International Pte Ltd
Publication of CN111373405A publication Critical patent/CN111373405A/zh
Application granted granted Critical
Publication of CN111373405B publication Critical patent/CN111373405B/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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

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

Abstract

本申请公开了一种用于防止计算设备中比特翻转(Rowhammer)攻击的计算机实现方法(200)。所述设备的内存中分布有多个非可信内存部分和多个可信内存部分。所述方法包括以下步骤:确定(202)与至少一个非可信内存部分物理相邻的相应可信内存部分,以提供一组识别的可信内存部分,可以通过访问所述非可信内存部分对所述可信内存部分发起攻击;确定(204)所述的已识别可信内存部分中可移动到内存中其他内存位置的部分;将所述可移动可信内存部分移动(206)到所述内存中的可用内存位置,形成一个可信内存部分块;生成(208)至少一个内存保护部分;以及将所述内存保护部分配置(210)为位于可信内存部分块的末端,物理上与非可信内存部分相邻。所述内存保护部分可以防止所述可信内存部分块和非可信内存部分之间的电气交互,从而防止攻击。

Description

用于防止计算设备中比特翻转攻击的计算机实现方法
技术领域
本发明涉及用于防止计算设备中比特翻转(Rowhammer)攻击的计算机实现方法。
背景技术
Rowhammer是动态随机存取内存(DRAM)中发生的一种意外负面状况,会导致内存单元漏电并彼此发生电气交互,从而可能改变不在原始内存访问范围中的附近内存行的内容。此漏洞可由特制的内存访问模式触发,这些模式会多次快速激活相同的内存行。由于某个内存单元的重复访问,附近内存单元的内容可能会改变,从而导致内存位翻转(即,位值0变为位值1,反之亦然)。
Rowhammer攻击通过访问附近的可达物理内存修改或造成不可达物理内存中的位翻转。也就是说,Rowhammer攻击是高级的数据攻击。由于物理内存的设计,攻击者通常以特定模式访问(物理内存的)攻击者行(aggressor row),故意影响(物理内存的)受害者行(victim row),从而在受害者行中造成位翻转。如图1所示,根据伪代码中显示的精心构造的攻击模式,受害者行的内存单元可能从位值1翻转为位值0。
典型的Rowhammer攻击包括以下步骤:
1.Rowhammer测试:扫描内存,寻找有用的位翻转;
2.内存操作:定位关键数据结构,并将所述数据结构映射到所述位翻转;以及
3.面向数据编程(DOP)攻击:修改所述数据结构并运行预期的有效载荷。
Rowhammer攻击在桌面系统和移动设备上都很普遍,可能导致权限提升,例如沙箱绕过、虚拟机逃逸、移动系统ROOT、打破各种系统隔离。
防止Rowhammer攻击的方法之一是,使用推荐的硬件特性检测可能的有害内存访问模式并以细粒度的方式刷新物理内存。但是,这种方法需要采用新硬件,意味着不能直接用于所有现有系统。另一种方法是,通过软件隔离技术隔离不同的内存实体。这可将Rowhammer影响的物理内存降至最小范围,从而防止特权提升问题。然而,这种方法需要进行许多繁重的系统修改,并且运行上述软件技术可能产生很高的内存消耗。
出于实用考虑,Rowhammer防范方法最好满足以下标准:
1.高安全性:可以防止Rowhammer攻击。
2.低性能影响:产生的内存消耗和CPU开销最好都比较低。
3.透明度:无需修改程序源代码或二进制文件,即不更改现有系统特性。
4.应用:即使没有新硬件特性的支持,也可以很容易地应用于所有现有系统。
为了便于理解,下文简要讨论了两种防止Rowhammer攻击的的传统方案。
·英特尔的目标行更新
英特尔TM提出了目标行更新(TRR)技术,用于防止Rowhammer攻击。在内部,TRR通过计算行激活数并将该数值与预定义的芯片特定的最大激活数(MAC)和最大激活窗口(tMAW)值进行比较来识别可能的受害者行。这些行随后被刷新,以防止位翻转。MAC值是在时间间隔内特定DRAM行上可能遇到的最大行激活总数,该时间间隔等于或小于相邻行被标识为受害者行之前的tMAW时间。如果某行的两个相邻行的行激活总数在tMAW时间窗内达到MAC限值,则TRR也可以将该行标记为受害者行。TRR的一个缺点是,处理器中必须具有用于启用TRR的必要硬件特性,这意味着,将TRR部署到现有系统并不容易。
·B\G-CATT
B\G-CATT提出了两种基于软件的防御方法来防止Rowhammer攻击。第一种是B-CATT,通过扩展系统引导器来禁用易受攻击的物理内存。B-CATT非常实用,因为无需更改操作系统并且可以部署到几乎所有基于x86的系统上。虽然能够阻止所有已知的Rowhammer攻击,但B-CATT尚未解决物理内存中缺少内存隔离这一根本问题。因此,为了解决所述问题,提出了第二种防御方法G-CATT。这是一种通用解决方案,通过扩展操作系统的物理内存分配器,物理隔离不同系统实体(例如内核和用户空间)的内存。不过,B\G-CATT方法的内存消耗较高。此外,它们也不保护共享内存,降低了安全效用。
因此,本发明的目的之一是解决现有技术的至少一个问题和/或为本领域增加一项有用的选择。
总结
根据本发明的第一个方面,提供了一种用于防止计算设备中Rowhammer攻击的计算机实现方法。所述设备的内存中分布有多个非可信内存部分和多个可信内存部分。所述方法包括以下步骤:确定与至少一个非可信内存部分物理相邻的相应可信内存部分,以提供一组识别的可信内存部分,可以通过访问所述非可信内存部分对所述可信内存部分发起攻击;确定所述的已识别可信内存部分中可移动到内存中其他内存位置的部分;将所述可移动可信内存部分移动到所述内存中的可用内存位置,形成一个可信内存部分块;生成至少一个内存保护部分;将所述内存保护部分配置为位于可信内存部分块的末端,物理上与非可信内存部分相邻。所述内存保护部分可以防止所述可信内存部分块和非可信内存部分之间的电气交互,从而防止攻击。
最好是将所述方法配置为融入到所述设备的操作系统的内存分配器和引导加载器中。
最好是各可信内存部分可以防范所述设备上运行的未授权软件进程的访问。
最好是所述内存包括动态随机存取内存或NAND闪存。
最好是将所述内存保护部分配置为不包含数据或包含任何数据。
根据本发明的第二个方面,提供了一种用于在计算设备中防止Rowhammer攻击的装置。所述设备的内存中分布有多个非可信内存部分和多个可信内存部分。所述装置包括以下部分:第一模块,用于确定与至少一个非可信内存部分物理相邻的相应可信内存部分,以提供一组识别的可信内存部分,可以通过访问所述非可信内存部分对所述可信内存部分发起攻击;第二模块,用于确定所述的已识别可信内存部分中可移动到内存中其他内存位置的部分;第三模块,用于将所述可移动可信内存部分移动到所述内存中的可用内存位置,形成一个可信内存部分块;第四模块,用于生成至少一个内存保护部分;以及第五模块,用于将所述内存保护部分配置为位于可信内存部分块的末端,物理上与非可信内存部分相邻。所述内存保护部分可以防止所述可信内存部分块和非可信内存部分之间的电气交互,从而防止攻击。
根据本发明的第三个方面,提供了一种用于防止计算设备中Rowhammer攻击的计算机实现方法。所述设备的内存包括至少一个非可信内存部分、至少一个可信内存部分和第一数据部分,通过所述非可信内存部分访问所述第一数据部分,可以对所述可信内存部分发起攻击。所述方法包括以下步骤:(1)复制所述第一数据部分的内容;(2)将所述复制内容拷贝到所述内存中的第二数据部分(配置为与所述第一数据部分隔离);以及(3)将所述第一和第二数据部分配置为仅可由所述可信内存部分和非可信内存部分分别访问。
最好将所述第一数据部分配置为仅启用所述UM部分的读取访问以及所述TM部分的读取和/或写入访问。
所述方法最好还包括以下步骤:(4)生成至少一个内存保护部分;以及(5)如果所述第一和第二数据部分安排为物理相邻,则将所述内存保护部分配置为位于第一和第二数据部分中间,防止第一和第二数据部分之间发生电气交互。
最好是将所述方法配置为融入到所述设备的操作系统的内存分配器和引导加载器中。
最好是所述可信内存部分可以防范所述设备上运行的未授权软件进程的访问。
最好是所述内存包括动态随机存取内存或NAND闪存。
最好是将所述内存保护部分配置为不包含数据或包含任何数据。
根据本发明的第四个方面,提供了一种用于在计算设备中防止Rowhammer攻击的装置。所述设备的内存包括至少一个非可信内存部分、至少一个可信内存部分和第一数据部分,通过所述非可信内存部分访问所述第一数据部分,可以对所述可信内存部分发起攻击。所述装置包括以下部分:第一模块,用于复制所述第一数据部分的内容;第二模块,用于将所述复制内容拷贝到所述内存中的第二数据部分(配置为与所述第一数据部分隔离);第三模块,用于将所述第一和第二数据部分配置为仅可由所述可信内存部分和非可信内存部分分别访问。
显然,与本发明的某一方面相关的特征也可适用于本发明的其他方面。
下面,将结合下文描述的实施例对本发明的这些和其它方面进行说明和阐述。
附图说明
下文将结合附图对本发明的实施例进行说明,其中:
图1展示了根据现有技术进行的Rowhammer攻击的执行过程。
图2是根据第一实施例开展的用于防止计算设备中Rowhammer攻击的计算机实现方法的流程图。
图3a和3b展示了图2所示方法在所述计算设备的内存中的应用。
图4a和4b分别展示了在启动时和运行时如何移动可信内存部分,以形成可信内存部分块。
图5展示了内存保护部分的工作机制。
图6是根据第二实施例开展的用于防止计算设备中Rowhammer攻击的计算机实现方法的流程图。
图7a和7b展示了图6所示方法在所述计算设备的内存中的应用。
图8描述了图2所示方法用于保护可信执行环境的第一示例场景。
图9描述了图2所示方法用于保护操作系统内核的第二示例场景。
图10描述了图2所示方法用于保护Hypervisor的第三示例场景。
图11描述了图2所示方法用于保护软件进程的第四示例场景。
图12是对图2和6所示方法的示意性总结。
首选实施例的详细描述
图2描述了根据第一实施例开展的用于防止计算设备(未展示)中Rowhammer攻击的计算机实现方法200(以下称为第一方法)的流程图。例如,第一方法200配置为融入到计算所述设备的操作系统的内存分配器(MA)和引导器(BL)。引导器也称为系统装入程序(SL)。所述计算设备的(物理)内存(例如动态随机存取内存或NAND闪存)中分布有多个非可信内存部分和多个可信内存部分。物理内存通常分为TM部分和UM部分。各可信内存部分可以通过数字化方式防范所述计算设备上运行的未授权软件进程的访问。广义地说,第一方法200包括:在步骤202中,确定与至少一个非可信内存部分物理相邻的相应可信内存部分,以提供一组识别的可信内存部分,可以通过访问所述非可信内存部分对所述可信内存部分发起攻击(例如,修改可信内存部分存储的数据);在步骤204中,确定所述的已识别可信内存部分中可移动到内存中其他内存位置的部分;在步骤206中,将所述可移动可信内存部分移动到所述内存中的可用内存位置,形成一个可信内存部分块;在步骤208,生成至少一个内存保护部分;以及在步骤210,将所述内存保护部分配置为位于可信内存部分块的末端,物理上与非可信内存部分相邻。这样的益处是,所述内存保护部分可以防止所述可信内存部分块和非可信内存部分之间的电气交互,从而防止攻击。通过这种方式,从所述非可信内存部分发起的Rowhammer攻击不会对所述可信内存部分造成恶意影响,因为所述内存保护部分为空(因此不会影响所述可信内存部分)。注意,内存保护部分也称为内存边界保护(MBG)。
注意,第一方法200也可以作为相关装置以硬件形式实现,相应地,步骤202至210可随后作为第一模块、第二模块、第三模块、第四模块和第五模块实现,分别用于执行前面描述的相关方法步骤。
图3a和3b展示了用于所述计算设备的内存的第一方法200。更具体地说,是描述了传统的(即图3a)和第一方法200修改的(即图3b)(物理映射的)内存布局的对比情况。如本领域所知,可以在物理相邻的UM和TM部分之间的相应边界处进行Rowhammer攻击。在基本配置中,第一方法200配置为生成内存保护部分以及将生成的内存保护部分安排在(物理相邻的)UM和TM部分之间,从而防止攻击。注意,生成的内存保护部分被安排为紧邻所述的UM和TM部分。换句话说,如果所述的UM和TM部分物理上不相邻,则不必在它们之间生成和安排内存保护部分。
因此,这里强调的是,第一方法200配置为将单独的TM部分合并到相应的内存部分块中,从而减少TM和UM部分之间的内存边界。反过来,这也会减少可用于进行攻击的Rowhammer位置。相应地,图4a和4b分别展示了如何在启动时和运行时移动TM部分,以形成相应的可信内存部分块。例如,如果确定所述TM部分可移动(即不是固定内存部分),则第一方法200(通过BL和MA)配置为合并所有TM部分。首先,在启动时,SL将所有TM部分分配在一起(如果可行)。然后,在运行时,每当生成新的TM部分时,MA配置为将所述新TM部分分配给具有足够内存空间以容纳所述新TM部分且紧邻其他现有TM部分的某个未分配内存部分。
接下来,图5展示了内存保护部分的工作机制。如前所述,所述内存保护部分配置为不包含数据,即配置为空物理内存部分。此外,所述内存保护部分配置为物理上属于相邻TM部分。所述内存保护部分的生命周期也配置为与所述相邻TM部分的生命周期相同。重申一下,第一方法100(通过MA)仅生成一个内存保护部分,排列在物理相邻的TM和UM部分之间。生成的内存保护部分的大小取决于所述计算设备的内存硬件特征(需关注)。要生成的内存保护部分的默认大小将取决于所述计算设备的内存硬件的行大小。
下文将对本发明的更多实施例进行描述。为简洁起见,不再重复描述实施例之间常见的类似元素、功能和操作,参考相关实施例的对应部分即可。
图6描述了根据第二实施例开展的用于防止计算设备中Rowhammer攻击的计算机实现方法600(以下称为第二方法)的流程图。例如,第二方法600配置为同时融入到所述计算设备的操作系统的内存分配器(MA)和引导加载器(BL)中。引导器也称为系统装入程序(SL)。所述内存包括至少一个非可信内存(UM)部分、至少一个可信内存(TM)部分和第一数据部分(参见图7a),通过所述非可信内存部分访问所述第一数据部分,对所述可信数据部分发起攻击。注意,所述第一数据部分是只读共享内存(SM),所述可信内存部分和非可信内存部分都可以访问。特别是,所述第一数据部分配置为仅启用所述UM部分的读取访问以及所述TM部分的读取和/或写入访问。广义地说,第二方法600包括:在步骤602中,复制所述第一数据部分的内容;在步骤604中,将所述复制内容拷贝到所述内存中的第二数据部分(安排为与所述第一数据部分物理上隔离,参见图7b);以及在步骤606中,将所述第一和第二数据部分配置为仅可由所述可信内存部分和非可信内存部分分别访问。
第二方法600也可以作为相关装置以硬件形式实现,相应地,步骤602至606可随后作为第一模块、第二模块和第三模块实现,分别用于执行前面描述的相关方法步骤。
注意,在步骤606中,所述第一数据部分和第二数据部分可以统称为共享内存保护(SMG),也可以分别称为可信共享内存保护(TSMG)和非可信共享内存保护(USMG)。所述第一数据部分和第二数据部分的生命周期配置为分别与所述可信内存部分和非可信内存部分的生命周期相同。
更具体地说,第二方法600(通过MA)生成SMG的过程如下。所述UM和TM部分共享的原始SM首先被转换为只有所述TM部分可以访问的TSMG。接下来,所述MA生成所述TSMG的副本(即,被指定为USMG),只有所述UM部分可以访问。注意,所述TSMG和USMG配置为物理上隔离。通常,原始SM是Rowhammer位置,但是在经过第二方法600处理后,所述Rowhammer位置被从原始SM中移除(转换为TSMG和USMG)。
此外,第二方法600还包括:生成至少一个配置为不包含数据的内存保护部分;以及将所述内存保护部分配置为位于第一和第二数据部分中间(仅当所述第一和第二数据部分物理相邻时)。所述内存保护部分可防止所述第一和第二数据部分之间的电气交互。注意,这是可选特性,不是实施第二方法600所必需的。
图8描述了第一方法200用于保护可信执行环境操作系统(TEE OS)免受Linux等独立操作系统影响的第一示例场景。所述TEE OS将配置为位于第一内存部分,而Linux配置为位于物理上与所述第一内存部分相邻的第二内存部分。具体来说,第一方法200(通过BL)加载所述TEE OS并将其映射到所述第一内存部分。本例中的BL属于所述TEE OS。接下来,所述TEE OS的MA生成并加载内存边界部分(不包含数据),以便将所述第二内存部分(Linux所在的内存部分)与所述第一内存部分(所述TEE OS所在的内存部分)进行物理隔离。这样,所述TEE OS就不会受到从Linux发起的Rowhammer攻击的影响。在该例中,所述第一内存部分可被视为TM部分,而所述第二内存部分可被视为UM部分。
图9描述了第一方法200用于保护操作系统(如Linux)内核不受用户应用影响的第二示例场景。所述内核将配置为位于第一内存部分,所述用户应用将配置为位于与所述第一内存部分物理相邻的第二内存部分中。具体来说,BL加载并隔离所述内核。然后,所述内核中的MA通过生成安排在所述第一和第二内存部分之间的内存边界部分加载所述用户应用并将其(与所述内核)物理隔离。注意,所述内存边界部分属于所述第一内存部分。因此,所述第一内存部分不会受到从所述第二内存部分发起的Rowhammer攻击的影响。在该例中,所述第一内存部分可被视为TM部分,而所述第二内存部分可被视为UM部分。
图10描述了第一方法200用于保护虚拟机设置中Hypervisor的第三示例场景。具体来说,通过各自的内存边界部分,Hypervisor、主机操作系统和客户机操作系统所在的相应内存部分可以彼此隔离。注意,所述Hypervisor或主机操作系统的MA可用于生成和管理所述内存边界部分(以及SMG,如果需要生成的话)。
图11描述了第一方法200用于保护多个软件进程的第四示例场景。图中有两个软件进程(进程1和进程2),进程1配置为位于第一内存部分,进程2配置为位于与所述第一内存物理相邻的第二内存部分。在这种情况下,进程1将不受进程2影响,因此所述第一内存部分被指定为TM部分,而所述第二内存部分被指定为UM部分。操作系统内核(承载进程1和进程2)中的MA可用于生成和管理属于相应进程的内存边界部分。这样,从非可信进程发起的Rowhammer攻击便无法破坏可信进程。
总之,推荐的第一方法100提供了基于软件的物理内存隔离方案(融入到BL和MA中),以有效保护TM部分不被通过UM部分发起的Rowhammer攻击修改。通过重新排列物理内存布局(通过第一方法100),减少了可被Rowhammer攻击破坏的内存部分。物理内存消耗也进行了优化。Rowhammer攻击包括以下操作:(1)Rowhammer测试,(2)内存操作和(3)面向数据编程(DOP)攻击。第一方法100用于防止内存操作,从而有效地防止攻击。第二方法600支持安全共享UM和TM部分之间的只读数据部分(在内存中),从而防止Rowhammer攻击影响所述只读数据部分。图12是对第一方法100和第二方法600的示意性总结。
对于第一方法100,在操作系统启动时,BL初始加载TM和UM部分并将它们与内存中物理上不相关的部分隔离。所述操作系统运行过程中,MA进一步管理TM和UM部分的布局,并生成相应的内存边界防护(MBG)来隔离不同的TM和UM部分(如果物理相邻的话)。在所述UM和TM部分之间共享只读内存时,所述MA生成SMG(包括TSMG和USMG),以隔离所述只读共享内存。所述MA用于统一管理和动态维护所述TM部分、UM部分、MBG和SMG各自的生命周期。
有利的是,第一方法100提供了一种轻量级软件方案,适用于现有系统,内存消耗最小,基本上带来零CPU开销和能耗。第二方法600提供了隔离机制,而现有解决方案主要侧重于阻止内存位翻转。因此,采用第二方法600的话,即使物理内存发生翻转,受保护的内存区域也不受位翻转影响。具体来说,第二方法600支持只读共享内存。大多数现有解决方案都不保护共享内存,从而导致安全问题,或者妨碍共享内存在不同实体之间的应用,从而导致兼容性问题。第二方法600通过生成SMG来启用正常内存共享并阻止Rowhammer攻击。
除了Rowhammer攻击,第一方法100和第二方法600也适用于防止可能导致权限提升的一般DOP攻击。此外,这两种方法都可以转化为相应的软件操作系统产品。
上文已通过图形和前面描述对本发明进行了详细说明和描述。这些说明和描述应被视为说明或示范性信息,而非限制性信息;本发明并不限于上文列举的实施例。在实际应用本发明时,领域技术人员可根据理解对所列举的实施例进行适当更改。例如,不需要总是将内存保护部分配置为不包含数据;相反,在某些情况下,可以将内存保护部分配置为包含任何数据。

Claims (14)

1.一种用于防止计算设备中比特翻转(Rowhammer)攻击的计算机实现方法,其特征在于,所述设备的内存中分布有多个非可信内存部分和多个可信内存部分,该方法包括:
(1)确定与至少一个非可信内存部分物理相邻的相应可信内存部分,以提供一组识别的可信内存部分,可以通过访问所述非可信内存部分对所述可信内存部分发起攻击;
(2)确定所述的已识别可信内存部分中可移动到内存中其他内存位置的部分;
(3)将所述可移动可信内存部分移动到所述内存中的可用内存位置,形成一个可信内存部分块;
(4)生成至少一个内存保护部分;
(5)将所述内存保护部分配置为位于可信内存部分块的末端,物理上与非可信内存部分相邻;
其中,所述内存保护部分可防止所述可信内存部分块和非可信内存部分之间的电气交互,从而防止攻击。
2.根据权利要求1所述的方法,其特征在于,配置为融入到所述设备的操作系统的内存分配器和引导器。
3.根据前述任一权利要求所述的方法,其特征在于,各可信内存部分可以防范所述设备上运行的未授权软件进程的访问。
4.根据前述任一权利要求所述的方法,其特征在于,所述内存包括动态随机存取内存或NAND闪存。
5.根据前述任一权利要求所述的方法,其特征在于,所述内存保护部分配置为不包含数据或包含任何数据。
6.一种用于在计算设备中防止比特翻转Rowhammer攻击的装置,其特征在于,所述设备的内存中分布有多个非可信内存部分和多个可信内存部分,该装置包括:
第一模块,用于确定与至少一个非可信内存部分物理相邻的相应可信内存部分,以提供一组识别的可信内存部分,可以通过访问所述非可信内存部分对所述可信内存部分发起攻击;
第二模块,用于确定所述的已识别可信内存部分中可移动到内存中其他内存位置的部分;
第三模块,用于将所述可移动可信内存部分移动到所述内存中的可用内存位置,形成一个可信内存部分块;
第四模块,用于生成至少一个内存保护部分;以及
第五模块,用于将所述内存保护部分配置为位于可信内存部分块的末端,物理上与非可信内存部分相邻;
其中,所述内存保护部分可防止所述可信内存部分块和非可信内存部分之间的电气交互,从而防止攻击。
7.一种用于在计算设备中防止比特翻转Rowhammer攻击的计算机实现方法,其特征在于,所述设备的内存中分布有至少一个非可信内存部分、至少一个可信内存部分和第一数据部分,通过所述非可信内存部分访问所述第一数据部分,可以对所述可信内存部分发起攻击,该方法包括:
(1)复制所述第一数据部分的内容;
(2)将所述复制内容拷贝到所述内存中的第二数据部分(配置为与所述第一数据部分隔离);以及
(3)将所述第一和第二数据部分配置为仅可由所述可信内存部分和非可信内存部分分别访问。
8.根据权利要求7所述的方法,其特征在于,可将所述第一数据部分配置为仅启用所述非可信内存部分的读取访问以及所述可信内存部分的读取和/或写入访问。
9.根据权利要求7和8中任一项所述的方法,其特征在于,最好还包括:
(4)生成至少一个内存保护部分;以及
(5)如果所述第一和第二数据部分安排为物理相邻,则将所述内存保护部分配置为位于第一和第二数据部分中间,防止第一和第二数据部分之间发生电气交互。
10.根据权利要求7至9中任一项所述的方法,其特征在于,配置为融入到所述设备的操作系统的内存分配器和引导器。
11.根据权利要求7至10中任一项所述的方法,其特征在于,各可信内存部分可以防范所述设备上运行的未授权软件进程的访问。
12.根据权利要求7至11中任一项所述的方法,其特征在于,所述内存包括动态随机存取内存或NAND闪存。
13.根据权利要求7至12中任一项所述的方法,其特征在于,所述内存保护部分配置为不包含数据或包含任何数据。
14.一种用于防止计算设备中比特翻转Rowhammer攻击的装置,其特征在于,所述设备的内存中分布有至少一个非可信内存部分、至少一个可信内存部分和第一数据部分,通过所述非可信内存部分访问所述第一数据部分,可以对所述可信内存部分发起攻击,该装置包括:
第一模块,用于复制所述第一数据部分的内容;
第二模块,用于将所述复制内容拷贝到所述内存中的第二数据部分(配置为与所述第一数据部分隔离);以及
第三模块,用于将所述第一和第二数据部分配置为仅可由所述可信内存部分和非可信内存部分分别访问。
CN201880064569.0A 2017-10-02 2018-09-28 用于防止计算设备中比特翻转攻击的计算机实现方法 Active CN111373405B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SG10201708104QA SG10201708104QA (en) 2017-10-02 2017-10-02 Computer implemented method for preventing rowhammer attack in a computing device
SG10201708104Q 2017-10-02
PCT/SG2018/050493 WO2019070195A1 (en) 2017-10-02 2018-09-28 COMPUTER-IMPLEMENTED METHOD FOR PREVENTING MARKING ATTACK IN A COMPUTER DEVICE

Publications (2)

Publication Number Publication Date
CN111373405A CN111373405A (zh) 2020-07-03
CN111373405B true CN111373405B (zh) 2023-04-18

Family

ID=63966058

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880064569.0A Active CN111373405B (zh) 2017-10-02 2018-09-28 用于防止计算设备中比特翻转攻击的计算机实现方法

Country Status (3)

Country Link
CN (1) CN111373405B (zh)
SG (1) SG10201708104QA (zh)
WO (1) WO2019070195A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11567880B2 (en) * 2020-08-12 2023-01-31 Microsoft Technology Licensing, Llc Prevention of RAM access pattern attacks via selective data movement
CN116501238A (zh) * 2022-01-21 2023-07-28 长鑫存储技术有限公司 一种解析方法、解析装置、电子设备和计算机存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103955362A (zh) * 2014-04-03 2014-07-30 广东工业大学 一种基于Xen的操作系统内核监控方法
CN106415574A (zh) * 2014-06-23 2017-02-15 英特尔公司 采用用于促进对安全存储器的访问的中间结构
CN107194287A (zh) * 2017-05-12 2017-09-22 中国科学院信息工程研究所 一种arm平台上的模块安全隔离方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140002928A (ko) * 2012-06-28 2014-01-09 에스케이하이닉스 주식회사 셀 어레이 및 이를 포함하는 메모리 장치
US9030903B2 (en) * 2012-09-24 2015-05-12 Intel Corporation Method, apparatus and system for providing a memory refresh
US9299400B2 (en) * 2012-09-28 2016-03-29 Intel Corporation Distributed row hammer tracking
US9564205B2 (en) * 2014-11-13 2017-02-07 Winbond Electronics Corp. Memory apparatus and method for accessing memory
KR102388746B1 (ko) * 2015-11-11 2022-04-20 삼성전자주식회사 세이프 어드레스 매핑을 이용한 메모리 셀 액세스 제어 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103955362A (zh) * 2014-04-03 2014-07-30 广东工业大学 一种基于Xen的操作系统内核监控方法
CN106415574A (zh) * 2014-06-23 2017-02-15 英特尔公司 采用用于促进对安全存储器的访问的中间结构
CN107194287A (zh) * 2017-05-12 2017-09-22 中国科学院信息工程研究所 一种arm平台上的模块安全隔离方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Yuan Xiao ; Xiaokuan Zhang ; Yinqian Zhang ; .跨虚拟机的Row Hammer攻击和权限提升.中国教育网络.2016,(11),全文. *
谷双双 ; 夏鲁宁 ; 贾世杰 ; .一种加密硬盘的身份鉴别和密钥保护方案.密码学报.2016,(02),全文. *

Also Published As

Publication number Publication date
WO2019070195A1 (en) 2019-04-11
SG10201708104QA (en) 2019-05-30
CN111373405A (zh) 2020-07-03

Similar Documents

Publication Publication Date Title
CN111651778B (zh) 基于risc-v指令架构的物理内存隔离方法
CN109002706B (zh) 一种基于用户级页表的进程内数据隔离保护方法和系统
CN109918919B (zh) 认证变量的管理
US8209510B1 (en) Secure pool memory management
US8909898B2 (en) Copy equivalent protection using secure page flipping for software components within an execution environment
TWI441024B (zh) 用於處理器主記憶體之記憶體內容之安全保護的方法及系統
US8276201B2 (en) Integrity protection in data processing systems
US7870336B2 (en) Operating system protection against side-channel attacks on secrecy
US7975117B2 (en) Enforcing isolation among plural operating systems
US8327415B2 (en) Enabling byte-code based image isolation
US20070006175A1 (en) Intra-partitioning of software components within an execution environment
CN112602060A (zh) 计算机处理器中的虚拟机寄存器
US20080077767A1 (en) Method and apparatus for secure page swapping in virtual memory systems
EP3287932B1 (en) Data protection method and device
US20210157741A1 (en) Security Configurations in Page Table Entries for Execution Domains
CN112639779A (zh) 用于存储器地址从对象特定虚拟地址空间转换成物理地址空间的安全性配置
JP2009516310A (ja) メモリページをプログラムに対応付けるページカラーリング
CN112639732A (zh) 基于超管理器的存在的计算机处理器的动态配置
US20100333206A1 (en) Protecting a software component using a transition point wrapper
US7512768B2 (en) Dynamically sharing a stack between different code segments
EP4156008A1 (en) Seamless access to trusted domain protected memory by virtual machine manager using transformer key identifier
CN111373405B (zh) 用于防止计算设备中比特翻转攻击的计算机实现方法
CN107851032B (zh) 用于在容器中执行服务的计算装置、系统及方法
KR102028704B1 (ko) 전자기기에서 코드 삽입 공격으로부터 보호를 위한 메모리 운용 방법
CN108241801B (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