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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。