在過去幾年中,在應(yīng)用程序平臺和第三方庫中發(fā)現(xiàn)的漏洞越來越引起人們對應(yīng)用程序安全性的關(guān)注,這給 DevOps 團(tuán)隊帶來了檢測和解決其軟件開發(fā)生命周期 (SDLC) 漏洞的壓力。
以 NVD(國家漏洞數(shù)據(jù)庫)為例,它跟蹤和記錄軟件供應(yīng)商發(fā)布和披露的所有重大漏洞。它發(fā)現(xiàn)在過去五年中發(fā)現(xiàn)的漏洞數(shù)量呈增長趨勢, 僅在 2021 年就記錄了驚人的 20,136 個漏洞(與上一年相比增加了 9.7%)。
同時,CISA(網(wǎng)絡(luò)安全和基礎(chǔ)設(shè)施安全局)指出,在隨著時間的推移記錄的所有漏洞中,威脅參與者目前正在利用 504。那么這一切對開發(fā)人員意味著什么,我們?nèi)绾尾拍芴岣?SDLC 的安全性呢?讓我們從基礎(chǔ)開始:
什么是 SDLC?
開發(fā)團(tuán)隊采用一種 SDLC 形式來構(gòu)建他們的流程并始終如一地獲得高質(zhì)量的結(jié)果。從這個意義上說,SDLC 只不過是一個定義構(gòu)建應(yīng)用程序過程的框架。它跨越了應(yīng)用程序的整個生命周期,從規(guī)劃到退役。
自傳統(tǒng)瀑布模型以來,出現(xiàn)了不同的 SDLC 模型,其中更健壯的 CI/CD 和敏捷模型在當(dāng)今流行度最高。但他們的目標(biāo)往往是相似的:盡可能快地生產(chǎn)出高質(zhì)量、低成本的軟件。
安全 SDLC (SSDLC) 如何工作?
安全軟件開發(fā)生命周期 (SSDLC) 將安全組件引入生命周期,從而為開發(fā)人員提供了一個框架,以 確保安全是軟件開發(fā)每個階段的考慮因素, 而不是事后考慮。這種方法可以防止稍后在生產(chǎn)環(huán)境中出現(xiàn)漏洞,從而降低修復(fù)它們的成本。
安全軟件開發(fā)生命周期示例定義了有助于在每個開發(fā)階段保護(hù)軟件的最低安全控制。每個階段都需要專門的安全測試工具和方法,并將繼續(xù)貫穿每個軟件版本的所有階段。
提高 SDLC 安全性的最佳實踐
安全 SDLC 實踐旨在解決共享的安全問題,包括:
- 修復(fù)軟件部署后修復(fù)成本高昂的反復(fù)出現(xiàn)的漏洞
- 設(shè)計和架構(gòu)中的安全問題
- 解決集成到更大系統(tǒng)中的組件內(nèi)的安全問題
順便說一句,讓我們看一些提高 SDLC 安全性的最佳實踐:
擁抱心態(tài)轉(zhuǎn)變
左移思維旨在將 傳統(tǒng)上在生命周期后期完成的安全實踐(例如測試組件)帶入開發(fā)的早期階段。換句話說,我們已經(jīng)從 DevOps 發(fā)展到 DevOpsSec,再到 DevSecOps—— 所有這些都是通過將“Sec”移到左邊來實現(xiàn)的。但言行一致需要的遠(yuǎn)不止這些。要完全接受左移心態(tài),請嘗試:
- 在 SDLC 中建立一個擁有跨不同領(lǐng)域的知識淵博的成員的團(tuán)隊
- 促進(jìn)整個組織內(nèi)各個團(tuán)隊之間的協(xié)作,以更全面地考慮安全性及其對您的業(yè)務(wù)意味著什么
- 考慮到威脅總是在不斷發(fā)展,您的安全優(yōu)先級和策略也應(yīng)該不斷改進(jìn)流程
使用具有常識的威脅建模
威脅建模是一個在 SDLC 可能的最早階段研究系統(tǒng)設(shè)計、它們?nèi)绾芜\(yùn)行以及數(shù)據(jù)如何在所有系統(tǒng)組件內(nèi)部和之間流動的過程,旨在識別所有可能的利用途徑。進(jìn)行威脅建模可確保架構(gòu)設(shè)計和開發(fā)能夠解決所有已識別的安全漏洞。
但是威脅建模通常需要相當(dāng)長的時間才能完成,因為它需要人工來確定所有可能的攻擊途徑。反過來,當(dāng) SDLC 的幾乎每個組件都是自動化的并且期望每個階段都能快速完成時,威脅建模可能會成為開發(fā)過程的瓶頸,新版本每兩到四周就會發(fā)布一次。因此,建議使用具有常識的威脅建模。雖然列出所有可能的攻擊途徑是件好事,但要提防陷入可能阻礙生產(chǎn)而不是支持和保護(hù)生產(chǎn)的兔子洞。
利用開源、開發(fā)人員優(yōu)先的工具
利用開源工具是降低成本同時確保您不會在安全性方面妥協(xié)的最簡單方法。但是,如果開發(fā)人員實際上不想使用便宜的工具,它又有什么用呢?
Teller 是開發(fā)人員的出色生產(chǎn)力秘密經(jīng)理,如果您正在尋找靈感,它支持云原生應(yīng)用程序和多個云提供商。它可以讓您在編碼、測試和構(gòu)建應(yīng)用程序時快速、輕松、安全地混合和匹配保管庫和其他密鑰存儲,并使用機(jī)密。
另一個值得注意的安全工具箱開源工具是 tfsec:一個靜態(tài)分析代碼掃描器,可以識別 Terraform 代碼模板中的潛在安全問題。
盡早檢查第三方組件造成的漏洞
第三方組件是開發(fā)人員在無需自己開發(fā)整個功能的情況下將附加功能引入其應(yīng)用程序的快速簡便的選擇。
盡管這些組件可能很便宜,但它們確實是有代價的:它們可能會間接地將漏洞引入應(yīng)用程序。因此,最好在您的安全評估中盡早檢查這些組件是否存在漏洞,然后再始終如一地檢查這些組件。
換句話說: 掃描一切! 掃描代碼、 配置、二進(jìn)制文件或代碼庫中的任何其他材料,以發(fā)現(xiàn)明顯可見和隱藏的問題。需要一些幫助嗎? 我們的掃描技術(shù) 與編程語言無關(guān),支持 500 多種不同的堆棧。
掃描所有軟件層的錯誤配置
當(dāng)今市場上可用的大多數(shù)安全錯誤配置檢測工具往往側(cè)重于掃描軟件基礎(chǔ)設(shè)施中的錯誤配置,但不涵蓋數(shù)據(jù)層和應(yīng)用程序框架層中存在的錯誤配置。我們的 DeepConfig 解決方案可填補(bǔ)這一空白。它提供端到端的軟件覆蓋,包括基礎(chǔ)設(shè)施、數(shù)據(jù)和應(yīng)用程序框架層。該工具用于在眾所周知的解決方案中搜索潛在的錯誤配置,例如:
- 基礎(chǔ)設(shè)施和數(shù)據(jù)層: Elastic、MySQL、Redis、Memcache 等。
- 應(yīng)用程序緩存層: Rails、Django 等。
結(jié)論性想法
最終,SDLC 的安全性將取決于 DevOps 團(tuán)隊可用的性能、動力、技能和工具。讓我們面對現(xiàn)實吧:DevOps 團(tuán)隊發(fā)現(xiàn)自己處于兩難境地,不得不以越來越快的速度工作,經(jīng)常過度緊張,還必須處理可能會降低性能的安全性 和合規(guī)性 問題。這是一個具有挑戰(zhàn)性的循環(huán)。這就是為什么我們在構(gòu)建安全解決方案時牢記開發(fā)人員的優(yōu)先事項,以幫助他們保持控制并確保他們的組織安全。我們尊重您的 CI,確保平均大小的存儲庫只需幾秒鐘即可掃描 CloudGuard Spectral。 檢查出來。