DevOps平台中软件包部署方法及系统与流程
未命名
08-12
阅读:108
评论:0
devops平台中软件包部署方法及系统
技术领域
1.本发明涉及软件开发技术领域,具体地说是一种devops平台中软件包部署方法及系统。
背景技术:
2.随着信息技术的不断发展,软件系统的复杂度也不断增长,开发过程中大量使用的开源组件形成了一种趋势,据gartner调查显示:99%的组织在其软件产品开发的过程中使用了开源组件,随着开源组件的大量使用,风险也随之而来:开源源代码中可能存在着大量漏洞,影响软件安全,使用不同的开源组件需要遵守不同的开源协议,这对于商业软件的开发带来一些法律上的风险。
3.目前,对于软件漏洞的检测和开源软件的合法性依赖于软件成分分析、漏洞扫描等工具,并且将这些工具集成到devops平台的软件开发流水线中,确保软件开发过程的安全性和合规性。devops平台软件开发流水线通过集成代码缺陷扫描工具、软件成分分析、自动化测试等一系列工具,在构建、交付软件包前对源码进行分析和扫描,如果扫描结果不符合公司制定的安全质量基线,则不会交付部署,从而确保最终部署的软件包的质量、安全性以及合规性。然而devops平台中的软件开发流水线通常由开发团队进行维护,而实际的线上生产环境由运维人员进行维护。在实际的场景中,由于不同软件开发产品线的不同研发团队管理模式存在客观差异,因此存在开发人员绕过devops平台流水线中的质量检测工具,自行构建软件包交付给运维人员进行部署,而运维人员无法判断软件包的质量,从而导致生产事故的发生。
4.故如何确保软件包完整性及来源合法的同时,保证待部署软件包经过完整的质量检测过程是目前亟待解决的技术问题。
技术实现要素:
5.本发明的技术任务是提供一种devops平台中软件包部署方法及系统,来解决如何确保软件包完整性及来源合法的同时,保证待部署软件包经过完整的质量检测过程的问题。
6.本发明的技术任务是按以下方式实现的,一种devops平台中软件包部署方法,该方法具体如下:
7.在devops软件开发流水线使用质量检测工具对待部署的软件源码进行分析和扫描;
8.根据扫描的结果获取本次待发布源码的质量评分:
9.若评分满足预先设定的安全基线分数,则在流水线中使用源码构建工具将源代码构建未待部署的软件包;
10.对软件包的元数据及质量评分数据进行数字签名,生成一个软件包质量描述文件;
11.同时在生产环境部署软件包质量验证服务,运维人员在生产环境部署软件包前,软件包质量验证服务自动读取待部署软件包内的质量描述文件,验证质量描述文件的签名、软件包元数据以及质量评分:
12.若质量评分满足验证待部署软件包的完整性以及满足发布需求的最低质量分数,则进行软件包的部署工作;
13.若质量评分未满足验证待部署软件包的完整性以及满足发布需求的最低质量分数,则触发告警,提示该软件包不合法,需要重新构建。
14.作为优选,质量检测工具包括devops平台中的源码缺陷扫描工具、软件成分分析(sca)工具及源码安全漏洞扫描工具;
15.软件包的元数据包括用于描述该源码的软件名称及软件唯一识标识的属性信息。
16.更优地,待发布源码的质量评分是指根据扫描结果中违反的安全、质量的规则数量和对应的危害等级进行计算获取;
17.其中,违反的安全、质量的规则数量和对应的危害等级是指扫描结果中包括的软件漏洞数量、软件漏洞等级、源码缺陷数量、源码缺陷等级及是否包含非法的开源组件进行计算获取。
18.更优地,软件包质量验证服务中部署验签用的公钥,软件包的元数据及质量评分数据通过私钥进行数字签名,私钥和公钥是基于非对称加密算法生成的公私钥对;
19.其中,使用非对称加密生成的私钥对软件包的哈希值、软件包的版本号、软件包对应的源码的名称及唯一标识元数据和质量评分分数进行数字签名;
20.软件包的哈希值是指使用md5哈希算法计算的待部署软件包的哈希值。
21.一种devops平台中软件包部署的系统,该系统包括软件包质量评分管理模块、源码质量检测模块、软件包质量评分文件生成模块、软件包质量验证模块及告警模块;
22.其中,软件包质量评分管理模块用于记录软件源码的元数据以及设定该软件源码满足部署要求的最低质量分数;
23.源码质量检测模块用于使用devops平台中的源码缺陷扫描工具、软件成分分析(sca)工具及源码安全漏洞扫描工具对源码质量进行检测,并根据检测结果生成待部署软件的质量评分;
24.软件包质量评分文件生成模块用于部署签名用的私钥;
25.软件包质量验证模块用于部署验签用的公钥,还用于部署在线上的生成环境中,在软件包部署在生产环境前,对软件包的质量评分文件进行验证;
26.告警模块用于将部署失败的信息以及原因推送给相关负责人。
27.作为优选,待发布源码的质量评分是指根据扫描结果中违反的安全、质量的规则数量和对应的危害等级进行计算获取;
28.其中,违反的安全、质量的规则数量和对应的危害等级是指扫描结果中包括的软件漏洞数量、软件漏洞等级、源码缺陷数量、源码缺陷等级及是否包含非法的开源组件进行计算获取。
29.更优地,所述公钥和私钥是基于非对称加密算法生成的公私钥对,用于对软件包的元数据及质量评分数据进行数字签名和验签。
30.更优地,所述软件包质量评分管理模块具体如下:
31.将待部署软件的质量评分与软件包质量评分管理模块中记录的对应软件满足部署的最低质量分数进行对比:
32.若待部署软件的质量评分低于对应软件满足部署的最低质量分数,则不进行软件包的构建;
33.若待部署软件的质量评分不低于对应软件满足部署的最低质量分数,则使用devops平台软件开发流水线中的源码构建工具对源代码进行编译和构建,形成一个待部署的软件包。
34.更优地,所述软件包质量评分文件生成模块使用非对称加密算法中的私钥,对软件包的哈希值、软件包的版本号、软件包对应源码的名称及唯一标识元数据和质量评分分数进行数字签名,生成一个软件包质量描述文件;
35.其中,软件包的哈希值是指使用md5哈希算法计算的待部署软件包的哈希值。
36.更优地,在生成环境部署软件包前,进行如下验证:
37.软件包质量验证模块尝试读取软件包对应的质量描述文件,并使用非对称加密中的公钥验证软件包质量描述文件的签名:
38.若软件包质量描述文件的签名验证通过,且软件包的哈希值和软件包质量描述文件中的哈希值一致,且软件包的质量评分满足部署该软件的最低质量分数要求,则进行软件包的部署;
39.若软件包质量描述文件的签名验证未通过,则将发布失败的告警信息推送到告警模块,告警模块将部署失败的信息以及原因推送给相关负责人。
40.本发明的devops平台中软件包部署方法及系统具有以下优点:
41.(一)本发明通过在devops平台流水线中构建软件包时,使用非对称加密算法对软件包的唯一标识、版本号、软件包哈希值、软件包构建时间、软件包质量评分等信息进行签名,形成一个软件包质量描述文件;在需要部署软件包的线上环境中内置软件包质量检测服务,该软件包质量检测服务用于验证软件包质量描述文件,确保待部署软件包的文件完整性,来源的合法性以及软件包本身源码的安全性;
42.(二)传统方式对软件包使用数字签名是为了确保软件包在发布、升级过程中的不可篡改性和来源合法性,主要集中在软件发布、部署环节,并不能保证软件包本身的质量,而本发明是在devops平台软件开发流水线中,使用数字签名对软件包的质量分数进行签名,确保软件包完整性、来源合法的同时,也保证了待部署软件包经过了完整的质量检验过程;
43.(三)本发明可以提高软件包在线上生产环境部署的安全性、完整性以及合规性。
附图说明
44.下面结合附图对本发明进一步说明。
45.附图1为devops平台中软件包部署系统的结构示意图。
具体实施方式
46.参照说明书附图和具体实施例对本发明的devops平台中软件包部署方法及系统作以下详细地说明。
47.实施例1:
48.本实施例提供了一种devops平台中软件包部署方法,该方法具体如下:
49.s1、在devops软件开发流水线使用质量检测工具对待部署的软件源码进行分析和扫描;
50.s2、根据扫描的结果获取本次待发布源码的质量评分:
51.若评分满足预先设定的安全基线分数,则在流水线中使用源码构建工具将源代码构建未待部署的软件包;
52.s3、对软件包的元数据及质量评分数据进行数字签名,生成一个软件包质量描述文件;
53.s4、同时在生产环境部署软件包质量验证服务,运维人员在生产环境部署软件包前,软件包质量验证服务自动读取待部署软件包内的质量描述文件,验证质量描述文件的签名、软件包元数据以及质量评分:
54.①
、若质量评分满足验证待部署软件包的完整性以及满足发布需求的最低质量分数,则进行软件包的部署工作;
55.②
、若质量评分未满足验证待部署软件包的完整性以及满足发布需求的最低质量分数,则触发告警,提示该软件包不合法,需要重新构建。
56.本实施例中的质量检测工具包括devops平台中的源码缺陷扫描工具、软件成分分析(sca)工具及源码安全漏洞扫描工具;
57.软件包的元数据包括用于描述该源码的软件名称及软件唯一识标识的属性信息。
58.本实施例中,待发布源码的质量评分是指根据扫描结果中违反的安全、质量的规则数量和对应的危害等级进行计算获取;
59.其中,违反的安全、质量的规则数量和对应的危害等级是指扫描结果中包括的软件漏洞数量、软件漏洞等级、源码缺陷数量、源码缺陷等级及是否包含非法的开源组件进行计算获取。
60.本实施例中,软件包质量验证服务中部署验签用的公钥,软件包的元数据及质量评分数据通过私钥进行数字签名,私钥和公钥是基于非对称加密算法生成的公私钥对;
61.其中,使用非对称加密生成的私钥对软件包的哈希值、软件包的版本号、软件包对应的源码的名称及唯一标识元数据和质量评分分数进行数字签名;
62.软件包的哈希值是指使用md5哈希算法计算的待部署软件包的哈希值。
63.实施例2:
64.如附图1所示,一种devops平台中软件包部署的系统,该系统包括软件包质量评分管理模块、源码质量检测模块、软件包质量评分文件生成模块、软件包质量验证模块及告警模块;
65.其中,软件包质量评分管理模块用于记录软件源码的元数据以及设定该软件源码满足部署要求的最低质量分数;
66.源码质量检测模块用于使用devops平台中的源码缺陷扫描工具、软件成分分析(sca)工具及源码安全漏洞扫描工具对源码质量进行检测,并根据检测结果生成待部署软件的质量评分;
67.软件包质量评分文件生成模块用于部署签名用的私钥;
68.软件包质量验证模块用于部署验签用的公钥,还用于部署在线上的生成环境中,在软件包部署在生产环境前,对软件包的质量评分文件进行验证;
69.告警模块用于将部署失败的信息以及原因推送给相关负责人。
70.本实施例中,待发布源码的质量评分是指根据扫描结果中违反的安全、质量的规则数量和对应的危害等级进行计算获取;
71.其中,违反的安全、质量的规则数量和对应的危害等级是指扫描结果中包括的软件漏洞数量、软件漏洞等级、源码缺陷数量、源码缺陷等级及是否包含非法的开源组件进行计算获取。
72.本实施例中的公钥和私钥是基于非对称加密算法生成的公私钥对,用于对软件包的元数据及质量评分数据进行数字签名和验签。
73.本实施例中的软件包质量评分管理模块具体如下:
74.将待部署软件的质量评分与软件包质量评分管理模块中记录的对应软件满足部署的最低质量分数进行对比:
75.若待部署软件的质量评分低于对应软件满足部署的最低质量分数,则不进行软件包的构建;
76.若待部署软件的质量评分不低于对应软件满足部署的最低质量分数,则使用devops平台软件开发流水线中的源码构建工具对源代码进行编译和构建,形成一个待部署的软件包。
77.本实施例中的软件包质量评分文件生成模块使用非对称加密算法中的私钥,对软件包的哈希值、软件包的版本号、软件包对应源码的名称及唯一标识元数据和质量评分分数进行数字签名,生成一个软件包质量描述文件;
78.其中,软件包的哈希值是指使用md5哈希算法计算的待部署软件包的哈希值。
79.本实施例中,在生成环境部署软件包前,进行如下验证:
80.软件包质量验证模块尝试读取软件包对应的质量描述文件,并使用非对称加密中的公钥验证软件包质量描述文件的签名:
81.若软件包质量描述文件的签名验证通过,且软件包的哈希值和软件包质量描述文件中的哈希值一致,且软件包的质量评分满足部署该软件的最低质量分数要求,则进行软件包的部署;
82.若软件包质量描述文件的签名验证未通过,则将发布失败的告警信息推送到告警模块,告警模块将部署失败的信息以及原因推送给相关负责人。
83.该系统设计若干台服务器,以java语言的源码在devops平台中进行软件包构建,部署为实例,具体包含以下步骤:
84.(1)、在若干服务器上部署devops平台,devops平台中包含各种软件开发流水线,如gitlab ci,jenkins等;
85.(2)、软件开发流水线可以集成源码质量检测工具,如代码缺陷扫描工具sonarqube,软件成分分析工具opensca等,这些工具共同构成源码质量检测模块;
86.(3)、在服务器上部署软件包质量评分管理模块,软件包质量评分管理模块可以是一个web系统,其他子系统可以通过api与该系统进行交互;同时软件包质量评分管理模块拥有一个web页面,用户可以在该页面录入源码元数据,以及该源码满足部署要求的最低质
量分数;
87.(4)、在服务器上部署软件包质量评分文件生成模块,软件包质量评分文件生成模块可以是一个web服务;
88.(5)、在生产环境服务器上部署软件包质量验证模块,软件包质量验证模块可以是一个web服务;
89.(6)、使用密钥工具生成一对非对称密钥,将私钥导入软件包质量评分文件生成模块,将公钥导入软件包质量验证模块;
90.(7)、devops平台同时包含源代码仓库,如gitlab,gitea等,用于存放java源代码;
91.(8)、开发人员将java软件源码存放在源代码仓库中,当新的源码已经完成测试,需要进行软件发布与部署时,开发人员创建代码合并请求,申请将源码合并到软件发布分支;当源码合并到软件发布分支后,触发软件发布流水线;
92.(9)、软件发布流水线使用源码质量检测模块对源码质量进行检测,计算出本次源码的质量分数;源码质量检测模块通过api将源码的唯一标识推送到软件包质量评分管理模块,获取对应软件的满足部署要求的最低质量分数:
93.若满足最低质量分数要求,则继续流程,调用devops平台中流水线中的源码构建工具对源码进行编译和构建;其中,源码编译构建工具可以是maven、gradle等构建工具;
94.(10)、构建成功得到一个软件包,将软件包元数据、软件包数据、质量评分数据通过api推送到软件包质量评分文件生成模块;
95.(11)、软件包质量评分文件生成模块根据接受到的数据,使用非对称私钥对元数据、质量评分分数进行数字签名,并将签名值、软件包元数据、软件包数据、质量评分数据、软件包合成一个待部署软件包;
96.(12)、使用devops平台流水线将待部署软件包发布到生产环境,或者开发人员直接将待部署软件包交付给运维人员;
97.(13)、当运维人员在生产环境部署该软件包时,软件包质量验证模块使用非对称公钥对待部署软件包的签名信息、软件包元数据、软件包质量分数进行验证:
98.①
、若签名验证通过,且软件包的哈希值和质量检测文件中的哈希值一致,且软件包的质量检测分数满足部署该软件的最低质量分数要求,则进行部署;
99.②
、若签名验证不通过或不满足最低质量分数要求,则停止部署,将相关信息推送到告警模块,告警模块将部署失败的信息以及原因推送给相关负责人。
100.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
技术特征:
1.一种devops平台中软件包部署方法,其特征在于,该方法具体如下:在devops软件开发流水线使用质量检测工具对待部署的软件源码进行分析和扫描;根据扫描的结果获取本次待发布源码的质量评分:若评分满足预先设定的安全基线分数,则在流水线中使用源码构建工具将源代码构建未待部署的软件包;对软件包的元数据及质量评分数据进行数字签名,生成一个软件包质量描述文件;同时在生产环境部署软件包质量验证服务,运维人员在生产环境部署软件包前,软件包质量验证服务自动读取待部署软件包内的质量描述文件,验证质量描述文件的签名、软件包元数据以及质量评分:若质量评分满足验证待部署软件包的完整性以及满足发布需求的最低质量分数,则进行软件包的部署工作;若质量评分未满足验证待部署软件包的完整性以及满足发布需求的最低质量分数,则触发告警,提示该软件包不合法,需要重新构建。2.根据权利要求1所述的devops平台中软件包部署方法,其特征在于,质量检测工具包括devops平台中的源码缺陷扫描工具、软件成分分析工具及源码安全漏洞扫描工具;软件包的元数据包括用于描述该源码的软件名称及软件唯一识标识的属性信息。3.根据权利要求1或2所述的devops平台中软件包部署方法,其特征在于,待发布源码的质量评分是指根据扫描结果中违反的安全、质量的规则数量和对应的危害等级进行计算获取;其中,违反的安全、质量的规则数量和对应的危害等级是指扫描结果中包括的软件漏洞数量、软件漏洞等级、源码缺陷数量、源码缺陷等级及是否包含非法的开源组件进行计算获取。4.根据权利要求1或2所述的devops平台中软件包部署方法,其特征在于,软件包质量验证服务中部署验签用的公钥,软件包的元数据及质量评分数据通过私钥进行数字签名,私钥和公钥是基于非对称加密算法生成的公私钥对;其中,使用非对称加密生成的私钥对软件包的哈希值、软件包的版本号、软件包对应的源码的名称及唯一标识元数据和质量评分分数进行数字签名;软件包的哈希值是指使用md5哈希算法计算的待部署软件包的哈希值。5.一种devops平台中软件包部署的系统,其特征在于,该系统包括软件包质量评分管理模块、源码质量检测模块、软件包质量评分文件生成模块、软件包质量验证模块及告警模块;其中,软件包质量评分管理模块用于记录软件源码的元数据以及设定该软件源码满足部署要求的最低质量分数;源码质量检测模块用于使用devops平台中的源码缺陷扫描工具、软件成分分析工具及源码安全漏洞扫描工具对源码质量进行检测,并根据检测结果生成待部署软件的质量评分;软件包质量评分文件生成模块用于部署签名用的私钥;软件包质量验证模块用于部署验签用的公钥,还用于部署在线上的生成环境中,在软件包部署在生产环境前,对软件包的质量评分文件进行验证;
告警模块用于将部署失败的信息以及原因推送给相关负责人。6.根据权利要求5所述的devops平台中软件包部署系统,其特征在于,待发布源码的质量评分是指根据扫描结果中违反的安全、质量的规则数量和对应的危害等级进行计算获取;其中,违反的安全、质量的规则数量和对应的危害等级是指扫描结果中包括的软件漏洞数量、软件漏洞等级、源码缺陷数量、源码缺陷等级及是否包含非法的开源组件进行计算获取。7.根据权利要求5或6所述的devops平台中软件包部署系统,其特征在于,所述公钥和私钥是基于非对称加密算法生成的公私钥对,用于对软件包的元数据及质量评分数据进行数字签名和验签。8.根据权利要求7所述的devops平台中软件包部署系统,其特征在于,所述软件包质量评分管理模块具体如下:将待部署软件的质量评分与软件包质量评分管理模块中记录的对应软件满足部署的最低质量分数进行对比:若待部署软件的质量评分低于对应软件满足部署的最低质量分数,则不进行软件包的构建;若待部署软件的质量评分不低于对应软件满足部署的最低质量分数,则使用devops平台软件开发流水线中的源码构建工具对源代码进行编译和构建,形成一个待部署的软件包。9.根据权利要求8所述的devops平台中软件包部署系统,其特征在于,所述软件包质量评分文件生成模块使用非对称加密算法中的私钥,对软件包的哈希值、软件包的版本号、软件包对应源码的名称及唯一标识元数据和质量评分分数进行数字签名,生成一个软件包质量描述文件;其中,软件包的哈希值是指使用md5哈希算法计算的待部署软件包的哈希值。10.根据权利要求9所述的devops平台中软件包部署系统,其特征在于,在生成环境部署软件包前,进行如下验证:软件包质量验证模块尝试读取软件包对应的质量描述文件,并使用非对称加密中的公钥验证软件包质量描述文件的签名:若软件包质量描述文件的签名验证通过,且软件包的哈希值和软件包质量描述文件中的哈希值一致,且软件包的质量评分满足部署该软件的最低质量分数要求,则进行软件包的部署;若软件包质量描述文件的签名验证未通过,则将发布失败的告警信息推送到告警模块,告警模块将部署失败的信息以及原因推送给相关负责人。
技术总结
本发明公开了DevOps平台中软件包部署方法及系统,属于软件开发技术领域,本发明要解决的技术问题为如何确保软件包完整性及来源合法的同时,保证待部署软件包经过完整的质量检测过程,采用的技术方案为:该方法是在DevOps软件开发流水线使用质量检测工具对待部署的软件源码进行分析和扫描;根据扫描的结果获取本次待发布源码的质量评分:若评分满足预先设定的安全基线分数,则在流水线中使用源码构建工具将源代码构建未待部署的软件包;对软件包的元数据及质量评分数据进行数字签名,生成一个软件包质量描述文件。该系统包括软件包质量评分管理模块、源码质量检测模块、软件包质量评分文件生成模块、软件包质量验证模块及告警模块。及告警模块。及告警模块。
技术研发人员:周祥龙 魏子重 李锐
受保护的技术使用者:山东浪潮科学研究院有限公司
技术研发日:2023.04.25
技术公布日:2023/8/9
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
