在軟件工程的實現(xiàn)階段,為確保軟件質(zhì)量、控制開發(fā)風(fēng)險并滿足網(wǎng)絡(luò)與信息安全要求,對可交付產(chǎn)品進行系統(tǒng)的評審、審計與基線管理是至關(guān)重要的。這些活動共同構(gòu)成了軟件開發(fā)過程的質(zhì)量與安全控制框架。
一、 軟件實現(xiàn)過程中的關(guān)鍵可交付產(chǎn)品
軟件實現(xiàn)階段的可交付產(chǎn)品是指在編碼、集成、測試等活動中產(chǎn)生的,可用于評估、審查或向下游傳遞的工作成果。主要包括:
- 源代碼:遵循編碼規(guī)范和安全編碼準(zhǔn)則編寫的程序代碼。
- 可執(zhí)行程序/構(gòu)建產(chǎn)物:經(jīng)過編譯、鏈接后生成的二進制文件或部署包。
- 技術(shù)文檔:包括詳細設(shè)計文檔、接口文檔、數(shù)據(jù)庫設(shè)計文檔等。
- 測試相關(guān)產(chǎn)出物:如單元測試用例、集成測試報告、安全測試報告、漏洞掃描報告等。
- 配置項:與軟件構(gòu)建和運行相關(guān)的配置文件、腳本和環(huán)境定義文件。
在網(wǎng)絡(luò)與信息安全軟件開發(fā)中,上述產(chǎn)品還需特別強調(diào)安全屬性,例如源代碼需通過靜態(tài)應(yīng)用安全測試(SAST),可執(zhí)行程序需進行動態(tài)應(yīng)用安全測試(DAST)和軟件成分分析(SCA)。
二、 評審、審計與基線管理的核心活動
這三項活動相互關(guān)聯(lián),共同確保可交付產(chǎn)品的合規(guī)性、一致性和可追溯性。
1. 評審
評審是一種正式或非正式的檢查活動,旨在發(fā)現(xiàn)工作產(chǎn)品中的缺陷、偏差或改進機會。
- 形式:包括代碼走查、同行評審、設(shè)計評審、測試用例評審等。
- 安全關(guān)注點:在安全軟件開發(fā)中,評審需重點關(guān)注潛在的安全漏洞(如注入、跨站腳本、不安全的直接對象引用等)、隱私數(shù)據(jù)保護措施的實現(xiàn)、以及是否符合安全架構(gòu)設(shè)計。
2. 審計
審計是一種獨立的檢查活動,用于驗證過程與產(chǎn)品是否符合既定的標(biāo)準(zhǔn)、法規(guī)、合同要求或安全策略。它比評審更為正式和系統(tǒng)化。
- 內(nèi)容:審計可能檢查開發(fā)過程是否遵循了安全開發(fā)生命周期(SDL/DevSecOps),代碼管理是否符合規(guī)范,第三方組件使用是否經(jīng)過審批和記錄,安全測試是否充分等。
- 產(chǎn)出:審計報告,記錄符合項與不符合項,并提出糾正措施建議。
3. 基線管理
基線是經(jīng)過正式評審和同意,可作為后續(xù)開發(fā)基礎(chǔ)的一個或多個配置項的版本,且只能通過正式的變更控制過程進行修改。建立基線是配置管理的核心。
- 關(guān)鍵基線:在實現(xiàn)階段,重要的基線包括“設(shè)計基線”、“代碼基線”(如里程碑版本)、“測試基線”和最終的“產(chǎn)品發(fā)布基線”。
- 作用:基線提供了開發(fā)過程的穩(wěn)定錨點,確保任何變更都受控、可追溯,這對于安全漏洞的修復(fù)和版本回退至關(guān)重要。
三、 相互關(guān)系示意圖與流程解析
我們可以用以下概念示意圖來描述其關(guān)系:
`
[開發(fā)活動]
|
v
[產(chǎn)生可交付產(chǎn)品]
|
v
+-------------+-------------+
| |
v v
[技術(shù)評審] <------> [安全專項評審]
(發(fā)現(xiàn)功能/質(zhì)量缺陷) (發(fā)現(xiàn)安全漏洞/合規(guī)問題)
| |
+-------------+-------------+
|
v
[問題修復(fù)與驗證]
|
v
[正式審計]
(驗證是否符合過程與產(chǎn)品標(biāo)準(zhǔn))
|
v
[建立/更新基線]
(將已驗證的產(chǎn)品版本納入受控庫)
|
v
[進入下一階段或發(fā)布]`
流程解析:
1. 開發(fā)活動產(chǎn)生初步的可交付產(chǎn)品。
2. 這些產(chǎn)品首先經(jīng)過技術(shù)評審和安全專項評審。在安全開發(fā)中,這兩者常融合進行,例如在代碼評審中同時檢查功能邏輯和安全漏洞。
3. 評審發(fā)現(xiàn)的問題被記錄、分配并修復(fù),修復(fù)結(jié)果需經(jīng)過驗證(如回歸測試)。
4. 在重要里程碑(如迭代結(jié)束、版本封版前),進行正式的審計,從整體上檢查本階段所有工作產(chǎn)品與過程是否符合項目計劃、質(zhì)量體系和網(wǎng)絡(luò)安全標(biāo)準(zhǔn)(如等保2.0、ISO 27034、OWASP ASVS等)。
5. 審計通過后,將一組相互關(guān)聯(lián)且經(jīng)過批準(zhǔn)的產(chǎn)品版本建立為新的基線。例如,將某次安全加固后的代碼、對應(yīng)的設(shè)計文檔和測試報告一起打上標(biāo)簽,形成“Release Candidate 1.0”基線。
6. 此基線作為后續(xù)開發(fā)(如修復(fù)補丁)或最終交付的基準(zhǔn)。任何對基線內(nèi)容的修改,都必須通過變更控制流程(通常包括影響分析、安全評估、重新評審/測試等步驟)。
四、 對網(wǎng)絡(luò)與信息安全軟件開發(fā)的特別意義
在這一領(lǐng)域,評審、審計和基線管理構(gòu)成了縱深防御的管理層面措施。
- 評審是“早發(fā)現(xiàn)、早修復(fù)”安全缺陷的關(guān)鍵,能有效降低修復(fù)成本。
- 審計確保安全開發(fā)流程(如威脅建模、安全測試)不被繞過,提供合規(guī)性證據(jù)。
- 基線管理則保證了安全補丁與軟件版本對應(yīng)關(guān)系的清晰性,在發(fā)生安全事件時能快速定位受影響版本并準(zhǔn)確修復(fù),同時防止未經(jīng)授權(quán)的更改引入新的風(fēng)險。
通過系統(tǒng)化地執(zhí)行對可交付產(chǎn)品的評審、審計與基線管理,軟件開發(fā)團隊不僅能提升產(chǎn)品質(zhì)量,更能主動構(gòu)建起軟件的內(nèi)在安全韌性,為交付安全、可靠的軟件產(chǎn)品奠定堅實基礎(chǔ)。