

摘要:近年來,DevSecOps軟件開發思想受到廣泛關注,許多企業在軟件系統開發流程中采用DevSevOps理念來指導軟件開發工作。通過分析關鍵信息基礎設施軟件系統的機密性、保密性和可用性等核心安全需求,并深入討論關鍵信息基礎設施的系統特性與挑戰,展示出DevSecOps軟件開發思想在指導關鍵信息基礎設施領域軟件開發的積極意義。
關鍵詞:關鍵信息基礎設施;DevSecOps;網絡安全;軟件開發
近年來,隨著國家網絡空間戰略的深入推進,關鍵信息基礎設施支撐著國家重要行業和領域內的核心系統,其系統及數據的保密性、完整性和可用性是重要保護目標。在軟件的開發、維護過程中,如何融入更高效的安全保障機制成為當前重要研究問題。2012年,Gartner提出DevSecOps軟件開發設計概念,將安全因素整合到軟件開發和運維生命周期的各個環節。在DevSecOps理念中,軟件開發、安全和運維協同工作,在軟件需求設計初期將安全性納入其中考慮,并貫穿軟件開發生命周期的各個階段,以實現更高的軟件安全性。本文將探討基于DevSecOps的關鍵信息基礎設施軟件開發中的安全策略,為系統開發團隊提供一種實用的安全開發指導方法,提高關鍵信息基礎設施的安全性和可靠性。
一、關鍵信息基礎設施的安全需求與挑戰
關鍵信息基礎設施軟件開發作為軟件開發工程的一個特殊細分領域,其核心原則和基本步驟與傳統的軟件開發流程相似,包括需求分析、設計、編程、測試和維護等步驟。其獨特之處在于特別強調了系統保密性、完整性和可用性以及系統維護管理人員的嚴格管理等。關鍵信息基礎設施的軟件系統開發需要將系統及數據安全性作為首要的設計目標,從設計階段開始,進行威脅建模和風險評估,以確定系統的安全需求并制定安全策略;開發階段需要遵循安全編碼實踐,減少安全漏洞;測試階段需要進行全面的安全測試,檢測并修復任何潛在的安全問題;部署和運維階段需要實現嚴密的安全控制,包括訪問控制、安全監控和事件響應等。對關鍵信息基礎設施安全建立多層次保護技術體系[1],包括所有接觸系統的人員進行嚴格的管理,這包括開發、測試和運維團隊以及任何可能接觸到系統的第三方供應商等。
(一)安全需求
1.人員安全防范意識缺失
在關鍵信息基礎設施的軟件生命周期中,有開發、測試和運維人員以及第三方供應商能夠近距離接觸系統。這些人員角色各自承擔不同的職責,并對系統的安全性有直接的影響。為增強系統的安全性,通過增強標準化的頂層設計,加強系統接觸人員背景審查的基礎上,加強人員安全法治教育工作,增強人員的安全防范意識,并明確安全管理職責[2]。
2.安全編碼需求
關鍵信息基礎設施對系統的安全性和健壯性有著極高的要求。任何對系統安全性的威脅都可能導致重大的負面影響。因此,采用安全的開發實踐至關重要。如果采用不安全的開發方法,比如沒有進行足夠的輸入驗證、使用了已知存在漏洞的第三方庫、沒有按照最小權限原則進行訪問控制等,一旦遭到破壞或數據泄露,會造成嚴重后果。
3.安全合規需求
關鍵信息基礎設施的安全合規需求包括網絡安全等級保護要求和數據安全保護要求。這意味著所有處理敏感數據的過程,包括數據存儲、傳輸和處理,都需要在安全的環境中進行。例如,在數據存儲時,需要使用加密技術保護數據,防止被非法訪問或篡改。
4.安全監測與審計需求
涉密系統的安全監測和審計是兩個關鍵過程,確保系統符合既定設計的安全需求。通過持續安全監測和分析,幫助識別系統的潛在安全隱患,從而提高涉密系統的安全性。
(二)安全挑戰
在傳統軟件安全領域中,軟件缺陷問題由來已久。不安全的開發方法和缺乏專業技能培訓的開發人員,對軟件的安全運行帶來各類潛藏的風險和隱患[3-5]。通過合理地規劃軟件需求設計和安全編碼策略(如圖1所示),能夠在開發設計階段早期及時發現風險,大幅度減少修復軟件漏洞的成本,并增強網絡關鍵設備的安全審查力度[6]。
1.高級持續性威脅(APT)
由于關鍵信息基礎設施承擔著重要行業和領域核心信息系統的高安全性要求,使其成為高級持續性威脅的重點攻擊目標。通過隱蔽、潛伏的網絡攻擊技術,能夠對關鍵信息基礎設施系統造成長期、難以檢測且危害巨大的風險隱患。如俄烏爆發沖突以來,烏克蘭的境外部門、內政部和能源部等70多個政府網站遭受網絡攻擊,導致大部分網站癱瘓。隨后,烏克蘭重要軍事、政府、教育和金融等關鍵信息基礎設施部門再次遭受大規模網絡攻擊,被迫臨時切斷互聯網。
2.供應鏈安全
軟件系統運行依賴多個供應商提供的軟、硬件設備和技術。如果在供應鏈其中某個環節插入隱蔽的惡意代碼,例如硬件的底層代碼、軟件第三方庫等,在構造條件得以觸發的情況下,便可以達到攻擊目的。近年來,多次大型網絡攻防演練活動中都暴露出網絡設備廠商、辦公軟件供應商等存在嚴重的安全漏洞問題,緩解軟件供應鏈問題刻不容緩。如2023年3月,安全研究人員發現互聯網語音協議交換機廠商IPBX開發的VoIP桌面客戶端因供應鏈攻擊導致用戶系統信息被非法收集并竊取大量數據,造成了嚴重的敏感數據泄露事件。
二、DevSecOps軟件開發模型
DevSecOps概念最初從DevOps(軟件開發和運維)中演化而來,強調將系統安全性融入DevOps流程,通過軟件生命周期中持續集成和交付流程作為核心,采用自動化的安全測試和反饋機制,突出持續性的安全監控、檢測和營造安全培訓文化建設等特點,得到業內廣泛關注和實踐。
(一)DevSecOps主要優勢
DevSecOps本質上是一種軟件開發指導思想,提倡將安全性融入軟件開發和運維流程,其主要優勢在于將軟件系統的安全性提前納入軟件開發需求設計階段,降低大量修復成本和風險,并通過持續的安全監控和改進,自動化的工具和流程實時監控、檢測網絡攻擊行為。
(二)DevSecOps最佳實踐
在實現DevSecOps框架過程中有一些可以參考的策略和方法如下:將安全左移在軟件需求和設計階段,通過威脅建模方法識別潛在安全風險,并設計安全防范措施。結合使用自動化安全測試工具,包括靜態代碼安全測試工具(SAST)和動態應用安全測試工具(DAST),進行代碼審查和安全監控。進行持續性監控,以確保軟件安全性能。
三、基于DevSecOps實踐系統軟件開發策略
DevSecOps軟件開發模型憑借其快速迭代、持續交付/持續集成(CI/CD)和安全性等特點(如圖2所示),能夠將安全需求融入整個軟件生命周期中,從而進一步提高軟件開發的效率和系統的安全性。在前期分析調研軟件需求之后,對引用庫、第三方代碼等依賴環境進行隔離和安全掃描,然后才將其導入開發環境或專用的私有倉庫中,以進行軟件開發工作。在這個過程中,結合DevSecOps的實踐對于指導系統的軟件開發工作具有積極的意義[7-9]。
(一)軟件生命周期風險管理
在關鍵信息基礎設施軟件系統的生命周期管理中,保密性、機密性和可用性的需求推動了DevSecOps發展。通過將開發、安全和運維工作無縫結合,提供了一種策略和方法框架,以確保軟件開發和設計過程中的全面安全性。在這個背景下,威脅建模和風險應對措施成為關鍵,它們為保證系統安全性提供了重要的保障。微軟STRIDE威脅建模方法為開發人員提供了一個有效的工具,用于從各種不同的角度識別和理解可能會影響系統的各種威脅、攻擊和漏洞情況。通過欺騙性、篡改性、否認性、信息泄露、權限提升和權限升級等六大類別,為安全風險的全面識別和應對提供了框架。通過STRIDE方法,開發人員可以在軟件設計和開發過程中建立風險應對策略,這不僅可以幫助他們預防可能的安全問題,也能提高對已經發生問題的快速響應能力。
(二)建立標準化流程
關鍵信息基礎設施軟件系統的開發過程與傳統軟件開發過程相比,主要在開發方法和技術上有所不同。在關鍵信息基礎設施系統的開發中,需求往往更加明確和嚴格,同時對數據的標準格式和處理流程也有更高的要求。這些系統通常涉及關鍵的業務流程和服務,因此安全性、可靠性和穩定性是設計和實施過程中的首要考慮因素。此外,這些系統可能需要遵循特定的合規性標準,并在開發過程中考慮到業務連續性和災難恢復計劃。具體而言,關鍵信息基礎設施系統的開發需求往往基于具體的業務場景和嚴格的安全規定,而這些通常在開發工作啟動前就已被確切定義。因此,對開發團隊來說,充分理解并嚴格滿足這些預設需求是至關重要的。為此,組織通常會采取一系列措施:通過建立標準化的開發流程、對開發人員進行必要的前期培訓、推行統一的開發規范,并明確數據處理規則、安全協議、編碼標準以及項目流程,確保整個開發過程符合既定的標準和規范[10]。
(三)引入自動化工具
為了提高軟件交付效率并確保更高的安全性,開發團隊在軟件發布和測試環節中引入了靜態安全測試(SAST)和動態安全測試(DAST)這兩種關鍵的自動化測試工具。SAST工具在不需要運行代碼的情況下進行分析,通常應用于編碼階段和集成階段,這有助于在開發早期就識別出潛在的代碼安全漏洞。而DAST工具則在應用程序的運行時執行測試,以發現可能在代碼實際運行中出現的安全缺陷。結合使用這兩種工具,不僅能夠顯著增強軟件的整體安全性,還能減少依賴人工審查的工作量,從而提升效率。DevSecOps推崇持續交付和持續集成的方法,這些方法支撐了軟件的快速迭代與發布。在遵循這一模式的軟件開發過程中,新的代碼更改被頻繁地推送到主代碼庫,并隨之進行構建和測試。這個過程確保了代碼更改在合并到主分支之前能夠得到即時的驗證。一旦代碼通過了所有必要的自動化測試,它便可以被自動或手動部署到生產環境中,這使得軟件可以迅速地向用戶交付并進行修復。
(四)加強安全管理要求
在關鍵信息基礎設施系統的運維管理中,人員安全管理職責占據了非常核心的地位。系統管理員需要實施一系列的策略和程序以維護和增強系統的安全性。這涉及主動防御和檢測預警機制的落實,風險識別和安全評估工作的開展,以及定期的網絡安全培訓和教育活動工作。其中,落實主動防御和檢測預警機制,針對潛在的安全威脅和攻擊,提前部署必要的防御措施和預警系統,以便在系統受到攻擊或存在安全威脅時能夠及時發現并采取相應的應對措施。定期開展風險識別和安全評估工作,對系統可能面臨的風險進行持續評估,監控系統的運行狀態,并根據需要動態調整安全策略。
總的來說,運維管理工作在系統安全性維護中發揮著重要的作用。實施主動防御和檢測預警機制,開展風險識別和安全評估工作,以及舉辦網絡安全培訓和教育活動,可以有效地提高系統的安全性,保護關鍵信息基礎設施系統免受安全威脅和攻擊。
四、案例分析
根據公開資料顯示,2019年美國國防部(DoD)創新實驗室創建了基于DevSecops方法的統一平臺“Platform One”項目,利用現代化的軟件開發技術幫助各部門更快速更安全地開發部署軟件系統。主要組件包括以下三部分:
(一)DevSecops工作流
DevSecops工作流指一種軟件開發和部署的標準化過程,將安全性集成到軟件開發運維流程中,包括從軟件設計、開發測試到部署監控和維護的整個軟件生命周期。
(二)安全集成
Platform One平臺的安全集成組件主要用來將各類安全工具和安全規范要求整合到開發和運維階段,以滿足組織機構的安全需求。例如,通過集成安全掃描工具自動執行安全掃描和測試,并通過持續監控和響應機制以檢測安全事件。
(三)軟件工廠
軟件工廠提供了一套預配置的DevSecops工具和服務環境,為開發團隊提供各類軟件工具來快速啟動新項目,并通過標準化的工具和平臺極大地提高了軟件開發效率,同時能夠輔助及時發現、阻止安全事件的發生。2023年,美國政府公布了《國家網絡安全戰略實施計劃》,確立了“以攻為守”的網絡安全理念,建立可防御、有韌性、符合美國價值觀的數字生態系統愿景,奠定了保衛關鍵信息基礎設施是國家網絡安全戰略的核心目標。這一舉措同樣對我國完善自身網絡安全建設、管理方向和思路的發展具有很強的借鑒作用。
五、結束語
關鍵信息基礎設施的保護工作,需要以關鍵業務為核心整體防控,以風險管理為導向動態防護,以信息共享為基礎協防聯動。本文通過DevSecOps軟件開發模型為關鍵信息基礎設施運營者提供了開展網絡安全保護工作的指引和依據,對關鍵信息基礎設施系統軟件的安全開發、測試和運維工作起到了積極推動作用。
作者單位:王琦 上海萬達信息系統有限公司
參考文獻
[1] 郭啟全,張海霞.關鍵信息基礎設施安全保護技術體系[J].信息網絡安全,2020,20(11):1-9.
[2] 姚相振,王惠蒞.關鍵信息基礎設施安全標準化現狀及思考[J].中國信息安全,2021(09):36-37.
[3] 孔令泊,陳潔武.關鍵信息基礎設施安全防護研究[J].信息網絡安全,2020(S01):10-13.
[4] 徐楊子凡,蘭少鵬.關鍵信息基礎設施監測評估策略[J].信息技術與網絡安全,2019,38(6):21-25.
[5] 崔聰聰.網絡關鍵信息基礎設施范圍研究[J].東北師大學報:哲學社會科學版,2017(04):121-125.
[6] 肖鵬.關鍵信息基礎設施保護策略探究[J].產業與科技論壇,2021,20(11):215-216.
[7] 包莉娜,劉蓓,閆桂勛,等.關鍵信息基礎設施保護水平評價指標體系研究[J].信息安全研究,2019(06):507-513.
[8] 高煥新,高永前.關鍵信息基礎設施安全保護運營措施分析與建議[J].信息技術與網絡安全,2018,37(5):37-40.
[9] 趙昌志,劉玉嶺,陶源,等.關鍵信息基礎設施安全監測預警技術探析[J].中國信息安全,2022(09):44-47.
[10]畢婷,陳雪鴻,楊帥鋒.關鍵信息基礎設施保護工作思考[J].中國信息安全,2019(06):92-94.