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