本申请公开了一种补丁包生成方法、装置、电子设备和存储介质,所述方法包括:确定用于漏洞修复的补丁文件;在所述补丁文件中加入干扰代码,生成干扰后补丁文件,所述干扰代码为不实现任何功能的代码;基于所述干扰后补丁文件,生成补丁包。生成补丁包。生成补丁包。
【技术实现步骤摘要】
补丁包生成方法、装置、电子设备和存储介质
[0001]本申请涉及数据安全
,涉及但不限于一种补丁包生成方法、装置、电子设备和存储介质。
技术介绍
[0002]相关技术中,一般通过补丁去修复产品发布后爆出的安全漏洞。然而大量攻击者通过分析厂商发布的安全补丁,比较补丁前后的文件修改去定位漏洞源头,最终根据补丁泄露信息制作攻击工具,并利用补丁覆盖时间间隙攻击未及时打补丁的用户,容易给用户造成威胁。
技术实现思路
[0003]有鉴于此,本申请实施例提供一种补丁包生成方法、装置、电子设备和存储介质。
[0004]第一方面,本申请实施例提供一种补丁包生成方法,所述方法包括:确定用于漏洞修复的补丁文件;在所述补丁文件中加入干扰代码,生成干扰后补丁文件,所述干扰代码为不实现任何功能的代码;基于所述干扰后补丁文件,生成补丁包。
[0005]第二方面,本申请实施例提供一种补丁包生成装置,包括:第一确定模块,用于确定用于漏洞修复的补丁文件;第一生成模块,用于在所述补丁文件中加入干扰代码,生成干扰后补丁文件,所述干扰代码为不实现任何功能的代码;第二生成模块,用于基于所述干扰后补丁文件,生成补丁包。
[0006]第三方面,本申请实施例提供一种电子设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请实施例第一方面所述补丁包生成方法中的步骤。
[0007]第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请实施例第一方面所述补丁包生成方法中的步骤。
[0008]本申请实施例中,由于仅根据补丁文件生成补丁包,会造成攻击者可以通过补丁文件比较补丁前后的文件修改定位漏洞源头,并根据漏洞源头对未能及时打上补丁的用户造成威胁;因此,通过在补丁文件中加入干扰代码生成用于漏洞修复的补丁包,从而可以防止攻击者对未能及时打上补丁的用户造成威胁,提高数据的安全性。
附图说明
[0009]图1为本申请实施例一种补丁包生成方法的流程示意图;
[0010]图2为本申请实施例一种脚本类语言的补丁包生成方法的流程示意图;
[0011]图3为本申请实施例一种编译类语言的补丁包生成方法的流程示意图;
[0012]图4为本申请实施例一种补丁包生成装置的组成结构示意图;
[0013]图5为本申请实施例电子设备的一种硬件实体示意图。
具体实施方式
[0014]下面结合附图和实施例对本申请的技术方案进一步详细阐述。
[0015]图1为本申请实施例一种补丁包生成方法的流程示意图,如图1所示,该方法包括:
[0016]步骤102:确定用于漏洞修复的补丁文件;
[0017]其中,所述补丁文件可以是代码库中经过修改的用于漏洞修复的代码文件(即补丁文件为修改后的文件),还可以是差异文件,所述差异文件用于表征代码库中同一代码文件两个版本(修改前和修改后)之间的差异;所述差异文件又可以称为diff文件、安全补丁文件,是由产品厂商制作的、用于修复产品中安全漏洞问题的文件;所述差异文件可以用于存储从原版本的文件到新版本的文件增加的内容以及删除的内容。
[0018]需要说明的是,所述补丁文件可以是编译类语言(或称编译型语言)编写的源代码文件,还可以是脚本类语言编写的脚本文件;编译型语言是相对于解释型语言存在的,编译型语言首先将源代码编译生成机器语言的文件(二进制文件),再由机器运行机器码(二进制),编译类语言可以是C语言、C++语言和GO语言等,所述补丁文件的数量可以是5,所述源代码文件可以是f1.c文件、f2.c文件、f3.h文件、f4.cpp文件和f5.cpp文件。
[0019]脚本类语言又可以称为解释型语言,脚本文件不进行预先编译,以文本方式存储程序代码,在运行脚本文件中的程序时,必须先解释再运行,脚本类语言可以是PHP语言、Python文件和JS(JavaScript)语言等。
[0020]需要说明的是,具体上述补丁文件是diff文件,还是修复后文件,由具体实际情况而定,比如,对于脚本类语言,补丁文件可以是diff文件,也可以是修复后文件;而对于编译类语言,补丁文件通常为修复后的完整文件。
[0021]步骤104:在所述补丁文件中加入干扰代码,生成干扰后补丁文件,所述干扰代码为不实现任何功能的代码;
[0022]其中,可以利用随机数据生成器(Dummy Code Generator,DC Generator)生成不具备实际意义的干扰代码段,不会对真实逻辑产生影响;所述随机数据生成器可以生成Dummy函数,Dummy函数可以为空函数。
[0023]所述补丁文件可以为一个,也可以为多个,在所述补丁文件为多个的情况下,可以只在部分补丁文件中加入干扰代码,还可以在每一补丁文件中均加入干扰代码,具体由策略确定。
[0024]步骤106:基于所述干扰后补丁文件,生成补丁包。
[0025]本申请实施例中,由于仅根据补丁文件生成补丁包,会造成攻击者可以通过补丁文件比较补丁前后的文件修改定位漏洞源头,并根据漏洞源头对未能及时打上补丁的用户造成威胁;因此,通过在补丁文件中加入干扰代码生成用于漏洞修复的补丁包,从而可以防止攻击者对未能及时打上补丁的用户造成威胁,提高数据的安全性。另外,通过将与漏洞修复相关的源代码文件或脚本文件确定为补丁文件,可以增加补丁文件的多样性;通过将随机数据生成器生成的干扰函数确定为干扰代码,从而可以更便捷高效地生成干扰代码。
[0026]本领域技术人员容易理解,如果补丁文件是编译类语言编写的源代码文件,则步骤S106的具体实现为编译链接过程,最终生成可执行文件,并且可以对可执行文件进行打包操作;如果补丁文件是脚本文件,则步骤S106具体可以为打包操作(对于脚本文件,在最简单的情况下,补丁包就是干扰后补丁文件)。
[0027]此外,在本申请实施例中,除了上述干扰代码之外,还可以同时采用混淆以及代码加固等手段,来进一步防止黑客溯源。即是:
[0028]在上述步骤S106之前,对得到的干扰后补丁文件进行进一步处理,得到进一步处理后补丁文件,其中,所述进一步处理操作包括:加固所述干扰后补丁文件整体或者与漏洞相关部分,和/或,对所述干扰后补丁文件执行混淆操作。
[0029]其中,加固操作可以为LLVM等虚拟化技术。
[0030]相应地,步骤S106具体为:基于所述进一步处理后补丁文件,生成补丁包。
[0031]此外,对于编译类语言来说,当在补丁文件中加入干扰代码,由于干扰代码可能会被编译器优化掉,因此,需要加入特定的干扰代码,比如,加入干扰函数的同时,也加入干扰函数调用语句,从而避免干扰代码被编译器优化。本领域技术人员可以确定具体干扰代码的形式,以避免干扰代码被优化。
[0032]此外,在本申请实施例中,为进一步增强黑客溯源难度,还可以加入干扰文件,干扰文件为与漏本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种补丁包生成方法,其特征在于,包括:确定用于漏洞修复的补丁文件;在所述补丁文件中加入干扰代码,生成干扰后补丁文件,所述干扰代码为不实现任何功能的代码;基于所述干扰后补丁文件,生成补丁包。2.根据权利要求1所述的补丁包生成方法,其特征在于,在所述补丁文件中加入干扰代码,生成干扰后补丁文件的步骤之前,还包括:确定干扰文件,所述干扰文件包括:待修复程序中无需修复文件的补丁;相应地,所述在所述补丁文件中加入干扰代码,生成干扰后补丁文件,包括:分别在所述补丁文件以及所述无需修复文件的补丁中加入干扰代码,生成干扰后补丁文件。3.根据权利要求1所述的补丁包生成方法,其特征在于,在所述补丁文件中加入干扰代码,生成干扰后补丁文件的步骤之前,还包括:确定干扰文件,所述干扰文件包括:不实现任何功能的无功能代码文件;相应地,所述在所述补丁文件中加入干扰代码,生成干扰后补丁文件,包括:分别在所述补丁文件以及所述无功能代码文件中加入干扰代码,生成干扰后补丁文件;或者,在所述补丁文件中加入干扰代码,加入干扰代码后的补丁文件和所述无功能代码文件一起组成干扰后补丁文件。4.根据权利要求2所述的补丁包生成方法,其特征在于,所述分别在所述补丁文件以及所述无需修复文件的补丁中加入干扰代码,生成干扰后补丁文件,包括:在所述补丁文件以及所述无需修复文件的补丁中分别加入干扰代码,其中,对于每个加入干扰代码的文件,该文件中干扰函数数量之和达到第一数量,干扰函数调用语句以及非函数调用语句数量之和达到第二数量;或者,在所述补丁文件以及所述无需修复文件的补丁中分别加入干扰代码,其中,对于每个加入干扰代码的文件,该文件中干扰函数数量之和达到第一数量,干扰函数调用之和达到第二数量。5.根据权利要求2所述的补丁包生成方法,其特征在于,所述分别在所述补丁文件以及所述无需修复文件的补丁中加入干扰代码,生成干扰后补丁文件,包括:基于第三数量,生成第四数量的干扰代码;其中,所述第三数量为:待加入干扰代码的文件的总数量;分别在所述补丁文件以及所述无需修复文件的补丁中加入所述第四数量的干扰代码,得到干扰后补丁文件。6.根据权利要求5所述的补丁包生成方法,其特征在于,所述干扰代码包括干扰函数,所述方法还包括:基于所述第三数量确定第五数量;所述第五数量为每一加入所述干扰代码的文件中,第四数量的干扰代码中所包含的干扰函数被调用的次数之和;所述分别在所述补丁文件以及所述无需修复文件的补丁中加入所述...
【专利技术属性】
技术研发人员:雷琼,
申请(专利权)人:深信服科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。