1.本说明书涉及区块链技术领域,特别涉及一种基于区块链的开源软件漏洞管理方法及装置。
背景技术:2.手机银行产品代码中使用的开源软件数目众多,同一开源软件又存在着不同的版本,不同版本的开源软件存在着不同的安全漏洞,这些漏洞都会影响产品安全。由于开源软件种类、版本、漏洞信息众多,导致产品开源软件漏洞管理困难,难以统一维护。
3.针对上述问题,目前尚未提出有效的解决方案。
技术实现要素:4.本说明书实施例提供了一种基于区块链的开源软件漏洞管理方法及装置,以解决现有技术中产品开源软件漏洞管理困难、难以统一维护问题。
5.本说明书实施例提供了一种基于区块链的开源软件漏洞管理方法,应用于漏洞管理系统,包括:
6.获取目标应用程序中使用的多个开源软件中各开源软件对应的版本数据和漏洞数据;
7.基于所述各开源软件对应的版本数据和漏洞数据,生成开源软件漏洞清单;
8.将所述开源软件漏洞清单发送至区块链网络进行分布式存储;所述区块链网络中包括多个区块链节点,所述目标应用程序包括多个模块,所述多个区块链节点与所述多个模块一一对应,所述区块链节点用于存储对应模块中使用的开源软件版本数据;
9.轮询所述多个区块链节点中各区块链节点中存储的开源软件版本数据;
10.根据轮询结果,对所述区块链网络中存储的开源软件漏洞清单中的漏洞数据进行管理。
11.在一个实施例中,所述开源软件漏洞清单中记录有所述多个开源软件中各开源软件对应的版本数据以及所述版本数据对应的漏洞数据。
12.在一个实施例中,轮询所述多个区块链节点中各区块链节点中存储的开源软件版本数据,包括:
13.定时轮询所述多个区块链节点中各区块链节点中存储的开源软件版本数据;
14.根据轮询得到的开源软件版本数据,统计所述多个开源软件中各开源软件当前使用的版本数据。
15.在一个实施例中,根据轮询结果,对所述区块链网络中存储的开源软件漏洞清单中的漏洞数据进行管理,包括:
16.将所述多个开源软件中各开源软件当前使用的版本数据与所述开源软件漏洞清单中的版本数据进行对比;
17.在根据对比结果确定出当前使用的版本数据不包含所述开源软件漏洞清单中目
标版本数据的情况下,将所述开源软件漏洞清单中的与所述目标版本数据对应的漏洞数据更新为无漏洞。
18.本说明书实施例提供了一种基于区块链的开源软件漏洞管理方法,应用于区块链网络,包括:
19.接收漏洞管理系统发送的开源软件漏洞清单,并对所述开源软件漏洞清单进行分布式存储;所述开源软件漏洞清单是基于目标应用程序中使用的多个开源软件中各开源软件对应的版本数据和漏洞数据生成的;
20.响应于所述漏洞管理系统发送的轮询请求,向所述漏洞管理系统发送所述区块链网络中的多个区块链节点中各区块链节点中存储的开源版本数据;所述目标应用程序包括多个模块,所述多个模块与所述多个区块链节点一一对应,所述各区块链节点用于存储对应模块中使用的开源软件版本数据;
21.接收所述漏洞管理系统返回的轮询结果,并根据所述轮询结果对所述区块链网络中存储的开源软件漏洞清单进行管理。
22.在一个实施例中,所述方法还包括:
23.在所述区块链节点对应的模块中使用的开源软件进行升级的情况下,对所述区块链节点中存储的开源软件版本数据进行更新。
24.本说明书实施例还提供了一种基于区块链的开源软件漏洞管理装置,应用于漏洞管理系统,包括:
25.获取模块,用于获取目标应用程序中使用的多个开源软件中各开源软件对应的版本数据和漏洞数据;
26.生成模块,用于基于所述各开源软件对应的版本数据和漏洞数据,生成开源软件漏洞清单;
27.发送模块,用于将所述开源软件漏洞清单发送至区块链网络进行分布式存储;所述区块链网络中包括多个区块链节点,所述目标应用程序包括多个模块,所述多个区块链节点与所述多个模块一一对应,所述区块链节点用于存储对应模块中使用的开源软件版本数据;
28.轮询模块,用于轮询所述多个区块链节点中各区块链节点中存储的开源软件版本数据;
29.管理模块,用于根据轮询结果,对所述区块链网络中存储的开源软件漏洞清单中的漏洞数据进行管理。
30.本说明书实施例还提供了一种基于区块链的开源软件漏洞管理装置,应用于区块链网络,包括:
31.接收模块,用于接收漏洞管理系统发送的开源软件漏洞清单,并对所述开源软件漏洞清单进行分布式存储;所述开源软件漏洞清单是基于目标应用程序中使用的多个开源软件中各开源软件对应的版本数据和漏洞数据生成的;
32.发送模块,用于响应于所述漏洞管理系统发送的轮询请求,向所述漏洞管理系统发送所述区块链网络中的多个区块链节点中各区块链节点中存储的开源版本数据;所述目标应用程序包括多个模块,所述多个模块与所述多个区块链节点一一对应,所述各区块链节点用于存储对应模块中使用的开源软件版本数据;
33.管理模块,用于接收所述漏洞管理系统返回的轮询结果,并根据所述轮询结果对所述区块链网络中存储的开源软件漏洞清单进行管理。
34.本说明书实施例还提供一种计算机设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述任意实施例中所述的基于区块链的开源软件漏洞管理方法的步骤。
35.本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任意实施例中所述的基于区块链的开源软件漏洞管理方法的步骤。
36.本说明书实施例还提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现上述任意实施例中所述的基于区块链的开源软件漏洞管理方法的步骤。
37.在本说明书实施例中,提供了一种基于区块链的开源软件漏洞管理方法,漏洞管理系统可以获取目标应用程序中使用的多个开源软件中各开源软件对应的版本数据和漏洞数据,基于所述各开源软件对应的版本数据和漏洞数据,生成开源软件漏洞清单,将所述开源软件漏洞清单发送至区块链网络进行分布式存储,所述区块链网络中包括多个区块链节点,所述目标应用程序包括多个模块,所述多个区块链节点与所述多个模块一一对应,所述区块链节点用于存储对应模块中使用的开源软件版本数据,轮询所述多个区块链节点中各区块链节点中存储的开源软件版本数据,根据轮询结果,对所述区块链网络中存储的开源软件漏洞清单中的漏洞数据进行管理。上述方案中,将开源软件漏洞清单发送至区块链网络进行分布式存储,可以利用区块链对开源软件漏洞清单进行共享,而且还可以防止漏洞清单被恶意篡改,通过将目标应用程序中的多个模块中各模块中使用的开源软件版本数据存储在对应区块链节点中,使得可以通过轮询区块链节点来获取各模块使用的开源软件版本数据,进而根据轮询结果对开源漏洞清单进行管理。通过上述方案解决了现有的产品开源软件漏洞管理困难、难以统一维护的技术问题,达到了实现自动化统一维护开源软件漏洞、节约管理成本,提升产品安全质量的技术效果。
附图说明
38.此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,并不构成对本说明书的限定。在附图中:
39.图1示出了本说明书一实施例中的基于区块链的开源软件漏洞管理方法的流程图;
40.图2示出了本说明书一实施例中的基于区块链的开源软件漏洞管理方法的流程图;
41.图3示出了本说明书一实施例中的基于区块链的开源软件漏洞管理装置的示意图;
42.图4示出了本说明书一实施例中的基于区块链的开源软件漏洞管理装置的示意图;
43.图5示出了本说明书一实施例中的计算机设备的示意图。
具体实施方式
44.下面将参考若干示例性实施方式来描述本说明书的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本说明书,而并非以任何方式限制本说明书的范围。相反,提供这些实施方式是为了使本说明书公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
45.本领域的技术人员知道,本说明书的实施方式可以实现为一种系统、装置设备、方法或计算机程序产品。因此,本说明书公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
46.传统的开源软件漏洞管理方法仍然是通过普通的表格来维护,且每次修复低版本漏洞后,还需要再新增高版本漏洞,工作量大。此外,传统的开源软件漏洞为人工记录手工维护的方式,维护效率低,且容易出错。为了解决上述问题,本说明书实施例提供了一种基于区块链技术的自动化开源软件漏洞管理方法,更加高效便捷,为开发人员节省时间。
47.基于此,本说明书实施例提供了一种基于区块链的开源软件漏洞管理方法,应用于漏洞管理系统。图1示出了本说明书一实施例中基于区块链的开源软件漏洞管理方法的流程图。虽然本说明书提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本说明书实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。
48.具体地,如图1所示,本说明书一种实施例提供的基于区块链的开源软件漏洞管理方法可以包括以下步骤:
49.步骤s101,获取目标应用程序中使用的多个开源软件中各开源软件对应的版本数据和漏洞数据。
50.漏洞管理系统可以为一个具有运算和网络交互功能的电子设备;也可以为运行于该电子设备中,为数据处理和网络交互提供支持的软件。
51.漏洞管理系统可以获取目标应用程序中使用的多个开源软件中各开源软件对应的版本数据和漏洞数据。其中版本数据可以包括开源软件的多个版本号。漏洞数据可以包括各版本的开源软件存在的漏洞。
52.漏洞管理系统可以从目标应用程序日志中获取该应用程序中使用的多个开源软件的版本数据和漏洞数据。漏洞管理系统也可以接收开发人员输入的目标应用程序中使用的多个开源软件的版本数据和漏洞数据。
53.步骤s102,基于所述各开源软件对应的版本数据和漏洞数据,生成开源软件漏洞清单。
54.在获得各开源软件对应的版本数据和漏洞数据之后,可以基于版本数据和漏洞数据,生成开源软件漏洞清单。
55.在本说明书一些实施例中,所述开源软件漏洞清单中记录有所述多个开源软件中各开源软件对应的版本数据以及所述版本数据对应的漏洞数据。
56.在本说明书一些实施例中,所述开源软件漏洞清单中记录有所述毒狗额开源软件中开源软件对应的版本数据、所述本本数据对应的漏洞数据以及采用该版本的应用程序的模块的个数。
57.步骤s103,将所述开源软件漏洞清单发送至区块链网络进行分布式存储;所述区块链网络中包括多个区块链节点,所述目标应用程序包括多个模块,所述多个区块链节点与所述多个模块一一对应,所述区块链节点用于存储对应模块中使用的开源软件版本数据。
58.在生成开源软件漏洞清单之后,漏洞管理系统可以将开源软件漏洞清单发送至区块链网络中进行分布式存储,以在所述区块链网络中对所述开源软件漏洞清单进行共享。通过在区块链网络中存储开源软件漏洞清单,可以防止开源软件漏洞清单被恶意篡改。
59.区块链网络中可以包括多个区块链节点。目标应用程序中可以包括多个模块。例如手机银行应用程序中可以包括:信用卡模块、转账模块、理财模块、外汇模块等。区块链节点可以与模块一一对应。区块链节点可以用于存储对应模块中使用的开源软件版本数据。开源软件版本数据可以包括开源软件的名称以及对应的版本号。
60.步骤s104,轮询所述多个区块链节点中各区块链节点中存储的开源软件版本数据。
61.步骤s105,根据轮询结果,对所述区块链网络中存储的开源软件漏洞清单中的漏洞数据进行管理。
62.漏洞管理系统可以轮询多个区块链节点中各区块链节点中存储的开源软件版本数据,从而对目标应用程序中的模块所使用的版本数据进行统计,得到轮询结果。之后,漏洞管理系统可以根据轮询结果,对区块链网络中存储的开源软件漏洞清单中的漏洞数据进行管理。例如,可以对漏洞清单中的漏洞数据进行更新和维护。
63.上述实施例中,将开源软件漏洞清单发送至区块链网络进行分布式存储,可以利用区块链对开源软件漏洞清单进行共享,而且还可以防止漏洞清单被恶意篡改,通过将目标应用程序中的多个模块中各模块中使用的开源软件版本数据存储在对应区块链节点中,使得可以通过轮询区块链节点来获取各模块使用的开源软件版本数据,进而根据轮询结果对开源漏洞清单进行管理,实现了自动化统一维护开源软件漏洞。
64.在本说明书一些实施例中,轮询所述多个区块链节点中各区块链节点中存储的开源软件版本数据,可以包括:定时轮询所述多个区块链节点中各区块链节点中存储的开源软件版本数据;根据轮询得到的开源软件版本数据,统计所述多个开源软件中各开源软件当前使用的版本数据。
65.考虑到目标应用程序中各模块使用的开源软件版本会实时更新,漏洞管理系统定时轮询多个区块链节点中各区块链节点中存储的开源软件版本数据。可以根据轮询得到的开源软件版本数据,统计所述多个开源软件中各开源软件当前使用的版本数据。之后,可以根据多个开源软件中各开源软件当前使用的版本数据对区块链网络中存储的开源软件漏洞清单进行更新管理。通过上述方式,可以实时对开源软件漏洞清单进行管理。
66.在本说明书一些实施例中,根据轮询结果,对所述区块链网络中存储的开源软件漏洞清单中的漏洞数据进行管理,可以包括:将所述多个开源软件中各开源软件当前使用的版本数据与所述开源软件漏洞清单中的版本数据进行对比;在根据对比结果确定出当前
使用的版本数据不包含所述开源软件漏洞清单中目标版本数据的情况下,将所述开源软件漏洞清单中的与所述目标版本数据对应的漏洞数据更新为无漏洞。
67.在得到多个开源软件中各开源软件当前使用的版本数据之后,可以将多个开源软件中开源软件当前使用的版本数据与开源软件漏洞清单中的版本数据进行对比。在确定出当前使用的版本数据不包含开源软件漏洞清单中的目标版本数据的情况下,可以将开源漏洞清单中与该目标版本数据对应的漏洞数据更新为无漏洞。即,在目标应用程序中各模块均不使用某一版本的软件之后,该版本对应的漏洞即不存在于目标应用程序中。通过上述方式,可以及时更新开源漏洞清单,便于开发人员直观快捷地了解到当前的漏洞情况。
68.本说明书实施例提供了一种基于区块链的开源软件漏洞管理方法,应用于区块链网络。图2示出了本说明书一实施例中基于区块链的开源软件漏洞管理方法的流程图。
69.具体地,如图2所示,本说明书一种实施例提供的基于区块链的开源软件漏洞管理方法可以包括以下步骤:
70.步骤s201,接收漏洞管理系统发送的开源软件漏洞清单,并对所述开源软件漏洞清单进行分布式存储;所述开源软件漏洞清单是基于目标应用程序中使用的多个开源软件中各开源软件对应的版本数据和漏洞数据生成的。
71.步骤s202,响应于所述漏洞管理系统发送的轮询请求,向所述漏洞管理系统发送所述区块链网络中的多个区块链节点中各区块链节点中存储的开源版本数据;所述目标应用程序包括多个模块,所述多个模块与所述多个区块链节点一一对应,所述各区块链节点用于存储对应模块中使用的开源软件版本数据。
72.步骤s203,接收所述漏洞管理系统返回的轮询结果,并根据所述轮询结果对所述区块链网络中存储的开源软件漏洞清单进行管理。
73.上述实施例中,将开源软件漏洞清单发送至区块链网络进行分布式存储,可以利用区块链对开源软件漏洞清单进行共享,而且还可以防止漏洞清单被恶意篡改,通过将目标应用程序中的多个模块中各模块中使用的开源软件版本数据存储在对应区块链节点中,使得可以通过轮询区块链节点来获取各模块使用的开源软件版本数据,进而根据轮询结果对开源漏洞清单进行管理,实现了自动化统一维护开源软件漏洞。
74.在本说明书一些实施例中,开源软件漏洞管理方法还可以包括:在所述区块链节点对应的模块中使用的开源软件进行升级的情况下,对所述区块链节点中存储的开源软件版本数据进行更新。考虑到目标应用程序中各模块使用的软件版本会实时更新,因此,在某一模块使用的开源软件进行升级的情况下,可以对该模块对应的区块链节点中存储的开源软件版本数据进行更新。通过上述方式,可以实时更新区块链节点中存储的各模块的开源软件版本数据。
75.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。具体的可以参照前述相关处理相关实施例的描述,在此不做一一赘述。
76.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可
以的或者可能是有利的。
77.下面结合一个具体实施例对上述方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本说明书,并不构成对本说明书的不当限定。
78.本说明书实施例提供一种基于区块链技术的手机银行开源软件漏洞管理办法,可以实现自动化统一维护开源软件漏洞并完成修复,节约管理成本,提升产品安全质量。开源软件漏洞清单入区块链,产品下各模块分别作为节点,共同维护开源软件漏洞清单,从同一开源软件各模块使用的最低版本漏洞开始修复,当某个模块升级最低版本后,将该模块节点当前开源软件版本更新,开源软件漏洞系统将定期对漏洞修复清单中的问题进行轮询,当所有节点都不存在该版本漏洞时,更新区块链开源软件漏洞清单,关闭该漏洞,开始下一次轮询,对下一版本的漏洞修复进行跟踪。
79.区块链开源软件漏洞清单用于统计当前产品下使用的所有版本开源软件存在漏洞。开源软件漏洞管理轮询系统每隔1小时,对区块链开源软件漏洞清单上的漏洞实行轮询,并自动关闭已修复漏洞。产品子模块区块链节点中,每个节点用于记录该子模块用使用的当前开源软件版本。
80.例如,手机银行产品中有20个子模块(比如信用卡模块、转账模块、外汇模块等),这20个子模块,共引入了3个开源软件:开源软件a,开源软件b、开源软件c(仅举例,实际中的数目可能上千个)。
81.开源软件a已经发布的版本有1.1,1.2,1.3,开源软件b已经发布的版本有2.2.1,2.2.2,2.2.3,开源软件c已经发布的版本有3.3.1,3.3.2,3.3.3。开源软件a的1.1版本存在漏洞a1,1.2版本存在漏洞a2,1.3版本存在漏洞a3。开源软件b的2.2.1版本存在漏洞b1,2.2.2版本存在漏洞b2,2.2.3版本不存在漏洞。开源软件c的3.3.1版本存在漏洞c1,3.3.2版本不存在漏洞,3.3.3版本不存在漏洞。
82.基于此,生成的开源软件漏洞管理清单如下面的表1所示。可以将开源软件漏洞管理清单发送至区块链网络进行存储。
83.表1
[0084][0085]
手机银行产品下各子模块为区块链节点,每个节点记录当前模块使用的开源软件当前版本情况。如模块1的节点记录着开源软件a版本为1.1,模块2节点记录着开源软件a版
本为1.2,模块3节点记录着开源软件a版本为1.1,如表2所示。
[0086]
表2
[0087][0088][0089]
开源软件漏洞管理轮询系统根据开源软件漏洞管理清单中定期对每个开源软件根据最低存在漏洞版本每隔1小时轮询各节点,当节点中存在当前版本,则表示该漏洞未修复。
[0090]
如开源软件a,开源软件漏洞管理清单中最低版本为1.1,3个子模块中,模块1和模块3均使用了1.1版本,则该漏洞未修复。
[0091]
当模块1的开源软件a的版本,从1.1升级到1.2,模块3将开源软件版本,从1.1升级到1.3,各节点更新自己的最新版本情况如表3所示。
[0092]
表3
[0093]
模块开源软件a版本模块11.2模块21.2模块31.3
[0094]
开源软件轮询到,当所有节点都不存在开源软件a的1.1版本时,开源软件a的1.1版本漏洞修复,更新开源软件漏洞管理清单,关闭开源软件a的1.1版本漏洞,更新后的开源软件漏洞管理清单如表4所述。
[0095]
表4
[0096][0097]
其它开源软件版本漏洞使用同样的方法进行轮询。持续定时对区块链节点进行轮询,以实时掌握目标应用程序的开源软件漏洞情况。
[0098]
上述具体实施例中,通过将开源软件漏洞清单用区块链进行共享,定期轮询各节点的开源软件漏洞,实现了开源软件漏洞清单自动化维护,此外,利用区块链进行漏洞清单共享,可以防止各模块随意修改漏洞清单。
[0099]
基于同一发明构思,本说明书实施例中还提供了一种基于区块链的开源软件漏洞管理装置,应用于漏洞管理系统,如下面的实施例所述。由于基于区块链的开源软件漏洞管理装置解决问题的原理与基于区块链的开源软件漏洞管理方法相似,因此基于区块链的开源软件漏洞管理装置的实施可以参见基于区块链的开源软件漏洞管理方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图3是本说明书实施例的基于区块链的开源软件漏洞管理装置的一种结构框图,如图3所示,包括:获取模块301、生成模块302、发送模块303、轮询模块304和管理模块305,下面对该结构进行说明。
[0100]
获取模块301用于获取目标应用程序中使用的多个开源软件中各开源软件对应的版本数据和漏洞数据;
[0101]
生成模块302用于基于所述各开源软件对应的版本数据和漏洞数据,生成开源软件漏洞清单;
[0102]
发送模块303用于将所述开源软件漏洞清单发送至区块链网络进行分布式存储;所述区块链网络中包括多个区块链节点,所述目标应用程序包括多个模块,所述多个区块链节点与所述多个模块一一对应,所述区块链节点用于存储对应模块中使用的开源软件版本数据;
[0103]
轮询模块304用于轮询所述多个区块链节点中各区块链节点中存储的开源软件版本数据;
[0104]
管理模块305用于根据轮询结果,对所述区块链网络中存储的开源软件漏洞清单中的漏洞数据进行管理。
[0105]
在本说明书一些实施例中,所述开源软件漏洞清单中记录有所述多个开源软件中各开源软件对应的版本数据以及所述版本数据对应的漏洞数据。
[0106]
在本说明书一些实施例中,轮询模块可以具体用于:定时轮询所述多个区块链节点中各区块链节点中存储的开源软件版本数据;根据轮询得到的开源软件版本数据,统计所述多个开源软件中各开源软件当前使用的版本数据。
[0107]
在本说明书一些实施例中,管理模块可以具体用于:将所述多个开源软件中各开源软件当前使用的版本数据与所述开源软件漏洞清单中的版本数据进行对比;在根据对比结果确定出当前使用的版本数据不包含所述开源软件漏洞清单中目标版本数据的情况下,将所述开源软件漏洞清单中的与所述目标版本数据对应的漏洞数据更新为无漏洞。
[0108]
基于同一发明构思,本说明书实施例中还提供了一种基于区块链的开源软件漏洞管理装置,应用于区块链网络,如下面的实施例所述。由于基于区块链的开源软件漏洞管理装置解决问题的原理与基于区块链的开源软件漏洞管理方法相似,因此基于区块链的开源软件漏洞管理装置的实施可以参见基于区块链的开源软件漏洞管理方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合
的实现也是可能并被构想的。图4是本说明书实施例的基于区块链的开源软件漏洞管理装置的一种结构框图,如图4所示,包括:接收模块401、发送模块402和管理模块403,下面对该结构进行说明。
[0109]
接收模块401用于接收漏洞管理系统发送的开源软件漏洞清单,并对所述开源软件漏洞清单进行分布式存储;所述开源软件漏洞清单是基于目标应用程序中使用的多个开源软件中各开源软件对应的版本数据和漏洞数据生成的。
[0110]
发送模块402用于响应于所述漏洞管理系统发送的轮询请求,向所述漏洞管理系统发送所述区块链网络中的多个区块链节点中各区块链节点中存储的开源版本数据;所述目标应用程序包括多个模块,所述多个模块与所述多个区块链节点一一对应,所述各区块链节点用于存储对应模块中使用的开源软件版本数据。
[0111]
管理模块403用于接收所述漏洞管理系统返回的轮询结果,并根据所述轮询结果对所述区块链网络中存储的开源软件漏洞清单进行管理。
[0112]
在本说明书一些实施例中,所述装置还可以包括更新模块,所述更新模块可以具体用于在所述区块链节点对应的模块中使用的开源软件进行升级的情况下,对所述区块链节点中存储的开源软件版本数据进行更新。
[0113]
从以上的描述中,可以看出,本说明书实施例实现了如下技术效果:提供了一种基于区块链的开源软件漏洞管理方法,漏洞管理系统可以获取目标应用程序中使用的多个开源软件中各开源软件对应的版本数据和漏洞数据,基于所述各开源软件对应的版本数据和漏洞数据,生成开源软件漏洞清单,将所述开源软件漏洞清单发送至区块链网络进行分布式存储,所述区块链网络中包括多个区块链节点,所述目标应用程序包括多个模块,所述多个区块链节点与所述多个模块一一对应,所述区块链节点用于存储对应模块中使用的开源软件版本数据,轮询所述多个区块链节点中各区块链节点中存储的开源软件版本数据,根据轮询结果,对所述区块链网络中存储的开源软件漏洞清单中的漏洞数据进行管理。上述方案中,将开源软件漏洞清单发送至区块链网络进行分布式存储,可以利用区块链对开源软件漏洞清单进行共享,而且还可以防止漏洞清单被恶意篡改,通过将目标应用程序中的多个模块中各模块中使用的开源软件版本数据存储在对应区块链节点中,使得可以通过轮询区块链节点来获取各模块使用的开源软件版本数据,进而根据轮询结果对开源漏洞清单进行管理。通过上述方案解决了现有的产品开源软件漏洞管理困难、难以统一维护的技术问题,达到了实现自动化统一维护开源软件漏洞、节约管理成本,提升产品安全质量的技术效果。
[0114]
本说明书实施方式还提供了一种计算机设备,具体可以参阅图5所示的基于本说明书实施例提供的基于区块链的开源软件漏洞管理方法的计算机设备组成结构示意图,所述计算机设备具体可以包括输入设备51、处理器52、存储器53。其中,所述存储器53用于存储处理器可执行指令。所述处理器52执行所述指令时实现上述任意实施例中所述的基于区块链的开源软件漏洞管理方法的步骤。
[0115]
在本实施方式中,所述输入设备具体可以是用户和计算机系统之间进行信息交换的主要装置之一。所述输入设备可以包括键盘、鼠标、摄像头、扫描仪、光笔、手写输入板、语音输入装置等;输入设备用于把原始数据和处理这些数的程序输入到计算机中。所述输入设备还可以获取接收其他模块、单元、设备传输过来的数据。所述处理器可以按任何适当的
方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式等等。所述存储器具体可以是现代信息技术中用于保存信息的记忆设备。所述存储器可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如ram、fifo等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、tf卡等。
[0116]
在本实施方式中,该计算机设备具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
[0117]
本说明书实施方式中还提供了一种基于区块链的开源软件漏洞管理方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现上述任意实施例中所述基于区块链的开源软件漏洞管理方法的步骤。
[0118]
在本实施方式中,上述存储介质包括但不限于随机存取存储器(random access memory,ram)、只读存储器(read-only memory,rom)、缓存(cache)、硬盘(hard disk drive,hdd)或者存储卡(memory card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
[0119]
在本实施方式中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
[0120]
本说明书实施例还提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现上述任意实施例中所述的基于区块链的开源软件漏洞管理方法的步骤。
[0121]
显然,本领域的技术人员应该明白,上述的本说明书实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本说明书实施例不限制于任何特定的硬件和软件结合。
[0122]
应该理解,以上描述是为了进行图示说明而不是为了进行限制。通过阅读上述描述,在所提供的示例之外的许多实施方式和许多应用对本领域技术人员来说都将是显而易见的。因此,本说明书的范围不应该参照上述描述来确定,而是应该参照前述权利要求以及这些权利要求所拥有的等价物的全部范围来确定。
[0123]
以上所述仅为本说明书的优选实施例而已,并不用于限制本说明书,对于本领域的技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书的保护范围之内。