一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

安全测试方法、装置、电子设备及存储介质与流程

2022-04-16 13:00:17 来源:中国专利 TAG:


1.本发明涉及测试技术领域,具体而言,涉及一种安全测试方法、装置、电子设备及存储介质。


背景技术:

2.信息技术的发展,使得软件规模越来越大,传统的“软件作坊”式生产已不再满足生产的需求。为了按时交付软件产品和服务,开发和运维必须紧密合作,因此devops(development和operations的组合词)平台应运而生。
3.devops平台是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障部门之间的沟通、协作与整合,它是一种重视“用户(dev)”和“it运维技术人员(ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
4.传统的devops平台没有关注安全方面的工作,不仅给软件后期的安全开发和安全配置带来了大量的工作,更是给企业和用户带来许多的潜在危机。


技术实现要素:

5.本发明的目的包括,例如,提供了一种安全测试方法、装置、电子设备及存储介质,其能够基于devops平台进行软件开发,并在软件开发的每个阶段均利用安全工具进行安全测试,以降低软件开发过程中的安全风险。
6.本发明的实施例可以这样实现:
7.第一方面,本发明实施例提供了一种安全测试方法,应用于电子设备,所述电子设备安装有devops平台,所述devops平台预先集成有安全工具,所述方法包括:
8.基于所述devops平台进行软件开发,所述软件开发的周期至少包括计划阶段、代码阶段和测试阶段;
9.在所述软件开发的每个阶段均利用所述安全工具对软件代码进行安全测试;
10.当所述软件代码在所述计划阶段、所述代码阶段和所述测试阶段的安全测试均通过时,将所述软件代码封装成软件进行发布。
11.在一种可能的实施方式中,所述devops平台包括中央存储库,所述中央存储库预先存储有测试工具;所述devops平台还预先存储有扫描工具和容器工具;所述安全工具包括git控件密钥、静态应用程序安全测试工具和动态应用程序安全测试工具;所述软件开发的周期还包括构建阶段和发布阶段;
12.所述在所述软件开发的每个阶段均利用所述安全工具对软件代码进行安全测试;以及,当所述软件代码在所述计划阶段、所述代码阶段和所述测试阶段的安全测试均通过时,将所述软件代码封装成软件进行发布的步骤,包括:
13.在所述计划阶段,建立发布计划,并创建检测代码,以对所述发布计划进行安全测试;
14.当所述发布计划通过安全测试时,进入所述代码阶段,利用所述git控件密钥对所述软件代码进行安全测试;
15.当所述代码阶段所述软件通过安全测试时,进入所述构建阶段,构建执行代码,利用所述执行代码将所述软件代码集成到所述中央存储库,并利用所述静态应用程序安全测试工具对所述软件代码进行安全测试,生成检测报告,其中,所述检测报告用于记录所述软件代码的缺陷;
16.当完成所述构建阶段所述软件代码的安全测试时,进入所述测试阶段,利用所述测试工具对所述软件代码进行测试,并在测试过程中利用所述动态应用程序安全测试工具对所述软件代码进行安全测试;
17.当所述测试阶段所述软件通过安全测试时,进入所述发布阶段,利用所述扫描工具对所述软件代码进行渗透测试和漏洞扫描;
18.利用所述容器工具将完成渗透测试和漏洞扫描的软件代码封装成软件,并将所述软件发布到生产环境中。
19.在一种可能的实施方式中,所述devops平台还预先存储有安全检测库;
20.所述构建执行代码,利用所述执行代码将所述软件代码集成到所述中央存储库,并利用所述静态应用程序安全测试工具对所述软件代码进行安全测试,生成检测报告的步骤,包括:
21.根据所述安全检测库,利用所述静态应用程序安全测试工具对所述软件代码进行安全测试,并生成安全测试报告;
22.利用所述静态应用程序安全测试工具对所述软件代码进行扫描,以对所述软件代码进行质量测试,并生成质量测试报告,得到所述测试报告,所述测试报告包括所述安全测试报告和质量测试报告。
23.在一种可能的实施方式中,所述方法还包括:
24.当所述软件代码在所述计划阶段、所述代码阶段和所述测试阶段中任意一个阶段的安全测试不通过时,则停止所述软件开发,并生成提示信息,以提示用户确认是否继续所述软件开发。
25.第二方面,本发明实施例还提供了一种安全测试装置,应用于电子设备,所述电子设备安装有devops平台,所述devops平台预先集成有安全工具,所述装置包括:
26.软件开发模块,用于基于所述devops平台进行软件开发,所述软件开发的周期至少包括计划阶段、代码阶段和测试阶段;
27.安全测试模块,用于在所述软件开发的每个阶段均利用所述安全工具对软件代码进行安全测试;
28.软件发布模块,用于当所述软件代码在所述计划阶段、所述代码阶段和所述测试阶段的安全测试均通过时,将所述软件代码封装成软件进行发布。
29.第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
30.一个或多个处理器;
31.存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的安全测试方法。
32.第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机
程序,该计算机程序被处理器执行时实现如上述的安全测试方法。
33.相对现有技术,本发明实施例提供的一种安全测试方法、装置、电子设备及存储介质,首先,基于devops平台进行软件开发,软件开发的周期至少包括计划阶段、代码阶段和测试阶段;然后,在软件开发的每个阶段均利用安全工具对软件代码进行安全测试;最后,当软件代码在计划阶段、代码阶段和测试阶段的安全测试均通过时,将软件代码封装成软件进行发布。这样,由于在软件开发的每个阶段均对软件代码进行了安全测试,从而降低了软件开发过程中的安全风险。
附图说明
34.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
35.图1本发明实施例提供的电子设备的方框示意图。
36.图2为本发明实施例提供的安全测试方法的一种流程示意图。
37.图3为本发明实施例提供的安全测试方法的阶段示意图。
38.图4为本发明实施例提供的安全测试方法的另一种流程示意图。
39.图5为本发明实施例提供安全测试装置的方框示意图。
40.图标:100-电子设备;101-存储器;102-处理器;103-总线;200-安全测试装置;201-软件开发模块;202-安全测试模块;203-软件发布模块。
具体实施方式
41.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
42.因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
43.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
44.需要说明的是,在不冲突的情况下,本发明的实施例中的特征可以相互结合。
45.信息技术的发展,使得软件规模越来越大,传统的“软件作坊”式生产已不再满足生产的需求。为了按时交付软件产品和服务,开发和运维必须紧密合作,因此devops(development和operations的组合词)平台应运而生。
46.利用devops平台进行软件开发时,一般包括以下几个阶段:计划阶段、代码阶段、构建阶段、测试阶段、发布阶段、部署阶段、操作阶段和监控阶段,其中,代码阶段属于软件开发环节,发布阶段、部署阶段、操作阶段和监控阶段属于运维环节。
47.现有技术中,针对devops的安全测试一般只关注开发环节,即代码阶段,安全测试的流程不够完整,同时需要部署安全测试服务程序,造成系统资源的浪费。
48.针对这一问题,本实施例提供一种安全测试方法,在利用devops平台进行软件开发时,在软件开发周期中的每一个阶段均利用devops平台预先集成的安全工具进行安全测试,使得安全测试的流程更加完善,从而极大地提高了软件开发过程中的安全性。
49.下面进行详细介绍。
50.请参考图1,图1示出了本实施例提供的一种电子设备100的方框示意图,电子设备100可以是,但不限于,手机、平板电脑、笔记本电脑、服务器或其他具有处理能力的电子设备。电子设备100包括存储器101、处理器102及总线103。该存储器101和处理器102通过总线103连接。
51.存储器101用于存储程序,例如安全测试装置200,安全测试装置200包括至少一个可以软件或固件(firmware)的形式存储于存储器101中的软件功能模块,处理器102在接收到执行指令后,执行所述程序以实现本实施例中的安全测试方法。
52.其中,存储器101可以是,但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-onlymemory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。
53.处理器102可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,本实施例中的安全测试方法的各步骤可以通过处理器102中的硬件的集成逻辑电路或者软件形式的指令完成。
54.上述的处理器102可以是通用处理器,包括中央处理器(central processing unit,cpu)、微控制单元(microcontroller unit,mcu)、复杂可编程逻辑器件(complex programmable logic device,cpld)、现场可编程门阵列(field programmable gate array,fpga)、嵌入式arm等芯片。
55.在图1所示的电子设备100的基础上,对本实施例提供的安全测试方法进行介绍。请参考图2,图2示出了本实施例提供的安全测试方法的一种流程示意图,该方法应用于电子设备100,电子设备100安装有devops平台,devops平台预先集成有安全工具,该方法包括以下步骤:
56.s110,基于devops平台进行软件开发,软件开发的周期至少包括计划阶段、代码阶段和测试阶段。
57.在本实施例中,基于devops平台的软件开发的周期包括了软件的开发环节和运维环节,其中代码阶段属于开发环节。
58.s120,在软件开发的每个阶段均利用安全工具对软件代码进行安全测试。
59.在本实施例中,安全工具用于对每个阶段的软件代码进行安全测试,安全工具预先集成在devops平台中,当软件开发进行到每个阶段的时候,自动触发安全测试流程,调用安全工具进行安全测试。
60.需要说明的是,在开始进行软件开发的时候,可以根据实际需求选择是否需要进行安全测试。例如,为了开发和运维人员的工作效率考虑,在非生产环境中,可以选择不进
行安全测试,从而加快软件开发的速度,而在生产环境,则选择对软件开发进行安全检测。
61.s130,当软件代码在计划阶段、代码阶段和测试阶段的安全测试均通过时,将软件代码封装成软件进行发布。
62.本实施例提供的安全测试方法,在软件开发的周期的每一个阶段均利用集成在devops平台中的安全工具对软件代码进行安全测试,当计划阶段、代码阶段和测试阶段的安全测试均通过时,将软件代码封装成软件进行发布。相对于现有技术中的只对代码阶段进行安全测试的安全测试方法,本实施例中的安全测试方法更加的完善,极大地提高了软件开发的安全性。
63.下面对步骤s120和s130进行详细介绍,在图2的基础上,请参考图3,软件开发的周期一共包括以下几个阶段:计划阶段、代码阶段、构建阶段、测试阶段和发布阶段。在每个阶段均利用安全工具对软件代码进行安全测试的步骤可以包括以下详细步骤:
64.s1,在计划阶段,建立发布计划,并创建检测代码,以对发布计划进行安全测试。
65.在本实施例中,发布计划用于对软件开发的周期进行规划,检测代码用于构建检测组件,检测组件包括默认检测组件,添加检测组件和检测成功组件。其中,默认检测组件是计划阶段开始时创建的默认检测区,由系统自动完成;添加组件由开发人员添加并进行检测,属于额外添加的检测任务;检测成功组件用于记录默认检测组件和添加检测组件的检测是否成功,当二者均检测成功时,进入软件开发的周期的下一阶段。
66.s2,当发布计划通过安全测试时,进入代码阶段,利用git控件密钥对软件代码进行安全测试。
67.在本实施例中,安全工具包括git控件密钥,git控件密钥用于保护密码和安全测试。
68.s3,当代码阶段软件通过安全测试时,进入构建阶段,构建执行代码,利用执行代码将软件代码集成到中央存储库,并利用静态应用程序安全测试工具对软件代码进行安全测试,生成检测报告,其中,检测报告用于记录软件代码的缺陷。
69.在本实施例中,软件开发的周期还包括构建阶段和发布阶段,devops平台包括中央存储库;安全工具还包括静态应用程序安全测试工具。
70.其中,静态应用程序安全测试工具(sast)用于跟踪软件代码中的缺陷。
71.s4,当完成构建阶段软件代码的安全测试时,进入测试阶段,利用测试工具对软件代码进行测试,并在测试过程中利用动态应用程序安全测试工具对软件代码进行安全测试。
72.在本实施例中,中央存储库预先存储有测试工具,安全工具还包括动态应用程序安全测试工具(dast);在构建阶段利用执行代码将软件代码集成到中央存储库后,然后在测试阶段,利用测试工具对软件代码进行测试,这里测试的目的是测试软件代码运行时是否发生错误。
73.动态应用程序安全测试工具,用于检测与用户身份验证,授权,sql注入以及与api(application programming interface,应用程序接口)相关的端点相关的错误。
74.需要说明的是,对于在测试阶段对软件代码进行安全测试的方式,上述在测试的过程中利用动态应用程序安全测试工具对软件代码进行安全测试的方式只是其中一种;此外,还可以采用对端口、接口和功能的负载能力的安全测试的方式。
75.s5,当测试阶段软件通过安全测试时,进入发布阶段,利用扫描工具对软件代码进行渗透测试和漏洞扫描。
76.在本实施例中,软件开发的周期还包括发布阶段,devops平台还预先存储有扫描工具。
77.渗透测试和漏洞扫描主要是软件代码内部和外部的各类扫描,包括来自内部的供给量和外部的网络服务。
78.最后,当软件代码在计划阶段、代码阶段和测试阶段的安全测试均通过时,利用容器工具将完成渗透测试和漏洞扫描的软件代码封装成软件,并将软件发布到生产环境中。
79.在本实施例中,devops平台还预先存储有容器工具,容器工具用于封装软件代码。
80.下面对步骤s3进行详细介绍,构建执行代码,利用执行代码将软件代码集成到中央存储库,并利用静态应用程序安全测试工具对软件代码进行安全测试,生成检测报告的步骤,可以包括以下详细步骤:
81.第一步,根据安全检测库,利用静态应用程序安全测试工具对软件代码进行安全测试,并生成安全测试报告。
82.在本实施例中,devops平台还预先存储有安全检测库,上述生成的安全测试报告用于记录软件代码的安全问题。
83.第二步,利用静态应用程序安全测试工具对软件代码进行扫描,以对软件代码进行质量测试,并生成质量测试报告,得到测试报告,测试报告包括安全测试报告和质量测试报告。
84.在本实施例中,质量检测报告用于记录软件代码中一些不符合开发习惯的行为、过时的函数引用、可能引起风险的代码等。
85.在图2的基础上,请参考图4,步骤s120之后,还可以包括以下步骤:
86.s140,当软件代码在计划阶段、代码阶段和测试阶段中任意一个阶段的安全测试不通过时,则停止软件开发,并生成提示信息,以提示用户确认是否继续软件开发。
87.在本实施例中,如果用户确认继续软件开发,在软件发布之后,devops平台会自动记录强制发布信息,并生成安全漏洞报告,用户可以根据安全漏洞报告对软件的安全问题进行针对性的修复。
88.与现有技术相比,本实施例具有以下有益效果:
89.首先,本实施例提供的安全测试方法,在软件开发的周期的每一个阶段均对软件代码进行安全测试,使得安全测试流程更加的完善,极大地提高了软件开发的安全性。
90.其次,将安全工具预先集成在devops平台上,当进行到软件开发的每一个阶段,自动调用安全工具进行安全测试,无需额外部署安全测试服务程序,节约了系统资源,提高了安全测试的效率。
91.请参考图5,图5示出了本实施例提供的安全测试装置200的方框示意图。安全测试装置200应用于电子设备100,电子设备100安装有devops平台,devops平台预先集成有安全工具,安全测试装置200装置包括:
92.软件开发模块201,用于基于devops平台进行软件开发,软件开发的周期至少包括计划阶段、代码阶段和测试阶段。
93.安全测试模块202,用于在软件开发的每个阶段均利用安全工具对软件代码进行
安全测试。
94.软件发布模块203,用于当软件代码在计划阶段、代码阶段和测试阶段的安全测试均通过时,将软件代码封装成软件进行发布。
95.可选的,devops平台包括中央存储库,中央存储库预先存储有测试工具;devops平台还预先存储有扫描工具和容器工具;安全工具包括git控件密钥、静态应用程序安全测试工具和动态应用程序安全测试工具;软件开发的周期还包括构建阶段和发布阶段;
96.安全测试模块202,具体用于:
97.在计划阶段,建立发布计划,并创建检测代码,以对发布计划进行安全测试;
98.当发布计划通过安全测试时,进入代码阶段,利用git控件密钥对软件代码进行安全测试;
99.当代码阶段软件通过安全测试时,进入构建阶段,构建执行代码,利用执行代码将软件代码集成到中央存储库,并利用静态应用程序安全测试工具对软件代码进行安全测试,生成检测报告,其中,检测报告用于记录软件代码的缺陷;
100.当完成构建阶段软件代码的安全测试时,进入测试阶段,利用测试工具对软件代码进行测试,并在测试过程中利用动态应用程序安全测试工具对软件代码进行安全测试;
101.当测试阶段软件通过安全测试时,进入发布阶段,利用扫描工具对软件代码进行渗透测试和漏洞扫描;
102.软件发布模块,用于利用容器工具将完成渗透测试和漏洞扫描的软件代码封装成软件,并将软件发布到生产环境中。
103.可选的,devops平台还预先存储有安全检测库;
104.安全测试模块202,具体用于:
105.根据安全检测库,利用静态应用程序安全测试工具对软件代码进行安全测试,并生成安全测试报告;
106.利用静态应用程序安全测试工具对软件代码进行扫描,以对软件代码进行质量测试,并生成质量测试报告,得到测试报告,测试报告包括安全测试报告和质量测试报告。
107.可选的,安全测试模块202,还用于当软件代码在计划阶段、代码阶段和测试阶段中任意一个阶段的安全测试不通过时,则停止软件开发,并生成提示信息,以提示用户确认是否继续软件开发。
108.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的安全测试装置200的具体工作过程。可以参考前述方法实施例中的对应过程,在此不再赘述。
109.本实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器102执行时实现上述实施例揭示的安全测试方法。
110.综上所述,本发明实施例提供的一种安全测试方法、装置、电子设备及存储介质,首先,基于devops平台进行软件开发,软件开发的周期至少包括计划阶段、代码阶段和测试阶段;然后,在软件开发的每个阶段均利用安全工具对软件代码进行安全测试;最后,当软件代码在计划阶段、代码阶段和测试阶段的安全测试均通过时,将软件代码封装成软件进行发布。这样,由于在软件开发的每个阶段均对软件代码进行了安全测试,使得安全测试的流程更加完善,从而降低了软件开发过程中的安全风险。
111.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何
熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献