背景技术:
1、现代软件系统通常被划分成多个模块/组件,该模块/组件均具有对计算设备的资源(例如,系统资源、处理器资源、存储器资源等)的不同级别的特权或访问。这种划分的示例是在操作系统(os)内核和用户应用之间,其中用户应用被给予比os内核更有限的对系统资源的访问级别。
2、为了促进芯片级的类似划分,某些处理器和计算架构(例如,arm、risc-v、hexagondsp等)包括支持分层保护域和/或实现不同级别的特权的特征。这样的系统通常一次仅以一个特权级别操作,并且特权的级别(“当前特权级别”)可以仅当设备处理器取得异常或从异常返回时改变。为此,特权级别通常被称为异常级别(el)。这些异常级别可以被编号(例如,el-0至el-3),使得高级别的特权具有高的编号。例如,具有最低特权级别的软件(例如,用户应用等)可以以el-0操作,而具有最高特权级别的软件(系统监测器等)可以以el-3操作。
技术实现思路
1、各种方面可以包括用于评估以低异常级别在计算设备上操作的软件的设备和方法。各种方面可以包括由以高异常级别操作的组件(“hel组件”)识别与以低异常级别操作的组件(“lel组件”)相关联的当前向量基地址(vba)、异常引发指令(eri)地址或控制和系统寄存器(csr)值中的至少一个,确定当前vba、eri地址或csr值中的至少一个是否匹配对应的参考数据,以及响应于确定当前vba、eri地址或csr值与对应的参考数据不匹配而执行响应动作。
2、一些方面可以进一步包括由hel组件扫描至少低异常级别以收集数据,将所收集的数据的部分标记为要用作参考数据的关键数据,生成参考数据的散列,以及将所生成的散列作为参考数据存储在hel组件可访问但lel组件不可访问的存储器的一部分中。在这样的方面中,由hel组件扫描至少低异常级别以收集数据可以包括hel组件在lel组件的加载期间收集lel组件数据作为参考数据。
3、一些方面还可以包括识别当前在工作存储器中的关键数据,计算所识别的关键数据的散列,以及将所计算的散列与对应的参考数据进行比较,以确定当前vba、eri地址或系统寄存器值中的至少一个是否与对应的参考数据匹配。在这样的方面,识别当前在工作存储器中的关键数据可以包括识别当前存在于工作存储器中的关键读取-执行(rx)代码或关键只读(ro)数据,并且将所计算的散列与对应的参考数据进行比较可以包括将所计算的散列与由hel组件存储在存储器中的参考数据散列进行比较。
4、一些方面可以进一步包括周期性地调用hel组件以验证lel组件的完整性尚未被损害。一些方面可以进一步包括非周期性地调用hel组件以验证lel组件的完整性尚未被损害。一些方面可以进一步包括通过基于以下中的至少一个调用hel组件来周期性地调用hel组件以验证lel组件的完整性尚未被损害:具有循环执行触发的机器中断;具有伪随机表驱动的触发的随机机器中断;或具有基于事件的触发的用户触发的机器中断。
5、一些方面可以进一步包括检测能够引起计算设备的当前异常级别的改变的系统调用或运行时间事件,以及响应于检测到能够引起计算设备的当前异常级别的改变的系统调用或运行时间事件而调用hel组件以验证lel组件的完整性尚未被损害。
6、在一些方面,识别与lel组件相关联的当前vba、eri地址或csr值中的至少一个可以包括通过执行以下中的一个或多个来识别当前vba:读取向量基地址寄存器(vbar);读取向量表基保持器;读取异常级别向量基地址寄存器(elx_vbar),读取机器陷阱值寄存器(mtval);读取事件向量基(evb);或基于分层特权级别的指令集体系结构中的等效规定。
7、在一些方面,识别与lel组件相关联的当前vba、eri地址或csr值中的至少一个可以包括通过从以下中的一个捕获最高异常级别中的地址来识别eri地址:安全监测器调用(smc)代码区段;异常链接寄存器(elr);机器异常程序计数器(mepc);当异常发生时执行的指令的程序计数器(pc)值;或处理器csr。
8、在一些方面,确定当前vba、eri地址或csr值中的至少一个是否与对应的参考数据匹配可以包括使用参考数据比较集,该参考数据比较集包括:关键区段的散列的;vba;从异常链接寄存器(elr)或机器异常程序计数器(mepc)捕获的eri的地址范围集合;或csr值。
9、各种方面包括一种计算设备,该计算设备具有存储处理器可执行指令的存储器以及被配置为执行处理器可执行指令以执行上面概述的任何方法的操作的处理器。各种方面包括一种用于在计算设备中使用的处理器,该处理器具有存储器并且被配置为执行上面概述的任何方法的操作。各种方面包括其上存储有处理器可执行指令的非暂时性处理器可读存储介质,该处理器可执行指令被配置为使计算设备的处理器执行上面概述的任何方法的操作。
1.一种评估以低异常级别在计算设备上操作的软件的方法,包括:
2.根据权利要求1所述的方法,还包括:
3.根据权利要求2所述的方法,其中,由hel组件扫描至少低异常级别以收集数据包括:hel组件在lel组件的加载期间收集lel组件数据作为参考数据。
4.根据权利要求1所述的方法,还包括:
5.根据权利要求4所述的方法,其中:
6.根据权利要求1所述的方法,还包括:
7.根据权利要求1所述的方法,还包括:
8.根据权利要求1所述的方法,还包括通过基于以下中的至少一个调用hel组件来周期性地调用hel组件以验证lel组件的完整性尚未被损害:
9.根据权利要求1所述的方法,还包括:
10.根据权利要求1所述的方法,其中,识别与lel组件相关联的当前vba、eri地址或csr值中的至少一个包括通过执行以下中的一个或多个来识别当前vba:
11.根据权利要求1所述的方法,其中,识别与lel组件相关联的当前vba、eri地址或csr值中的至少一个包括通过从以下中的一个捕获最高异常级别中的地址来识别eri地址:
12.根据权利要求1所述的方法,其中,确定当前vba、eri地址或csr值中的至少一个是否与对应的参考数据匹配包括使用参考数据比较集,所述参考数据比较集包括:
13.一种计算设备,包括:
14.根据权利要求13所述的计算设备,其中,所述处理器被配置为执行处理器可执行指令以执行操作,所述操作还包括:
15.根据权利要求14所述的计算设备,其中,所述处理器被配置为执行处理器可执行指令以执行操作,使得由hel组件扫描至少低异常级别以收集数据包括:hel组件在lel组件的加载期间收集lel组件数据作为参考数据。
16.根据权利要求13所述的计算设备,其中,所述处理器被配置为执行处理器可执行指令以执行操作,所述操作还包括:
17.根据权利要求16所述的计算设备,其中,所述处理器被配置为执行处理器可执行指令以执行操作,使得:
18.根据权利要求13所述的计算设备,其中,所述处理器被配置为执行处理器可执行指令以执行操作,所述操作还包括:
19.根据权利要求13所述的计算设备,其中,所述处理器被配置为执行处理器可执行指令以执行操作,所述操作还包括:
20.根据权利要求13所述的计算设备,其中,所述处理器被配置为执行处理器可执行指令以执行操作,所述操作还包括通过基于以下中的至少一个调用hel组件来周期性地调用hel组件以验证lel组件的完整性尚未被损害:
21.根据权利要求13所述的计算设备,其中,所述处理器被配置为执行处理器可执行指令以执行操作,所述操作还包括:
22.根据权利要求13所述的计算设备,其中,所述处理器被配置为执行处理器可执行指令以执行操作,使得识别与lel组件相关联的当前vba、eri地址或csr值中的至少一个包括通过执行以下中的一个或多个来识别当前vba:
23.根据权利要求13所述的计算设备,其中,所述处理器被配置为执行处理器可执行指令以执行操作,使得识别与lel组件相关联的当前vba、eri地址或csr值中的至少一个包括通过从以下中的一个捕获最高异常级别中的地址来识别eri地址:
24.根据权利要求13所述的计算设备,其中,所述处理器被配置为执行处理器可执行指令以执行操作,使得确定当前vba、eri地址或csr值中的至少一个是否与对应的参考数据匹配包括使用参考数据比较集,所述参考数据比较集包括:
25.一种其上存储有处理器可执行指令的非暂时性处理器可读介质,所述处理器可执行指令被配置为使计算设备的处理器执行操作,所述操作包括:
26.根据权利要求25所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使计算设备的处理器执行操作,所述操作还包括:
27.根据权利要求26所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使计算设备的处理器执行操作,使得由hel组件扫描至少低异常级别以收集数据包括:hel组件在lel组件的加载期间收集lel组件数据作为参考数据。
28.根据权利要求25所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使计算设备的处理器执行操作,所述操作还包括:
29.根据权利要求28所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使计算设备的处理器执行操作,使得:
30.根据权利要求25所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使计算设备的处理器执行操作,所述操作还包括:
31.根据权利要求25所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使计算设备的处理器执行操作,所述操作还包括:
32.根据权利要求25所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使得计算设备的处理器执行操作,所述操作还包括通过基于以下中的至少一个调用hel组件来周期性地调用hel组件以验证lel组件的完整性尚未被损害:
33.根据权利要求25所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使计算设备的处理器执行操作,所述操作还包括:
34.根据权利要求25所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使计算设备的处理器执行操作,使得识别与lel组件相关联的当前vba、eri地址或csr值中的至少一个包括通过执行以下中的一个或多个来识别当前vba:
35.根据权利要求25所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使计算设备的处理器执行操作,使得识别与lel组件相关联的当前vba、eri地址或csr值中的至少一个包括通过从以下中的一个捕获最高异常级别中的地址来识别eri地址:
36.根据权利要求25所述的非暂时性处理器可读介质,其中,所存储的处理器可执行指令被配置为使计算设备的处理器执行操作,使得确定当前vba、eri地址或csr值中的至少一个是否与对应的参考数据匹配包括使用参考数据比较集,所述参考数据比较集包括: