14.2開發和支持過程中的安全
14.2開發和支持過程中的安全
14.2.1安全的開發策略
控制
針對組織內的開發,宜建立軟件和系統開發規則并應用。
實現指南
安全開發是建立安全服務、架構、軟件和系統的要求。宜在安全開發策略中考慮:
a) 開發環境的安全;
b) 軟件開發生命周期中的安全指南:
1) 軟件開發方法的安全;
2) 每種使用的編程語言的安全編碼指南;
c) 設計階段的安全要求;
d) 項目里程碑內的安全檢查點;
e) 安全庫;
f) 版本控制的安全;
g) 所需的應用安全知識;
h) 開發人員避免、發現和修復脆弱性的能力。
當開發所用的標準可能未知或與當前的最佳實踐不一致時,新開發和代碼復用時均宜使用安全的編程技術。宜考慮安全的編碼標準,并在適當時強制使用。宜培訓開發人員使用安全的編碼標準,測試和代碼評審宜驗證其使用。
如開發外包時,組織宜獲得外包方遵守安全開發規則的保障(見14.2.7)。
其他信息
14.2.2系統變更控制規程
控制
宜使用正式的變更控制規程來控制開發生命周期內的系統變更。
實現指南
宜將正式的變更控制規程文件化,并強制實施,以確保從最初設計至后續維護中系統、應用和產品的整體性。引入新系統和對已有系統進行大的變更宜按照從文件、規范、測試、質量控制到管理實現這個正式的過程進行。
這個過程宜包括風險評估、變更影響分析和所需安全控制的規范。這一過程還宜確保不損害現有的安全和控制規程,確保支持程序員僅能訪問系統中其工作那些必要的部分,確保任何變更要獲得正式商定和批準。
只要可行,應用和運行變更控制規程宜集成起來(見12.1.2)。該變更控制規程宜包括但不限于:
a) 維護所商定授權級別的記錄;
b) 確保由授權的用戶提交變更;
c) 評審控制和完整性規程,以確保它們不因變更而受到損害;
d) 識別需要修正的所有軟件、信息、數據庫實體和硬件;
e) 識別和檢查安全關鍵代碼以最小化已知安全弱點發生的可能性;
f) 在工作開始之前,獲得對詳細建議的正式批準;
g) 確保已授權的用戶在實現之前接受變更;
h) 確保在每個變更完成之后更新系統文件設置,并將舊文件歸檔或丟棄;
i) 維護所有軟件更新的版本控制;
j) 維護所有變更請求的審計蹤跡;
k) 確保變更了操作文件(見12.1.1)和用戶規程,作為必要的合適保存;
l) 確保在正確的時間上進行了變更,并且不干擾所涉及的業務過程。
其他信息
變更軟件會影響運行環境,反之亦然。
良好的做法包括在一個與生產和開發環境隔離(見12.1.4)的環境中測試新軟件。它提供了一種方法,可用于控制新軟件,以及對被用于測試目的的運行信息進行額外保護。這宜包括補丁、服務填充和其他更新。
14.2.3運行平臺變更后對應用的技術評審
控制
當運行平臺發生變更時,宜對業務的關鍵應用進行評審和測試,以確保對組織的運行和安全沒有負面影響。
實現指南
這一過程宜包括:
a) 評審應用控制和完整性規程,以確保它們不因運行平臺變更而受到損害;
b) 確保及時提供運行平臺變更的通知,以便于在實現前進行適當的測試和評審;
c) 確保對業務連續性計劃進行適當的變更(見第17章)。
其他信息
14.2.4軟件包變更的限制
控制
宜不鼓勵對軟件包進行修改,僅限于必要的變更,且對所有變更加以嚴格控制。
實現指南
如果可能且可行,宜使用廠商提供的軟件包,而無需修改。在需要修改軟件包時,宜考慮下列要點:
a) 內置控制和完整性過程被損害的風險;
b) 是否宜獲得廠商的同意;
c) 當標準程序更新時,從廠商獲得所需變更的可能性;
d) 作為變更的結果,組織需負責進一步維護此軟件帶來的影響;
e) 與其他在用軟件的兼容性。
14.2.5系統安全工程原則
控制
宜建立、文件化和維護系統安全工程原則,并應用到任何信息系統實現工作中。
實現指南
宜建立基于安全工程原則的安全信息系統工程規程,形成文件并應用于內部信息系統的工程活動。安全宜審計到所有架構層(業務、數據、應用和技術)之中,以平衡信息安全需求和訪問需需求。宜針對安全風險,分析新技術,并針對已知的攻擊模式,評審相應的設計。
宜定期評審這些原則和已建立的工程規程,以確保其有效地用于工程過程中的安全增強標準。 還宜定期評審以確保其在對抗任何潛在的新威脅方面保持最新,并保持其對技術和解決方案發展的適用性。
適用時,宜通過組織與外包供應商間的合同以及其他綁定的協議,把已建立的安全工程原則應用到外包的信息系統。組織宜證實供應商的安全工程原則的嚴謹性與其自身的原則是可比的。
其他信息
14.2.6安全的開發環境
控制
組織宜針對覆蓋系統開發全生命周期的系統開發和集成活動,建立安全開發環境,并予以適當保護。
實現指南
安全的開發環境包括與系統開發和集成相關的人員、過程和技術。
組織宜評估與單個系統開發工作相關的風險,并為特定系統的開發工作建立安全的開發環境,考慮:
a) 系統所處理、存儲和傳輸的數據的敏感性;
b) 適用的外部和內部要求,如法律法規或策略的要求;
c) 組織已實現的支持系統開發的安全控制;
d) 工作環境中人員的可信度(見7.1.1);
e) 系統開發的外包程度;
f) 分離不同開發環境的需求;
g) 訪問開發環境的控制;
h) 監視環境及其所存儲代碼的變更;
i) 在安全的異地存儲備份;
j) 控制數據移入移出環境的活動。
14.2.7外包開發
控制
組織宜督導和監視外包系統開發活動。
實現指南
系統開發外包時,宜考慮組織所有外部供應鏈的以下方面:
a) 與外包內容相關的許可證、代碼所有權和知識產權(見18.1.2);
b) 安全設計、編碼和測試的合同要求(見14.2.1);
c) 向外部開發者提供已批準的威脅模型;
d) 交付件質量和準確性的驗收測試;
e) 提供用以建立安全和隱私保護能力的最低可接受級別的安全閾值的證據;
f) 提供充分測試的證據,用以防范交付時包含有意和無意的惡意內容;
g) 提供充分測試的證據,用以防范已知的脆弱性;
h) 托管安排,如,當源代碼不可用時;
i) 對開發過程和控制進行審計的合同權利;
j) 生成交付件的編譯環境有效的文件化;
k) 組織保有遵守相關法律法規和驗證控制有效性的責任。
其他信息
14.2.8系統安全測試
控制
宜在開發過程中進行安全功能測試。
實現指南
14.2.9系統驗收測試
控制
宜建立對新的信息系統、升級及新版本的驗收測試方案和相關準則。
實現指南
系統驗收測試宜包括信息安全要求測試(見14.1.1和14.1.2)和是否遵循安全系統開發實踐測試(見14.2.1)。該測試還宜在接收組件和集成系統上進行。組織可借助自動工具如代碼分析工具或漏洞掃描器,并宜驗證與安全有關的缺陷的修復。
GB/T 22081-2016 信息技術 安全技術 信息安全控制實踐指南
推薦文章: