当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于抵抗交叉特权线性探查的系统、方法和装置制造方法及图纸

技术编号:25196873 阅读:29 留言:0更新日期:2020-08-07 21:22
描述了用于抵抗交叉特权线性访问的系统、方法和装置。例如,描述了装置的实现方式,该装置包括用于存储当前特权级别的特权级别存储和耦合至特权级别存储的地址检查电路,其中地址检查电路用于基于对当前特权级别和与指令相关联的线性地址的最高有效位的比较来判定线性地址是否被允许访问装置的线性地址空间的分区。

【技术实现步骤摘要】
【国外来华专利技术】用于抵抗交叉特权线性探查的系统、方法和装置
本专利技术的领域一般涉及计算机处理器架构,并且更具体地涉及试图保护管理程序和用户地址空间。
技术介绍
已经开发了多种利用技术来破坏内核地址空间布局随机化(KASLR),这允许攻击者通过绕过随机化来制作定制的有效载荷。这些技术依赖于以下属性:1)基于用户/管理程序许可的错误所需的页表走查;2)对来自用户空间的管理程序代码/数据的推测性访问仍将导致页走查,但是由于该访问是推测性的并且错误从未被传递,因此不会通知操作系统;以及3)某些指令(如软件预取指令和高速缓存行降级(例如,CLDEMOTE))从不传递错误,而是在错误时被静默地丢弃。附图说明在所附附图中以示例方式而非限制方式来图示本专利技术,在附图中,类似的附图标记指示类似的要素,其中:图1图示分割线性地址空间以及可以被停止的对这些分区的访问的类型的实施例;图2图示分割线性地址空间以及可以被停止的对这些分区的访问的类型的实施例;图3图示支持KTP的处理器核的电路的实施例;图4图示地址生成电路的方面的实施例;图5图示响应于线性访问指令或预取而由地址生成电路执行的方法的实施例;图6图示探查检查单元的方面的实施例;图7图示响应于代码取出或探查而由探查检查单元执行的方法的实施例;图8是根据本专利技术的一个实施例的寄存器架构的框图;图9是图示根据本专利技术的实施例的示例性有序流水线和示例性的寄存器重命名的乱序发布/执行流水线两者的框图;图10A-图10B图示更具体的示例性有序核架构的框图,该核将是芯片中的若干逻辑块之一(包括相同类型和/或不同类型的其他核);图11是根据本专利技术的实施例的可具有多于一个的核、可具有集成存储器控制器、并且可具有集成图形的处理器的框图;图12-图15是示例性计算机架构的框图;以及图16是根据本专利技术的实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。具体实施方式在下列描述中,阐述了众多具体细节。然而应理解,可在没有这些具体细节的情况下实施本专利技术的实施例。在其他实例中,未详细示出公知的电路、结构和技术,以免使对本描述的理解模糊。说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可包括特定的特征、结构或特性,但是,可以不必每一个实施例都包括该特定的特征、结构或特性。而且,此类短语不必指代同一个实施例。此外,当结合实施例描述特定的特征、结构或特性时,认为结合无论是否被明确描述的其他实施例而影响此类特征、结构或特性是在本领域技术人员的知识范围之内的。在用于解决以上问题的一些方式中,将分别的页表用于用户和管理程序空间。不幸的是,这些表的使用具有以下缺点:由于必须在内核进入/退出时切换页表以及不能在内核页表中使用全局页而存在性能开销,还存在必须维护两个页表的附加存储器开销,并且存在管理两个页表的软件开销和复杂度。此外,用户页表仍将需要具有一些管理程序映射(例如,用于蹦床页、描述符表等),其可能允许将内核地址泄漏给用户模式。本文中详述的是用于抵抗不想要的交叉特权访问的“杀死探查”方式的实施例。具体而言,可用于用户和/或管理程序模式程序(线程)的线性地址空间被分割为至少“用户地址空间”和“管理程序地址空间”。在一些实施例中,该分割是基于64位线性地址的位63(最高有效位)。例如,在一些实施例中,正地址(具有设置为0的位63的线性地址)是用户地址并且属于用户地址空间,而负地址(具有设置为1的位63的线性地址)是管理程序地址并且属于管理程序地址空间。在其他实施例中,正地址(具有设置为0的位63的线性地址)是管理程序地址并且属于管理程序地址空间,而负地址(具有设置为1的位63的线性地址)是用户地址并且属于用户地址空间。在启用杀死探查(KTP)的情况下,到管理程序地址的用户模式加载/存储/代码取出通常引起一般保护错误,并且到用户模式地址的管理程序模式代码取出通常引起一般保护错误。该错误在地址生成时刻被传递(例如,无需对任何转换后备缓冲器(TLB)的查找或进行任何页走查),或者如将详述的由前端传递。这关闭了用于探查内核地址空间布局的一整类攻击技术并且不会强加繁重的附加存储器或性能开销。图1图示分割线性地址空间以及可以被停止的对这些分区的访问的类型的实施例。如所示,规范线性地址空间被分成管理程序地址空间101和用户地址空间103。在一些实施例中,非规范地址空间105位于这些空间101和103之间。在该示例中,图示64位规范线性地址空间,然而,可以使用更小或更大的地址空间。单个位用于在空间之间划分。如所示,管理程序地址空间101是从FFFF800000000000到FFFFFFFFFFFFFFFF。这是“负”地址空间,因为具有设置为1的位63的线性地址是管理程序地址。用户地址空间103是从0000000000000000到00007FFFFFFFFFFF。用户地址空间103是“正”地址空间,因为具有设置为0的位63的线性地址是用户地址。来自用户模式程序(线程)111的使用线性地址的访问被允许到用户地址空间103,但是,一般而言,来自用户模式程序(线程)111的探查应被阻止到达管理程序地址空间101。类似地,来自管理程序模式程序(线程)113的使用线性地址的访问被允许到管理程序地址空间101,但是,一般而言,来自管理程序模式程序(线程)113的代码取出或探查应被阻止到达用户地址空间103。图2图示分割线性地址空间以及可以被停止的对这些分区的访问的类型的实施例。如所示,规范线性地址空间被分成管理程序地址空间201和用户地址空间203。在一些实施例中,非规范地址空间205位于这些空间201和203之间。在该示例中,图示64位规范线性地址空间,然而,可以使用更小或更大的地址空间。如所示,用户地址空间203是从FFFF800000000000到FFFFFFFFFFFFFFFF。这是“负”地址空间,因为具有设置为1的位63的线性地址是用户地址。管理程序地址空间201是从0000000000000000到00007FFFFFFFFFFF。管理程序地址空间201是“正”地址空间,因为具有设置为0的位63的线性地址是用户地址。来自用户模式程序(线程)211的使用线性地址的访问被允许到用户地址空间203,但是,一般而言,来自用户模式程序(线程)211的探查应被阻止到达管理程序地址空间201。类似地,来自管理程序模式程序(线程)213的使用线性地址的访问被允许到管理程序地址空间201,但是,一般而言,来自管理程序模式程序(线程)213的代码取出或探查应被阻止到达用户地址空间203。用于KTP的技术可以实现在处理器核的各部分中。图3图示支持KTP的处理器核的电路的实施例。具体而言,本文中详述的实施例包括前端单元330中的探查检查单元394和地址生成电路390中的访问检查电路中的一个本文档来自技高网...

【技术保护点】
1.一种装置,包括:/n特权级别存储,用于存储当前特权级别;/n地址检查电路,耦合至所述特权级别存储,其中所述地址检查电路用于基于对所述当前特权级别和与指令相关联的线性地址的最高有效位的比较来判定是否所述线性地址被允许访问所述装置的线性地址空间的分区;以及/n地址生成电路,用于当所述线性地址被允许时从所述线性地址生成物理地址。/n

【技术特征摘要】
【国外来华专利技术】20180323 US 15/934,9161.一种装置,包括:
特权级别存储,用于存储当前特权级别;
地址检查电路,耦合至所述特权级别存储,其中所述地址检查电路用于基于对所述当前特权级别和与指令相关联的线性地址的最高有效位的比较来判定是否所述线性地址被允许访问所述装置的线性地址空间的分区;以及
地址生成电路,用于当所述线性地址被允许时从所述线性地址生成物理地址。


2.如权利要求1所述的装置,其中,所述线性地址空间包括管理程序地址空间分区和用户地址空间分区。


3.如权利要求2所述的装置,其中,当所述线性地址的所述最高有效位为“1”时,所述线性地址空间分区为管理程序地址空间。


4.如权利要求2所述的装置,其中,当所述线性地址的所述最高有效位为“0”时,所述线性地址空间分区为管理程序地址空间。


5.如权利要求1-4中任一项所述的装置,进一步包括:
多个段寄存器,其中当与指令相关联的所述线性地址针对对所述多个段寄存器中的一个的访问时,所述地址检查电路用于允许所述访问。


6.如权利要求1-5中任一项所述的装置,进一步包括:
旁路范围寄存器,用于存储旁路范围,其中当与指令相关联的所述线性地址针对对所述旁路范围中的线性地址的访问时,所述地址检查电路用于允许所述访问。


7.如权利要求1-6中任一项所述的装置,其中,当对分区的访问未被允许时,所述地址检查电路用于使预取、高速缓存行降级、和推测性访问被取消。


8.如权利要求1-6中任一项所述的装置,其中,当对分区的访问未被允许时,所述地址检查电路用于生成针对非推测性访问的错误。


9.如权利要求1-6中任一项所述的装置,其中,当对分区的访问未被允许时,所述地址生成电路不用于执行转换后备缓冲器或数据高速缓存查找。


10.如权利要求1-9中任一项所述的装置,其中,所述地址检查电路进一步包括状态机,所述状态机用于被执行以判定对线性地址空间的访问是否被允许。


11.一种装置,包括:
特权级别存储,用于存储当前特权级别;以及
探查检查电路,耦合至所述特权级别存储,其中所述地址检查电路用于基于对所述当前特权级别和与探查相关联的线性地址的最高有效位的比较来判定所述线性地址是否被允许访问所述装置的线性地址空间的分区。


12.如权利要求11所述的装置,其中,所述线性地址空间包括管理程序地址空间分区和用户地址空间分区。


13.如权利要求12所述的装置,其中,当所述线性地址的所述最高有效位为“1”时,所述线性地址空间分区为管理程序地址空间。


14.如权利要求12所述的装置,其中,当所述线性地址的所述最高有效位为“0”时,所述线性地址空间分区为管理程序地址空间。


15.如权利要求11-14中任一项所述的装置,进一步包括:
多个段寄存器,其中...

【专利技术属性】
技术研发人员:V·尚伯格J·努兹曼B·帕特尔
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1