启动方法、生成内核镜像的方法及装置制造方法及图纸

技术编号:17265036 阅读:17 留言:0更新日期:2018-02-14 12:23
本申请公开了一种启动方法及装置,同时公开了一种用于启动内核的方法及装置,以及一种生成内核镜像的方法及装置。所述启动方法,包括:将内核镜像对应的各内核镜像分片、分别复制到内核镜像加载空间的不同子区域中;对所述内核镜像分片进行重定位,以启动内核。采用上述方法,使得内核中的代码及数据是以分片为单位随机分布在内核镜像加载空间中,从而实现了内核地址的碎片化,即使攻击者通过一个内核地址泄露漏洞获取到某个内核镜像分片的相对偏移,也无法计算出其他分片的位置,大大增加攻击者读取、修改内核的难度,从而能够更为有效地保障内核的安全。

Method and device for starting the method, generating the mirror image of the kernel

The application discloses a starting method and device, and discloses a method and device for starting the kernel, and a method and device for generating the kernel image. The starting method includes: dividing the kernel images corresponding to the kernel mirrors, copying them into different sub regions of the kernel mirror loading space, relocating the kernel mirroring slices, and starting the kernel. Using the above method, the code and data in the kernel is to slice was randomly distributed in the kernel image loading space, so as to realize the kernel address fragmentation, even if the attacker gets to the relative offset a kernel image slice through a kernel address leakage vulnerability, cannot calculate the other slice the position, greatly increase the attacker to read, modify the kernel of the difficulty, which can more effectively ensure the safety of the kernel.

【技术实现步骤摘要】
启动方法、生成内核镜像的方法及装置
本申请涉及启动技术,具体涉及一种启动方法及装置。本申请同时涉及一种用于启动内核的方法及装置,以及一种生成内核镜像的方法及装置。
技术介绍
通常情况下内核的启动过程包括:1)硬件启动与初始化;2)复制内核镜像到指定内存区域(该过程也称加载内核镜像);3)内核启动这三个步骤。内核在启动的过程中加载内核镜像到内存中的地址通常是固定的,对于攻击者来说很容易通过分析内核镜像,获得指定的代码或数据在内核中的绝对地址,进而通过内核漏洞破坏系统安全。随着地址空间布局随机化(Addressspacelayoutrandomization,简称ASLR)技术的出现,为了保障内核的安全性,在启动内核的过程中也可以采用内核地址空间布局随机化技术(Kerneladdressspacelayoutrandomization,简称KASLR)。所谓ASLR是指,利用随机的方式配置代码和/或数据的地址、让某些敏感代码和/或数据能配置到一个恶意程序未能事先得知的地址,从而令攻击者难于进行攻击的技术,通常可以简称为地址随机化技术。相应的,KASLR则是指,在内核空间实现的地址随机化技术,简称内核地址随机化技术或内核地址随机化。在开启内核地址随机化(KASLR)的系统中,需要将内核启动的第2)个步骤调整为:先计算出一个随机的地址偏移,将内核镜像作为一个整体加载到加上地址偏移后的内存区域中,然后对内核进行重定位。即:采用整体浮动内核镜像的方式进行随机化。由此可见,在启用了KASLR的情况下,由于内核镜像的加载地址不再是固定的,攻击者无法简单地通过分析内核镜像,获取代码或数据在内核中的绝对地址,因此在一定程度上增加了攻击者的攻击成本与难度。但是,由于内核镜像是作为一个整体进行的偏移,内核镜像自身内部的代码、数据间的相对偏移都是不变的,攻击者通过一个内核地址泄露漏洞获取内核镜像中某已知代码或数据的地址后,即可计算出内核镜像中所有代码或数据在内核的绝对地址、并实施有针对性的攻击,导致内核的安全性无法得到有效保障。
技术实现思路
本申请实施例提供一种启动方法和装置,以解决现有的内核启动技术导致内核易受攻击、无法有效保障内核安全性的问题。本申请实施例还提供一种用于启动内核的方法和装置,以及一种生成内核镜像的方法和装置。本申请提供一种启动方法,包括:将内核镜像对应的各内核镜像分片、分别复制到内核镜像加载空间的不同子区域中;对所述内核镜像分片进行重定位,以启动内核。可选的,所述将内核镜像对应的各内核镜像分片、分别复制到内核镜像加载空间的不同子区域中,包括:将至少根据静态分片方式划分得到的各内核镜像分片、分别复制到内核镜像加载空间的不同子区域中;所述静态分片方式是指,根据预设符号将内核镜像划分为内核镜像分片的方式。可选的,所述预设符号包括:在用于控制生成所述内核镜像的链接脚本中添加的、用于划分内核镜像分片的静态分片符。可选的,所述内核镜像是采用如下步骤生成的:通过在链接命令中添加用于加入重定位信息的链接参数、以及执行添加了静态分片符的链接脚本,生成包含内核代码的可执行文件,并提取包含所述静态分片符与编译地址的对应关系的符号表;从所述可执行文件中提取与待生成的内核镜像对应的重定位信息;针对所述可执行文件执行二进制格式转换操作,生成具有对应的重定位信息、且可根据静态分片符分片加载的所述内核镜像。可选的,所述预设符号包括:符号表包含的预设内核符号;所述符号表是在生成所述内核镜像的过程中提取的,其中包含所述预设内核符号与编译地址的对应关系。可选的,所述将至少根据静态分片方式划分得到的各内核镜像分片、分别复制到内核镜像加载空间的不同子区域中,包括:将根据静态分片方式以及动态分片方式划分得到的各内核镜像分片、分别复制到内核镜像加载空间的不同子区域中;所述动态分片方式是指,将采用静态分片方式划分得到的内核镜像分片划分成两个或者两个以上内核镜像分片的方式。可选的,在执行所述复制操作之前,包括:从采用静态分片方式划分内核镜像得到的内核镜像分片中,选择满足预设动态分片条件的内核镜像分片;针对每个所选内核镜像分片,执行下述操作:按照预设方式在当前内核镜像分片中选取函数,根据划分所述内核镜像分片的预设符号、以及所选函数的编译地址,将所述内核镜像分片划分为两个或两个以上内核镜像分片;执行上述操作得到的各内核镜像分片,即为所述内核镜像对应的各内核镜像分片。可选的,所述预设动态分片条件包括:内核镜像分片的大小不小于预设阈值。可选的,所述将内核镜像对应的各内核镜像分片、分别复制到内核镜像加载空间的不同子区域中,包括:确定内核镜像分片的数目、以及每个内核镜像分片的起止分片符;根据所述内核镜像分片的数目,将所述内核镜像加载空间划分为相应数目的子区域;根据相应的起止分片符将各内核镜像分片包含的代码和/或数据、分别复制到所述划分的不同子区域中。可选的,所述根据相应的起止分片符将不同内核镜像分片包含的代码和/或数据,分别复制到所述划分的不同子区域中,包括:按照在内核镜像中的顺序依次选取内核镜像分片,并根据所选内核镜像分片的起止分片符,将其包含的代码和/或数据、复制到随机选取的不同子区域中;或者,从所述内核镜像分片中随机选取每个内核镜像分片,并根据所选内核镜像分片的起止分片符,将其包含的代码和/或数据、复制到按照内存地址依次选取的子区域中。可选的,所述将内核镜像对应的各内核镜像分片、分别复制到内核镜像加载空间的不同子区域中,包括:确定内核镜像分片的数目、以及每个内核镜像分片的起止分片符;根据所述内核镜像分片的数目,将内核镜像加载空间均匀划分为相应数目的子区域;从尚未被复制的内核镜像分片中随机选择一个内核镜像分片;选择按照内存地址从低到高排序处于首位的、尚未存储内核镜像分片的子区域,并根据预设策略确定所述子区域中的随机偏移地址;根据所选内核镜像分片的起止分片符,将其包含的代码和/或数据复制到从所选子区域的随机偏移地址开始的内存块中;判断是否存在尚未被复制的内核镜像分片,若存在,将内核镜像加载空间中、位于当前被复制内核镜像分片之后的剩余内存空间,均匀划分为与尚未被复制的内核镜像分片数目相符的子区域,并转到所述从尚未被复制的内核镜像分片中随机选择一个内核镜像分片的步骤执行;否则,结束内核镜像分片的复制过程。可选的,所述对所述内核镜像分片进行重定位,包括:根据所述内核镜像的重定位信息、以及所述内核镜像分片被复制到不同子区域产生的重定位偏移量,对所述内核镜像分片进行重定位。可选的,所述根据所述内核镜像的重定位信息、以及所述内核镜像分片被复制到不同子区域产生的重定位偏移量,对所述内核镜像分片进行重定位,包括:针对所述重定位信息中的每个重定位表项,执行下述操作:根据当前重定位表项所包含的符号的编译地址、重定位类型、以及所述符号所属的内核镜像分片的重定位偏移量,计算所述符号对应的虚地址;将计算得到的虚地址写入所述当前重定位表项所包含的重定位地址对应的内存单元中。可选的,所述根据所述内核镜像的重定位信息、以及所述内核镜像分片被复制到不同子区域产生的重定位偏移量信息,对所述内核镜像分片进行重定位,包括:针对所述内核镜像分片中的每个内核镜像分片,执行下述操作:遍历所述重定位信本文档来自技高网
...
启动方法、生成内核镜像的方法及装置

【技术保护点】
一种启动方法,其特征在于,包括:将内核镜像对应的各内核镜像分片、分别复制到内核镜像加载空间的不同子区域中;对所述内核镜像分片进行重定位,以启动内核。

【技术特征摘要】
1.一种启动方法,其特征在于,包括:将内核镜像对应的各内核镜像分片、分别复制到内核镜像加载空间的不同子区域中;对所述内核镜像分片进行重定位,以启动内核。2.根据权利要求1所述的启动方法,其特征在于,所述将内核镜像对应的各内核镜像分片、分别复制到内核镜像加载空间的不同子区域中,包括:将至少根据静态分片方式划分得到的各内核镜像分片、分别复制到内核镜像加载空间的不同子区域中;所述静态分片方式是指,根据预设符号将内核镜像划分为内核镜像分片的方式。3.根据权利要求2所述的启动方法,其特征在于,所述预设符号包括:在用于控制生成所述内核镜像的链接脚本中添加的、用于划分内核镜像分片的静态分片符。4.根据权利要求3所述的启动方法,其特征在于,所述内核镜像是采用如下步骤生成的:通过在链接命令中添加用于加入重定位信息的链接参数、以及执行添加了静态分片符的链接脚本,生成包含内核代码的可执行文件,并提取包含所述静态分片符与编译地址的对应关系的符号表;从所述可执行文件中提取与待生成的内核镜像对应的重定位信息;针对所述可执行文件执行二进制格式转换操作,生成具有对应的重定位信息、且可根据静态分片符分片加载的所述内核镜像。5.根据权利要求2所述的启动方法,其特征在于,所述预设符号包括:符号表包含的预设内核符号;所述符号表是在生成所述内核镜像的过程中提取的,其中包含所述预设内核符号与编译地址的对应关系。6.根据权利要求2所述的启动方法,其特征在于,所述将至少根据静态分片方式划分得到的各内核镜像分片、分别复制到内核镜像加载空间的不同子区域中,包括:将根据静态分片方式以及动态分片方式划分得到的各内核镜像分片、分别复制到内核镜像加载空间的不同子区域中;所述动态分片方式是指,将采用静态分片方式划分得到的内核镜像分片划分成两个或者两个以上内核镜像分片的方式。7.根据权利要求6所述的启动方法,其特征在于,在执行所述复制操作之前,包括:从采用静态分片方式划分内核镜像得到的内核镜像分片中,选择满足预设动态分片条件的内核镜像分片;针对每个所选内核镜像分片,执行下述操作:按照预设方式在当前内核镜像分片中选取函数,根据划分所述内核镜像分片的预设符号、以及所选函数的编译地址,将所述内核镜像分片划分为两个或两个以上内核镜像分片;执行上述操作得到的各内核镜像分片,即为所述内核镜像对应的各内核镜像分片。8.根据权利要求7所述的启动方法,其特征在于,所述预设动态分片条件包括:内核镜像分片的大小不小于预设阈值。9.根据权利要求1所述的启动方法,其特征在于,所述将内核镜像对应的各内核镜像分片、分别复制到内核镜像加载空间的不同子区域中,包括:确定内核镜像分片的数目、以及每个内核镜像分片的起止分片符;根据所述内核镜像分片的数目,将所述内核镜像加载空间划分为相应数目的子区域;根据相应的起止分片符将各内核镜像分片包含的代码和/或数据、分别复制到所述划分的不同子区域中。10.根据权利要求9所述的启动方法,其特征在于,所述根据相应的起止分片符将不同内核镜像分片包含的代码和/或数据,分别复制到所述划分的不同子区域中,包括:按照在内核镜像中的顺序依次选取内核镜像分片,并根据所选内核镜像分片的起止分片符,将其包含的代码和/或数据、复制到随机选取的不同子区域中;或者,从所述内核镜像分片中随机选取每个内核镜像分片,并根据所选内核镜像分片的起止分片符,将其包含的代码和/或数据、复制到按照内存地址依次选取的子区域中。11.根据权利要求1所述的启动方法,其特征在于,所述将内核镜像对应的各内核镜像分片、分别复制到内核镜像加载空间的不同子区域中,包括:确定内核镜像分片的数目、以及每个内核镜像分片的起止分片符;根据所述内核镜像分片的数目,将内核镜像加载空间均匀划分为相应数目的子区域;从尚未被复制的内核镜像分片中随机选择一个内核镜像分片;选择按照内存地址从低到高排序处于首位的、尚未存储内核镜像分片的子区域,并根据预设策略确定所述子区域中的随机偏移地址;根据所选内核镜像分片的起止分片符,将其包含的...

【专利技术属性】
技术研发人员:裘绍翔李丹张智宇许来光
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1