DevSecOps 中的漏洞管理(上)

DevSecOps意味着在DevOps交付管道把安全性包含進去。該模型儘可能早地將安全原則集成到軟件開發生命週期的所有適用階段中。下圖展示了安全方面在DevOps後期階段的集成,但DevSecOps安全性集成到生命週期的所有階段。


IT安全領導者應該在他們的組織中採用有效的漏洞管理實踐來實施適當的DevSecOps。

漏洞管理

漏洞管理是一種幫助組織識別、評估、確定優先級並修復系統中漏洞的做法。最終,漏洞管理的目標是通過使用修補、加固和配置管理等技術來降低漏洞帶來的風險。這有助於確保安全性,同時限制惡意用戶可能利用的風險。IT安全的主要職責是防範漏洞。我們都知道,安全漏洞可能代價高昂;根據Ponemon研究所和IBM進行的聯合研究,每次數據泄露的平均成本爲435萬美元,而85%的組織在2022年至少有一次數據泄漏。根據《2022年數據泄露報告》,以下是近年來十大數據泄露和十大數據泄漏屬性。

漏洞vs.利用vs.威脅

理解漏洞、威脅和利用之間的定義和關係非常重要。
漏洞(vulnerability)是代碼或軟件中的缺陷,爲攻擊者提供了未經授權訪問系統的途徑。在高層次上,漏洞可以分爲兩種類型:

1.技術漏洞:與代碼相關的bug或錯誤、配置不當的防火牆、未打補丁或過時的操作系統或基礎設施等。
2.人的漏洞:人們有意或無意地犯錯誤,並通過利用人類心理獲得數據、系統或包的訪問權限。

漏洞利用(exploit)是黑客利用漏洞的方法。利用漏洞攻擊是指一些惡意代碼,用來攻擊系統的漏洞。它可能會竊取信息,減慢/阻止系統運行,或者成爲服務器上的寄生蟲,在未來製造問題。例如,Log4Shell漏洞是Log4j程序允許用戶根據本應打印在日誌中的值執行任意代碼的一個弱點。隨後實施了許多不同的漏洞利用,試圖以不同的方式使用此漏洞——其中一些漏洞利用允許您插入自己的代碼。相比之下,其他人暴露了軟件的私有環境變量。

威脅(threat)是指一個或多個漏洞利用漏洞發起攻擊的實際事件。

漏洞管理和DevSecOps組合

爲了在DevSecOps項目中有一個良好的開端,在應用程序開發的早期——最好是在開始編寫代碼之前——就集成安全目標。安全可以集成,並且可以在項目的初始階段開始有效的威脅建模。當開發人員在代碼進入管道之前檢查代碼以識別任何問題時,靜態分析篩選器和策略引擎可以隨時運行。這有助於開發人員立即瞭解安全問題,使他們能夠處理安全問題的所有權。一旦在靜態應用程序中檢查了代碼,就可以使用SAST(static analysis security testing,靜態分析安全測試)工具執行安全測試,以識別漏洞並執行軟件組合分析。應該將SAST工具集成到提交後的過程中,以確保主動掃描引入的新代碼以查找漏洞。因此,在軟件開發生命週期的早期集成SAST工具可以降低應用程序漏洞風險。

在代碼構建之後,就可以開始進行安全集成測試。在一個獨立的容器沙盒中運行代碼可以自動測試網絡調用、輸入驗證和授權等內容。這些測試是DAST工具(dynamic application security testing,動態應用程序安全測試)的一部分。這些測試會生成即時反饋,從而能夠快速迭代以測試問題。如果發生意外的網絡調用或未經淨化的輸入等情況,測試將失敗,管道將以通知相關團隊的形式生成可操作的反饋。

訪問管理是需要與DevSecOps集成的下一個重要原則。我們需要確保應用程序編寫相關的安全性和性能指標。需要執行角色工程,定義與每個角色相關的角色和訪問權限——需要定義標準的天生權利角色。

安全掃描和漏洞管理甚至在產品/項目投入生產後仍在繼續。我們需要確保通過適當的配置管理將自動補丁應用到產品的最新版本。確保產品運行的是軟件及其代碼的最新穩定版本。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章