CN111400702B - 一种虚拟化的操作系统内核保护方法 - Google Patents
一种虚拟化的操作系统内核保护方法 Download PDFInfo
- Publication number
- CN111400702B CN111400702B CN202010214081.0A CN202010214081A CN111400702B CN 111400702 B CN111400702 B CN 111400702B CN 202010214081 A CN202010214081 A CN 202010214081A CN 111400702 B CN111400702 B CN 111400702B
- Authority
- CN
- China
- Prior art keywords
- kernel
- operating system
- page table
- virtual machine
- machine monitor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 200
- 238000005516 engineering process Methods 0.000 claims abstract description 7
- 230000008569 process Effects 0.000 claims description 184
- 238000013519 translation Methods 0.000 claims description 24
- 238000013507 mapping Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 6
- 230000005856 abnormality Effects 0.000 claims description 2
- 238000007726 management method Methods 0.000 description 17
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000001010 compromised effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013506 data mapping Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
- G06F21/126—Interacting with the operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种基于虚拟化的操作系统内核保护方法,包括:利用内存管理单元的虚拟化技术使虚拟机监控器与操作系统内核地址空间隔离,并使虚拟机监控器的地址空间对操作系统内核保持不可见;使操作系统内核不可执行非授权的代码,且不可访问非授权的数据和寄存器,保护敏感内存段权限配置;透明化操作系统内核对内核关键数据的访问和执行操作,确保内核关键数据的完整性。与现有技术相比,该方法使得操作系统内核安全依赖于虚拟机监控器等安全环境,有效地提升了操作系统内核的安全性,方案具有普适性,并且对系统性能影响小。
Description
技术领域
本发明涉及移动平台安全技术领域,尤其是涉及一种虚拟化的操作系统内核保护方法。
背景技术
Android系统安全非常关键,采用Linux内核的Android系统已经在数十亿台智能设备中部署使用,应用在极为丰富的场景中,搭载了许多数字资产。Android系统的安全性变得极为关键。
目前的操作系统内核不可避免存在漏洞。操作系统已经成为千万行代码量的项目。一个系统的复杂性越高,攻击面越大。作为构想安全模型中的可信计算基(TrustedComputing Base,TCB),如果操作系统受到威胁,就会威胁整个系统的安全。例如,由于操作系统具有最高的特权,攻击者可以利用操作系统的漏洞访问、篡改内核代码、数据,进而影响、控制系统上的所有应用。
现有的解决方案依赖操作系统内核的自身携带的安全机制,例如NX(No-eXecute,不可执行内存保护),将数据所在内存页标识为不可执行。ASLR:内存地址随机化(addressspace layout randomization),以SELinux为代表的强制权限访问控制等安全机制,这些内核机制在一定程度上加强了操作系统内核安全性,但是这些内核安全机制依赖于自身操作系统内核关键数据的安全性,如页表,SELinux权限页等。在层出不穷的操作系统内核漏洞面前,攻击者可以利用内核漏洞进一步实现内存的任意读写,进而修改关键数据就可以轻松破解内核的安全机制。另外也有解决方案通过TrustZone技术,对内核二进制文件进行敏感指令剔除,并在操作系统内核中对关键数据进行操作时主动下陷到更高的层级,并将控制权交由可信执行环境进行权限监控,从而达到在可信执行环境下监控操作系统内核的关键操作。由于TrustZone等隔离技术监控上下文切换需要复杂的软件流程,并且涉及对富执行环境内核的大量修改,对于不同版本的内核,这种修改对操作系统的可靠性,稳定性以及性能上带来了巨大的影响,同时这种方案也需要和可信执行环境的内核进行绑定,进一步增大了方案部署的开销。
发明内容
本发明的目的就是为了解决操作系统内核安全性问题并且克服上述现有技术存在的缺陷而提供一种虚拟化的操作系统内核保护方法。
本发明的目的可以通过以下技术方案来实现:
一种基于虚拟化的操作系统内核保护方法,该方法包括:
利用内存管理单元的虚拟化技术使虚拟机监控器与操作系统内核地址空间隔离,并使虚拟机监控器的地址空间对操作系统内核保持不可见;
使操作系统内核不可执行非授权的代码,且不可访问非授权的数据和寄存器,保护敏感内存段权限配置;
透明化操作系统内核对内核关键数据的访问和执行操作,确保内核关键数据的完整性。
所述使虚拟机监控器的地址空间对操作系统内核保持不可见的过程包括:
将操作系统页表的第二阶段翻译内容映射为操作系统内核访问的实际物理地址空间;
在操作系统页表中将虚拟机监控器所使用的实际物理地址空间对应的页表第二阶段翻译内容设置为对操作系统内核不可访问。
所述使操作系统内核不可执行非授权的代码,且不可访问非授权的数据和寄存器的过程包括:
通过设置页表翻译的第二阶段权限使所有进程页表对操作系统内核只读,由虚拟机监控器判断进程的合法性并对进程页表进行管理。
进程页表包括用户态进程页表和内核态进程页表,所述虚拟机监控器对进程页表的管理包括:
进程页表访问管理:虚拟机监控器将页表寄存器指向的用户态进程页表的页目录、中间页目录和页表项设置为操作系统内核只读权限和用户态不可执行权限;虚拟机监控器将页表寄存器指向的内核态进程页表的页目录、中间页目录和页表项设置为操作系统内核只读权限和用户态不可执行权限;
进程页表创建管理:通过对敏感寄存器作访问控制实现对用户态进程页表的创建管理;
进程页表更新管理:虚拟机监控器监控更新过程中进程页表翻译的第二阶段的异常;
进程页表删除管理:虚拟机监控器通过对进程页表的释放函数进行插桩获得页目录、中间页目录和页表项的释放消息,并使释放的内存能够被重新利用。
所述关键数据包括内核只读的数据、内核可写一次的数据和内核可多次更新的数据。
所述透明化操作系统内核对内核关键数据的访问操作过程包括:
内存中设置只读段、可写一次段和可写多次段,分别将只读的数据、可写一次的数据和可多次更新的数据存放于只读段、可写一次段和可写多次段;
虚拟机监控器通过设置页表翻译的第二阶段权限将只读段、可写一次段和可写多次段所对应的实际物理地址空间设置为操作系统内核只读权限。
所述虚拟机监控器通过位图建立可写一次段中每一个字节的映射关系,记录每一个可写一次的数据的写入情况,并阻止二次及之后的写操作。
所述多次更新的数据包括内核进程凭证结构体,所述虚拟机监控器对内核进程凭证结构体的初始化保护包括:
内存中设置内核进程凭证结构体连续区域,所述内核进程凭证结构体连续区域位于可写多次段;
对内核进程凭证结构体添加指向当前进程描述符结构体的回调指针,同时添加当前进程名字和当前进程路径;
在操作系统内核的启动数据中加入内核进程凭证结构体保护函数;
虚拟机监控器记录内核进程凭证结构体的偏移量及存储地址,并将其设为对操作系统内核只读权限。
虚拟机监控器对所述内核进程凭证结构体在更新过程中的检查过程包括:
在虚拟机监控器中检测到更新内核进程凭证结构体的当前进程名字和当前进程路径的操作时,拒绝更新;
在虚拟机监控器中检测到更新内核进程凭证结构体的回调指针的操作时,检查该操作是否合法,检查待写入的回调指针是否合法;
在虚拟机监控器中检测到更新用户ID或用户组ID的操作时,判断更新指令是否正确;
在虚拟机监控器中检查内核进程凭证结构体的对齐操作,如果未对齐则拒绝;
在虚拟机监控器中检查内核进程凭证结构体的当前进程名字和当前进程路径是否在内置的特权权限表单中,如果不在则拒绝更新;
在虚拟机监控器中检查内核进程凭证结构体的当前进程名字和当前进程路径的可继承性。
与现有技术相比,本发明具有以下优点:
通过使虚拟机监控器的地址空间对操作系统内核保持不可见、操作系统内核不可执行非授权的代码且不可访问非授权的数据和寄存器、透明化操作系统内核对内核关键数据的访问和执行操作等改进,使操作系统内核安全依赖于虚拟机监控器等安全环境,而不依赖于操作系统内核自身,安全系数更高;不需要对操作系统内核进行大量修改,具有普适性,减小了方案部署的开销。
附图说明
图1为本发明的结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例
本实施例提供一种在ARM平台中基于虚拟化的操作系统内核保护方法,该方法主要包括:
一、利用虚拟化技术在操作系统内核与在特权等级2下运行(ARM v8对应Execption Level 2,简称EL2层级,ARM v7对应hyp mode)的虚拟机监控器之间建立地址空间隔离,下文称运行在EL2层级的虚拟机监控器为可信虚拟化执行环境(THEE)),并使THEE的地址空间对操作系统内核保持不可见。
二、使操作系统内核不可执行非授权的代码,且不可访问非授权的数据和寄存器,保护敏感内存段权限配置。
三、透明化操作系统内核对内核关键数据的访问和执行操作,确保关键数据完整性。
具体而言:
一、使THEE的地址空间对操作系统内核保持不可见的过程为:
借助于运行在EL2层级的虚拟机监控器创建虚拟机的能力,以及虚拟化技术,创建一个Linux内核的虚拟机,创建Linux内核的虚拟机的页表,页表映射操作系统内核所能访问的实际物理地址空间,由于内存管理单元(MMU)的硬件特性,在开启了页表二阶段翻译的情况下,页表翻译会经过两个翻译阶段,分别是运行在EL1层级的页表翻译第一阶段,这个阶段主要由操作系统内核掌控,以及运行在EL2层级的页表翻译第二阶段,这个阶段主要由THEE掌控。只有在页表翻译两个阶段的权限都通过时,CPU才有能力对目标地址进行权限范围内的操作。
将页表翻译的第二阶段映射的物理地址空间除THEE自身物理地址空间之外设置为可读可写可执行,并将THEE自身地址空间设置为操作系统内核不可访问,使虚拟机监控器的物理地址空间对操作系统内核保持不可见。
表1内存段权限配置
二、确保操作系统内核不可执行非授权的代码,且不可访问非授权的数据和寄存器的过程包括:
确保操作系统内核不可执行非授权的代码,且不可访问非授权的数据和寄存器的目的是为了防止攻击者篡改敏感内存段权限配置,从而保护内存中的敏感内存段。
系统运行时,内存中存在一些敏感内存段,例如操作系统内核只读可执行的代码段,操作系统内核可读可写不可执行的数据段等,表1详细描述了内存段权限配置,其中,RO为只读,RX为可读可执行,PXN为特权模式下不可执行,RW为可读可写,XN为不可执行。
敏感内存段权限配置体现在页表翻译过程中页目录、中间页目录和页表项三级的最后一级页表项,为了使敏感内存段权限处于正确配置中,需要保护进程页表不被恶意篡改。使进程页表在页表翻译的第二阶段对操作系统内核只读,由虚拟机监控器判断进程的合法性并对进程页表进行管理,进程页表包括用户态进程页表和内核态进程页表,因此页表管理主要从用户态进程的页表管理和内核态进程的页表管理来保证THEE能够管理全部进程页表,对进程页表进行管理具体实现如下:
1、进程页表访问管理:
用户态页表寄存器访问管理:对用户态进程页表的创建是通过写用户态页表寄存器操作下陷到THEE,THEE拿到用户态页表寄存器的值,将其指向的页目录(PGD)、中间页目录(PMD)和页表(PTE)全部设置为对操作系统内核只读(RO)和用户态不可执行(XN)权限。
内核态页表寄存器访问管理:对内核态进程而言,映射的地址空间存储于初始化阶段一个叫做页目录指针的全局指针TTBR1_EL1,因此在初始化阶段会将页目录指针传到THEE中,由THEE对页目录指针指向PGD、PMD和PTE设置对操作系统内核只读(RO)和用户态不可执行(XN)。
2、进程页表创建管理:用户态进程页表的创建必须要写用户态页表寄存器,而用户态页表寄存器的写操作通过敏感寄存器进行管理配置,确保一旦发生写操作,必然会下陷到THEE,从而保证了用户态进程页表被THEE管理,这里敏感寄存器包括与MMU相关的寄存器。
3、进程页表更新管理:用户态进程页表的更新,需要通过向用户态进程页表所在的页执行写操作,完成更新。通过设置用户态进程页表所在的地址空间在页表翻译第二阶段对操作系统内核只读,确保用户态进程页表一旦发生更新操作,必然会下陷到THEE,THEE负责更新进程页表权限,保证一致性;具体而言,进程页表映射的地址空间不应该位于内核代码段和只读数据段;进程页表映射非内核代码段和非只读数据段的地址空间时,都加上操作系统内核不可执行(PXN)属性,确保操作系统内核只有对内核代码段和只读数据段具有可执行权限,防止非授权代码在EL1被运行;进程页表位于PGD或者PMD,指向下一级为页表时,设置权限为只读权限;页表项指向下一级为大页时则依据内存段权限配置表中的配置完成对内存段的配置检查;进程页表位于PTE时,计算映射地址空间所落入的相应内存段进行权限检查与配置。
4、进程页表删除管理:THEE追踪进程页表的整个生命周期,确保进程页表在被释放后能够被重新正确利用。通过对PGD、PMD和PTE的释放函数进行插桩,保证PGD、PMD和PTE在释放时通知THEE,由THEE将其上一级页表项对应项目设置为无效,并且将对应的页属性改为可读可写,使得被释放的页表内存能够重新被重新利用。
三、利用虚拟机监控以及硬件虚拟化技术,透明化操作系统内核对内核关键数据的访问和执行操作,确保关键数据完整性。
其中关键数据包括但不限于:
i.内存中只读,永远无法被修改的数据,比如一些静态常量。
ii.内存中只可被写一次,之后再也无法被修改的数据。
iii.内存中需要多次更新的数据;
对内存只读数据和只写一次数据的保护的实现方式,包括但不限于:
内存中设置一个专门的只读段(read only段),可写一次段(write once段),以及可写多次段(cond write段),在THEE中分别将这三个段在页表第二阶段翻译映射的物理地址空间对操作系统内核只读,将零散的关键数据直接存放在这些段中。如此可确保所有对关键数据的修改都会被THEE截获,然后在THEE中设置访问修改的策略,通过策略确保数据安全。
将零散的关键数据存放在内核段中的方式包括但不限于:
一种是静态全局变量,这种变量可直接通过在变量声明的时候放入段中;
另一种是动态分配的变量,这种变量可以通过实现一个特定段的allocator来为其分配段内区域。
在THEE中设置对只读/可写一次段的访问策略,具体体现为:
操作系统内核对只读段访问时,只允许读,不允许写和执行操作,例如:selinux的析构函数指针。
操作系统内核对可写一次段访问时,THEE通过位图(bitmap)方式,监控待保护段每个字节地址的更新情况,并只允许每个字节地址更新一次的操作请求。具体而言,对可写一次段上每一个字节进行映射,映射段上每一个地址的写入情况,对已写过一次的地址不再允许写操作。
需要多次更新的数据的保护,使用特定保护策略可以进行适配,主要通过识别特定关键数据,然后将关键数据通过THEE将在页表翻译的第二阶段中的实际物理地址空间设为只读进行保护,并在THEE中制定访问策略。需要多次更新的数据中需要保护的有进程权限描述的内核进程凭证(credential)结构体。
内核进程凭证结构体主要和系统权限提升相关,恶意攻击者可能通过更改内核进程凭证结构体中和用户权限相关元素来更改进程权限,进而获取root权限,对系统进行恶意攻击。对内核进程凭证结构体进行保护的方法包括但不限于以下实施特征:
THEE追踪内核进程凭证整个生命周期,确保内核进程凭证在更新时,能够被THEE捕获更新操作。为此,需要将内核中内核进程凭证所在地址空间,在页表翻译第二阶段设置为只读,如此可确保所有对内核进程凭证的修改都会被THEE截获,然后在THEE中设置访问修改的策略,通过策略确保数据安全。具体而言,可通过对操作系统内存分配器进行插桩,使内核进程凭证所在的物理页,在页表翻译第二阶段映射为只读。
内核进程描述符与内核进程凭证一一对应,为保证进程描述符与内核进程凭证的映射关系,需要匹配内核进程凭证所对应的进程描述符指针。具体而言,对内核进程凭证结构体进行更改,添加回调指针,指向当前进程描述符(task)结构体。
进程执行时拥有执行路径以及进程名字,保护进程的执行路径以及进程名字合理性,需要保护进程创建时的执行路径字段以及进程名字。为此需要将进程名称以及执行路径字段置为只读属性,并由THEE监控并管理。具体而言,在进程描述符中,添加进程名字以及执行路径字段的数据映射,记录进程在创建时的名字以及进程执行所在的路径,保护执行路径字段以及进程名字初始数据不被篡改。
操作系统启动阶段,在内核加载完成之前,THEE完成初始化并启动对操作系统数据保护的部署。主要通过内核启动阶段调用THEE的初始化指令,并传递内核进程描述符相关数据结构信息给到THEE,由THEE记录内核关键数据结构信息,建立内核关键数据映射,完成保护内核凭证结构体数据初始化。
完成保护内核进程凭证结构体的初始化数据之后,需要实现更新内核进程凭证结构体的策略实现,更新内核进程凭证结构体策略的实施特征包括但不限于:
在内核进程凭证结构体更新函数中更新回调指针指向当前进程的进程描述符结构体,并初始化操作系统首个进程的内核进程凭证结构体的回调指针指向操作系统首个进程的描述符结构体。
在创建子进程时主动下陷到THEE,记录进程首次加载执行时写入的路径和名字。
在只读段,如selinux的析构函数里面增加检查策略,selinux中的检查策略体现如下:
检查当前进程的内核进程凭证结构体是否对齐,如果未对齐则权限检查不通过并返回;
检查当前进程的内核进程凭证结构体中回调指针是否指向当前进程的描述符结构体,如果未指向当前进程的描述符结构体,则权限检查不通过并返回;
检查当前进程的内核进程凭证结构体是否位于THEE只读页上面,如果不在则权限检查不通过并返回。
在THEE中监控当前进程的更新操作,THEE中的检查策略体现如下:
检查内核进程凭证的更新,对异常的更新操作加以拦截;
检查当前进程内核进程凭证结构体中的执行路径和进程名字是否在THEE中内置的白名单中,根据具体操作系统内核版本定制的白名单列表,白名单列表里面记录了可拥有特权权限(root权限和system权限)的执行路径以及进程名字,如果不在则拒绝更新并返回;
THEE内置白名单里面记录的执行路径以及进程名字是否可继承,在权限检查中,如果父进程的可继承性为0,则认为子进程为非法进程,拒绝更新并返回;
检查当前进程的父进程是否在THEE内置白名单中,如果不在则拒绝更新并返回。
如图1所示,操作系统/Android内核将对内存的控制最终下陷至虚拟机监控器,将内存的保护置于定制化的保护策略中,并借助于虚拟机监控器完成对内存的监控。
Claims (1)
1.一种基于虚拟化的操作系统内核保护方法,其特征在于,该方法包括:
利用内存管理单元的虚拟化技术使虚拟机监控器与操作系统内核地址空间隔离,并使虚拟机监控器的地址空间对操作系统内核保持不可见;
使操作系统内核不可执行非授权的代码,且不可访问非授权的数据和寄存器,保护敏感内存段权限配置;
透明化操作系统内核对内核关键数据的访问和执行操作,确保内核关键数据的完整性;
所述使虚拟机监控器的地址空间对操作系统内核保持不可见的过程包括:
将操作系统页表的第二阶段翻译内容映射为操作系统内核访问的实际物理地址空间;
在操作系统页表中将虚拟机监控器所使用的实际物理地址空间对应的页表第二阶段翻译内容设置为对操作系统内核不可访问;
所述使操作系统内核不可执行非授权的代码,且不可访问非授权的数据和寄存器的过程包括:
通过设置页表翻译的第二阶段权限使所有进程页表对操作系统内核只读,由虚拟机监控器判断进程的合法性并对进程页表进行管理;
进程页表包括用户态进程页表和内核态进程页表,所述虚拟机监控器对进程页表的管理包括:
进程页表访问管理:虚拟机监控器将页表寄存器指向的用户态进程页表的页目录、中间页目录和页表项设置为操作系统内核只读权限和用户态不可执行权限;虚拟机监控器将页表寄存器指向的内核态进程页表的页目录、中间页目录和页表项设置为操作系统内核只读权限和用户态不可执行权限;
进程页表创建管理:通过对敏感寄存器作访问控制实现对用户态进程页表的创建管理;
进程页表更新管理:虚拟机监控器监控更新过程中进程页表翻译的第二阶段的异常;
进程页表删除管理:虚拟机监控器通过对进程页表的释放函数进行插桩获得页目录、中间页目录和页表项的释放消息,并使释放的内存能够被重新利用;
所述关键数据包括内核只读的数据、内核可写一次的数据和内核可多次更新的数据;
所述透明化操作系统内核对内核关键数据的访问操作过程包括:
内存中设置只读段、可写一次段和可写多次段,分别将只读的数据、可写一次的数据和可多次更新的数据存放于只读段、可写一次段和可写多次段;
虚拟机监控器通过设置页表翻译的第二阶段权限将只读段、可写一次段和可写多次段所对应的实际物理地址空间设置为操作系统内核只读权限;
所述虚拟机监控器通过位图建立可写一次段中每一个字节的映射关系,记录每一个可写一次的数据的写入情况,并阻止二次及之后的写操作;
所述多次更新的数据包括内核进程凭证结构体,所述虚拟机监控器对内核进程凭证结构体的初始化保护包括:
内存中设置内核进程凭证结构体连续区域,所述内核进程凭证结构体连续区域位于可写多次段;
对内核进程凭证结构体添加指向当前进程描述符结构体的回调指针,同时添加当前进程名字和当前进程路径;
在操作系统内核的启动数据中加入内核进程凭证结构体保护函数;
虚拟机监控器记录内核进程凭证结构体的偏移量及存储地址,并将其设为对操作系统内核只读权限;
虚拟机监控器对所述内核进程凭证结构体在更新过程中的检查过程包括:
在虚拟机监控器中检测到更新内核进程凭证结构体的当前进程名字和当前进程路径的操作时,拒绝更新;
在虚拟机监控器中检测到更新内核进程凭证结构体的回调指针的操作时,检查该操作是否合法,检查待写入的回调指针是否合法;
在虚拟机监控器中检测到更新用户ID或用户组ID的操作时,判断更新指令是否正确;
在虚拟机监控器中检查内核进程凭证结构体的对齐操作,如果未对齐则拒绝;
在虚拟机监控器中检查内核进程凭证结构体的当前进程名字和当前进程路径是否在内置的特权权限表单中,如果不在则拒绝更新;
在虚拟机监控器中检查内核进程凭证结构体的当前进程名字和当前进程路径的可继承性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010214081.0A CN111400702B (zh) | 2020-03-24 | 2020-03-24 | 一种虚拟化的操作系统内核保护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010214081.0A CN111400702B (zh) | 2020-03-24 | 2020-03-24 | 一种虚拟化的操作系统内核保护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111400702A CN111400702A (zh) | 2020-07-10 |
CN111400702B true CN111400702B (zh) | 2023-06-27 |
Family
ID=71431147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010214081.0A Active CN111400702B (zh) | 2020-03-24 | 2020-03-24 | 一种虚拟化的操作系统内核保护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400702B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268725A (zh) * | 2020-02-14 | 2021-08-17 | 斑马智行网络(香港)有限公司 | 适用于arm平台的内核保护方法、访问方法及装置 |
CN112256396B (zh) * | 2020-10-23 | 2022-10-21 | 海光信息技术股份有限公司 | 内存管理方法、系统及安全处理装置、数据处理装置 |
CN114490450A (zh) * | 2020-11-12 | 2022-05-13 | 华为技术有限公司 | 一种地址转换关系的配置方法及计算机系统 |
CN114691220A (zh) * | 2020-12-30 | 2022-07-01 | 网神信息技术(北京)股份有限公司 | 保护进程的方法、装置、电子设备、介质和程序产品 |
CN113032737B (zh) * | 2021-03-15 | 2021-11-30 | 清华大学 | 软件的保护方法、装置、电子设备及存储介质 |
CN113220469B (zh) * | 2021-03-23 | 2024-04-16 | 黑芝麻智能科技(上海)有限公司 | 进程间通信方法、装置和计算机设备和计算机可读介质 |
CN113326096A (zh) * | 2021-06-03 | 2021-08-31 | 成都市昊峰网络工程有限公司 | 一种虚拟机安全管理系统 |
CN114035886B (zh) * | 2021-09-28 | 2023-10-03 | 中国科学院信息工程研究所 | 一种针对内核数据的容器安全加固系统及方法 |
CN113722246B (zh) * | 2021-11-02 | 2022-02-08 | 超验信息科技(长沙)有限公司 | 处理器中物理内存保护机制的实现方法及装置 |
CN115033302A (zh) * | 2022-05-27 | 2022-09-09 | 天翼云科技有限公司 | 一种安全加固方法、装置、设备及介质 |
CN117688017B (zh) * | 2023-11-15 | 2024-07-05 | 北京西能电子科技发展有限公司 | 一种适配autosar标准的保护区地址自动更新方法及装置 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103793651A (zh) * | 2014-02-22 | 2014-05-14 | 西安电子科技大学 | 基于Xen虚拟化的内核完整性检测方法 |
CN103959247A (zh) * | 2011-10-03 | 2014-07-30 | 思科技术公司 | 虚拟化计算机程序中的安全 |
CN104809401A (zh) * | 2015-05-08 | 2015-07-29 | 南京大学 | 一种操作系统内核完整性保护方法 |
CN107015814A (zh) * | 2017-04-26 | 2017-08-04 | 国网冀北电力有限公司信息通信分公司 | 满足异构操作系统业务移植的浏览器操作系统设计方法 |
CN107066311A (zh) * | 2017-03-20 | 2017-08-18 | 中国科学院软件研究所 | 一种内核数据访问控制方法与系统 |
CN107479946A (zh) * | 2017-08-16 | 2017-12-15 | 南京大学 | 一种内核模块的交互行为监控方案 |
CN107506638A (zh) * | 2017-08-09 | 2017-12-22 | 南京大学 | 一种基于硬件机制的内核控制流异常检测方法 |
CN109558211A (zh) * | 2018-11-27 | 2019-04-02 | 上海瓶钵信息科技有限公司 | 保护可信应用与普通应用的交互完整性和保密性的方法 |
CN109684829A (zh) * | 2018-12-04 | 2019-04-26 | 中国科学院数据与通信保护研究教育中心 | 一种虚拟化环境中服务调用监控方法和系统 |
US10447728B1 (en) * | 2015-12-10 | 2019-10-15 | Fireeye, Inc. | Technique for protecting guest processes using a layered virtualization architecture |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8578483B2 (en) * | 2008-07-31 | 2013-11-05 | Carnegie Mellon University | Systems and methods for preventing unauthorized modification of an operating system |
-
2020
- 2020-03-24 CN CN202010214081.0A patent/CN111400702B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103959247A (zh) * | 2011-10-03 | 2014-07-30 | 思科技术公司 | 虚拟化计算机程序中的安全 |
CN103793651A (zh) * | 2014-02-22 | 2014-05-14 | 西安电子科技大学 | 基于Xen虚拟化的内核完整性检测方法 |
CN104809401A (zh) * | 2015-05-08 | 2015-07-29 | 南京大学 | 一种操作系统内核完整性保护方法 |
US10447728B1 (en) * | 2015-12-10 | 2019-10-15 | Fireeye, Inc. | Technique for protecting guest processes using a layered virtualization architecture |
CN107066311A (zh) * | 2017-03-20 | 2017-08-18 | 中国科学院软件研究所 | 一种内核数据访问控制方法与系统 |
CN107015814A (zh) * | 2017-04-26 | 2017-08-04 | 国网冀北电力有限公司信息通信分公司 | 满足异构操作系统业务移植的浏览器操作系统设计方法 |
CN107506638A (zh) * | 2017-08-09 | 2017-12-22 | 南京大学 | 一种基于硬件机制的内核控制流异常检测方法 |
CN107479946A (zh) * | 2017-08-16 | 2017-12-15 | 南京大学 | 一种内核模块的交互行为监控方案 |
CN109558211A (zh) * | 2018-11-27 | 2019-04-02 | 上海瓶钵信息科技有限公司 | 保护可信应用与普通应用的交互完整性和保密性的方法 |
CN109684829A (zh) * | 2018-12-04 | 2019-04-26 | 中国科学院数据与通信保护研究教育中心 | 一种虚拟化环境中服务调用监控方法和系统 |
Non-Patent Citations (1)
Title |
---|
陈兴蜀 ; 赵丹丹 ; 李辉 ; 张磊 ; .基于虚拟化的不可信模块运行监控.华中科技大学学报(自然科学版).2016,(第03期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111400702A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111400702B (zh) | 一种虚拟化的操作系统内核保护方法 | |
CN109359487B (zh) | 一种基于硬件隔离的可扩展安全影子存储及标签管理方法 | |
US9361471B2 (en) | Secure vault service for software components within an execution environment | |
US8909898B2 (en) | Copy equivalent protection using secure page flipping for software components within an execution environment | |
CN104520867B (zh) | 用于目标装置的主动监测、存储器保护和完整性验证的方法、系统和计算机可读介质 | |
CN109923546B (zh) | 虚拟机安全性应用程序的事件过滤 | |
US20050108516A1 (en) | By-pass and tampering protection for application wrappers | |
US8122514B2 (en) | Software enhanced trusted platform module | |
US20070106986A1 (en) | Secure virtual-machine monitor | |
US8327415B2 (en) | Enabling byte-code based image isolation | |
EP3867763B1 (en) | Trusted intermediary realm | |
US12001541B2 (en) | Parameter signature for realm security configuration parameters | |
TW202141284A (zh) | 使用複數個實體位址空間的裝置及方法 | |
WO2007050797A2 (en) | Secure virtual-machine monitor | |
US20230236925A1 (en) | Tag checking apparatus and method | |
WO2022105610A1 (zh) | 一种数据保护的方法、装置、存储介质和计算机设备 | |
TW202137008A (zh) | 使用複數個實體位址空間的裝置及方法 | |
Zhou et al. | Protecting Virtual Machines against Untrusted Hypervisor on ARM64 Cloud Platform | |
US20230098991A1 (en) | Systems, methods, and media for protecting applications from untrusted operating systems | |
Xu et al. | KPDP: Kernel Permission Data Protection Against Data-Oriented Attacks | |
WO2022128142A1 (en) | Apparatus and method for managing access to data memory by executable codes based on execution context | |
TW202409842A (zh) | 例外返回狀態鎖定參數 | |
CN116561824A (zh) | 在机密计算架构中管理内存的方法和装置 | |
Bos | Operating Systems & Virtualisation Security Knowledge Area Version.. | |
Bos | Operating Systems & Virtualisation Security Knowledge Area Issue. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |