論軟件生命周期的信息安全管理
時間:2022-09-11 04:27:42
導語:論軟件生命周期的信息安全管理一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
在各主流IT或信息安全評價體系中,都或多或少對軟件生命周期中的信息安全控制進行了要求和規定,本文綜合了流行的ISO27000,Cobit5,PCI-DSS等評價體系,結合國家信息安全標準,及審計咨詢公司常用的SOX,SAS70等第三方評價標準,就如何設計與實施軟件生命周期中信息安全的相關控制點歸納總結如下
1.1軟件生命周期中信息安全的整體要求
(1)制定并正式的軟件生命周期控制文件:明確說明開發過程的控制方法和人員的行為準則,并應充分考慮對信息安全方面的要求,確保開發出來的系統可以滿足公司整體信息安全的需要、相關法律法規的信息安全要求,以及特殊部門或流程的信息安全需要。(2)軟件生命周期中對信息安全的總體要求:雖然由于系統所對應企業、部門、業務或流程的差異,每個系統的安全要求有所不同,例如通常來講,金融行業對安全的要求較高,金融行業里,涉及客戶信息、財務信息的系統安全要求較高等等。每個企業、部門必須根據自己的流程評估風險,確定對數據完整性、安全性、可用性的要求,從而進一步確定信息安全要求。
1.2對環境的要求
(1)確保開發環境與實際運行環境物理相分離,開發環境應該由一系列足以支持開發工作且盡量與生產環境接近的設備搭建而成,所有的開發和測試工作均應該在此開發環境中進行。在實際工作中,也可以實行開發環境、測試環境及生產環境的分離控制,或開發環境、測試環境、用戶驗收測試環境及生產環境的分離控制。在上述環境中,開發環境可以相對較弱,以可以支持代碼開發、進行模塊測試及基本的集成測試為標準;測試環境,特別是用戶驗收測試的測試環境,則要求較高,應與實際環境保持一致或盡可能接近。(2)對開發環境(及測試環境)實施安全控制:例如未經授權的人員不得訪問開發環境(測試環境),對開發(測試)中的軟件實施嚴格的版本控制,開發(測試)環境的機器必須安裝殺毒軟件并及時更新病毒庫,并及時對操作系統及相關應用軟件進行補丁修正和升級。
1.3對人員的要求
(1)軟件生命周期中的工作人員必須具有足夠的專業勝任能力及職業道德素養,足以從事相關工作。(2)對開發人員和測試人員實施職責分離,開發人員未經授權不得訪問或修改生產環境的程序或數據。1.4業務需求階段在業務需求制定階段,應注重對信息安全方面的需求制定。在業務需求書中,應明確對系統安全的詳細要求,并在系統設計階段開始之前,由各利益相關方(含信息安全的負責人)書面確認。業務需求階段完成后,任何對系統安全需求的修改,也應視為對業務需求書的修改,需經過正式的系統變更流程。
1.5系統設計階段
(1)對系統進行整體設計和詳細設計,通過分析系統的數據流,包括數據錄入、系統內部模塊間的數據傳輸、信息存儲、數據庫訪問及管理、系統間數據傳輸,、數據輸出等,確保實現所有過程中對數據的全面保護,特別是對特定業務的特定數據進行保護,例如密碼,客戶信息,財務數據等,對重要數據的存儲和傳輸設置權限和校驗,并進行加密。(2)在軟件的應用層面應至少包含如下的控制設計:i)輸入檢查:對系統的輸入數據進行驗證,比如設置強制輸入完成才可進一步處理的字段;對輸入數據的類型或范圍進行檢查,例如日期;對輸入數據的長度進行檢查,例如手機號碼位數;對數據進行正確性校驗,例如利用身份證校驗碼策略檢查身份證號碼,對比身份證號碼與出生日期。ii)數據處理過程中的檢查:對系統處理過程中的數據進行檢查,比如在自動化轉換或傳輸過程中,比對數據記錄的總條數和數據總和;設置流程,提醒將系統數據與紙質數據進行比對驗證。iii)輸出檢查:對輸出結果的合理性進行系統檢測,以及設置流程提示將系統輸出數據與手工證據進行核對等。
1.6系統實施階段
制定代碼編寫安全規范,要求開發人員參照規范編寫代碼;嚴格禁止不安全的實施方法,例如將用戶名或密碼編寫在程序中,使用未經審核過的代碼包,使用未授權的網絡工具等。對源代碼的訪問和修改必須嚴格控制,例如通過配置管理工具進行代碼訪問及代碼版本控制。
1.7系統測試階段
(1)系統測試整體要求:對系統測試驗收的控制方法和人員行為準則應進行書面規定,確保系統在開發期間直至驗收需對軟件、硬件、服務等元素進行一系列的測試,確保系統及數據的完整性和可用性。對源于生產環境的測試數據去敏感化,如客戶身份證信息等,在傳輸過程中進行加密,并確保在測試后被完全清除。(2)測試通常應覆蓋業務需求書中的所有要求,包括系統功能、軟硬件性能、平臺兼容性、系統容量、系統恢復等,也應特別保護對信息安全的測試,如防攻擊測試、穿透性測試等。(3)用戶接受測試:接收測試的測試人員應由非開發人員擔當,且必須包含業務人員。測試范圍應涉及系統所有的功能,包括數據庫及操作系統。接收測試也應特別注意對系統安全方面的測試,例如審查關鍵代碼,查找后門程序及穿透性測試等。(4)測試結果:測試結果需書面記載,與用戶期望結果進行比對和確認。此記錄及確認中需包含對信息安全方面的測試結果,確認測試結果符合系統設計及公司整體的信息安全需要,或已經授權采取了充分、恰當的補償性措施。
1.8系統上線
(1)系統上線前需進行如下確認,信息安全評估已充分進行,安全方面的缺陷已被充分確認及記錄,系統的性能和容量可以滿足要求,所有與系統相關的補丁或更新已經實施,所有開發中遇到的問題已得到妥善解決,建立了充分恢復措施,測試數據已被擦除,服務水平協議已經建立,以及各利益相關者已經對系統上線做了批準等。(2)系統上線時需進行的操作:對初始數據遷移或輸入的確認,對技術人員及用戶進行培訓,設置恰當的上線窗口期并對可能產生的業務中斷進行準備,明確新舊系統交接程序,制定詳細的系統交付清單,提供軟件的使用指南,確保上線后對系統提供持續性支持(例如IT服務臺)。另外,對舊系統信息,包括系統配置、操作手冊、支持軟件、系統數據等進行歸檔。(3)上線后審核:系統運行一段時間后對系統進行評估,評價系統對業務的滿足情況,其中包含信息安全的符合情況、信息安全控制措施的運行效果和效率,發生的信息安全事故以及潛在的需要改進的信息安全措施。
1.9質量控制
在整個軟件生命周期中實施質量控制以確保信息安全策略的有效實施,包括評價系統風險(例如與業務需求、技術、效果、成本、時間相關的風險),評估及定義系統的安全需求,且在整個軟件生命周期的節點上進行檢查,以確保安全需求在開發的系統中進行了充分實施。
2結論
本文通過九個方面,就如何在軟件開發生命周期中進行信息安全管理,提出了較為全面和系統的設計與實施辦法,可以滿足當前流行的絕大多數信息安全評價體系的要求,對企事業單位的信息安全和軟件質量管理有一定的參考意義。
本文作者:周蓓工作單位:廣東工貿職業技術學
- 上一篇:淺談計算機網絡問題及防范策略
- 下一篇:內部管理提升工作效率經驗交流