您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么在整個DevOps中建立分層安全”,在日常操作中,相信很多人在怎么在整個DevOps中建立分層安全問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么在整個DevOps中建立分層安全”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
將我們的DevSecOps方法分成多層,可以在對強(qiáng)大安全性的需求與快速移動并經(jīng)常部署的需求之間找到適當(dāng)?shù)钠胶狻?/p>
DevOps運(yùn)動改變了我們集成和發(fā)布的方式。它使我們從緩慢的發(fā)行周期(有時是每年的發(fā)行周期)過渡到每天(有時甚至是每小時)發(fā)行。我們能夠編寫代碼并幾乎立即看到生產(chǎn)中的變化。DevOps是突破壁壘并支持對市場變化、客戶需求快速響應(yīng)的令人驚嘆的第一步,但是仍然需要打破一堵重要的壁壘,我們需要折中的一個重要群體:安全運(yùn)營(SecOps)。
為了在生產(chǎn)變更持續(xù)集成和部署(CI/CD)中包括這個至關(guān)重要的小組,我們將DevOps重新定義為DevSecOps。我們在這項(xiàng)工作中面臨的挑戰(zhàn)與在將開發(fā)和運(yùn)營整合在一起時所面臨的挑戰(zhàn)相同:開發(fā)人員希望快速行動并經(jīng)常進(jìn)行更改,而運(yùn)營則需要穩(wěn)定和不頻繁的更改。安全團(tuán)隊(duì)傾向于支持穩(wěn)定性和不頻繁的更改,因?yàn)楦目赡芤馕吨貜?fù)安全測試并再次對環(huán)境進(jìn)行認(rèn)證。
當(dāng)我們以DevOps的速度前進(jìn)時,我們?nèi)绾纹谕@些團(tuán)隊(duì)每天或每周重做他們的工作?
安全分層
在深入探討這個問題之前,我們應(yīng)該談?wù)勔环N關(guān)鍵的安全實(shí)踐:分層安全或深度防御。分層安全是一種應(yīng)用多種安全措施的實(shí)踐,每一層都與前一層和下一層重疊,以創(chuàng)建一個安全控制網(wǎng)絡(luò),這些網(wǎng)絡(luò)可以一起工作以保護(hù)技術(shù)系統(tǒng)。
在分層安全方法中,公司通過使用諸如WAN網(wǎng)關(guān)防火墻和靜態(tài)數(shù)據(jù)加密之類的訪問控制來減輕對技術(shù)系統(tǒng)的入侵??丶斜砗軓V泛,但要點(diǎn)是,沒有任何控件可以充分保護(hù)技術(shù)系統(tǒng)。同樣的方法適用于對我們的應(yīng)用程序執(zhí)行安全性分析。
與公司的應(yīng)用程序安全團(tuán)隊(duì)聯(lián)系,詢問他們使用哪些掃描工具來確保編寫的應(yīng)用程序安全??赡艿氖牵麄儾粫褂靡环N工具進(jìn)行答復(fù),因?yàn)闆]有一種工具可以全部完成。相反,他們可能會為您提供他們使用或期望開發(fā)團(tuán)隊(duì)使用的工具列表或工具類型。
這使我們回到了之前的問題:在進(jìn)行所有這些掃描并使用所有這些工具時,我們?nèi)绾纹谕S持一個持續(xù)的部署周期?這是一項(xiàng)艱巨的任務(wù)。其中一些掃描和工具需要花費(fèi)數(shù)小時,數(shù)天或更長時間。
內(nèi)聯(lián)掃描
盡管某些安全工具和掃描器確實(shí)需要很長的時間才能運(yùn)行,但仍有一些更快的工具可以在開發(fā)生命周期的早期使用,以形成我們的第一層DevSecOps。這就是左移背后的想法:將流程從開發(fā)生命周期的末尾(或右側(cè))移到開始或中間,即再向左移。
第一層應(yīng)包括需要幾秒鐘(或幾分鐘)運(yùn)行的工具和掃描程序。一些常見的示例是代碼lint,單元測試,SonarQube之類的靜態(tài)代碼分析器,OWASP Dependency Checker等第三方依賴項(xiàng)漏洞檢查,以及集成測試的子集。
您可能會問:“整理代碼和運(yùn)行單元測試如何適合DevSecOps?” 軟件中的錯誤可以為正在尋找的對手提供完美的解決方案。例如,OWASP在過去的兩個關(guān)鍵Web應(yīng)用程序安全報告(2013年和2017年) 中將代碼注入列為第一漏洞。單元測試和靜態(tài)代碼分析可以幫助捕獲我們的一些錯誤,并可能有助于防止代碼中的安全漏洞。
由于這些工具掃描只需要很少的時間,因此最好將它們推到開發(fā)生命周期中的最左側(cè)。當(dāng)開發(fā)人員將代碼推送到我們的Git存儲庫并打開請求時,這些工具和掃描程序?qū)⑦\(yùn)行以確保代碼在合并之前通過。除了確保我們的主干分支保持可構(gòu)建狀態(tài)外,在開發(fā)生命周期的早期就擁有這些工具還可以盡早且經(jīng)常向開發(fā)人員提供反饋。
部署前掃描
DevSecOps的第二層與我們的部署管道內(nèi)聯(lián)運(yùn)行的工具,需要幾分鐘甚至一小時才能完成。這可能包括更深入的第三方漏洞掃描,Docker鏡像掃描和惡意軟件掃描。
該層的關(guān)鍵之一是,掃描器和工具在生成構(gòu)建工件之后且在將它們存儲到Artifactory或Amazon Elastic Container Registry等任何位置之前都可以運(yùn)行。更重要的是,此層中的任何故障都應(yīng)立即停止當(dāng)前部署,并向開發(fā)團(tuán)隊(duì)提供反饋。
另一個關(guān)鍵是在這一層以及所有未來的層中實(shí)現(xiàn)并行化。開發(fā)人員希望盡快部署他們的更改,并且連續(xù)運(yùn)行多次掃描(每次掃描可能長達(dá)一個小時)會不必要地減慢部署周期。通過并行運(yùn)行這些工具,部署速度的降低等于運(yùn)行時間最長的掃描。
部署后掃描
DevSecOps的下一層包括在將代碼部署到預(yù)生產(chǎn)環(huán)境之后我們可以使用的工具和掃描程序。這些工具可能包括性能和集成測試以及應(yīng)用程序掃描程序,例如OWASP Zap。我們應(yīng)該努力使這一層快速運(yùn)行,希望在一小時或更短的時間內(nèi)運(yùn)行,以向開發(fā)人員提供快速反饋并限制對CD流程的影響。
為確保我們不會錯誤地將易受攻擊的代碼部署到生產(chǎn)中,此層應(yīng)作為CD管道的一部分運(yùn)行,目的是在任何掃描程序發(fā)現(xiàn)漏洞或以下情況時刪除工件,回滾環(huán)境。否則失敗。
根據(jù)行業(yè),安全性和法規(guī)要求,我們可以在此層成功完成后自動將部署到生產(chǎn)中。管道中應(yīng)該已經(jīng)有足夠的自動掃描和測試,可以合理地證明應(yīng)用程序的安全性和堅(jiān)固性。
持續(xù)掃描
我們討論的大多數(shù)掃描儀和工具都已嵌入CI/CD管道中。我們的目標(biāo)是在平衡這些工具對CI/CD管道的時間線的影響的同時,為應(yīng)用程序的安全性提供合理的保證。
DevSecOps的最后一層是持續(xù)續(xù)掃描或持續(xù)續(xù)安全性(CS)。正如持續(xù)集成,測試和部署是DevOps的代名詞一樣,持續(xù)安全性是DevSecOps的代名詞和基石。該層包括Nessus,Qualys,IBM App Scan等工具,以及其他基礎(chǔ)結(jié)構(gòu),應(yīng)用程序和網(wǎng)絡(luò)掃描工具。
CS并非嵌入在CI/CD管道中,而是作為異步的,并向開發(fā)人員提供持續(xù)的反饋。開發(fā)人員如何接收和響應(yīng)該反饋需要進(jìn)行討論和達(dá)成共識。開發(fā)人員將在收到任何反饋后立即對其進(jìn)行處理,并在較長的周轉(zhuǎn)時間內(nèi)解決。
這些工具和掃描程序的啟動方式以及運(yùn)行頻率是利益相關(guān)者應(yīng)同意CS的另一個方面。部署完成后,可以通過CI/CD管道啟動具有API的工具。其他可能根據(jù)需要或基于一定的時間節(jié)奏來完成。無論如何完成,重要的是這些工具和掃描儀不會僅運(yùn)行一次,甚至每年運(yùn)行一次或兩次。相反,這些工具和掃描儀應(yīng)盡可能頻繁地運(yùn)行,并應(yīng)對應(yīng)用程序有意義。
到此,關(guān)于“怎么在整個DevOps中建立分層安全”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。