CN111967022A - 安全漏洞修复方法和装置 - Google Patents

安全漏洞修复方法和装置 Download PDF

Info

Publication number
CN111967022A
CN111967022A CN202010929865.1A CN202010929865A CN111967022A CN 111967022 A CN111967022 A CN 111967022A CN 202010929865 A CN202010929865 A CN 202010929865A CN 111967022 A CN111967022 A CN 111967022A
Authority
CN
China
Prior art keywords
vulnerability
user
patch
online
code
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.)
Withdrawn
Application number
CN202010929865.1A
Other languages
English (en)
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.)
AI Speech Ltd
Original Assignee
AI Speech 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 AI Speech Ltd filed Critical AI Speech Ltd
Priority to CN202010929865.1A priority Critical patent/CN111967022A/zh
Publication of CN111967022A publication Critical patent/CN111967022A/zh
Withdrawn legal-status Critical Current

Links

Images

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
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开一种安全漏洞修复方法和装置,其中,安全漏洞修复方法,包括:获取业界公布的漏洞,基于所述漏洞形成任务;将所述任务分发给第一用户,获取经由所述第一用户基于所述漏洞的描述对所述漏洞进行分析和开发漏洞热修复代码;将所述热修复代码递交至第二用户进行代码评审,获取经由所述第二用户评审所述热修复代码的是否评审通过的决定;若评审通过,基于所述热修复代码形成部署包,将所述部署包递交至第三用户进行审批;若审批通过,将所述部署包上线。通过建立一个安全漏洞快速修复平台,从而可以实现对安全漏洞的快速修复能力,这可以为公司避免重要的经济、信誉损失。

Description

安全漏洞修复方法和装置
技术领域
本发明属于系统安全领域,尤其涉及安全漏洞修复方法和装置。
背景技术
在IT界攻击与反攻击一直是道高一尺魔高一丈,尤其最近两年,接连发生fastjson,jackson两大主流序列化反序列化工具爆出严重安全漏洞,范围几乎影响所有的jvm体系的项目,而影响程度也非常严重,黑客可以利用反序列化漏洞实现控制服务器。
基于此背景下,我司设计了“JVM线上安全漏洞快速修复平台”,来实现快速的“亡羊补牢”。
目前市面上还未有公开的提供类似功能的平台化产品(包括开源和商业收费)。
发明内容
本发明实施例提供一种安全漏洞修复方法及装置,用于至少解决上述技术问题之一。
第一方面,本发明实施例提供一种安全漏洞修复方法,包括:获取业界公布的漏洞,基于所述漏洞形成任务;将所述任务分发给第一用户,获取经由所述第一用户基于所述漏洞的描述对所述漏洞进行分析和开发漏洞热修复代码;将所述热修复代码递交至第二用户进行代码评审,获取经由所述第二用户评审所述热修复代码的是否评审通过的决定;若评审通过,基于所述热修复代码形成部署包,将所述部署包递交至第三用户进行审批;若审批通过,将所述部署包上线。
第二方面,本发明实施例提供一种安全漏洞修复装置,包括:获取形成模块,配置为获取业界公布的漏洞,基于所述漏洞形成任务;分发获取模块,配置为将所述任务分发给第一用户,获取经由所述第一用户基于所述漏洞的描述对所述漏洞进行分析和开发漏洞热修复代码;递交获取模块,配置为将所述热修复代码递交至第二用户进行代码评审,获取经由所述第二用户评审所述热修复代码的是否评审通过的决定;形成递交模块,配置为若评审通过,基于所述热修复代码形成部署包,将所述部署包递交至第三用户进行审批;上线模块,配置为若审批通过,将所述部署包上线。
第三方面,提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行第一方面所述的安全漏洞修复方法的步骤。
第四方面,本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面所述方法的步骤。
本申请实施例提供的方法通过建立一个安全漏洞快速修复平台,从而可以实现对安全漏洞的快速修复能力,这可以为公司避免重要的经济、信誉损失。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的一种安全漏洞修复方法的流程图;
图2为本发明一实施例提供的另一种安全漏洞修复方法的流程图;
图3为本发明实施例的安全漏洞修复的方案一具体实施例的使用层面的流程图图;
图4为本发明实施例的安全漏洞修复的方案一具体实施例的技术层面整体构架的流程图;
图5为本发明实施例的安全漏洞修复的方案一具体实施例的集群管理流程图;
图6为本发明实施例的安全漏洞修复的方案一具体实施例的补丁安装流程图;
图7为本发明实施例的安全漏洞修复的方案一具体实施例的补丁包整体结构图;
图8为本发明一实施例提供的一种安全漏洞修复装置的框图;
图9为本发明一实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,其示出了本发明的一种安全漏洞修复方法的一实施例的流程图,用于平台,其中,所述平台提供了web版本的操作控制台,开发人员完成漏洞修复代码后,可以通过平台web页面操作,把漏洞修复代码分发到指定的线上服务。
如图1所示,在步骤101中,获取业界公布的漏洞,基于所述漏洞形成任务;
在步骤102中,将所述任务分发给第一用户,获取经由所述第一用户基于所述漏洞的描述对所述漏洞进行分析和开发漏洞热修复代码;
在步骤103中,将所述热修复代码递交至第二用户进行代码评审,获取经由所述第二用户评审所述热修复代码的是否评审通过的决定;
在步骤104中,若评审通过,基于所述热修复代码形成部署包,将所述部署包递交至第三用户进行审批;
在步骤105中,若审批通过,将所述部署包上线。
在本实施例中,对于步骤101,安全漏洞修复装置获取业界公布的漏洞,基于所述漏洞形成任务,例如,业界对新发现的安全漏洞进行发布后,针对已经公布的漏洞形成多个任务节点,例如,任务节点包括:修复节点、评审节点和审批上线节点,例如,在公布漏洞的平台做一个监控,只要有漏洞公布就能够生成任务,或者人为检索到有新漏洞公布人为的去发布任务,例如,可以是在平台发布任务之后先有一个人为的筛选过程,然后筛选通过的再把任务节点给到研发解决方案的工作人员;
对于步骤102,安全漏洞修复装置将所述任务分发给第一用户,获取经由所述第一用户基于所述漏洞的描述对所述漏洞进行分析和开发漏洞热修复代码,例如,一般公布的安全漏洞会有比较详细的漏洞说明,开发人员(第一用户)基于漏洞的描述对漏洞进行分析和开发漏洞热修复代码,其中,所述修复是基于instrument机制开发一个漏洞修复替换类。例如,Jackson-databind-2670漏洞,只要实现替换SubTypeValidator类的validateSubType方法即可实现对漏洞注入的拦截;
对于步骤103,安全漏洞修复装置将所述热修复代码递交至第二用户进行代码评审,获取经由所述第二用户评审所述热修复代码的是否评审通过的决定,例如,平台在获取到开发人员提交的已经完成开发的热修复代码后,将热修复代码递交至研发负责人和团队(第二用户)进行线上评审,然后获取评审结果;
对于步骤104,若评审通过,基于所述热修复代码形成部署包,将所述部署包递交至第三用户进行审批,例如,将研发负责人和团队评审通过的热修复代码进行编译打包为部署包,但是研发团队内部评审通过的代码以及其编译好的部署包,还不能直接部署到正式环境,需要将部署包递交至总监一级的领导(第三用户)进行审批是否将部署包上线;
对于步骤105,若审批通过,将所述部署包上线。
在本实施例所述的方案中,通过建立一个安全漏洞快速修复平台,从而可以实现对安全漏洞的快速修复能力,这可以为公司避免重要的经济、信誉损失。
在上述实施例所述的方法中,在所述获取经由所述第二用户评审所述热修复代码的是否评审通过的决定之后,所述方法还包括:若评审不通过,将所述评审结果递交至所述第一用户以使所述第一用户进行重新开发。
在本实施例所述的方案中,通过将评审不通过的结果递交至第一用户从而可以实现以使第一用户进行重新开发。
在上述实施例所述的方法中,在所述将所述部署包递交至第三用户进行审批之后,所述方法还包括:若审批不通过,则直接结束,例如,所述结束表示当前这个部署包审批不通过,被打回,需要重新提交部署包,例如,部署包审批不通过可能是安全合规性原因,在被打回的同时提交人员会收到邮件提醒。
在上述实施例所述的方法中,所述将所述部署包上线包括灰度上线和正式上线,其中,灰度上线包括按照服务灰度上线和/或按照请求灰度上线;响应于灰度上线通过,将所述部署包在所有服务和/或所有请求中生效,完成所述漏洞的修复。
例如,正式上线之前可以先手动选定部分服务进行热修复,待观察没有问题后再推广到其他服务;或者先按百分比随机修复一些方法执行,待观察没有问题后逐步加大灰度百分比;经过上述灰度观察之后,若检测灰度上线通过,将部署包在所有服务和/或所有请求中生效,完成漏洞的修复。
在本实施例所述的方案中,通过灰度上线后再进行正式上线,从而可以实现更加安全有效的修复漏洞。
在上述实施例所述的方法中,所述将所述部署包上线包括:
经由Agent Center(服务器集群)与所述集群内的服务器进行通信以将所述部署包上线至所述服务器;
所述通信包括:
所述服务器向所述集群发送心跳上报;
所述集群基于所述心跳上报向所述集群内的服务器发送心跳答复;
所述服务器基于所述心跳答复向所述集群发送补丁拉取进行补丁的下载与安装。
Agent Center、Agent和bizX(业务模块);
其中,Agent Center直接与集群内的agent进行通信,进行服务发现、服务治理,下发漏洞修复补丁;Agent:与Agent Center做心跳保持,接受指令,下载补丁,安装补丁;bizX与agent属于同一个JVM进程,是平台漏洞修补的对象。
例如,心跳上报过程中agent需要能够表达清楚自己是谁和已安装了哪些补丁,例如,一个心跳参数包括:所属系统:xxx、服务:xxx、副本ID:xxx和已安装补丁列表:xxx,这样Agent Center才能知道目前由哪些服务在线可供管理,同时可以判断当前agent是否有新的补丁需要安装;心跳答复是Agent Center对agent的上报动作的响应,例如,心跳答复在需要考虑到一些异常容错的情况下响应包括:有新补丁,并且告知新补丁列表、无新补丁或当前系统异常,请稍后重试;其中,当有新版本补丁的时候,会把需要安装补丁的列表答复给agent。
在本实施例所述的方案中,通过集群管理从而可以实现服务发现、服务治理,下发漏洞修复补丁和接受指令,下载补丁,安装补丁。
请参考图2,其示出了本发明一实施例提供的另一种安全漏洞修复方法的流程图,该流程图主要是针对上述实施例中在所述“在所述将所述部署包上线之后”的方法进一步限定的步骤的流程图。
如图2所示,在步骤201中,当完成补丁下载后,通过SPI(schedule performanceindex,绩效指数)模式加载所述补丁实现,其中,所述补丁的主入口实现HotPatch接口,agent在加载所述补丁时能够根据接口来加载对应的补丁实现;
在步骤202中,基于所述补丁实现,通过agent自定义类加载器进行类加载,其中,所述类加载优先加载所述补丁所在的jar包;
在步骤203中,基于所述类加载,通过ASM基于HotPatch生成字节码,将所述字节码托管给instrument。
在本实施例中,对于步骤201,安全漏洞修复装置当完成补丁下载后,通过SPI模式加载所述补丁实现,其中,补丁的主入口实现HotPatch接口,agent在加载所述补丁时能够根据接口来加载对应的补丁实现,例如,agent是基于java开发的框架代码,而具体的补丁是由框架集成方来实现的,所以采用的是SPI模式;
对于步骤202,安全漏洞修复装置基于所述补丁实现,通过agent自定义类加载器进行类加载,例如,补丁包是从网络上下载的,而且是在运行时动态加载的,所以要优先加载所述补丁所在的jar包;
对于步骤203,安全漏洞修复装置基于所述类加载,通过ASM基于HotPatch生成字节码,将所述字节码托管给instrument,例如,为了方便开发,平台提供了针对JAVA代码执行的高级抽象,需要把开发的HotPatch的实现适配为instrument的代码,是通过ASM框架进行动态字节码生成来实现的;当准备就绪之后,基于jvm的instrument机制,将补丁代码托管给jvm即可,下次再指定类的指定方法执行的时候,就会执行平台的补丁代码。
在本实施例所述的方案中,通过基于JVM的instrument机制实现运行时字节码替换,从而可以实现运行时漏洞的修复。
在上述实施例所述的方法中,所述补丁中包含一个补丁包字节码和一个纯文本的签名文件,所述签名生成的规则包括:
签名=RSA(MD5(补丁包字节码),私钥)。
在本实施例所述的方案中,通过在补丁包中增加一个签名文件,从而可以实现只要私钥不泄漏,攻击者无法伪造补丁包达到集群攻击的效果。
需要说明的是,以上实施例中虽然采用了步骤101、步骤102等具有明确先后顺序的数字,限定了步骤的先后顺序,但是在实际的应用场景中,有些步骤是可以并列执行的,有些步骤的先后顺序也不受到以上数字的限定,本申请在此没有限制,在此不再赘述。
下面对通过描述发明人在实现本发明的过程中遇到的一些问题和对最终确定的方案的一个具体实施例进行说明,以使本领域技术人员更好地理解本申请的方案。
发明人在实现本发明的过程中发现这些相似技术的缺陷:
如果业界有公开报告某框架出现安全漏洞,并提供官方升级方案,业界标准做法是按照官方做法依次升级使用到有安全漏洞的服务。
但是,这里存在一个问题,耗时比较长,人工成本非常高。
原因是这几年业界流行各种“微服务”架构,各家公司内部服务都拆分的比较多,如果升级一个服务,包括开发1小时、测试1小时、上线半小时,那么如果在中等规模的公司微服务数量基本都是上百的,需要花费的时间就相当可观了。
这进而会引发另外一个问题,安全漏洞修复是十万火急的,而修复漏洞的时间是相对不可控的,就会给不法分子创造了相对宽泛的时间窗口进行作恶。
发明人在实现本发明的过程中发现为什么不容易想到原因:
Jvm体系下作安全漏洞的热修复,本身是有很高的技术门槛的,国内一般体量的公司很难有对这方面有专门的技术研究人员。
我们也是基于阿里开源的工具来实现的,但是这个工具本身是19年开源的,目前还处在相对初期,知道的人并不多,并且能够理解这个工具的人员更加相对有限,因为这块的知识也不是一般开发人员能接触到的。
而我们公司作为国内一流的人工智能语音公司,面对的线上场景特别丰富,在19年就已经有线上bug通过阿里的开源工具进行修复的实践经历。
本发明的技术创新点:
我们的平台提供了web版本的操作控制台,开发人员完成漏洞修复代码后,可以通过平台web页面操作,把漏洞修复代码分发到指定的线上服务,而且整个过程不需要线上服务做版本更新等动作。
业界公布漏洞:业界一般会对新发现的安全漏洞进行公布,比如:Jackson-databind-2670
漏洞分析:针对已公布的漏洞,一般就会有比较详细的漏洞说明,我方开发人员可以基于漏洞的描述,对漏洞源码进行修复。当然此处我们当然不是直接修改开源软件的源码,我们是基于instrument机制开发一个漏洞修复替换类。比如Jackson-databind-2670漏洞,我们只要实现替换SubTypeValidator类的validateSubType方法即可实现对漏洞注入的拦截。
开发漏洞热修复代码:基于对漏洞的分析,此步骤要进行的就是针对漏洞的原理开发热修复的代码了。
提交热修复代码:开发人员完成漏洞修复代码开发之后,需要提交修复的代码,并在平台发起评审流程
代码评审:研发负责人和团队会对开发人员的代码进行线上评审,如果评审不通过则打回重新进行开发;如果评审通过则会基于评审通过的代码进行编译打包,然后进入下一步流程。
上线申请:研发团队内部评审通过的代码以及其编译好的部署包,还不能直接部署到正式环境,需要发起上线申请,然后由总监一级的领导审批通过方可上线。
灰度上线:灰度上线,我们支持按照服务灰度,也支持按照请求灰度。
按照服务灰度,即可手动选定部分服务进行热修复,待观察没有问题后再推广到其他服务。
按照请求灰度,可按百分比随机修复一些方法执行,待观察没有问题后逐步加大灰度百分比。
正式上线:经过上一步骤的灰度观察之后,把漏洞修复的部署包在所有服务和所有请求中生效,完成漏洞的修复。
上面讲的流程更多的是偏使用流程层面的说明,更多的是保证工具用的好;下面讲针对平台实现的技术流程进行说明。
控制台:提供web页面给开发者、研发管理者进行流程发起、管控
Agent Center:直接与集群内的agent进行通信,进行服务发现、服务治理,下发漏洞修复补丁。
Agent:与Agent Center做心跳保持,接受指令,下载补丁,安装补丁
bizX:业务模块,与agent属于同一个JVM进程,是平台漏洞修补的对象。
心跳上报是agent和agent center保持通信的基石,上报过程agent需要能表达清楚自己是谁,已安装了哪些补丁,这样agent center才能知道目前由哪些服务在线可供管理,同时可以判断当前agent是否有新的补丁需要安装,心跳参数如下:
所属系统
服务
副本ID
已安装补丁列表
心跳答复,是agent center对agent的上报动作的响应,当有新版本的补丁的时候,会把需要安装补丁的列表答复给agent,并且需要考虑到一些异常容错情况,所以响应情况列举如下:
有新补丁,并且告知新补丁列表
无新补丁
当前系统异常,请稍后重试
补丁安装的过程是最底层的技术,主要是基于JVM的instrument机制实现运行时字节码替换,此技术也是我们实现运行时漏洞修复的根本。
寻类:因为agent是我们基于java开发的框架代码,而具体的补丁是由框架集成方来实现的,所以,此处采用SPI模式,补丁的主入口必须实现HotPatch接口,然后agent在加载补丁的时候会根据接口来加载具体的补丁实现。
类加载:因为补丁包是从网络上下载的,而且是在运行时动态加载的,所以此处不能采用jvm原生的双亲委派模型进行类加载,此处必须优先去加载本次安装补丁包所在的jar包。
字节码准备:为了方便开发,不能让开发人员直接去基于instrument机制开发代码,我们提供了针对java代码执行的高级抽象,所以此处需要把开发人员开发的HotPatch的实现适配为instrument的代码;此处主要是基于ASM框架进行动态字节码生成。
字节码托管:一切准备就绪之后,只需要jvm的instrument机制,将补丁代码托管给jvm即可,下次再指定类的指定方法执行的时候,就会执行我们的补丁代码。
安装包在内网中传输,一般来讲是安全的,但是如果我们的补丁修复平台被攻破怎么办呢?所以我们在安装包上做了更多一层安全保障:签名机制。
我们的补丁包整体结构如下:
整个补丁包是一个zip格式的压缩包,里面包含了一个jar包的补丁,和一个纯文本的签名文件。
签名文件是有控制台生成的,生成的规则是:
签名=RSA(MD5(补丁包字节码),私钥)
所以当agent拿到了补丁包之后,会先进行验签,只要我们的私钥不泄漏,攻击者无法伪造我们的补丁包达到集群攻击的效果。
发明人在实现本发明的过程中发现达到更深层次的效果:
基于该平台,我们实现了对安全漏洞的快速修复能力,这可以为公司避免重要的经济、信誉损失;同时,从更深入的层面来讲,这个平台提供了线上服务的管控集群基础能力,理论上,基于此平台我们可以做线上bug修复、线上问题定位等更多的场景的讨论,不过这一块不止是技术实现的问题,更多的是流程管控的挑战,我们要提供灵活的工具,又要提供稳定的版本管理,所以这一块后续还要有大量的工作要做。
请参考图8,其示出了本发明一实施例提供的一种安全漏洞修复装置的框图,用于平台。
如图8所示,获取形成模块810、分发获取模块820、递交获取模块830、形成递交模块840和上线模块850。
其中,获取形成模块810,配置为获取业界公布的漏洞,基于所述漏洞形成任务;分发获取模块820,配置为将所述任务分发给第一用户,获取经由所述第一用户基于所述漏洞的描述对所述漏洞进行分析和开发漏洞热修复代码;递交获取模块830,配置为将所述热修复代码递交至第二用户进行代码评审,获取经由所述第二用户评审所述热修复代码的是否评审通过的决定;形成递交模块840,配置为若评审通过,基于所述热修复代码形成部署包,将所述部署包递交至第三用户进行审批;上线模块850,配置为若审批通过,将所述部署包上线。
应当理解,图8中记载的诸模块与参考图1和图2中描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作和特征以及相应的技术效果同样适用于图8中的诸模块,在此不再赘述。
值得注意的是,本申请的实施例中的模块并不用于限制本申请的方案,例如获取形成模块可以描述获取业界公布的漏洞,基于所述漏洞形成任务的模块,另外,还可以通过硬件处理器来实现相关功能模块,例如获取形成模块可以用处理器实现,在此不再赘述。
在另一些实施例中,本发明实施例还提供了一种非易失性计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的安全漏洞修复方法;
作为一种实施方式,本发明的非易失性计算机存储介质存储有计算机可执行指令,计算机可执行指令设置为:
获取业界公布的漏洞,基于所述漏洞形成任务;
将所述任务分发给第一用户,获取经由所述第一用户基于所述漏洞的描述对所述漏洞进行分析和开发漏洞热修复代码;
将所述热修复代码递交至第二用户进行代码评审,获取经由所述第二用户评审所述热修复代码的是否评审通过的决定;
若评审通过,基于所述热修复代码形成部署包,将所述部署包递交至第三用户进行审批;
若审批通过,将所述部署包上线。
非易失性计算机可读存储介质可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据安全漏洞修复装置的使用所创建的数据等。此外,非易失性计算机可读存储介质可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,非易失性计算机可读存储介质可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至安全漏洞修复装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本发明实施例还提供一种计算机程序产品,计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,使计算机执行上述任一项安全漏洞修复方法。
图9是本发明实施例提供的电子设备的结构示意图,如图9所示,该设备包括:一个或多个处理器910以及存储器920,图9中以一个处理器910为例。用于安全漏洞修复方法的设备还可以包括:输入装置930和输出装置940。处理器910、存储器920、输入装置930和输出装置940可以通过总线或者其他方式连接,图9中以通过总线连接为例。存储器920为上述的非易失性计算机可读存储介质。处理器910通过运行存储在存储器920中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例用于安全漏洞修复装置方法。输入装置930可接收输入的数字或字符信息,以及产生与用于安全漏洞修复装置的用户设置以及功能控制有关的键信号输入。输出装置940可包括显示屏等显示设备。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
作为一种实施方式,上述电子设备应用于安全漏洞修复装置中,包括:
至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够:
获取业界公布的漏洞,基于所述漏洞形成任务;
将所述任务分发给第一用户,获取经由所述第一用户基于所述漏洞的描述对所述漏洞进行分析和开发漏洞热修复代码;
将所述热修复代码递交至第二用户进行代码评审,获取经由所述第二用户评审所述热修复代码的是否评审通过的决定;
若评审通过,基于所述热修复代码形成部署包,将所述部署包递交至第三用户进行审批;
若审批通过,将所述部署包上线。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器,掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种安全漏洞修复方法,包括:
获取业界公布的漏洞,基于所述漏洞形成任务;
将所述任务分发给第一用户,获取经由所述第一用户基于所述漏洞的描述对所述漏洞进行分析和开发漏洞热修复代码;
将所述热修复代码递交至第二用户进行代码评审,获取经由所述第二用户评审所述热修复代码的是否评审通过的决定;
若评审通过,基于所述热修复代码形成部署包,将所述部署包递交至第三用户进行审批;
若审批通过,将所述部署包上线。
2.根据权利要求1所述的方法,其中,在所述获取经由所述第二用户评审所述热修复代码的是否评审通过的决定之后,所述方法还包括:
若评审不通过,将所述评审结果递交至所述第一用户以使所述第一用户进行重新开发。
3.根据权利要求1所述的方法,其中,在所述将所述部署包递交至第三用户进行审批之后,所述方法还包括:
若审批不通过,则直接结束。
4.根据权利要求1所述的方法,其中,所述将所述部署包上线包括灰度上线和正式上线,其中,灰度上线包括按照服务灰度上线和/或按照请求灰度上线;
响应于灰度上线通过,将所述部署包在所有服务和/或所有请求中生效,完成所述漏洞的修复。
5.根据权利要求4所述的方法,其中,所述将所述部署包上线包括:
经由服务器集群与所述集群内的服务器进行通信以将所述部署包上线至所述服务器;
所述通信包括:
所述服务器向所述集群发送心跳上报;
所述集群基于所述心跳上报向所述集群内的服务器发送心跳答复;
所述服务器基于所述心跳答复向所述集群发送补丁拉取进行补丁的下载与安装。
6.根据权利要求4所述的方法,其中,在所述将所述部署包上线之后,所述方法还包括:
当完成补丁下载后,通过SPI模式加载所述补丁实现,其中,所述补丁的主入口实现HotPatch接口,agent在加载所述补丁时能够根据接口来加载对应的补丁实现;
基于所述补丁实现,通过agent自定义类加载器进行类加载,其中,所述类加载优先加载所述补丁所在的jar包;
基于所述类加载,通过ASM基于HotPatch生成字节码,将所述字节码托管给instrument,其中,instrument是jvm提供的一种机制,用来实现程序运行时更新程序执行逻辑。
7.根据权利要求6中所述的方法,其中,所述补丁中包含一个补丁包字节码和一个纯文本的签名文件,所述签名生成的规则包括:
签名=RSA(MD5(补丁包字节码),私钥)。
8.一种安全漏洞修复装置,包括:
获取形成模块,配置为获取业界公布的漏洞,基于所述漏洞形成任务;
分发获取模块,配置为将所述任务分发给第一用户,获取经由所述第一用户基于所述漏洞的描述对所述漏洞进行分析和开发漏洞热修复代码;
递交获取模块,配置为将所述热修复代码递交至第二用户进行代码评审,获取经由所述第二用户评审所述热修复代码的是否评审通过的决定;
形成递交模块,配置为若评审通过,基于所述热修复代码形成部署包,将所述部署包递交至第三用户进行审批;
上线模块,配置为若审批通过,将所述部署包上线。
9.一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行权利要求1至7中任一项所述方法的步骤。
10.一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至7中任一项所述方法的步骤。
CN202010929865.1A 2020-09-07 2020-09-07 安全漏洞修复方法和装置 Withdrawn CN111967022A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010929865.1A CN111967022A (zh) 2020-09-07 2020-09-07 安全漏洞修复方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010929865.1A CN111967022A (zh) 2020-09-07 2020-09-07 安全漏洞修复方法和装置

Publications (1)

Publication Number Publication Date
CN111967022A true CN111967022A (zh) 2020-11-20

Family

ID=73392434

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010929865.1A Withdrawn CN111967022A (zh) 2020-09-07 2020-09-07 安全漏洞修复方法和装置

Country Status (1)

Country Link
CN (1) CN111967022A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115268983A (zh) * 2022-08-09 2022-11-01 清华大学 一种针对嵌入式物联网设备漏洞的热修复方法及装置
CN115576589A (zh) * 2022-12-08 2023-01-06 平安银行股份有限公司 一种程序热更新方法、电子设备和存储介质
CN118051918A (zh) * 2024-04-16 2024-05-17 浪潮云信息技术股份公司 一种安全漏洞修复管理方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115268983A (zh) * 2022-08-09 2022-11-01 清华大学 一种针对嵌入式物联网设备漏洞的热修复方法及装置
CN115576589A (zh) * 2022-12-08 2023-01-06 平安银行股份有限公司 一种程序热更新方法、电子设备和存储介质
CN118051918A (zh) * 2024-04-16 2024-05-17 浪潮云信息技术股份公司 一种安全漏洞修复管理方法及装置

Similar Documents

Publication Publication Date Title
US11340870B2 (en) Software release workflow management
US10732962B1 (en) End-to-end deployment infrastructure
US9552480B2 (en) Managing software deployment
CN106156186B (zh) 一种数据模型管理装置、服务器及数据处理方法
CN111967022A (zh) 安全漏洞修复方法和装置
US9830135B2 (en) Declarative and pluggable business logic for systems management
US11550568B1 (en) Automatically deploying artifacts
CN107896244B (zh) 一种版本文件的分发方法、客户端及服务器
US10796001B2 (en) Software verification method and apparatus
WO2019067598A1 (en) SYSTEMS AND METHOD FOR DEPLOYING, SECURING AND MANAGING COMPUTER ANALYTICAL ENVIRONMENTS
CN111880987A (zh) 应用程序的动态监测方法、装置、存储介质以及电子装置
US10514905B1 (en) System and method of remediating and redeploying out of compliance applications and cloud services
CN110727575B (zh) 一种信息处理方法、系统、装置、以及存储介质
CN112148278A (zh) 可视化的区块链智能合约框架及智能合约开发部署方法
CA3155732A1 (en) Business process configuring method, business request processing method, and devices
US9626251B2 (en) Undo configuration transactional compensation
CN113467784A (zh) 应用程序处理方法及其装置、计算机可读存储介质
CN113760339A (zh) 漏洞修复方法和装置
CN116361807A (zh) 风险管控方法、装置、存储介质及电子设备
CN114371859A (zh) 应用软件rasp程序更新方法、服务器、电子设备及存储介质
CN111090442A (zh) 一种应用更新方法、装置和存储介质
CN111625830A (zh) 数据处理方法、数据展示方法、系统及设备
Sarrab et al. Empirical study on mobile platforms selection, based on system, information and service quality characteristics
CN116360800B (zh) 一种代码分支环境的部署方法、装置及电子设备
US20240086183A1 (en) Software code verification using software code identifier comparison

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 215123 building 14, Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou City, Jiangsu Province

Applicant after: Sipic Technology Co.,Ltd.

Address before: 215123 building 14, Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou City, Jiangsu Province

Applicant before: AI SPEECH Ltd.

WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20201120