CN111274573B - 一种基于访存请求序列的处理器芯片假安全依赖冲突的识别方法 - Google Patents

一种基于访存请求序列的处理器芯片假安全依赖冲突的识别方法 Download PDF

Info

Publication number
CN111274573B
CN111274573B CN202010039387.7A CN202010039387A CN111274573B CN 111274573 B CN111274573 B CN 111274573B CN 202010039387 A CN202010039387 A CN 202010039387A CN 111274573 B CN111274573 B CN 111274573B
Authority
CN
China
Prior art keywords
memory access
vector
security
judging
information
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
CN202010039387.7A
Other languages
English (en)
Other versions
CN111274573A (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.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering of CAS
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 Institute of Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Publication of CN111274573A publication Critical patent/CN111274573A/zh
Application granted granted Critical
Publication of CN111274573B publication Critical patent/CN111274573B/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/71Protecting 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
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Landscapes

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

Abstract

本发明提出一种基于访存请求序列的处理器芯片假安全依赖冲突的识别方法,属于处理器微体系结构设计领域,在安全依赖关系的基础上,分析推测执行侧信道攻击中的关键步骤,提取共有的访存模式,在处理器微体系结构中引入安全依赖关系检查逻辑,动态地识别不存在危险的假安全依赖关系。

Description

一种基于访存请求序列的处理器芯片假安全依赖冲突的识别 方法
技术领域
本发明属于处理器微体系结构设计领域,涉及一种基于访存请求序列的识别假安全依赖冲突的安全处理器微体系结构设计方法。
背景技术
推测执行技术在一些指令还未被解析,跳转方向或者指令是否有权限执行还不能确定时,允许后续的指令提前执行。若推测成功,则可以有效地提升程序的执行效率。在发现推测错误后,将体系结构恢复至正确状态,保证程序的正确性。这一方法可以有效地提升指令并行性,是主流商业芯片中至关重要的性能优化措施之一。然而由于在错误推测的窗口期间,对微体系结构上的改变未被恢复,其中残留的敏感信息可能被攻击者推算出来,带来严重的安全风险。
针对推测执行侧信道攻击,在微体系结构上可以通过引入保护域的标识或者对共享资源进行隔离,从而保证攻击者不能直接影响受害者程序的执行,或者在受害者执行后,通过微体系结构信息推算出敏感信息。这两种方法会带来较大的面积代价,也会带来较为紧张的时序约束。安全依赖为触发推测执行的指令与后续超前推测执行的指令之间建立依赖关系,并为相关的访存操作附加安全依赖标签,将该标识位与指令信息一同在流水线中传递。但这种方法标识的存在安全依赖的访存中,有些访存操作其实并不具备泄露信息的可能,因而带来了不必要的性能损失。
发明内容
为了在免受推测执行侧信道攻击的前提下,降低硬件代价、减少时序压力,本发明提出一种基于访存请求序列的处理器芯片假安全依赖冲突的识别方法,在安全依赖的基础上,分析推测执行侧信道攻击中的关键步骤,提取共有的访存模式,在微体系结构中引入安全依赖检查逻辑,动态地识别不存在危险的假安全依赖。
本发明方法的技术方案主要包含以下内容:
一种基于访存请求序列的处理器芯片假安全依赖冲突的识别方法,包括以下步骤:
一)识别基于共享页的推测执行侧信道攻击的访存模式
基于共享页的方法是利用推测执行漏洞构造侧信道攻击的常用且危险的方法。在采用这种方法进行攻击时,访存序列存在特定的访存模式,因此,可以程序执行过程中,动态地分析访存请求序列是否存在这种访存模式;
二)在微体系结构中动态识别访存模式
在处理器的微体系结构中,动态地识别访存序列是否符合共享页的推测执行侧信道攻击的访存模式,例如在读写单元中来检测,本文包括但不局限于在这一单元进行识别。在微体系结构引入识别逻辑,动态地判断存在安全依赖的访存操作是否满足这种访存模式。如果该访存操作满足所述访存模式,则判定该访存操作存在真安全依赖关系,否则存在假安全依赖关系。
其中,所述访存模式具体内容包括:
1)利用受害者执行过程中在错误推测路径上首先读取敏感信息的值;
2)将该敏感信息作为地址来访问非敏感信息所在页的数据;
3)访问非敏感信息所在页的数据时,未命中缓存,如若执行,将会引入新的缓存行,期间有可能替换掉原有的缓存行,改变缓存内容。
攻击者通过分析该数据区域访问缓存时间的变化,来判断受害者的访问行为,继而分析出敏感数据。通常情况下,敏感数据与非敏感数据区域不会被分配在同一个页面,即在第2)步骤的访存操作与第1)步骤的访存操作不在同一个页面。
其中,所述识别逻辑为:在程序的执行序下,分析最新的处于推测执行状态下的访存请求之前,是否也存在其他处于推测状态下的访存操作,而这两个操作访问不同的页。如若访问不同的页,则视为存在真安全依赖,否则为假安全依赖。处理器可以对存在真安全依赖的访存采用安全策略的同时,允许假安全依赖访存操作的正常执行,以达到安全与性能的平衡。
这一识别逻辑需要的信息依赖于微体系结构中可以提供的信息。可以在已有信息的前提下,通过特殊的缓冲区或其他结构来记录存在安全依赖关系的访存指令的地址信息。本方法包括但不限于采用缓冲区结构来记录,也不限于仅记录存在依赖关系的访存指令信息。
本发明的优点在于:本发明在微体系结构层级实现,对上层应用透明,不需要对软件或者操作系统做任何修改,也不需对程序重新编译。攻击者无法干预此类假安全依赖的判断。该方法可以在不影响安全依赖对安全性保证的同时,保证程序执行的性能,达到性能与安全性的平衡。
附图说明
图1为基于共享页的推测执行侧信道攻击的访存模式图。
图2为监听是否发生攻击的访存模式图。
具体实施方式
为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。
本发明检测的危险的攻击访存模式如图1所示。这种访存模式具备以下特征:
1)在推测执行的窗口内,访存指令A优先于访存指令B执行;
2)访存指令B数据依赖于访存指令A,即访存指令B的地址由指令A读取数据计算后获得;
3)指令B在缓存中未命中;
4)指令B与指令A访问的物理页号不同。
在微体系结构中,通过图2的逻辑判断此次访存操作的安全依赖标签模式是否为假安全依赖:
引入单独的缓冲区,记录在推测执行窗口内访存操作的相关信息,包括物理页号(PPN)、以及其他几个向量,包括:安全依赖向量(S)、地址匹配向量(Mask)、有效向量(V)和写回向量(W),缓冲区结构包括的内容但不限于这些信息。该实施例中缓冲区的索引可以选择通过指针记录有效指令的开头与结尾。考虑到实现的硬件代价及时序约束,该缓冲区可以选择与已有的缓冲区共享信息,例如读写单元(Load Store Unit)。
1)分配:在访存操作发射后,将相关信息备份在该缓冲区中,此时有效位(V)置位;
2)更新:当发现当前指令存在安全依赖关系时,安全依赖位(S)置位;在物理地址被解析后,更新至物理页号位(PPN);在访存操作将数据写回后,写回位(W)置位。
3)检测:在推测执行窗口内,新来一条访存操作时,比较其物理页号(在其他实施例中可为与页号相关的其他信息,例如TLB中条目的索引号)等相关信息与缓冲区中记录的其他所有的访存操作的物理页号等相关信息是否一致,生成匹配向量(Match)。这些向量中为匹配的访存操作中,若存在任意一项有效的(V)、处于推测状态(S),且数据已被写回(W),则说明当前的访存操作满足基于共享页的推测访存的模式,存在安全风险,判定为真安全依赖。在微体系结构中,可以通过下述公式(1)的逻辑获得最终的判断结果(safe),为0时标识真安全依赖,为1时表示假安全依赖。本方法包含但不限于采用这些标识以及此判断逻辑的实现。
safe=!(|(V&W&S&Match)) (1)
若该位为1,标识当前访存操作为安全,即仅存在假安全依赖关系;否则仍视为危险的,具备真安全依赖的访存操作。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

Claims (8)

1.一种基于访存请求序列的处理器芯片假安全依赖冲突的识别方法,其特征在于,包括以下步骤:
在程序执行过程中,动态分析访存请求序列是否存在基于共享页的推测执行侧信道攻击的访存模式;所述访存模式为:利用受害者执行过程中在错误推测路径上首先读取敏感信息的值;将该敏感信息作为地址来访问非敏感信息所在页的数据;当访问非敏感信息所在页的数据时,未命中缓存;上述敏感信息与非敏感信息不在同一个页面;
如果存在所述访存模式,则在处理器的微体系结构中,动态识别访存请求序列是否符合所述访存模式,通过引入识别逻辑,判断存在安全依赖的访存操作是否满足所述访存模式;所述识别逻辑为:在程序的执行序下,在分析最新的处于推测执行状态下的访存请求之前,判断是否存在其他处于推测状态下的访存操作访问不同的页,如果访问不同的页,则判定访存操作存在真安全依赖关系,否则判定存在假安全依赖关系;
如果所述访存操作满足所述访存模式,则判定该访存操作存在真安全依赖关系,否则判定存在假安全依赖关系。
2.如权利要求1所述的方法,其特征在于,在处理器的微体系结构中,引入单独的缓冲区,记录在推测执行窗口内访存操作的物理页号和向量信息,该向量信息包括安全依赖向量S、地址匹配向量Mask、有效向量V和写回向量W。
3.如权利要求2所述的方法,其特征在于,所述缓冲区通过指针记录有效指令的开头与结尾进行索引。
4.如权利要求2所述的方法,其特征在于,所述缓冲区与已有的缓冲区共享信息,该已有的缓冲区包括读写单元。
5.如权利要求2所述的方法,其特征在于,在执行访存操作后,将物理页号和向量信息备份在到所述缓冲区中,对应于有效向量V的有效位置位;当发现当前指令存在安全依赖关系时,对应于安全依赖向量S的安全依赖位置位;在物理地址被解析后,更新至物理页号位;在访存操作将数据写回后,对应于写回向量W的写回位置位。
6.如权利要求5所述的方法,其特征在于,在推测执行窗口内,比较新的访存操作的物理页号和向量信息,与所述缓冲区中记录的其他所有的访存操作的物理页号和向量信息是否一致,来判定真安全依赖和假安全依赖。
7.如权利要求6所述的方法,其特征在于,通过比较物理页号和向量信息是否一致,生成匹配向量Match,式子safe=!(|(V&W&S&Match))如果等于0,则判定访存操作存在真安全依赖关系,如果等于1,则判定访存操作存在假安全依赖关系。
8.如权利要求1所述的方法,其特征在于,处理器采用安全策略执行存在真安全依赖关系的访存操作,且允许存在假安全依赖关系的访存操作的正常执行。
CN202010039387.7A 2019-09-19 2020-01-15 一种基于访存请求序列的处理器芯片假安全依赖冲突的识别方法 Active CN111274573B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910887309X 2019-09-19
CN201910887309 2019-09-19

Publications (2)

Publication Number Publication Date
CN111274573A CN111274573A (zh) 2020-06-12
CN111274573B true CN111274573B (zh) 2022-09-09

Family

ID=71001676

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010039387.7A Active CN111274573B (zh) 2019-09-19 2020-01-15 一种基于访存请求序列的处理器芯片假安全依赖冲突的识别方法

Country Status (1)

Country Link
CN (1) CN111274573B (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170544B (zh) * 2017-12-29 2020-08-28 中国人民解放军国防科技大学 面向数据无冲突程序的共享数据动态更新方法
CN108427576B (zh) * 2018-02-12 2022-04-01 华夏芯(北京)通用处理器技术有限公司 一种免受Spectre攻击的高性能推测执行算法
KR102287758B1 (ko) * 2018-03-05 2021-08-09 삼성전자주식회사 부채널 공격으로부터 캐시를 보호하는 시스템
CN110032867B (zh) * 2019-03-26 2021-05-25 中国人民解放军国防科技大学 一种主动切断隐蔽通道应对缓存侧信道攻击的方法及系统

Also Published As

Publication number Publication date
CN111274573A (zh) 2020-06-12

Similar Documents

Publication Publication Date Title
Canella et al. A systematic evaluation of transient execution attacks and defenses
Schwarz et al. Store-to-leak forwarding: Leaking data on meltdown-resistant CPUs (updated and extended version)
JP7228592B2 (ja) 投機的キャッシュ記憶領域
US10394716B1 (en) Apparatus and method for controlling allocation of data into a cache storage
US9548986B2 (en) Sensitive data tracking using dynamic taint analysis
TWI745333B (zh) 用於控制有界指標的使用的設備及方法
JP7377211B2 (ja) 投機的サイド・チャネル・ヒント命令
US9804975B2 (en) Hardware-enforced prevention of buffer overflow
US11221951B1 (en) Skipping tag check for tag-checked load operation
US20200410088A1 (en) Micro-instruction cache annotations to indicate speculative side-channel risk condition for read instructions
CN110532767B (zh) 面向sgx安全应用的内部隔离方法
US20190205142A1 (en) Systems and methods for secure processor
Nagarajan et al. Dynamic information flow tracking on multicores
CN110851836B (zh) 一种面向Meltdown攻击的主动防御方法
CN111274573B (zh) 一种基于访存请求序列的处理器芯片假安全依赖冲突的识别方法
CN112486723B (zh) 数据校验方法、装置、处理器及电子设备
CN115964758A (zh) 一种基于TrustZone的内核数据完整性保护方法
US11294828B2 (en) Apparatus and method for controlling allocation of information into a cache storage
Schwarz et al. Store-to-leak forwarding: Leaking data on meltdown-resistant CPUs (updated and extended version)
CN111241551B (zh) 基于缓存命中状态的处理器芯片假安全依赖冲突的识别方法
CN114981811A (zh) 用于软件安全的装置和方法
CN113626805B (zh) 基于risc-v与不可执行内存的缓冲区溢出攻击防御方法及系统
US20100257514A1 (en) Effective mapping of code sections to the same section of secondary memory to improve the security of computing systems
CN113536297A (zh) 基于RISC-V与Canary机制的缓冲区溢出攻击防御方法及装置
Santos Architectural Support for Software Security

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