本發明涉及安全故障溯源,尤其涉及一種安全故障溯源方法、裝置、電子設備及存儲介質。
背景技術:
1、當前敏捷開發流程已經發展到了成熟階段,很多企業已經從敏捷開發devops向devsecops轉變,devsecops需要我們在軟件開發中的每一個階段關注軟件安全性,傳統devops流程我們通常關注應用程序盡快部署新軟件,但這常常是以犧牲安全性為代價的。devsecops流程中,需要我們在開發階段就負責軟件的安全性,如果在這個階段發現應用程序存在安全問題,安全問題的溯源與定位流程將會非常長且困難,而這又是修復安全問題必不可少的環節,這對開發人員來說是一項非常復雜和耗時的任務。
2、當前業內對安全問題溯源主要是通過分析安全掃描的報告,在所有團隊成員之間建立有效的溝通渠道,快速共享有關安全問題的信息,人工對安全問題進行溯源與分析。
3、然而,分析安全掃描報告的方法1)存在效率低的缺點,在拿到安全掃描報告后,需要通過團隊內共享安全信息來通知與定位安全問題產生的原因,增加了很多溝通成本;2)存在專家依賴高的缺點,需要對項目有足夠了解程度的專家來分析安全報告并溯源,制定相應的安全修復方案;3)存在溯源定位存在誤差的缺點,在無法獲取到精準的操作日志的情況下,人工溯源安全故障問題會無法避免的出現溯源不正確的情況。
技術實現思路
1、本發明提供一種安全故障溯源方法、裝置、電子設備及存儲介質,用以解決現有技術中分析安全掃描報告的方法存在效率低、專家依賴高和溯源定位存在誤差的缺陷。
2、本發明提供一種安全故障溯源方法,包括:
3、獲取提交代碼,調用開發質量掃描智能合約對所述提交代碼進行質量掃描,得到所述開發質量掃描智能合約對應的第一合約執行結果,并將所述第一合約執行結果更新至區塊鏈的記賬節點;
4、獲取流水線生成的代碼包,調用測試質量掃描智能合約對所述流水線生成的代碼包進行質量掃描,得到所述測試質量掃描智能合約對應的第二合約執行結果,并將所述第二合約執行結果更新至所述區塊鏈的記賬節點;
5、在所述記賬節點對所述第一合約執行結果和所述第二合約執行結果達成共識的情況下,進行新增區塊,得到所述新增區塊后的更新區塊鏈信息,基于所述更新區塊鏈信息更新本地賬本記錄,并基于所述本地賬本記錄進行安全故障溯源。
6、根據本發明提供的一種安全故障溯源方法,所述開發質量掃描智能合約包括代碼質量掃描流程智能合約和代碼三方依賴檢查掃描流程智能合約,所述測試質量掃描智能合約包括自動化測試流程智能合約和制品掃描流程智能合約。
7、根據本發明提供的一種安全故障溯源方法,所述代碼質量掃描流程智能合約的合約執行結果是基于對所述提交代碼進行質量掃描所得的代碼漏洞的實際數量與所述代碼質量掃描流程智能合約中預先存儲的代碼漏洞數量確定的;
8、所述代碼三方依賴檢查掃描流程智能合約的合約執行結果是基于對所述提交代碼進行質量掃描所得的代碼實際版本與所述代碼三方依賴檢查掃描流程智能合約中預先存儲的代碼版本確定的;
9、所述自動化測試流程智能合約的合約執行結果是基于對所述流水線生成的代碼包進行質量掃描所得的測試用例顯示結果與所述自動化測試流程智能合約中預先存儲的測試用例確定的;
10、所述制品掃描流程智能合約的合約執行結果是基于對所述流水線生成的代碼包進行質量掃描所得的安全漏洞確定的。
11、根據本發明提供的一種安全故障溯源方法,所述將所述第二合約執行結果更新至所述區塊鏈的記賬節點,之后還包括:
12、在所述第一合約執行結果和/或所述第二合約執行結果出現安全故障的情況下,驗證所述本地賬本記錄中的相關日志與所述區塊鏈的記賬節點中的數據是否一致。
13、根據本發明提供的一種安全故障溯源方法,所述驗證所述本地賬本記錄中的相關日志與所述區塊鏈的記賬節點中的數據是否一致,包括:
14、在所述本地記賬記錄中的相關日志與所述區塊鏈的記賬節點中的數據不一致的情況下,將所述相關日志更新至所述區塊鏈的記賬節點,并基于更新后的區塊鏈的記賬節點中的數據進行安全故障溯源。
15、根據本發明提供的一種安全故障溯源方法,所述記賬節點對所述第一合約執行結果和所述第二合約執行結果達成共識使用的算法包括工作量證明算法、權益證明算法和股份授權證明算法中的任意一種。
16、本發明還提供一種安全故障溯源裝置,包括:
17、調用開發智能合約單元,用于獲取提交代碼,調用開發質量掃描智能合約對所述提交代碼進行質量掃描,得到所述開發質量掃描智能合約對應的第一合約執行結果,并將所述第一合約執行結果更新至區塊鏈的記賬節點;
18、調用測試智能合約單元,用于獲取流水線生成的代碼包,調用測試質量掃描智能合約對所述流水線生成的代碼包進行質量掃描,得到所述測試質量掃描智能合約對應的第二合約執行結果,并將所述第二合約執行結果更新至所述區塊鏈的記賬節點;
19、安全故障溯源單元,用于在所述記賬節點對所述第一合約執行結果和所述第二合約執行結果達成共識的情況下,進行新增區塊,得到所述新增區塊后的更新區塊鏈信息,基于所述更新區塊鏈信息更新本地賬本記錄,并基于所述本地賬本記錄進行安全故障溯源。
20、本發明還提供一種電子設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述程序時實現如上述任一種所述安全故障溯源方法。
21、本發明還提供一種非暫態計算機可讀存儲介質,其上存儲有計算機程序,該計算機程序被處理器執行時實現如上述任一種所述安全故障溯源方法。
22、本發明還提供一種計算機程序產品,包括計算機程序,所述計算機程序被處理器執行時實現如上述任一種所述安全故障溯源方法。
23、本發明提供的安全故障溯源方法、裝置、電子設備及存儲介質,調用開發質量掃描智能合約對提交代碼進行質量掃描,得到第一合約執行結果,并將第一合約執行結果更新至區塊鏈的記賬節點,再調用測試質量掃描智能合約對流水線生成的代碼包進行質量掃描,得到第二合約執行結果,并將第二合約執行結果更新至區塊鏈的記賬節點,最后,在記賬節點對第一合約執行結果和第二合約執行結果達成共識的情況下,進行新增區塊,得到新增區塊后的更新區塊鏈信息,基于更新區塊鏈信息更新本地賬本記錄,并基于本地賬本記錄進行安全故障溯源,由此,通過本地賬本記錄中的智能合約記錄進行安全故障溯源,不僅提高了代碼安全故障溯源的效率,而且溯源的定位精度高,相較于人工溯源安全故障問題更準確,且不依賴專家的安全報告分析,節省了大量的人工成本。
1.一種安全故障溯源方法,其特征在于,包括:
2.根據權利要求1所述的安全故障溯源方法,其特征在于,所述開發質量掃描智能合約包括代碼質量掃描流程智能合約和代碼三方依賴檢查掃描流程智能合約,所述測試質量掃描智能合約包括自動化測試流程智能合約和制品掃描流程智能合約。
3.根據權利要求2所述的安全故障溯源方法,其特征在于,所述代碼質量掃描流程智能合約的合約執行結果是基于對所述提交代碼進行質量掃描所得的代碼漏洞的實際數量與所述代碼質量掃描流程智能合約中預先存儲的代碼漏洞數量確定的;
4.根據權利要求1所述的安全故障溯源方法,其特征在于,所述將所述第二合約執行結果更新至所述區塊鏈的記賬節點,之后還包括:
5.根據權利要求4所述的安全故障溯源方法,其特征在于,所述驗證所述本地賬本記錄中的相關日志與所述區塊鏈的記賬節點中的數據是否一致,包括:
6.根據權利要求1至5中任一項所述的安全故障溯源方法,其特征在于,所述記賬節點對所述第一合約執行結果和所述第二合約執行結果達成共識使用的算法包括工作量證明算法、權益證明算法和股份授權證明算法中的任意一種。
7.一種安全故障溯源裝置,其特征在于,包括:
8.一種電子設備,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,其特征在于,所述處理器執行所述程序時實現如權利要求1至6任一項所述安全故障溯源方法。
9.一種非暫態計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現如權利要求1至6任一項所述安全故障溯源方法。
10.一種計算機程序產品,包括計算機程序,其特征在于,所述計算機程序被處理器執行時實現如權利要求1至6任一項所述安全故障溯源方法。