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