CN105893850A - 漏洞修复方法和装置 - Google Patents

漏洞修复方法和装置 Download PDF

Info

Publication number
CN105893850A
CN105893850A CN201610193039.9A CN201610193039A CN105893850A CN 105893850 A CN105893850 A CN 105893850A CN 201610193039 A CN201610193039 A CN 201610193039A CN 105893850 A CN105893850 A CN 105893850A
Authority
CN
China
Prior art keywords
leak
code
kernel
repaired
information
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.)
Granted
Application number
CN201610193039.9A
Other languages
English (en)
Other versions
CN105893850B (zh
Inventor
夏良钊
郑龙日
卢永强
包沉浮
张煜龙
韦韬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201610193039.9A priority Critical patent/CN105893850B/zh
Priority to PCT/CN2016/086410 priority patent/WO2017166446A1/zh
Publication of CN105893850A publication Critical patent/CN105893850A/zh
Application granted granted Critical
Publication of CN105893850B publication Critical patent/CN105893850B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了漏洞修复方法和装置。所述方法的一具体实施方式包括:收集待修复内核的属性信息,所述属性信息包括用于表征所述待修复内核所支持代码加载方式的特征信息;获取与所述特征信息匹配的漏洞修复代码;基于所述属性信息,对所述漏洞修复代码进行配置以使所述漏洞修复代码与所述待修复内核适配;使用已配置的漏洞修复代码对所述待修复内核进行漏洞修复。该实施方式兼容于多个内核修复代码加载方法。

Description

漏洞修复方法和装置
技术领域
本申请涉及计算机技术领域,具体涉及信息安全技术领域,尤其涉及漏洞修复方法和装置。
背景技术
操作系统内核经常被发现各种安全漏洞,由于安全漏洞本身原理的复杂性,会消耗大量人力资源来应对。有些厂商会延迟更新甚至放弃了旧版本的维护,给用户带来了极大的安全风险。以Linux内核为例,各种安卓设备中使用的内核版本呈现碎片化特征,不同内核之间差异较大,所以缺乏良好的代码通用性,Linux内核本身和厂商还设置一些安全机制对代码加载进行限制。
由于上述原因,现有技术中的修复方法依赖于运行系统的源代码或者需要原始内核提供相应的机能进行配合才能使用,生成的补丁也只能用于修补特定的内核编译版本,极大的限制了其应用场景和兼容性。
发明内容
本申请的目的在于提出一种改进的漏洞修复方法和装置,来解决以上背景技术部分提到的技术问题。
第一方面,本申请提供了一种漏洞修复方法,所述方法包括:收集待修复内核的属性信息,所述属性信息包括用于表征所述待修复内核所支持代码加载方式的特征信息;获取与所述特征信息匹配的漏洞修复代码;基于所述属性信息,对所述漏洞修复代码进行配置以使所述漏洞修复代码与所述待修复内核适配;使用已配置的漏洞修复代码对所述待修复内核进行漏洞修复。
在一些实施例中,所述获取与所述特征信息匹配的漏洞修复代码,包括:获取服务器中存储的、与所述特征信息匹配的漏洞修复代码,其中所述服务器存储的漏洞修复代码是实时更新的。
在一些实施例中,所述特征信息包括:用于描述所述待修复内核中是否存在预设的系统调用的信息以及用于描述所述待修复内核中是否存在预设的物理内存设备的信息;以及所述获取与所述特征信息匹配的漏洞修复代码,包括:当所述特征信息指示预设的系统调用存在时所匹配的漏洞修复代码包括内核模块类型的漏洞修复代码,当所述特征信息指示预设的物理内存设备存在时所匹配的漏洞修复代码包括指令序列类型的漏洞修复代码。
在一些实施例中,所述属性信息还包括内核符号校验参数;以及当所获取的漏洞修复代码为内核模块时,所述基于所述属性信息,对所述漏洞修复代码进行配置以使所述漏洞修复代码与所述待修复内核适配,包括:使用所述内核符号校验参数配置所述内核模块对应的可执行文件中的内核符号校验参数字段。
在一些实施例中,所述属性信息还包括待修复内核中内核符号的地址信息;以及所述基于所述属性信息,对所述漏洞修复代码进行配置以使所述漏洞修复代码与所述待修复内核适配包括:使用所述地址信息配置所述指令序列中的内核符号的地址。
在一些实施例中,在所述获取与所述特征信息匹配的漏洞修复代码之后,所述方法还包括:对所获取的漏洞修复代码进行合法性校验,以确认所述漏洞修复代码未被篡改。
在一些实施例中,所述方法还包括:生成用于表示漏洞修复成功或失败的信息。
在一些实施例中,所述收集待修复内核的属性信息,包括:响应于待修复内核的启动操作,收集所述待修复内核的属性信息。
在一些实施例中,所述方法还包括:若漏洞修复失败,则将待修复内核恢复至修复之间的状态。
第二方面,本申请提供了一种漏洞修复装置,所述装置包括:收集单元,用于收集待修复内核的属性信息,所述属性信息包括用于表征所述待修复内核所支持代码加载方式的特征信息;获取单元,用于获取与所述特征信息匹配的漏洞修复代码;配置单元,用于基于所述属性信息,对所述漏洞修复代码进行配置以使所述漏洞修复代码与所述待修复内核适配;修复单元,用于使用已配置的漏洞修复代码对所述待修复内核进行漏洞修复。
在一些实施例中,所述获取单元进一步用于获取服务器中存储的、与所述特征信息匹配的漏洞修复代码,其中所述服务器存储的漏洞修复代码是实时更新的。
在一些实施例中,所述特征信息包括:用于描述所述待修复内核中是否存在预设的系统调用的信息以及用于描述所述待修复内核中是否存在预设的物理内存设备的信息;以及所述获取单元进一步用于:当所述特征信息指示预设的系统调用存在时所匹配的漏洞修复代码包括内核模块类型的漏洞修复代码,当所述特征信息指示预设的物理内存设备存在时所匹配的漏洞修复代码包括指令序列类型的漏洞修复代码。
在一些实施例中,所述属性信息还包括内核符号校验参数;以及所述配置单元进一步用于:当所获取的漏洞修复代码为内核模块时,使用所述内核符号校验参数配置所述内核模块对应的可执行文件中的内核符号校验参数字段。
在一些实施例中,所述属性信息还包括待修复内核中内核符号的地址信息;以及所述配置单元进一步用于:使用所述地址信息配置所述漏洞修复代码中的内核符号的地址。
在一些实施例中,所述装置还包括:校验单元,用于对所获取的漏洞修复代码进行合法性校验,以确认所述漏洞修复代码未被篡改。
在一些实施例中,所述装置还包括生成单元:生成用于表示漏洞修复成功或失败的信息。
在一些实施例中,所述收集单元进一步用于:响应于待修复内核的启动操作,收集所述待修复内核的属性信息。
在一些实施例中,所述装置还包括:恢复单元,用于若漏洞修复失败,则将待修复内核恢复至修复之间的状态。
本申请提供的漏洞修复方法和装置,获取到与内核所支持的加载方式匹配的漏洞修复代码并对该漏洞修复代码进行相应的配置,使得配置后的漏洞修复代码可以在内核中加载以实现对内核的漏洞修复。这种漏洞修复方法可以兼容于多个内核修复代码加载方法,不依赖于内核源码及其内核功能,生成的补丁可自适配不同的内核编译版本,克服了Linux系统碎片化的影响。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的漏洞修复方法的一个实施例的流程图;
图3是根据本申请的漏洞修复方法的又一个实施例的流程图;
图4是根据本申请的漏洞修复装置的一个实施例的结构示意图;
图5是适于用来实现本申请实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的漏洞修复方法或漏洞修复装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有安全软件等通讯客户端应用。
终端设备101、102、103可以是各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103提供数据支持的云端服务器。云端服务器可以对接收到的漏洞修复代码请求等数据进行分析等处理,并将处理结果(例如预设的漏洞修复代码)反馈给终端设备101、102、103。
需要说明的是,本申请实施例所提供的漏洞修复方法一般由终端设备101、102、103执行,一些步骤也可以由服务器105执行;相应地,漏洞修复装置一般设置于终端设备101、102、103中,漏洞修复装置的一些单元也可以设置在服务器105中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的漏洞修复方法的一个实施例的流程200。所述的漏洞修复方法,包括以下步骤:
步骤201,收集待修复内核的属性信息。
在本实施例中,漏洞修复方法运行于其上的电子设备(例如图1所示的终端设备)可以首先对该电子设备中待修复内核进行分析,从而收集该内核的属性信息。待修复内核可以是各种操作系统的内核,相应的操作系统可以是Windows、Linux等。其中,该属性信息可以是各种用于描述内核相关属性的信息,例如内核版本信息、内核配置信息等。其中,该属性信息中包括待修复内核所支持代码加载方式的特征信息。不同的内核编译版本,其支持的代码加载方式可能不同,待修复内核所支持的代码加载方式即可以通过上述特征信息进行表征。其中代码记载方式可以是内核记载代码的各种方式,例如加载内核模块方式、操作内存方式以及其他系统可能支持的代码加载方式。
在本实施例的一些可选实现方式中,上述属性信息包括以下至少一项:系统版本信息;用于指示系统调用是否存在的信息;用于指示物理内存设备是否存在的信息;内核配置信息;内核符号地址;校验和信息。
步骤202,获取与上述特征信息匹配的漏洞修复代码。
在本实施例中,电子设备可以在预先设置的一个或多个漏洞修复代码中,获取与上述特征信息匹配的漏洞修复代码。通常,预先设置的一个或多个漏洞修复代码可以是与用于对待修复内核进行修复的各种漏洞修复代码。这些预先设置的一个或多个漏洞修复代码可以是存储在电子设备本地,也可以存储在服务器上,且可以是各种形式的。其中,所获取的漏洞修复代码可以是内核模块形式,也可以是指令序列形式,还可以是预先约定的、且可被电子设备解释与执行的指令组合。内核模块形式是指可在内核运行时加载到内核的一组目标代码,在重构和使用可装载模块时并不需要重新编译内核。漏洞修复代码与特征信息之间的匹配关系可以是预先设置的。电子设备在获取漏洞修复代码时,即可以根据上述匹配关系获取到与上述特征信息匹配的漏洞修复代码。例如,当特征信息指示内核支持以预先约定的指令组合加载代码时,所匹配的漏洞修复代码可以是相应的指令组合形式。
在本实施例的一些可选实现方式中,步骤202可以具体包括:获取服务器中存储的、与上述特征信息匹配的漏洞修复代码,其中服务器存储的漏洞修复代码是实时更新的。在本实施例中,电子设备可以通过有线连接方式或者无线连接方式从服务器中获取与上述特征信息匹配的漏洞修复代码。该服务器中存储的漏洞修复代码可以是实时更新的,因此。在具体获取时,电子设备可以向服务器发送对漏洞修复代码的请求,服务器可以根据该请求向分发相应的漏洞代码。可选的,电子设备还可以将相应的属性信息通过请求发送至服务器,使服务器返回的漏洞修复代码与上述特征信息匹配。上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。通过这种方式,电子设备可以获取到实时更新的漏洞修复代码,使得对内核漏洞的修复具有更强的实时性,进一步保证内核的安全性。
步骤203,对漏洞修复代码进行配置以使该漏洞修复代码与待修复内核适配。
在本实施例中,基于步骤202获取到与上述特征信息匹配的漏洞修复代码后,上述电子设备可以对该漏洞修复代码进行相应地配置,以使该漏洞修复代码可以与上述待修复内核适配,例如使版本号匹配。上述属性信息中可以包括待修复内核所加载的代码应当符合的配置信息。因此,基于该属性信息,电子设备可以对漏洞修复代码进行相应的配置。上述配置可以是在漏洞修复代码中加入一些设定的符号地址、对漏洞修复代码的某些信息进行修改、确定漏洞修复代码将加载在内存中的地址等。
步骤204,使用已配置的漏洞修复代码对待修复内核进行漏洞修复。
在本实施例中,基于步骤203中配置好的漏洞修复代码,上述电子设备可以使用已配置的漏洞修复代码对待修复内核进行漏洞修复。具体的修复可以与漏洞修复代码类型对应的方式执行。例如,当漏洞修复代码是内核模块形式时,可以使用设定的系统调用在待修复内核中加载相应的内核模块;当漏洞修复代码是指令序列形式,可以通过操作内存的方式进行加载;当漏洞修复代码是预先约定的指令组合时,电子设备可以直接解释并执行。
在本实施例的一些可选实现方式中,步骤201中的特征信息可以包括:用于描述待修复内核中是否存在预设的系统调用的信息以及用于描述待修复内核中是否存在预设的物理内存设备的信息;以及步骤202包括:当上述特征信息指示预设的系统调用存在时所匹配的漏洞修复代码包括内核模块类型的漏洞修复代码,当特征信息指示预设的物理内存设备存在时所匹配的漏洞修复代码包括指令序列类型的漏洞修复代码。
以Linux操作系统为例进行说明。例如,有的内核编译版本中存在预设的系统调用,该预设的系统调用可用于加载内核模块。当特征信息指示预设的系统调用存在时,意味着该内核模块可以支持内核模块的加载,则在获取漏洞修复代码时,可以获取内核模块类型的漏洞修复代码。上述预设的系统调用可以是模块加载与卸载函数,例如init_module、finite_module、delete_module,也可以是其他各种用于加载或卸载内核模块的系统调用。
又例如,有的内核编译版本中存在预设的物理内存设备,该预设的物理内存设备可用于对内存进行操作来加载和移除代码。当特征信息指示预设的物理内存设备存在时,意味着内核支持使用该物理内存设备进行操作内存以加载代码,则所获取的漏洞修复代码可以是可在内存中直接加载执行的指令序列。上述预设的物理内存设备可以是/dev/kmem。
可选的,当特征信息指示预设的系统调用与预设的物理内存设备均存在时,内核模块类型与指令序列类型的漏洞修复代码均匹配,电子设备可以选择任意一项。
在本实施例的一些可选实现方式中,上述属性信息还包括内核符号校验参数;以及当所获取的漏洞修复代码为内核模块时,上述步骤203还包括:使用内核符号校验参数配置内核模块对应的可执行文件中的内核符号校验参数字段。通常,内核在加载内核模块时,会利用各种内核符号校验参数对内核模块进行校验。因此,电子设备在获取到内核模块形式的漏洞修复代码后,可以将该内核模块对应的可执行文件中的内核符号校验参数字段的数值配置为内核符号校验参数,以使该内核模块在后续加载时通过内核的校验,从而得以顺利加载。上述校验参数可以是vermagic字符串、module结构体、符号CRC或者其他各种用于验证的校验参数。
在本实施例的一些可选实现方式中,上述属性信息还包括待修复内核中内核符号的地址信息,上述步骤203还包括:使用上述地址信息配置漏洞修复代码中的内核符号的地址。在该实现方式中,电子设备可以使用上述地址信息对漏洞修复代码中的内核符号的地址进行配置,使得配置后的漏洞修复代码可以与待修复内核适配。
本申请的上述实施例提供的方法获取到与内核所支持的加载方式匹配的漏洞修复代码并对该漏洞修复代码进行相应的配置,使得配置后的漏洞修复代码可以在内核中加载以实现对内核的漏洞修复。这种漏洞修复方法可以兼容于多个内核修复代码加载方法,不依赖于内核源码及其内核功能,生成的补丁可自适配不同的内核编译版本,克服了Linux系统碎片化的影响。
进一步参考图3,其示出了漏洞修复方法的又一个实施例的流程300。该漏洞修复方法的流程300,包括以下步骤:
步骤301,收集待修复内核的属性信息。
在本实施例中,步骤301中的具体处理可以参考图2对应实施例中的步骤201,这里不再赘述。
在本实施例的一些可选实现方式中,电子设备可以在待修复内核启动时响应于待修复内核的启动操作,收集待修复内核的属性信息。该实现方式中,可以通过修改系统配置,使该漏洞修复方法在系统重新启动时及早运行,无需用户再次介入,即可及时保护系统。
步骤302,获取与特征信息匹配的漏洞修复代码。
在本实施例中,步骤302中的具体处理可以参考图2对应实施例中的步骤202,这里不再赘述。
步骤303,对所获取的漏洞修复代码进行合法性校验,以确认漏洞修复代码未被篡改。
在本实施例中,电子设备可以通过各种信息对所获取的漏洞修复代码进行合法性校验,以确认漏洞修复代码未被篡改。通常,电子设备可以预先设定合法的验证参数,该验证参数可以对确定合法的漏洞修复代码进行设定的算法所形成的,例如通过CRC,RSA等算法所形成的CRC值、RSA值。在进行合法性验证时,电子设备可以使用相同的校验算法对获取到的漏洞修复代码进行计算,并对所生成的校验值与上述验证参数是否一致。具体的校验算法时,不限于CRC算法、RSA算法。
步骤304,对漏洞修复代码进行配置以使该漏洞修复代码与待修复内核适配。
在本实施例中,步骤304中的具体处理可以参考图2对应实施例中的步骤203,这里不再赘述。
步骤305,使用已配置的漏洞修复代码对待修复内核进行漏洞修复。
在本实施例中,步骤305中的具体处理可以参考图2对应实施例中的步骤204,这里不再赘述。
在本实施例的一些可选实现方式中,电子设备还生成用于表示漏洞修复成功或失败的信息。该信息可以供用户对漏洞修复是否成功进行查询。
在本实施例的一些可选实现方式中,若漏洞修复失败,电子设备可以将待修复内核恢复至修复之间的状态。通过这种方式,电子设备可以在修复失败后自动恢复至修复前的初始状态,以免对系统产生无不良影响。
从图3中可以看出,与图2对应的实施例相比,本实施例中的漏洞修复方法的流程300对所获取的漏洞修复代码进行了合法性校验,可以保证未被篡改,从而进一步提高漏洞修复的安全性。
进一步参考图4,作为对上述各图所示方法的实现,本申请提供了一种漏洞修复装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图4所示,本实施例所述的漏洞修复装置400包括:收集单元401、获取单元402、配置单元403和修复单元404。其中,收集单元401用于收集待修复内核的属性信息,属性信息包括用于表征待修复内核所支持代码加载方式的特征信息;获取单元402用于获取与特征信息匹配的漏洞修复代码;配置单元403用于基于属性信息,对漏洞修复代码进行配置以使漏洞修复代码与待修复内核适配;而修复单元404用于使用已配置的漏洞修复代码对待修复内核进行漏洞修复。
在本实施例中,漏洞修复装置400的收集单元401、获取单元402、配置单元403和修复单元404的具体处理可以参考图2对应实施例中的步骤201、步骤202、步骤203、步骤204。
在本实施例的一些可选实现方式中,上述获取单元402进一步用于获取服务器中存储的、与特征信息匹配的漏洞修复代码,其中服务器存储的漏洞修复代码是实时更新的。具体处理可以参考图2对应实施例中相应的处理步骤。
在本实施例的一些可选实现方式中,上述特征信息包括:用于描述待修复内核中是否存在预设的系统调用的信息以及用于描述待修复内核中是否存在预设的物理内存设备的信息;以及上述获取单元402进一步用于当特征信息指示预设的系统调用存在时所匹配的漏洞修复代码包括内核模块类型的漏洞修复代码,当特征信息指示预设的物理内存设备存在时所匹配的漏洞修复代码包括指令序列类型的漏洞修复代码。具体处理可以参考图2对应实施例中相应的实现方式。
在本实施例的一些可选实现方式中,上述属性信息还包括内核符号校验参数;以及上述配置单元403进一步用于当所获取的漏洞修复代码为内核模块时,使用内核符号校验参数配置内核模块对应的可执行文件中的内核符号校验参数字段。具体处理可以参考图2对应实施例中相应的实现方式。
在本实施例的一些可选实现方式中,上述属性信息还包括待修复内核中内核符号的地址信息;以及配置单元403进一步用于使用地址信息配置漏洞修复代码中的内核符号的地址。具体处理可以参考图2对应实施例中相应的实现方式。
在本实施例的一些可选实现方式中,上述漏洞修复装置400还包括:校验单元(未示出),用于对所获取的漏洞修复代码进行合法性校验,以确认漏洞修复代码未被篡改。具体处理可以参考图3对应实施例中的步骤303。
在本实施例的一些可选实现方式中,漏洞修复装置400还包括生成单元(未示出),生成用于表示漏洞修复成功或失败的信息。具体处理可以参考图3对应的实现方式。
在本实施例的一些可选实现方式中,收集单元401进一步用于:响应于待修复内核的启动操作,收集待修复内核的属性信息。具体处理可以参考图3对应的实现方式。
在本实施例的一些可选实现方式中,漏洞修复装置400还包括:恢复单元(未示出),用于若漏洞修复失败,则将待修复内核恢复至修复之间的状态。具体处理可以参考图3对应的实现方式。
下面参考图5,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机系统500的结构示意图。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括收集单元、获取单元、配置单元和修复单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,收集单元还可以被描述为“待修复内核的属性信息的单元”。
作为另一方面,本申请还提供了一种非易失性计算机存储介质,该非易失性计算机存储介质可以是上述实施例中所述装置中所包含的非易失性计算机存储介质;也可以是单独存在,未装配入终端中的非易失性计算机存储介质。上述非易失性计算机存储介质存储有一个或者多个程序,当所述一个或者多个程序被一个设备执行时,使得所述设备:收集待修复内核的属性信息,所述属性信息包括用于表征所述待修复内核所支持代码加载方式的特征信息;获取与所述特征信息匹配的漏洞修复代码;基于所述属性信息,对所述漏洞修复代码进行配置以使所述漏洞修复代码与所述待修复内核适配;将已配置的漏洞修复代码加载值所述待修复内核中进行漏洞修复。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (12)

1.一种漏洞修复方法,其特征在于,所述方法包括:
收集待修复内核的属性信息,所述属性信息包括用于表征所述待修复内核所支持代码加载方式的特征信息;
获取与所述特征信息匹配的漏洞修复代码;
基于所述属性信息,对所述漏洞修复代码进行配置以使所述漏洞修复代码与所述待修复内核适配;
使用已配置的漏洞修复代码对所述待修复内核进行漏洞修复。
2.根据权利要求1所述的方法,其特征在于,所述获取与所述特征信息匹配的漏洞修复代码,包括:
获取服务器中存储的、与所述特征信息匹配的漏洞修复代码,其中所述服务器存储的漏洞修复代码是实时更新的。
3.根据权利要求1所述的方法,其特征在于,所述特征信息包括:用于描述所述待修复内核中是否存在预设的系统调用的信息以及用于描述所述待修复内核中是否存在预设的物理内存设备的信息;以及
所述获取与所述特征信息匹配的漏洞修复代码,包括:
当所述特征信息指示预设的系统调用存在时所匹配的漏洞修复代码包括内核模块类型的漏洞修复代码,当所述特征信息指示预设的物理内存设备存在时所匹配的漏洞修复代码包括指令序列类型的漏洞修复代码。
4.根据权利要求3所述的方法,其特征在于,所述属性信息还包括内核符号校验参数;以及
当所获取的漏洞修复代码为内核模块时,所述基于所述属性信息,对所述漏洞修复代码进行配置以使所述漏洞修复代码与所述待修复内核适配,包括:
使用所述内核符号校验参数配置所述内核模块对应的可执行文件中的内核符号校验参数字段。
5.根据权利要求1所述的方法,其特征在于,所述属性信息还包括待修复内核中内核符号的地址信息;以及
所述基于所述属性信息,对所述漏洞修复代码进行配置以使所述漏洞修复代码与所述待修复内核适配包括:
使用所述地址信息配置所述漏洞修复代码中的内核符号的地址。
6.根据权利要求1所述的方法,其特征在于,在所述获取与所述特征信息匹配的漏洞修复代码之后,所述方法还包括:
对所获取的漏洞修复代码进行合法性校验,以确认所述漏洞修复代码未被篡改。
7.一种漏洞修复装置,其特征在于,所述装置包括:
收集单元,用于收集待修复内核的属性信息,所述属性信息包括用于表征所述待修复内核所支持代码加载方式的特征信息;
获取单元,用于获取与所述特征信息匹配的漏洞修复代码;
配置单元,用于基于所述属性信息,对所述漏洞修复代码进行配置以使所述漏洞修复代码与所述待修复内核适配;
修复单元,用于使用已配置的漏洞修复代码对所述待修复内核进行漏洞修复。
8.根据权利要求7所述的装置,其特征在于,所述获取单元进一步用于获取服务器中存储的、与所述特征信息匹配的漏洞修复代码,其中所述服务器存储的漏洞修复代码是实时更新的。
9.根据权利要求7所述的装置,其特征在于,所述特征信息包括:用于描述所述待修复内核中是否存在预设的系统调用的信息以及用于描述所述待修复内核中是否存在预设的物理内存设备的信息;以及
所述获取单元进一步用于:当所述特征信息指示预设的系统调用存在时所匹配的漏洞修复代码包括内核模块类型的漏洞修复代码,当所述特征信息指示预设的物理内存设备存在时所匹配的漏洞修复代码包括指令序列类型的漏洞修复代码。
10.根据权利要求9所述的装置,其特征在于,所述属性信息还包括内核符号校验参数;以及
所述配置单元进一步用于:当所获取的漏洞修复代码为内核模块时,使用所述内核符号校验参数配置所述内核模块对应的可执行文件中的内核符号校验参数字段。
11.根据权利要求7所述的装置,其特征在于,所述属性信息还包括待修复内核中内核符号的地址信息;以及
所述配置单元进一步用于:使用所述地址信息配置所述漏洞修复代码中的内核符号的地址。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括:
校验单元,用于对所获取的漏洞修复代码进行合法性校验,以确认所述漏洞修复代码未被篡改。
CN201610193039.9A 2016-03-30 2016-03-30 漏洞修复方法和装置 Active CN105893850B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610193039.9A CN105893850B (zh) 2016-03-30 2016-03-30 漏洞修复方法和装置
PCT/CN2016/086410 WO2017166446A1 (zh) 2016-03-30 2016-06-20 漏洞修复方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610193039.9A CN105893850B (zh) 2016-03-30 2016-03-30 漏洞修复方法和装置

Publications (2)

Publication Number Publication Date
CN105893850A true CN105893850A (zh) 2016-08-24
CN105893850B CN105893850B (zh) 2017-12-15

Family

ID=57014745

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610193039.9A Active CN105893850B (zh) 2016-03-30 2016-03-30 漏洞修复方法和装置

Country Status (2)

Country Link
CN (1) CN105893850B (zh)
WO (1) WO2017166446A1 (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273750A (zh) * 2017-05-31 2017-10-20 上海交通大学 Android设备内核漏洞的修补系统及方法
CN107562560A (zh) * 2017-08-31 2018-01-09 青岛海信移动通信技术股份有限公司 异常问题处理方法及装置
CN108073411A (zh) * 2017-12-11 2018-05-25 北京奇虎科技有限公司 一种补丁的内核加载方法及装置
CN108376061A (zh) * 2016-10-13 2018-08-07 北京百度网讯科技有限公司 用于开发无人驾驶车辆应用的方法和装置
CN108415840A (zh) * 2018-03-14 2018-08-17 百度在线网络技术(北京)有限公司 修复函数缺陷的方法、装置及服务器
CN109117169A (zh) * 2016-12-12 2019-01-01 百度在线网络技术(北京)有限公司 用于修复内核漏洞的方法和装置
CN109472148A (zh) * 2018-11-15 2019-03-15 百度在线网络技术(北京)有限公司 加载热补丁的方法、装置和存储介质
CN109858252A (zh) * 2017-11-30 2019-06-07 中标软件有限公司 自制系统的漏洞分析修复方法
CN110321710A (zh) * 2019-07-05 2019-10-11 深信服科技股份有限公司 一种终端漏洞修复方法、系统及相关组件
CN110457909A (zh) * 2019-08-15 2019-11-15 腾讯科技(深圳)有限公司 虚拟机内存的漏洞修复方法、装置及计算机设备
CN111010391A (zh) * 2019-12-12 2020-04-14 杭州安恒信息技术股份有限公司 一种漏洞修复方法、装置及其相关设备
CN112511571A (zh) * 2021-02-07 2021-03-16 连连(杭州)信息技术有限公司 一种Web漏洞扫描方法、装置、系统、设备及存储介质
CN112906008A (zh) * 2018-11-15 2021-06-04 百度在线网络技术(北京)有限公司 内核漏洞修复方法、装置、服务器及系统
CN113486362A (zh) * 2021-08-17 2021-10-08 平安普惠企业管理有限公司 服务器的漏洞修复方法、装置和计算机设备
CN113672929A (zh) * 2020-05-14 2021-11-19 阿波罗智联(北京)科技有限公司 漏洞特征获取方法、装置及电子设备
CN114978629A (zh) * 2022-05-12 2022-08-30 北京神州慧安科技有限公司 一种基于工业互联网安全监测、预警、应急处置系统
CN118035992A (zh) * 2024-04-12 2024-05-14 浪潮云信息技术股份公司 基于信创操作系统的内存安全扫描方法、电子设备及存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110460571B (zh) * 2019-07-05 2022-11-04 深圳壹账通智能科技有限公司 业务系统漏洞处理方法、装置、计算机设备和存储介质
CN112818355A (zh) * 2021-03-02 2021-05-18 福州汇思博信息技术有限公司 一种漏洞管理方法及终端
CN114143110B (zh) * 2021-12-08 2024-04-26 湖北天融信网络安全技术有限公司 一种拟态设备的漏洞处理方法、装置及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101799763A (zh) * 2009-02-10 2010-08-11 华为技术有限公司 内核在线补丁的方法、装置和系统
CN101937340A (zh) * 2009-06-29 2011-01-05 中兴通讯股份有限公司 使用补丁对软件进行动态升级与控制的方法和装置
CN101154187B (zh) * 2006-09-29 2011-04-13 英特尔公司 用于为程序打补丁的方法、装置、服务处理器和系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103309768B (zh) * 2012-03-16 2015-03-11 腾讯科技(深圳)有限公司 系统文件修复方法和装置
CN103324494B (zh) * 2012-03-22 2018-01-05 金蝶软件(中国)有限公司 自动制作补丁的方法、服务器及系统
CN103678032B (zh) * 2012-09-17 2017-10-31 腾讯科技(深圳)有限公司 系统文件的修复方法及装置
CN104679532B (zh) * 2013-11-27 2018-12-11 腾讯科技(深圳)有限公司 内核模块加载方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101154187B (zh) * 2006-09-29 2011-04-13 英特尔公司 用于为程序打补丁的方法、装置、服务处理器和系统
CN101799763A (zh) * 2009-02-10 2010-08-11 华为技术有限公司 内核在线补丁的方法、装置和系统
CN101937340A (zh) * 2009-06-29 2011-01-05 中兴通讯股份有限公司 使用补丁对软件进行动态升级与控制的方法和装置

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108376061A (zh) * 2016-10-13 2018-08-07 北京百度网讯科技有限公司 用于开发无人驾驶车辆应用的方法和装置
CN108376061B (zh) * 2016-10-13 2019-12-10 北京百度网讯科技有限公司 用于开发无人驾驶车辆应用的方法和装置
CN109117169A (zh) * 2016-12-12 2019-01-01 百度在线网络技术(北京)有限公司 用于修复内核漏洞的方法和装置
CN109117169B (zh) * 2016-12-12 2022-06-07 百度在线网络技术(北京)有限公司 用于修复内核漏洞的方法和装置
CN107273750A (zh) * 2017-05-31 2017-10-20 上海交通大学 Android设备内核漏洞的修补系统及方法
CN107562560A (zh) * 2017-08-31 2018-01-09 青岛海信移动通信技术股份有限公司 异常问题处理方法及装置
CN109858252A (zh) * 2017-11-30 2019-06-07 中标软件有限公司 自制系统的漏洞分析修复方法
CN109858252B (zh) * 2017-11-30 2023-04-25 中标软件有限公司 自制系统的漏洞分析修复方法
CN108073411A (zh) * 2017-12-11 2018-05-25 北京奇虎科技有限公司 一种补丁的内核加载方法及装置
CN108415840A (zh) * 2018-03-14 2018-08-17 百度在线网络技术(北京)有限公司 修复函数缺陷的方法、装置及服务器
CN109472148B (zh) * 2018-11-15 2021-04-02 百度在线网络技术(北京)有限公司 加载热补丁的方法、装置和存储介质
CN109472148A (zh) * 2018-11-15 2019-03-15 百度在线网络技术(北京)有限公司 加载热补丁的方法、装置和存储介质
CN112906008A (zh) * 2018-11-15 2021-06-04 百度在线网络技术(北京)有限公司 内核漏洞修复方法、装置、服务器及系统
CN110321710A (zh) * 2019-07-05 2019-10-11 深信服科技股份有限公司 一种终端漏洞修复方法、系统及相关组件
CN110457909A (zh) * 2019-08-15 2019-11-15 腾讯科技(深圳)有限公司 虚拟机内存的漏洞修复方法、装置及计算机设备
CN110457909B (zh) * 2019-08-15 2024-05-28 腾讯科技(深圳)有限公司 虚拟机内存的漏洞修复方法、装置及计算机设备
CN111010391A (zh) * 2019-12-12 2020-04-14 杭州安恒信息技术股份有限公司 一种漏洞修复方法、装置及其相关设备
CN113672929A (zh) * 2020-05-14 2021-11-19 阿波罗智联(北京)科技有限公司 漏洞特征获取方法、装置及电子设备
CN112511571A (zh) * 2021-02-07 2021-03-16 连连(杭州)信息技术有限公司 一种Web漏洞扫描方法、装置、系统、设备及存储介质
CN113486362A (zh) * 2021-08-17 2021-10-08 平安普惠企业管理有限公司 服务器的漏洞修复方法、装置和计算机设备
CN113486362B (zh) * 2021-08-17 2023-10-03 湖北溢丰数字科技股份有限公司 服务器的漏洞修复方法、装置和计算机设备
CN114978629A (zh) * 2022-05-12 2022-08-30 北京神州慧安科技有限公司 一种基于工业互联网安全监测、预警、应急处置系统
CN118035992A (zh) * 2024-04-12 2024-05-14 浪潮云信息技术股份公司 基于信创操作系统的内存安全扫描方法、电子设备及存储介质

Also Published As

Publication number Publication date
CN105893850B (zh) 2017-12-15
WO2017166446A1 (zh) 2017-10-05

Similar Documents

Publication Publication Date Title
CN105893850A (zh) 漏洞修复方法和装置
CN106598667A (zh) 用于修复内核漏洞的方法和装置
CN107896244A (zh) 一种版本文件的分发方法、客户端及服务器
CN105718313A (zh) 应用操作方法和装置
CN103761329B (zh) 一种对移动设备进行刷机的方法及其装置
CN107832207A (zh) 接口性能测试方法、装置、存储介质和计算机设备
CN110727575B (zh) 一种信息处理方法、系统、装置、以及存储介质
US8607191B2 (en) Automated discovery of programmatic resources
CN106648556A (zh) 前后端集成开发测试的方法及装置
CN106843976A (zh) 用于生成镜像文件的方法和装置
CN112241330A (zh) 结合rpa和ai的流程处理方法、装置、设备及存储介质
CN112148278A (zh) 可视化的区块链智能合约框架及智能合约开发部署方法
CN108563579A (zh) 白盒测试方法、装置、系统及存储介质
CN107122219A (zh) 安装文件的获取方法和装置
CN106357791A (zh) 业务处理方法、装置及系统
CN106131055A (zh) 用于分配操作权限的方法和装置
CN104375933A (zh) 一种单元测试方法和装置
CN111695876A (zh) 审批流程处理方法、装置、设备及存储介质
CN110659984A (zh) 基于用户生命周期预测的授信额度管理方法、装置和电子设备
CN107688924A (zh) 制证方法、装置及计算机可读存储介质
CN107622007A (zh) 应用测试方法和装置
KR102319503B1 (ko) Vnf 라이선스 관리 기능을 가진 nfvo 및 이를 이용한 vnf 라이선스 관리 방법
CN105868639A (zh) 内核漏洞修复方法和装置
CN106055326A (zh) 一种程序处理方法及调度服务器
CN110941422B (zh) 代码自动生成方法、代码生成器及可读存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant