[发明专利]用于修复内核漏洞的方法和装置有效
申请号: | 201611139292.2 | 申请日: | 2016-12-12 |
公开(公告)号: | CN106598667B | 公开(公告)日: | 2018-07-27 |
发明(设计)人: | 夏良钊;郑龙日;卢永强;包沉浮;张煜龙;韦韬 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65 |
代理公司: | 北京英赛嘉华知识产权代理有限责任公司 11204 | 代理人: | 王达佐;马晓亚 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 修复 内核 漏洞 方法 装置 | ||
1.一种用于修复内核漏洞的方法,其特征在于,所述方法包括:
收集待修复内核的属性信息,所述属性信息包括用于表征所述待修复内核所支持代码加载方式的特征信息;
获取与所述特征信息匹配的漏洞修复代码,其中,所述漏洞修复代码用于调用补丁应用程序编程接口,所述补丁应用程序编程接口用于使所述漏洞修复代码与不同内核的内核函数适配;
加载所述漏洞修复代码并对所述漏洞修复代码中包含的指令进行重定位;
将所述漏洞修复代码中补丁应用程序编程接口重定位后的地址替换为所述漏洞修复代码所调用的内核函数的地址;
执行地址替换后的漏洞修复代码以修复所述内核漏洞。
2.根据权利要求1所述的方法,其特征在于,所述获取与所述特征信息匹配的漏洞修复代码,包括:
获取服务器中存储的、与所述特征信息匹配的漏洞修复代码,其中,所述服务器中针对不同内核存储有相同的漏洞修复代码。
3.根据权利要求1所述的方法,其特征在于,所述特征信息包括:系统调用信息;以及
所述获取与所述特征信息匹配的漏洞修复代码,包括:
获取与所述系统调用信息匹配的内核模块类型的漏洞修复代码。
4.根据权利要求1所述的方法,其特征在于,所述特征信息包括:物理内存设备或内核驱动信息;
所述获取与所述特征信息匹配的漏洞修复代码,包括:
获取与所述物理内存设备或内核驱动信息匹配的指令序列类型的漏洞修复代码。
5.根据权利要求1所述的方法,其特征在于,所述加载所述漏洞修复代码并对所述漏洞修复代码中包含的指令进行重定位,包括:
获取描述所述待修复内核的元数据信息;
对所述漏洞修复代码中包含的指令进行重定位后,再加载所述漏洞修复代码,其中,所述漏洞修复代码在执行时使用所述元数据信息。
6.根据权利要求5所述的方法,其特征在于,所述元数据信息包括以下至少一项:
内核函数名称和内核函数的地址,内核变量名称和内核变量地址,内核结构体名称,内核结构体地址,内核结构体成员名称,内核结构体成员大小。
7.根据权利要求5所述的方法,其特征在于,所述获取描述所述待修复内核的元数据信息,包括:
通过所述补丁应用程序编程接口获取保存在所述内核中的元数据信息;和/或
通过所述补丁应用程序编程接口从内核镜像中获取元数据信息,其中,所述内核镜像为所述内核在编译时产生的包含每个符号定义和地址的镜像;和/或
以云方式下载元数据信息。
8.一种用于修复内核漏洞的装置,其特征在于,所述装置包括:
收集单元,用于收集待修复内核的属性信息,所述属性信息包括用于表征所述待修复内核所支持代码加载方式的特征信息;
获取单元,用于获取与所述特征信息匹配的漏洞修复代码,其中,所述漏洞修复代码用于调用补丁应用程序编程接口,所述补丁应用程序编程接口用于使所述漏洞修复代码与不同内核的内核函数适配;
重定位单元,用于加载所述漏洞修复代码并对所述漏洞修复代码中包含的指令进行重定位;
替换单元,用于将所述漏洞修复代码中补丁应用程序编程接口重定位后的地址替换为所述漏洞修复代码所调用的内核函数的地址;
执行单元,用于执行地址替换后的漏洞修复代码以修复所述内核漏洞。
9.根据权利要求8所述的装置,其特征在于,所述获取单元进一步用于:
获取服务器中存储的、与所述特征信息匹配的漏洞修复代码,其中,所述服务器中针对不同内核存储有相同的漏洞修复代码。
10.根据权利要求8所述的装置,其特征在于,所述特征信息包括:系统调用信息;以及
所述获取单元进一步用于:
获取与所述系统调用信息匹配的内核模块类型的漏洞修复代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611139292.2/1.html,转载请声明来源钻瓜专利网。