本公開總體上涉及分析軟件開發(fā)管道,更具體地,涉及對軟件開發(fā)管道中作為安全控制步驟的步驟進行識別和上下文分析。
背景技術(shù):
1、隨著數(shù)字化轉(zhuǎn)型業(yè)務的不斷發(fā)展,軟件開發(fā)生命周期已成為許多成功企業(yè)的關(guān)鍵組成部分。雖然使用的軟件數(shù)量的增加有望大大改善服務的交付方式,但軟件開發(fā)仍然是一個持續(xù)的挑戰(zhàn)。特別是,由于開發(fā)速度的快速增長,軟件的創(chuàng)建和部署速度比以往任何時候都快,并且軟件開發(fā)基礎(chǔ)架構(gòu)必須經(jīng)??焖贁U展才能適應。隨著越來越多的軟件被創(chuàng)建,在軟件開發(fā)過程中識別和解決問題的方法,更具體地,幫助進行此類補救的自動化工具,正變得越來越受歡迎。
2、此外,由于正在創(chuàng)建大量的軟件以及對devops驅(qū)動的交付自動化的重大投資,已經(jīng)采用了使用本地或云原生技術(shù)來構(gòu)建、部署和控制整個應用堆棧的復雜的持續(xù)集成/持續(xù)交付(ci/cd)管道。這些管道可以控制從基礎(chǔ)架構(gòu)到業(yè)務邏輯的一切,并且軟件環(huán)境中部件之間的交互不再能夠由人工操作員單獨手動有效地管理。由于這些問題,公司的安全團隊看到了業(yè)務風險和員工倦怠的增加。此外,一旦經(jīng)由新創(chuàng)建的有缺陷的軟件引入安全漏洞,公司會在有效降低風險方面面臨挑戰(zhàn)。
3、在軟件開發(fā)管道中,可以實施各種安全措施?,F(xiàn)有的把關(guān)管理解決方案通常包括基于推薦的最佳實踐在管道中手動插入審計、驗證或控制步驟。然而,這一過程可能會出現(xiàn)人為失誤。特別是,人工操作員往往缺乏對軟件開發(fā)管道的可見性,因此很難有效地評估需要采取安全措施的地方。即使人工操作員對每條管道都有一定的了解,隨著不同團隊在各自的管道上工作,不同管道中的部件和不同管道的交互方式也可能迅速變化,即使以最樂觀的評價來看,這也使得遵循和理解管道定義是不切實際的。因此,現(xiàn)有的解決方案往往無法安裝控制步驟,而此類安全措施可以客觀地改善管道的網(wǎng)絡安全。
4、因此,提供一種克服上述挑戰(zhàn)的解決方案將是有利的。
技術(shù)實現(xiàn)思路
1、以下是本公開的幾個示例實施例的概述。提供本概述是為了方便向讀者提供對這些實施例的基本理解,并不完全限定本公開的廣度。本概述不是對所有預期實施例的廣泛概述,既不旨在識別所有實施例的關(guān)鍵或重要元件,也不旨在描述任何或所有方面的范圍。其唯一目的是以簡化形式呈現(xiàn)一個或更多個實施例的一些概念,作為稍后呈現(xiàn)的更詳細描述的前奏。為方便起見,術(shù)語“一些實施例”或“某些實施例”可在本文中用于指代本公開的單個實施例或多個實施例。
2、本文公開的某些實施例包括用于識別軟件開發(fā)管道中的安全控制步驟的方法。該方法包括:通過分析軟件開發(fā)基礎(chǔ)架構(gòu)的軟件開發(fā)管道數(shù)據(jù)來枚舉軟件開發(fā)基礎(chǔ)架構(gòu)中的多個步驟,其中,每個步驟包括用于執(zhí)行至少一個任務的一組計算機指令;在步驟的步驟數(shù)據(jù)中為多個步驟中的每一個識別多個步驟屬性;以及基于為多個步驟中的每一個識別的多個步驟屬性,將多個步驟的至少一個分類為安全控制步驟,其中,被分類為安全控制步驟的每個步驟包括用于至少分析代碼以確定是否滿足至少一個安全要求的指令。
3、本文公開的某些實施例還包括其上存儲有使處理電路執(zhí)行過程的非暫態(tài)計算機可讀介質(zhì),該過程包括:通過分析軟件開發(fā)基礎(chǔ)架構(gòu)的軟件開發(fā)管道數(shù)據(jù)來枚舉軟件開發(fā)基礎(chǔ)架構(gòu)中的多個步驟,其中,每個步驟包括用于執(zhí)行至少一個任務的一組計算機指令;在步驟的步驟數(shù)據(jù)中為多個步驟中的每一個識別多個步驟屬性;以及基于為多個步驟中的每一個識別的多個步驟屬性,將多個步驟的至少一個分類為安全控制步驟,其中,被分類為安全控制步驟的每個步驟包括用于至少分析代碼以確定是否滿足至少一個安全要求的指令。
4、本文公開的某些實施例還包括用于識別軟件開發(fā)管道中的安全控制步驟的系統(tǒng)。該系統(tǒng)包括:處理電路;以及存儲器,該存儲器包含指令,當該指令由該處理電路執(zhí)行時,將該系統(tǒng)配置為:通過分析軟件開發(fā)基礎(chǔ)架構(gòu)的軟件開發(fā)管道數(shù)據(jù)來枚舉軟件開發(fā)基礎(chǔ)架構(gòu)中的多個步驟,其中,每個步驟包括用于執(zhí)行至少一個任務的一組計算機指令;在步驟的步驟數(shù)據(jù)中為多個步驟中的每一個識別多個步驟屬性;以及基于為多個步驟中的每一個識別的多個步驟屬性,將多個步驟的至少一個分類為安全控制步驟,其中,被分類為安全控制步驟的每個步驟包括用于至少分析代碼以確定是否滿足至少一個安全要求的指令。
1.一種用于識別軟件開發(fā)管道中的安全控制步驟的方法,包括:
2.根據(jù)權(quán)利要求1所述的方法,其中,通過遞歸枚舉所述軟件開發(fā)基礎(chǔ)架構(gòu)的部分來枚舉所述多個步驟。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述軟件開發(fā)基礎(chǔ)架構(gòu)包括多個層,其中,遞歸枚舉所述軟件開發(fā)基礎(chǔ)架構(gòu)的所述部分包括在多次迭代中迭代枚舉部件,其中,在每次迭代處,在所述多個層中的一個層內(nèi)枚舉部件。
4.根據(jù)權(quán)利要求1所述的方法,還包括:
5.根據(jù)權(quán)利要求1所述的方法,其中,還基于所述軟件開發(fā)基礎(chǔ)架構(gòu)的映射對每個枚舉步驟進行分類。
6.根據(jù)權(quán)利要求1所述的方法,還包括:
7.根據(jù)權(quán)利要求6所述的方法,其中,基于使用所述安全控制步驟的指令分析的部件的類型來確定每個安全控制步驟的上下文。
8.根據(jù)權(quán)利要求6所述的方法,還包括:
9.根據(jù)權(quán)利要求6所述的方法,還包括:
10.根據(jù)權(quán)利要求1所述的方法,還包括:
11.根據(jù)權(quán)利要求1所述的方法,還包括:
12.根據(jù)權(quán)利要求11所述的方法,其中,創(chuàng)建所述映射還包括:
13.根據(jù)權(quán)利要求12所述的方法,還包括:
14.根據(jù)權(quán)利要求1所述的方法,還包括:
15.一種非暫態(tài)計算機可讀介質(zhì),其上存儲有用于使處理電路執(zhí)行過程的指令,所述過程包括:
16.一種用于識別軟件開發(fā)管道中的安全控制步驟的系統(tǒng),包括:
17.根據(jù)權(quán)利要求16所述的系統(tǒng),其中,通過遞歸枚舉所述軟件開發(fā)基礎(chǔ)架構(gòu)的各部分來枚舉所述多個步驟。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中,所述軟件開發(fā)基礎(chǔ)架構(gòu)包括多個層,其中,遞歸枚舉所述軟件開發(fā)基礎(chǔ)架構(gòu)的所述部分包括在多個迭代中迭代枚舉部件,其中,在每次迭代處,在所述多個層中的一個層內(nèi)枚舉部件。
19.根據(jù)權(quán)利要求16所述的系統(tǒng),其中,所述系統(tǒng)還被配置為:
20.根據(jù)權(quán)利要求16所述的系統(tǒng),其中,還基于所述軟件開發(fā)基礎(chǔ)架構(gòu)的映射對每個枚舉步驟進行分類。
21.根據(jù)權(quán)利要求16所述的系統(tǒng),其中,所述系統(tǒng)還被配置為:
22.根據(jù)權(quán)利要求21所述的系統(tǒng),其中,基于使用所述安全控制步驟的指令分析的部件的類型來確定每個安全控制步驟的上下文。
23.根據(jù)權(quán)利要求21所述的系統(tǒng),其中,所述系統(tǒng)還被配置為:
24.根據(jù)權(quán)利要求21所述的系統(tǒng),其中,所述系統(tǒng)還被配置為:
25.根據(jù)權(quán)利要求16所述的系統(tǒng),其中,所述系統(tǒng)還被配置為:
26.根據(jù)權(quán)利要求16所述的系統(tǒng),其中,所述系統(tǒng)還被配置為:
27.根據(jù)權(quán)利要求26所述的系統(tǒng),其中,所述系統(tǒng)還被配置為:
28.根據(jù)權(quán)利要求27所述的系統(tǒng),其中,所述系統(tǒng)還被配置為:
29.根據(jù)權(quán)利要求16所述的系統(tǒng),其中,所述系統(tǒng)還被配置為: