基于TEE的强制访问控制安全增强框架性能评估方法及系统

文档序号:26103351发布日期:2021-07-30 18:15阅读:139来源:国知局
基于TEE的强制访问控制安全增强框架性能评估方法及系统

本发明涉及计算机操作系统的信息安全领域,具体涉及一种基于tee的强制访问控制安全增强框架性能评估方法及系统。



背景技术:

随着云计算的发展,运行在终端服务器中的linux操作系统管理着远超从前的敏感数据,因此需要更强的安全性。在传统的方法中,强制访问控制能够对主客体间的权限进行统一管理来控制系统权限,是保护内核安全一个重要方面。lsm是强制访问控制在linux中的具体实现,分为实施和决策两个部分。实施部分在系统调用等关键内核代码处插入hook函数,并且得到决策结果后来具体实施允许或拒绝的行为。而决策部分则通过hook函数来对系统行为进行安全审查,根据主客体以及当前的安全策略做出行为决策并传给实施部分。整个流程为:当系统的执行流经过hook函数时即跳转到决策部分,基于安全策略对系统行为进行审查,在得到审查结果后再由实施部分进行对应处理。lsm在linux中得到了广泛的应用,而且以其为基础的selinux和apparmor过去在内核安全保护中也取得了不错的成效。

但随着内核体积的不断发展,其可攻击面也变得越来越大而易被敌手攻陷。由于访问控制与内核属于同一代码空间,因此一旦内核被攻陷,访问控制功能就面临着被篡改的风险,其本身的安全性就难以保证。当前新兴的tee技术利用计算机底层的硬件支持,为上层软件提供cpu、内存、cache等强隔离的可信执行环境,并且有着更高的cpu运行级别。因此tee能为应用软件乃至内核功能构筑安全可信的计算环境提供信任基础。而将强制访问控制移入与不可信内核相隔离的tee中是一种切实可行的防护方式。

而当前的基于tee的强制访问控制安全增强框架大都有着明显的性能损耗。性能损耗主要发生在系统切换上,其存在两大影响因素:不可信内核来回tee的单次切换时间以及总体切换次数。灵活多变的安全策略配置是需要反复尝试才能够找到性能和安全的最佳取舍。而当前的性能评估主要是在系统实现后进行的,虽然也能对系统框架设计进行反馈指导,但系统实现的代价却无法避免。因此人们更迫切需要在系统设计阶段就能够对系统的性能进行定量的评估方法。



技术实现要素:

本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于tee的强制访问控制安全增强框架性能评估方法及系统,本发明能够在基于tee的强制访问控制安全增强框架不具体实现的前提下实现对性能进行模拟评估的性能评估,且可扩展性佳、通用性好。

为了解决上述技术问题,本发明采用的技术方案为:

一种基于tee的强制访问控制安全增强框架性能评估方法,包括:

1)针对目标性能测试软件上指定的测试单项i,在普通世界ree中获取测试单项i的运行时间ri以及针对被评估的强制访问控制安全增强框架实现的hook函数集合s中的hook函数调用总次数ni;

2)根据ti=t×ni+ri计算得到测试单项i的开销ti,其中t为普通世界ree下触发hook函数切换到安全世界tee进行安全策略决策再返回普通世界ree的单次世界切换开销。

可选地,步骤1)在普通世界ree中获取测试单项i的运行时间ri以及针对被评估的强制访问控制安全增强框架实现的hook函数集合s中的hook函数调用总次数ni的步骤包括:

1.1)将测试单项i在普通世界ree中运行指定数量n1次,记录测试单项i运行n1次的平均运行时间作为测试单项i的运行时间ri,记录测试单项i运行n1次针对任意hook函数j的调用次数并取其中的最小值作为运行测试单项i时hook函数j的调用次数ni,j,得到包含每个hook函数调用次数的全集;

1.2)针对包含每个hook函数调用次数的全集,根据ni=σj∈sni,j-bi计算得到测试单项i针对被评估的强制访问控制安全增强框架实现的hook函数集合s中的hook函数调用总次数ni,其中ni,j为测试单项i进行对hook函数j的调用次数,bi为测试单项i的环境背景音,环境背景音是指普通世界ree中后台程序或系统服务在运行的hook函数调用次数。

可选地,步骤1.1)之后、步骤1.2)之前还包括测量测试单项i的环境背景音bi的步骤:针对目标性能测试软件上指定的测试单项i,在普通世界ree不运行任何性能测试软件的前提下,记录指定数量n2次系统在运行时间ri内针对被评估的强制访问控制安全增强框架实现的hook函数集合s中hook函数的总调用次数,并将n2个总调用次数取平均值后作为测试单项i的环境背景音bi。

可选地,所述指定数量n1、指定数量n2大小相等。

可选地,步骤1)之前还包括修改普通世界ree操作系统内核,为操作系统内核中增加hook函数的计数器,且每检测到一次hook函数调用,则为调用的hook函数对应的计数器加1,从而实现hook函数调用的次数统计检测。

可选地,所述被评估的强制访问控制安全增强框架为面向linux操作系统的强制访问控制安全增强框架。

可选地,步骤2)之前还包括测量普通世界ree下触发hook函数切换到安全世界tee进行安全策略决策再返回普通世界ree的单次世界切换开销t的步骤:测量普通世界下触发hook函数切换到安全世界tee中的安全服务器来进行安全策略决策并且返回普通世界ree的代码运行所需的cpu周期数m,根据所需的cpu周期数m计算得到普通世界ree下触发hook函数切换到安全世界tee进行安全策略决策再返回普通世界ree的单次世界切换开销t。

可选地,所述根据所需的cpu周期数m计算得到普通世界ree下触发hook函数切换到安全世界tee进行安全策略决策再返回普通世界ree的单次世界切换开销t的计算函数表达式为:t=m/h,其中m为普通世界下触发hook函数切换到安全世界tee中的安全服务器来进行安全策略决策并且返回普通世界ree的代码运行所需的cpu周期数,h为处理器主频。

此外,本发明还提供一种基于tee的强制访问控制安全增强框架性能评估系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行所述基于tee的强制访问控制安全增强框架性能评估方法的步骤。

此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述基于tee的强制访问控制安全增强框架性能评估方法的计算机程序。

和现有技术相比,本发明具有下述优点:强制访问控制安全增强框架的安全策略最终实现的是整个hook集合中的一个子集(hook函数集合s),因此基于在某benchmark下全集范围内的每个hook调用次数的分布统计,在其中选取需要评估性能的安全策略实现的hook函数集合s,就可以估算出其在此benchmark下的性能开销。而对于不同的安全策略的不同hook集合实现,只需要在全集的数据下进行计算就可以估算他们的性能,而不用对每个不同的安全策略都进行一次测量。这种测量与计算解耦的方式能给性能估算带来极大的灵活性和便利性。由于hook调用次数总和就是世界切换次数,因此本发明包括针对目标性能测试软件上指定的测试单项i,获取测试单项i的运行时间ri以及针对被评估的强制访问控制安全增强框架实现的hook函数集合s中的hook函数调用次数ni;根据ti=t×ni+ri计算得到测试单项i的开销,其中t为单次世界切换开销。本发明能够在基于tee的强制访问控制安全增强框架不具体实现的前提下实现对性能进行模拟评估的性能评估,且可扩展性佳、通用性好,具有很强的灵活性。本发明可用于指导框架的设计者在当前的应用场景下哪些hook函数对性能有着剧烈的影响,从而在性能和安全性之间做出更好的权衡。

附图说明

图1为本发明实施例方法的基本流程示意图。

图2为本发明实施例中世界切换的路径示意图。

具体实施方式

如图1所示,本实施例基于tee的强制访问控制安全增强框架性能评估方法包括:

1)针对目标性能测试软件上指定的测试单项i,在普通世界ree中获取测试单项i的运行时间ri以及针对被评估的强制访问控制安全增强框架实现的hook函数集合s中的hook函数调用总次数ni;

2)根据ti=t×ni+ri计算得到测试单项i的开销ti,其中t为普通世界ree下触发hook函数切换到安全世界tee进行安全策略决策再返回普通世界ree的单次世界切换开销。

本实施例基于tee的强制访问控制安全增强框架性能评估方法的基本原理如下:强制访问控制安全增强框架的安全策略最终实现的是整个hook集合中的一个子集(hook函数集合s),因此通过每个hook调用次数的分布统计,在其中选取需要评估性能的安全策略实现的hook函数集合s,就可以估算出其在benchmark下的性能开销。由于hook调用次数总和就是世界切换次数,因此本实施例将本实施例中将测试单项i针对被评估的强制访问控制安全增强框架实现的hook函数集合s中的hook函数调用次数ni乘以单次世界切换开销t就可以得出测试单项的hook调用开销,最后将hook调用开销与测试单项i本身的运行时间ri求和,就能对系统整体开销有量化的评估。

本实施例中,步骤1)在普通世界ree中获取测试单项i的运行时间ri以及针对被评估的强制访问控制安全增强框架实现的hook函数集合s中的hook函数调用总次数ni的步骤包括:

1.1)将测试单项i在普通世界ree中运行指定数量n1次,记录测试单项i运行n1次的平均运行时间作为测试单项i的运行时间ri,记录测试单项i运行n1次针对任意hook函数j的调用次数并取其中的最小值作为运行测试单项i时hook函数j的调用次数ni,j,得到包含每个hook函数调用次数的全集;

1.2)针对包含每个hook函数调用次数的全集,根据ni=σj∈sni,j-bi计算得到测试单项i针对被评估的强制访问控制安全增强框架实现的hook函数集合s中的hook函数调用总次数ni,其中ni,j为测试单项i进行对hook函数j的调用次数,bi为测试单项i的环境背景音,环境背景音是指普通世界ree中后台程序或系统服务在运行的hook函数调用次数。

去除环境背景音对结果的影响时,由于在运行benchmark时也会有后台程序或系统服务在运行,所以得到的调用次数是背景音与测试项hook调用次数的总和。为了测出背景音,我们在跑测试项的同时记录下来平均运行时间,在相同时间内统计不运行benchmark时各个hook的总调用次数,进行100次对照试验后取平均值为测试单项i的环境背景音bi。本实施例中,步骤1.1)之后、步骤1.2)之前还包括测量测试单项i的环境背景音bi的步骤:针对目标性能测试软件上指定的测试单项i,在普通世界ree不运行任何性能测试软件的前提下,记录指定数量n2次系统在运行时间ri内针对被评估的强制访问控制安全增强框架实现的hook函数集合s中hook函数的总调用次数,并将n2个总调用次数取平均值后作为测试单项i的环境背景音bi。本实施例中,指定数量n1、指定数量n2大小相等,例如本实施例中均取值为100,指定数量n1、指定数量n2此外也可以不相等,取值足够大即可。

本实施例中,步骤1)之前还包括修改普通世界ree操作系统内核,为操作系统内核中增加hook函数的计数器,且每检测到一次hook函数调用,则为调用的hook函数对应的计数器加1,从而实现hook函数调用的次数统计检测。具体地,本实施例中是对4.4.28版本的kernel中的lsm安全模块的源码进行修改,统计每个hook的调用次数:在对象管理器中的每个hook函数中增加统计功能,每次调用到hook函数时则将对应函数的计数器加1。

毫无疑问,本实施例方法并不依赖于具体的特定目标性能测试软件或测试单项i。例如,本实施例中被评估的强制访问控制安全增强框架为面向linux操作系统的强制访问控制安全增强框架,目标性能测试软件可为主流的lmbench软件或unixbench软件,此外也可以采用其他各类可用的性能测试软件。

对于一个具体的强制访问控制安全增强框架而言,切换发生点和切换结束点是确定的。因此系统切换的执行流也是确定的,可以通过周期(cycle)数量化。在同一台cpu上运行相同周期数的指令所用时间是一个定值,因此单次切换时间就可以作为一个常量被测得。图2所示为一种基于op-tee的mac安全增强框架,其主要由两部分组成:普通世界和安全世界。普通世界和安全世界都有着各自独立的用户空间和内核空间,不同的是普通世界不能访问安全世界资源,而安全世界可以访问所有资源。因此位于普通世界的不可信内核无法篡改安全世界中的数据和功能。而两个世界通过发送smc请求经过安全监控器来进行世界间的通信和切换。作为linux中的mac解决方案,lsm的实施和决策部分分别对应图中的对象管理器和安全服务器。可以看出其将安全服务器放入了安全世界的op-teeos中进行保护,而对象管理器则不变,仍放于普通世界。因此每次当普通世界触发hook函数时,便会切换到安全世界的安全服务器来进行安全策略的决策。在这种架构下,单次世界切换的执行流是从普通世界内核的对象管理器到位于安全世界内核的安全服务器,然后再返回对象管理器。

本实施例中,步骤2)之前还包括测量普通世界ree下触发hook函数切换到安全世界tee进行安全策略决策再返回普通世界ree的单次世界切换开销t的步骤:测量普通世界下触发hook函数切换到安全世界tee中的安全服务器来进行安全策略决策并且返回普通世界ree的代码运行所需的cpu周期数m,根据所需的cpu周期数m计算得到普通世界ree下触发hook函数切换到安全世界tee进行安全策略决策再返回普通世界ree的单次世界切换开销t。

本实施例中,根据所需的cpu周期数m计算得到普通世界ree下触发hook函数切换到安全世界tee进行安全策略决策再返回普通世界ree的单次世界切换开销t的计算函数表达式为:t=m/h,其中m为普通世界下触发hook函数切换到安全世界tee中的安全服务器来进行安全策略决策并且返回普通世界ree的代码运行所需的cpu周期数,h为处理器主频。具体地,本实施例中在hikey960开发板中测得的单次世界切换的开销是8501个cpu周期,而hikey960的主频是2.4ghz。因此在这种架构下,单次世界切换的开销可以用cpu周期数除以主频得出单次世界切换开销t约为3.5μs。

此外,本实施例还提供一种基于tee的强制访问控制安全增强框架性能评估系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行前述基于tee的强制访问控制安全增强框架性能评估方法的步骤。

此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述基于tee的强制访问控制安全增强框架性能评估方法的计算机程序。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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