面向多特权级处理器资源的权限域管理方法及系统

文档序号:41550061发布日期:2025-04-08 18:03阅读:5来源:国知局
面向多特权级处理器资源的权限域管理方法及系统

本发明属于网络安全,具体地,涉及面向多特权级处理器资源的权限域管理方法及系统。更具体是一种面向多特权级处理器资源的权限域管理架构。


背景技术:

1、随着网络攻击、身份盗窃和恶意软件的不断出现和发展,计算机安全问题成为了企业和个人必须面对的重要问题。计算机需要一个可以信赖的计算环境来保证敏感数据的安全性、完整性和可靠性,保证程序执行的过程和结果不会被黑客利用和窃取。

2、隔离是计算机安全领域的基础机制。通过将软件分割成不同的权限域,限制它们对于不同资源的访问权限,可以缩减攻击传播的范围,减少了恶意软件和不可避免的系统漏洞对系统可能造成的损害;隔离机制还为系统提供了一个更可信和安全的运行环境。可以通过将系统的敏感操作和关键数据放置在隔离环境中处理而确保其自身的安全性。

3、处理器资源,即isa resource,即指令资源和寄存器资源,是影响系统安全的重要硬件资源。处理器资源漏洞会被黑客利用并展开多样化的攻击,包括:篡改安全内存、从安全飞地中窃取敏感数据、获取更高特权级数据的访问权限。

4、现有硬件通常只提供基于特权等级的粗粒度隔离机制,被攻击的风险和受到攻击后的损失都比较高。以arm cortex a53为例,该处理器拥有数百个系统指令和寄存器,但只提供了四个特权等级,大量的处理器资源位于同一特权等级。仅在el1,即内核模式中,可用于系统控制的指令和寄存器就超过100个。如linux这样的由多个模块组成的宏内核操作系统,所有模块都运行在内核态,任何一个有漏洞的模块都会导致内核态的所有寄存器和指令被攻击者访问,造成不可估量的损失。

5、关于基于特权等级的技术,现代商用cpu依赖特权等级控制对于处理器资源的访问。处理器会禁止位于低特权级的软件访问高特权级的处理器资源。但是这种方式并不符合最小特权原则,难以应对日益严峻的攻击手段。

6、处理器厂商并非没有意识到处理器资源对于系统安全的重要性,它们在cpu上实现了一些针对特定寄存器或者指令的保护机制。例如,为了缓解基于cpu频率和电压的侧信道攻击,英特尔在bios和cpu微码中添加了补丁,允许用户配置是否允许软件访问ms r0x150寄存器。但是这类机制虽然的颗粒度上很细,但是局限于特定的处理器资源,并不能对处理器资源的访问作出普遍性的控制,可拓展性也很差。

7、关于基于虚拟化的技术,虚拟化机制也可以提供对于处理器资源的细颗粒度控制。现代处理器中的虚拟化扩展支持陷阱和仿真技术,即trap-and-emulate技术。使用特权指令和接触特权寄存器将导致内陷到虚拟化管理程序,即hypervisor中。然后,虚拟化管理程序可以检查当前权限域是否允许执行该指令或者访问该寄存器。

8、虚拟化方式存在两个缺点:第一,这种捕获需要内陷到更高特权级进行处理,存在许多周期的延迟,即使是空虚拟化调用也需要约1700个周期,且内陷后的特权检查由虚拟化管理程序实现,没有得到硬件优化,导致了性能问题。第二,对于非敏感指令和寄存器,也就是虚拟机监视器无法捕获的指令和寄存器,如intel mpk和intel pks相关的指令,虚拟化方法并不能提供控制,这导致了虚拟化机制的局限性。

9、关于基于软件重写的技术,基于软件重写的方法通过扫描二进制文件来体查找可能存在的非法权限指令,对它们进行重写替换来实现细颗粒度的处理器资源控制。erim尝试使用二进制扫描和重写来去除恶意的wrpkru指令。这个过程很复杂,因为直接重写二进制代码需要进行代码反汇编,而新的指令序列可能比原来的指令序列更长。因此,控制流指令也必须进行重写。erim这样的方法并未证明重写策略的正确性和完整性。

10、从上述方案中可以看出,目前的处理器资源隔离方案存在隔离粒度粗、可拓展性差、运行时开销大等缺点,不足以保障系统的安全性。为了贯彻最小特权原则,需要一种隔离粒度更细的方案;为了适应处理器资源的庞大规模和快速变化,需要一种拓展性更高,灵活性更好的方案;为了降低隔离成本,需要一种运行时开销更小的方案。

11、专利文献cn116644414a公开了一种处理方法、系统、电子系统和存储介质,该方案的处理方法,包括:在系统中提供第一执行域,其中,第一执行域运行在第一模式,并且作为安全监视器的运行环境;第一模式在非扩展的情形是机器模式;在系统中创建至少一个第二执行域,其中,每个第二执行域基于第一执行域运行并且运行在对应设置的第二模式,其中第二模式的权限低于机器模式的权限。该方案能够为执行域提供丰富的特权模式,从而促进构建灵活和丰富的安全业务模型,然而,其无法降低隔离成本,解决灵活度低的问题。此问题亟需解决。


技术实现思路

1、针对现有技术中的缺陷,本发明的目的是提供一种面向多特权级处理器资源的权限域管理方法及系统。

2、根据本发明提供的一种面向多特权级处理器资源的权限域管理方法,包括:指令检验步骤、寄存器读写检验步骤、寄存器位域写入检验步骤、启动初始化步骤;

3、根据isa-context,执行启动初始化步骤,得到当前权限域的id;根据所述当前权限域的id,执行指令检验步骤;根据所述当前权限域的id,执行寄存器读写检验步骤;根据所述当前权限域的id,执行寄存器位域写入检验步骤。

4、优选地,所述isa-context,即处理器资源权限上下文;所述isa-context,包括当前权限域的id寄存器、hpt与sgt;所述权限域,即权限的集合;

5、所述启动初始化步骤,包括:

6、步骤d1:根据isa-context,复位处理器,令权限域为domain-0;

7、步骤d2:创建权限域和转换门的转换门,并且将所述转换门切换到所述domain-0,通过权限域进入注册函数的入口;所述函数,用于创建域和门;

8、步骤d3:根据所述函数,创建能够进入domain-basic的门;

9、步骤d4:切换到domain-basic;所述domain-basic即基本权限域;所述基本权限域,即执行目标任务所需权限的集合。

10、优选地,所述指令检验步骤,包括:

11、步骤a1:读取当前权限域的id;所述当前权限域,即基本权限域;

12、步骤a2:根据所述id从位数组中检索所述hpt中对应的位图;所述位图,即当前权限域的指令权限位图;

13、步骤a3:根据所述位图查询相应的权限位;判断所述权限位是否位1,结果为是,则将待检测指令标记为“指令权限检验通过”;结果为否,则抛出硬件异常。

14、优选地,所述寄存器读写检验步骤,包括:

15、步骤b1:读取当前权限域的id;所述当前权限域,即基本权限域;

16、步骤b2:根据所述权限域的id,从位图数组中检索所述hpt中对应的位图;

17、步骤b3:根据待检测寄存器的index在位图中检索对应的权限位,并且判断所述权限位是否为1,结果为是,则标记“寄存器读写检验权限通过”;结果为否,则抛出硬件异常;

18、所述寄存器位域写入检验步骤,包括:

19、步骤c1:读取当前权限域的id;所述当前权限域,即基本权限域;

20、步骤c2:根据所述权限域的id检索到对应的掩码数组与待检测寄存器对应的掩码;

21、步骤c3:令所述待检测寄存器的原始值为v0,令即将写入所述待检测寄存器值的值为vw,令所述待检测寄存器的掩码值为m,判断是否等于零,结果为是,则检验成功;结果为否,则检验失败,抛出硬件异常;其中,表示否;∧表示且;⊕表示异或。

22、优选地,所述isa-context的管理步骤,包括:

23、步骤e1:进入fork函数,创建子进程的isa-context;

24、步骤e2:以父进程的isa-context为模板,准备子进程的isa-context;

25、步骤e3:执行exec函数或switch函数;若执行exec函数,则重置isa-context,即取消已有的权限域和切换门,只保留一个基础的权限域;若执行switch函数,则保存前一个进程的isa-context相关的寄存器到thread_struct中,并且从下一个进程的thread_struct中恢复相关的寄存器;

26、在所述步骤e3中,所述前一个进程的isa-context相关的寄存器,即hpt的基地址寄存器、sgt的基地址寄存器与cur_domain寄存器;

27、在所述步骤e3中,进程销毁时,令domain-u回收并清空所述进程相关的isa-context;

28、所述domain-u用于管理所述isa-context中的domain;所述domain,即权限域。

29、根据本发明提供的一种面向多特权级处理器资源的权限域管理系统,包括:指令检验模块、寄存器读写检验模块、寄存器位域写入检验模块、启动初始化模块;

30、根据isa-context,触发启动初始化模块工作,得到当前权限域的id;根据所述当前权限域的id,触发指令检验模块工作;根据所述当前权限域的id,触发寄存器读写检验模块工作;根据所述当前权限域的id,触发寄存器位域写入检验模块工作。

31、优选地,所述isa-context,即处理器资源权限上下文;所述isa-context,包括当前权限域的id寄存器、hpt与sgt;所述权限域,即权限的集合;

32、所述启动初始化模块,包括:

33、模块d1:根据isa-context,复位处理器,令权限域为domain-0;

34、模块d2:创建权限域和转换门的转换门,并且将所述转换门切换到所述domain-0,通过权限域进入注册函数的入口;所述函数,用于创建域和门;

35、模块d3:根据所述函数,创建能够进入domain-basic的门;

36、模块d4:切换到domain-basic;所述domain-basic即基本权限域;所述基本权限域,即执行目标任务所需权限的集合。

37、优选地,所述指令检验模块,包括:

38、模块a1:读取当前权限域的id;所述当前权限域,即基本权限域;

39、模块a2:根据所述id从位数组中检索所述hpt中对应的位图;所述位图,即当前权限域的指令权限位图;

40、模块a3:根据所述位图查询相应的权限位;判断所述权限位是否位1,结果为是,则将待检测指令标记为“指令权限检验通过”;结果为否,则抛出硬件异常。

41、优选地,所述寄存器读写检验模块,包括:

42、模块b1:读取当前权限域的id;所述当前权限域,即基本权限域;

43、模块b2:根据所述权限域的id,从位图数组中检索所述hpt中对应的位图;

44、模块b3:根据待检测寄存器的index在位图中检索对应的权限位,并且判断所述权限位是否为1,结果为是,则标记“寄存器读写检验权限通过”;结果为否,则抛出硬件异常;

45、所述寄存器位域写入检验模块,包括:

46、模块c1:读取当前权限域的id;所述当前权限域,即基本权限域;

47、模块c2:根据所述权限域的id检索到对应的掩码数组与待检测寄存器对应的掩码;

48、模块c3:令所述待检测寄存器的原始值为v0,令即将写入所述待检测寄存器值的值为vw,令所述待检测寄存器的掩码值为m,判断是否等于零,结果为是,则检验成功;结果为否,则检验失败,抛出硬件异常;其中,表示否;∧表示且;⊕表示异或。

49、优选地,还包括:isa-context的管理模块,包括:

50、模块e1:进入fork函数,创建子进程的isa-context;

51、模块e2:以父进程的isa-context为模板,准备子进程的isa-context;

52、模块e3:执行exec函数或switch函数;若执行exec函数,则重置isa-context,即取消已有的权限域和切换门,只保留一个基础的权限域;若执行switch函数,则保存前一个进程的isa-context相关的寄存器到thread_struct中,并且从下一个进程的thread_struct中恢复相关的寄存器;

53、在所述模块e3中,所述前一个进程的isa-context相关的寄存器,即hpt的基地址寄存器、sgt的基地址寄存器与cur_domain寄存器;

54、在所述模块e3中,进程销毁时,令domain-u回收并清空所述进程相关的isa-context;

55、所述domain-u用于管理所述isa-context中的domain;所述domain,即权限域。

56、与现有技术相比,本发明具有如下的有益效果:

57、1、本发明使用权限域对于处理器资源进行隔离,即运行存在多个权限域,具体是256个权限域,而每个权限域内以单条指令或者寄存器位域的粒度对资源进行隔离,使处理器资源权限隔离的颗粒度更细。

58、2、本发明使用位图来描述权限域,且运行时可配置,最多可以对512条指令和512个寄存器提供隔离,因此可以满足规模庞大又发展迅速的处理器资源,施展高灵活性、高拓展性的隔离方案。

59、3、本发明使用硬件检测单元监视流水线并使用cache优化访存,具有可接受的性能开销;具体而言,在测试平台上,权限域的切换需要30cycle,相较于传统的特权等级切换所需要的600多cycle,节约了2000%的时间开销。真实场景测试中,相较于未隔离时,会引入低于5%的性能开销。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1