措施5-1. 系統發展生命週期需求階段
措施5-2. 系統發展生命週期設計階段
措施5-3. 系統發展生命週期開發階段
措施5-4. 系統發展生命週期測試階段
措施5-5. 系統發展生命週期部署與維運階段
措施5-6. 系統發展生命週期委外階段
措施5-7. 獲得程序
措施5-8. 系統文件
這個構面應該是5-5、5-8比較需要提供符合技術面考量的管控實施方式之佐證,所以我們以此舉例建議系統開發人員提供到什麼程度的陳述。
系統發展生命週期部署與維運管理 SOP
本標準作業程序(SOP)旨在確保資通系統於部署及維運階段,依循資通系統防護基準的要求,落實安全加固、版本控制、變更管理和服務關閉等措施,以減少資安威脅的風險,並確保系統的穩定運行。
本SOP適用於所有資通系統的部署及維運階段,涵蓋作業系統、應用系統、網頁伺服器、執行環境(如JRE)、函式庫及其他關鍵元件的維護作業。
3-1. 安全加固管理
授權確認與審查:
在資通系統的部署前,應進行系統架構安全審查,確認需啟用的功能與服務,將未使用或不需要的軟體、服務、通訊埠、協定關閉或移除。
確認不使用的預設管理帳號,並變更預設密碼。
變更管理:
變更申請作業需由相關人員提出,並經過變更審查小組的核准後方可執行。
變更作業前需完成備份,並提供復原計畫,以便在變更失敗時進行還原。
變更作業需紀錄以下資訊:
變更申請人、變更時間與變更描述。
變更前的系統組態基準(包含軟體版本、配置設定等)。
變更後的系統組態基準及影響評估。
審核與檢查:
每月對未使用的軟體、服務、通訊埠、協定、預設管理帳號進行審查,確認是否需關閉或刪除。
確保部署的作業系統及關鍵軟體(如JRE)安裝最新的安全更新與修補程式。
存取控制:
僅允許經授權的用戶透過已核可的IP位址、MAC位址或指定的存取控制點,進行系統維運作業。
4-1. 系統加固
服務與埠口關閉:
使用Nmap或類似工具檢查伺服器開放的服務與通訊埠,關閉不必要的服務和埠口。
使用防火牆及入侵偵測/防禦系統(IDS/IPS)來限制網路訪問和偵測異常活動。
預設帳號與密碼管理:
變更所有系統及應用程式的預設帳號和密碼,使用強密碼策略(長度至少12位,包含大小寫字母、數字和符號)。
停用不必要的系統管理帳號,並啟用多因子身份驗證(MFA)。
軟體修補與更新:
定期檢查作業系統、應用系統和中介軟體的更新,優先安裝安全性更新和修補程式。
4-2. 版本控制與變更管理
版本控制作業規範:
所有系統的原始碼與配置文件,應採用版本控制系統(如Git)進行管理,並定期審查變更日誌(Git commit log)。
Git版本控制流程:
分支管理:使用Git Flow或類似的分支管理策略,區分主分支(main)、開發分支(develop)及功能分支(feature branches)。
變更提交:所有變更需在功能分支進行,並通過Pull Request進行代碼審查後合併至develop分支。
版本標籤:每次變更完成後,應在Git中標記版本標籤,標記格式應符合標準(如v1.0.0)。
備份作業:所有Git倉庫需進行備份,且至少在兩個異地位置進行儲存。
變更控制作業:
變更申請:提交變更申請時,應提供變更目的、影響範圍、變更作業說明、測試計畫及風險評估。
變更影響分析:變更前,應先進行影響分析,確認不會對現行作業環境造成不良影響。
變更執行:僅在獲得變更審查小組核准後,才能執行變更操作,並記錄變更過程和結果。
變更後審查:變更完成後,需進行回歸測試,並記錄測試結果。所有變更相關的日誌、測試報告和操作記錄應存檔備查。
變更失敗處理:
在變更失敗時,立即執行還原計畫,恢復到變更前的系統組態,並調查變更失敗原因,制定改善對策。
系統配置管理:
使用配置管理工具(如Ansible、Chef或Puppet)對系統配置進行版本控制,並自動化系統部署和配置作業。
配置管理的重點包括:
伺服器操作系統的版本和補丁狀態。
伺服器的系統配置文件(如nginx.conf、httpd.conf)和網絡服務的組態。
定期檢查SOP文件的完整性和準確性,確保其符合現行的資安標準和技術要求。
根據系統運作的需求和變更,更新相關的版本控制策略和變更管理流程,並在每年進行一次全面的審查。
1. 目的
本SOP旨在確保資通系統在系統發展生命週期的各個階段能夠產出、管理和維護必要的系統文件,這些文件能支援系統的開發、測試、部署、維運及審計等作業。藉由文件的標準化、版本控制及存取控制,降低系統風險,並確保系統的可追溯性和一致性。
2. 適用範圍
本SOP適用於資通系統的開發團隊、測試團隊、系統管理員及其他與系統生命週期文件管理相關的角色,涵蓋系統開發、維運及管理過程中產生的文件。
3.1 系統開發文件
系統需求規格書 (Software Requirements Specification, SRS)
產出目標: 明確定義系統的功能需求、非功能需求和技術需求,作為系統開發的基準。
重點內容:
系統功能需求列表
使用者角色及使用案例
非功能性需求(效能、安全性、相容性等)
介面規格 (UI/UX設計)
資料流圖和ERD(實體關聯圖)
軟體開發專案計畫書 (Software Development Plan, SDP)
產出目標: 規劃專案的進度、資源配置、風險控制及里程碑,作為專案執行的依據。
重點內容:
專案範疇與目標
里程碑與關鍵活動
資源分配及角色分工
風險評估及應對措施
專案進度表 (甘特圖)
系統設計規格書 (Software Design Description, SDD)
產出目標: 描述系統的架構設計和組件設計,提供開發人員和測試人員清楚的設計藍圖。
重點內容:
系統架構圖
模組設計與接口規格
資料庫設計 (ERD) 和查詢邏輯
關鍵演算法和流程圖
安全機制的設計 (例如加密和身份驗證方法)
系統安裝計畫書 (Software Installation Plan, SIP)
產出目標: 提供系統安裝和配置的具體步驟和依賴條件,確保系統能在指定環境中正確部署。
重點內容:
安裝環境要求 (硬體和軟體需求)
安裝步驟詳細說明
系統參數配置 (如連接埠、IP地址等)
啟動、關閉和重啟的指導
常見錯誤及故障排除建議
系統測試計畫書 (Software Test Plan, STP)
產出目標: 明確測試的範疇、策略和測試方法,確保系統的質量和穩定性。
重點內容:
測試範疇和目標
測試策略與測試方法
測試環境設置和數據準備
測試工具與測試資源
測試計畫與進度表
系統測試報告 (Software Test Report, STR)
產出目標: 記錄系統測試的結果,識別缺陷並確認測試目標是否達成。
重點內容:
測試案例執行結果
缺陷報告及修正狀態
測試覆蓋率
測試總結和改進建議
測試的接受標準與結果確認
3.2 系統管理員文件
安全組態、安裝與操作手冊
產出目標: 提供系統管理員操作資通系統的具體指引,確保安全、有效的系統維運。
重點內容:
系統組態說明 (防火牆、使用者權限等)
系統安裝指引
系統日常維運指南
常見問題和故障排除
安全與隱私功能的使用與維護
產出目標: 指導系統管理員如何維護系統的隱私和安全機制,確保數據隱私的保護。
重點內容:
加密和身份驗證機制的管理
存取控制與權限配置
日誌和審計記錄的管理
3.3 系統使用者文件
系統使用者手冊
產出目標: 指導使用者安全使用系統,並了解其安全與隱私義務。
重點內容:
使用者可訪問的安全功能
使用者隱私保護的最佳做法
使用者責任與義務
文件產出:每個文件的產出責任人由專案經理指派,開發團隊、測試團隊和系統管理員協作完成。
版本控制:使用Git進行版本控制,具體操作如下:
每一類文件建立單獨的目錄結構 (如SRS、SDP等);
每份文件均使用版本號(如v1.0、v2.1)進行標識;
使用Git提交信息描述更新內容及原因;
文件變更須由專案經理審核並批准,且變更內容須在Git中留下記錄。
文件審查:所有文件均須由開發團隊、測試團隊和管理者進行交叉審查,並由專案經理最終簽核確認。
文件存取控制:所有系統文件應儲存於受控的版本管理系統 (如GitLab) 中,並設定存取權限,僅允許授權人員存取。
專案經理:負責文件產出計畫和變更審核。
開發人員:負責SDD、SRS和原始碼的相關文件。
測試人員:負責STP和STR文件的產出。
系統管理員:負責系統操作手冊、安全配置文件的維護和更新。
以上範例是詢問ChatGPT後再稍加整理而成的,其中或許有部分不容易落實,或者在專案執行時某些考量下不夠充分,所以在參考引用這些內容仍應仔細斟酌合宜性。