DevSecOps 中的漏洞管理(上)

DevSecOps意味著在DevOps交付管道把安全性包含進(jìn)去。該模型盡可能早地將安全原則集成到軟件開發(fā)生命周期的所有適用階段中。下圖展示了安全方面在DevOps后期階段的集成,但DevSecOps安全性集成到生命周期的所有階段。

IT安全領(lǐng)導(dǎo)者應(yīng)該在他們的組織中采用有效的漏洞管理實(shí)踐來實(shí)施適當(dāng)?shù)腄evSecOps。
漏洞管理
漏洞管理是一種幫助組織識(shí)別、評(píng)估、確定優(yōu)先級(jí)并修復(fù)系統(tǒng)中漏洞的做法。最終,漏洞管理的目標(biāo)是通過使用修補(bǔ)、加固和配置管理等技術(shù)來降低漏洞帶來的風(fēng)險(xiǎn)。這有助于確保安全性,同時(shí)限制惡意用戶可能利用的風(fēng)險(xiǎn)。IT安全的主要職責(zé)是防范漏洞。我們都知道,安全漏洞可能代價(jià)高昂;根據(jù)Ponemon研究所和IBM進(jìn)行的聯(lián)合研究,每次數(shù)據(jù)泄露的平均成本為435萬美元,而85%的組織在2022年至少有一次數(shù)據(jù)泄漏。根據(jù)《2022年數(shù)據(jù)泄露報(bào)告》,以下是近年來十大數(shù)據(jù)泄露和十大數(shù)據(jù)泄漏屬性。


漏洞vs.利用vs.威脅
理解漏洞、威脅和利用之間的定義和關(guān)系非常重要。
漏洞(vulnerability)是代碼或軟件中的缺陷,為攻擊者提供了未經(jīng)授權(quán)訪問系統(tǒng)的途徑。在高層次上,漏洞可以分為兩種類型:
1.技術(shù)漏洞:與代碼相關(guān)的bug或錯(cuò)誤、配置不當(dāng)?shù)姆阑饓?、未打補(bǔ)丁或過時(shí)的操作系統(tǒng)或基礎(chǔ)設(shè)施等。
2.人的漏洞:人們有意或無意地犯錯(cuò)誤,并通過利用人類心理獲得數(shù)據(jù)、系統(tǒng)或包的訪問權(quán)限。
漏洞利用(exploit)是黑客利用漏洞的方法。利用漏洞攻擊是指一些惡意代碼,用來攻擊系統(tǒng)的漏洞。它可能會(huì)竊取信息,減慢/阻止系統(tǒng)運(yùn)行,或者成為服務(wù)器上的寄生蟲,在未來制造問題。例如,Log4Shell漏洞是Log4j程序允許用戶根據(jù)本應(yīng)打印在日志中的值執(zhí)行任意代碼的一個(gè)弱點(diǎn)。隨后實(shí)施了許多不同的漏洞利用,試圖以不同的方式使用此漏洞——其中一些漏洞利用允許您插入自己的代碼。相比之下,其他人暴露了軟件的私有環(huán)境變量。
威脅(threat)是指一個(gè)或多個(gè)漏洞利用漏洞發(fā)起攻擊的實(shí)際事件。
漏洞管理和DevSecOps組合
為了在DevSecOps項(xiàng)目中有一個(gè)良好的開端,在應(yīng)用程序開發(fā)的早期——最好是在開始編寫代碼之前——就集成安全目標(biāo)。安全可以集成,并且可以在項(xiàng)目的初始階段開始有效的威脅建模。當(dāng)開發(fā)人員在代碼進(jìn)入管道之前檢查代碼以識(shí)別任何問題時(shí),靜態(tài)分析篩選器和策略引擎可以隨時(shí)運(yùn)行。這有助于開發(fā)人員立即了解安全問題,使他們能夠處理安全問題的所有權(quán)。一旦在靜態(tài)應(yīng)用程序中檢查了代碼,就可以使用SAST(static analysis security testing,靜態(tài)分析安全測(cè)試)工具執(zhí)行安全測(cè)試,以識(shí)別漏洞并執(zhí)行軟件組合分析。應(yīng)該將SAST工具集成到提交后的過程中,以確保主動(dòng)掃描引入的新代碼以查找漏洞。因此,在軟件開發(fā)生命周期的早期集成SAST工具可以降低應(yīng)用程序漏洞風(fēng)險(xiǎn)。
在代碼構(gòu)建之后,就可以開始進(jìn)行安全集成測(cè)試。在一個(gè)獨(dú)立的容器沙盒中運(yùn)行代碼可以自動(dòng)測(cè)試網(wǎng)絡(luò)調(diào)用、輸入驗(yàn)證和授權(quán)等內(nèi)容。這些測(cè)試是DAST工具(dynamic application security testing,動(dòng)態(tài)應(yīng)用程序安全測(cè)試)的一部分。這些測(cè)試會(huì)生成即時(shí)反饋,從而能夠快速迭代以測(cè)試問題。如果發(fā)生意外的網(wǎng)絡(luò)調(diào)用或未經(jīng)凈化的輸入等情況,測(cè)試將失敗,管道將以通知相關(guān)團(tuán)隊(duì)的形式生成可操作的反饋。
訪問管理是需要與DevSecOps集成的下一個(gè)重要原則。我們需要確保應(yīng)用程序編寫相關(guān)的安全性和性能指標(biāo)。需要執(zhí)行角色工程,定義與每個(gè)角色相關(guān)的角色和訪問權(quán)限——需要定義標(biāo)準(zhǔn)的天生權(quán)利角色。
安全掃描和漏洞管理甚至在產(chǎn)品/項(xiàng)目投入生產(chǎn)后仍在繼續(xù)。我們需要確保通過適當(dāng)?shù)呐渲霉芾韺⒆詣?dòng)補(bǔ)丁應(yīng)用到產(chǎn)品的最新版本。確保產(chǎn)品運(yùn)行的是軟件及其代碼的最新穩(wěn)定版本。
