技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种增强移动设备操作系统虚拟内核安全的方法  >  正文

一种增强移动设备操作系统虚拟内核安全的方法

  • 国知局
  • 2024-07-31 22:57:09

本发明涉及信息安全处理,具体涉及一种在移动安全环境中,增强移动设备操作系统内核安全方法。

背景技术:

1、移动设备是指可以随身携带的便携式电子设备,如智能手机、平板电脑和便携式音乐播放器等。这些设备通常具有小巧轻便、易于携带和操作的特点。随着5g通信、无线网络等技术的发展,移动设备已经成为人们日常生活中不可或缺的一部分。每个移动设备上都有一个操作系统负责维护移动设备的运行,而内核则是操作系统中最核心的部分。然而,为了满足移动设备低功耗、高效能等要求,移动设备操作系统内核在设计之初往往缺乏安全性考虑,导致其面临严峻的安全威胁。移动设备内核面临的安全风险可以归为两个层面:恶意的应用软件和脆弱的移动设备操作系统。

2、恶意的应用软件指的是安装在移动设备用户层的破坏性程序,可能导致移动设备操作系统内核崩溃、信息泄露和内容篡改等问题。移动设备通常需要安装来自不同第三方的应用程序,这些程序可能会内置木马、病毒等恶意模块,在其运行期间通过与移动设备操作系统内核进行交互来实现攻击破坏。以安卓操作系统为例,著名安全厂商卡巴斯基《2022年移动恶意软件威胁形势》报告指出,截止到2022年,该厂商在移动产品中检测到1661743个恶意安装程序、196476个新的移动银行木马病毒、10543个新的移动勒索木马。这些恶意的第三方应用程序正逐步通过官方市场和流行应用程序内嵌广告等方式广泛传播,给众多移动设备操作系统内核安全造成严重影响。此外,由于缺乏全流程管控,非恶意的第三方应用程序自身也可能存在安全漏洞,进一步加剧移动设备操作系统内核安全威胁。

3、脆弱的移动设备操作系统指的是移动设备操作系统中存在各种类型的已知或未知漏洞,这些漏洞涉及移动设备操作系统内核的各个模块,且威胁面涵盖极广。以安卓操作系统内核为例,据国内安全厂商360的报告《2019年上半年度安卓系统安全性生态环境研究》显示,所测设备中99.97%的安卓操作系统存在安全漏洞,这些漏洞可实现包括提权、拒绝服务攻击、数据泄露等不同严重程度的攻击。此外,安卓操作系统是基于linux操作系统的二次开发软件,其绝大部分核心组件沿用了linux操作系统的设计与实现,因此,linux操作系统中存在的安全漏洞都可能被沿用到安卓操作系统中,给移动设备操作系统内核安全带来更大的挑战。

4、移动设备操作系统内核作为移动设备最核心的部分,由于其攻击面大,特权等级高,通常成为各种攻击者的首要攻击目标。现有的移动设备操作系统内核多以arm为硬件架构,以linux为操作系统内核为基础来进行二次开发,linux作为最核心的部分(如图1所示),其安全性将直接影响整个移动设备操作系统的安全。现有的移动设备操作系统内核安全方案包括linux安全机制、应用沙箱、uefi安全启动、内核数据保护等。其中,linux以最小特权为安全机制的设计原则,提供了权限控制、进程隔离等安全机制和技术手段。这些手段旨在通过隔离和访问控制的方式来增强内核安全;应用沙箱通过为应用程序提供一个隔离的、受控的运行环境来保护应用程序和内核免受恶意程序的攻击;uefi安全启动通过验证引导加载程序和操作系统内核签名来防止操作系统内核或引导加载程序被篡改;内核数据保护机制通过硬件辅助的内存安全机制来保护内核数据结构免受恶意程序的篡改。尽管这些方法可以较好地缓解移动设备操作系统内核安全问题,但它们的重点大多在攻击发生后及时发现和遏制,这类方法普遍存在一定的滞后性和被动性。此外,移动设备操作系统内核由于功能繁杂,代码量庞大,很难彻底消除所有安全漏洞。

5、arm架构一共包含4个异常级,分别是el0、el1、el2和el3。其中,el0异常级用于运行移动设备的应用程序,el1异常级用于运行移动设备操作系统内核,el2异常级用于运行虚拟化软件(非必须),el3异常级用于运行安全固件。在非虚拟化模式下,el2异常级通常不启用。每个异常级都有一套独立的寄存器集合,用于管理异常级中运行的程序的上下文状态,包括负责内存视图切换的ttbr寄存器、负责异常处理的vbar寄存器等。图2展示了传统arm架构中各异常级所运行的软件。

技术实现思路

1、针对现有技术中存在的问题,本发明的目的在于提供一种基于master-slave模式的增强移动设备操作系统虚拟内核安全的方法。

2、针对移动设备操作系统内核面临的安全风险,本专利从移动设备操作系统内核的内部结构角度出发,采用虚拟化思想,基于“master-slave”模式重新对移动设备操作系统内核进行虚拟降权和切割,以增强移动设备操作系统内核安全。

3、本发明基于对移动设备操作系统内核所面临的安全风险及其危害的分析,发现了导致大部分安全风险的原因是移动设备操作系统内核具有较大的攻击面和较高的特权等级。为此,本发明采用了最小特权原则,在el1异常级对移动设备操作系统内核进行了重构,将其虚拟降权、切割,并在同一特权级虚拟出两个逻辑上具有不同权限的内核实例,分别为master实例和slave实例。master实例是移动设备操作系统内核中的核心实例,负责检查和监督内核的运行,具有更高的逻辑特权级,拥有内存管理、敏感指令执行、控制流完整性检查等重要权限;slave实例是移动设备操作系统内核中的功能实例,负责提供内核的各类功能,其权限低于master实例。master实例是移动设备操作系统内核中唯一可信的部分,代码量较少(小于2000行),而slave实例则包含了原始移动设备操作系统内核中大部分的代码,属于非可信基部分,其所有敏感操作都要经过master实例的审查。此外,本发明还利用el3异常级中的安全固件来保护el1异常级中的master实例不受slave或el0中应用程序的干扰。

4、本发明采用的技术方案如下:

5、一种增强移动设备操作系统虚拟内核安全的方法,其步骤包括:

6、1)基于master-slave模式,将移动设备操作系统内核的内存分为master实例内存段和slave实例内存段;

7、2)将所述移动设备操作系统内核中的页表管理函数以及mmu相关的操作存放在所述master实例内存段,构建master内核实例,并将所述移动设备操作系统内核中的所选敏感数据结构、所选敏感指令相关的代码存储到所述master实例内存段;将所述移动设备操作系统内核的通用功能存放在所述slave实例内存段,构建slave内核实例,并将非所选敏感数据结构存储到所述slave实例内存段;

8、3)创建一个用于所述master内核实例与所述slave内核实例交互的安全调用接口;然后将所述安全调用接口代码以只读模式同时映射在所述master实例内存段和所述slave实例内存段中;所述安全调用接口内维护一安全栈和一普通栈,所述安全栈用于运行所述master内核实例的代码,所述普通栈用于运行所述slave内核实例的代码;

9、4)当控制流从所述slave内核实例切换到所述master内核实例时,所述安全调用接口切换到安全栈并关闭中断响应,用于确保所述master内核实例运行时不会被控制流劫持;当控制流从所述master内核实例切换到所述slave内核实例时,所述安全调用接口切换回普通栈并开启系统中断响应。

10、进一步的,所述移动设备操作系统内核运行在el1异常级;利用el3异常级中的安全固件来保护el1异常级中的所述master内核实例;所述master内核实例通过smc调用所述安全调用接口与所述安全固件进行交互,并将所述master内核实例的物理起始地址、master内核实例虚拟起始地址、el1异常级中已分配页面隶属关系发送给所述安全固件进行维护。

11、进一步的,所述slave内核实例中的设定敏感操作在源码层面替换为安全调用接口,用于所述master内核实例监管各设定敏感操作。

12、进一步的,所述安全调用接口所在的内存页的物理地址范围、虚拟地址范围通过smc调用传入到所述安全固件中进行管理和维护。

13、进一步的,将所述移动设备操作系统内核的页表的页表页设置为只读模式,用于防止所述slave内核实例中的程序通过修改页表页篡改所述master内核实例的内存;采用双页表模式将加载到ttbr寄存器中的页表保存在所述master实例内存段,并在所述master内核实例中添加smc调用,每次进行页表修改操作时通过所述smc调用将页表修改操作的结果对接到所述安全固件中进行检查和保存。

14、进一步的,解除所述slave实例内存段中所选敏感数据结构的映射关系,禁止所述slave实例内存段直接访问所选敏感数据结构。

15、进一步的,采用最小特权原则在el1异常级对移动设备操作系统内核进行重构,将同一特权级虚拟出两个逻辑上具有不同权限的内核实例,分别为所述master内核实例和所述slave内核实例。

16、进一步的,所述mmu相关的操作包括移动设备操作系统内核页表更新、移动设备操作系统内核页表切换;所选敏感指令包括ttbr寄存器切换指令、tlb刷新指令、异常级切换指令。

17、一种服务器,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行上述方法中各步骤的指令。

18、一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述方法的步骤。

19、本发明基于master-slave模式,将内核分为master实例和slave实例,分别负责内核的检查和功能。本发明包括master构建、slave构建和master-slave切换三个部分,如图3所示。图中省略了el2异常级,因为该异常级对本发明不是必要的。

20、本发明的第一部分为master构建,其内部包含master实例安全隔离、master实例敏感数据维护和master实例敏感指令控制三类功能,具体如下:

21、本发明结合虚拟化内存管理单元(memory management unit,mmu)和el3异常级中的安全固件来实现master实例的安全隔离。本发明首先在移动设备操作系统内核的内存中选取一个内存段作为master实例内存段,用于存放master实例的数据段和代码段内容,移动设备操作系统内核中该master实例内存段以外的剩余内存部分全部为slave实例内存段;其次,本发明将mmu相关的所有操作全部存放在master实例内存段中,包括移动设备操作系统内核页表更新、移动设备操作系统内核页表切换等;接着,本发明将移动设备操作系统内核页表的页表页设置为只读模式,防止slave实例中的程序通过修改页表页来篡改master实例的内存。

22、虽然master实例内存段中只保存着敏感的操作,但是移动设备正常运行时还会有一些常规通用操作,这些操作需要在slave内存区域中运行,这个时候slave实例就存在自己伪造页表的可能性,通过伪造页表并加载到ttbr寄存器中,从而绕过了master的控制和检查;因此本发明采用双页表的模式,将真正加载到ttbr寄存器中的页表保存在master实例内存段,并在master实例中添加smc调用,每次的页表修改操作都通过smc(securemonitor call,安全监视器调用)调用对接到el3异常级的安全固件中对页表修改操作的结果进行检查和保存;最后,本发明将切换ttbr寄存器、刷新tlb、异常级切换等敏感指令全部放入master实例内存段,并静态消除slave实例内存段中所有相关指令实例的映射,防止slave实例通过操作敏感指令来绕过内存隔离。

23、进一步地,本发明将移动设备操作系统内核中所选的敏感数据结构放入master实例内存段中进行维护,包括移动设备操作系统内核页表数据结构、master实例的元数据结构、smc调用相关数据结构等;在此基础上,解除slave实例内存段中敏感数据结构的映射关系,禁止slave实例内存段直接访问敏感数据结构,保证敏感数据结构的机密性;为了确保敏感数据结构的完整性,master实例为敏感数据结构分配内存后,需要通过smc调用将敏感数据结构的物理地址、虚拟地址、映射次数和隶属关系发送给el3异常级的安全固件。

24、进一步地,本发明将移动设备操作系统内核中的控制流相关的指令放入master实例内存段中,具体包括eret指令、smc指令和hvc指令;取消这些指令在slave实例中的映射,防止slave实例通过劫持控制流来攻击master实例;此外,为了避免因中断而产生的控制流劫持威胁,本发明将移动设备操作系统内核的中断处理函数存放到master实例中,移动设备产生的所有中断,会首先进入到master实例中进行处理。master实例运行期间,系统进行关中断处理。

25、本发明的第二部分为slave实例的构建。slave实例包含了移动设备操作系统内核绝大部分的功能代码,负责通用内核功能的提供。相较于master实例,slave实例继承了移动设备操作系统内核的通用功能,但失去了对mmu、敏感寄存器和敏感数据结构的操作权限。当slave实例需要对mmu、敏感寄存器和敏感数据结构进行更新和访问时,必须先通过设定的安全调用接口来切换到master实例中。master实例根据slave实例通过设定的安全调用接口传来的请求进行检查和处理。

26、本发明的第三部分为master实例与slave实例之间的切换。为保障master实例与slave实例之间的安全交互,本发明提供了一个安全调用接口来完成实例间的切换。首先在el1异常级中为master实例和slave实例创建一个安全调用接口;然后将安全调用接口代码同时映射在master实例内存段和slave实例内存段中,但均映射为只读模式。进一步地,安全调用接口负责三方面的工作:(1)当控制流从slave实例切换到master实例时,安全调用接口关闭中断响应,以确保master实例运行时不会被控制流劫持;(2)安全调用接口为master实例维护了一页大小的安全栈,用于master实例代码运行;(3)当控制流从master实例切换到slave实例时,安全调用接口切换回普通栈,并开启系统中断响应。即安全调用接口内维护一安全栈和一普通栈,所述安全栈用于运行所述master内核实例的代码,所述普通栈用于运行所述slave内核实例的代码;普通栈用于slave执行时使用(即将普通栈对应的内存首地址加载到栈寄存器中),安全栈则是在master执行时加载到栈寄存器中。

27、进一步地,slave实例中所有的敏感操作都在源码层面替换为安全调用接口,以确保所有的敏感操作都需要首先经过master实例的监管,保证master实例的不可绕过性。此外,安全调用接口所在的内存页其物理地址范围、虚拟地址范围需通过smc调用传入到el3异常级中的安全固件中,以便进行管理和维护。

28、本发明的优点如下:

29、1、本发明将移动设备操作系统内核从传统集中垄断的运行模式变为分权切割的运行模式,常规的集中垄断式的运行模式中,移动设备操作系统内核拥有极高的权限,任何一部分出现安全问题,将直接影响整个移动设备安全。

30、2、本发明将移动设备操作系统内核的安全检查功能与通用功能进行分割,将安全检查功能集中在很小的一个可信基master实例中,并通过el3异常级的安全固件进行隔离保护,而大部分的原始内核功能全部从可信基中移除,单独组建为一个非可信基slave实例,可以避免因slave实例中某个模块存在安全漏洞而导致整个移动设备全部被攻陷的风险。

31、3、本发明在el1异常级中为master实例和slave实例创建一个安全调用接口,保障二者之间的控制流安全交互,且通过静态移除slave实例中的所有敏感操作,保障master实例的不可绕过性,确保slave实例所进行的所有敏感操作均可被master实例发现,可及时遏制攻击的横向扩散。

32、综上所述,本发明提出一种基于master-slave模式的移动设备操作系统内核安全框架,通过在el1异常级将移动设备操作系统内核一分为二,将绝大部分的内核功能从可信基中移除,逻辑上降低了移动设备操作系统内核的权限,限制其可访问内存和可操作指令范围。通过该方法,可以使得:(1)即使攻击者通过恶意的应用程序攻击了移动设备操作系统内核的某一模块,也无法获取完整的内核权限,并且其恶意行为可及时被发现和遏制;(2)允许移动设备操作系统内核存在安全漏洞,但限制了安全漏洞的影响范围,避免其威胁的横向扩散。

本文地址:https://www.jishuxx.com/zhuanli/20240730/195464.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。