在這個流行語的背后,對于組織來說,探索DevSecOps是否有真正的需求和價值?理解為什么DevSecOps在當今這個安全漏洞橫行的時代如此重要,以及它對您的組織會有哪些實際的好處,這一點很重要。
它的名字:DevSecOps,一個集開發(fā)、安全和操作的混合詞,意味著你需要盡早引入安全性——作為您的組織所使用的全面的、敏捷的軟件開發(fā)生命周期(SDLC)的一部分,而不是重復地或等到發(fā)布之后才這樣做。
考慮到安全漏洞已經(jīng)成為了每天都能見到的新聞,開發(fā)人員再忽視安全編碼的嚴重性就沒有道理了。不過,這里有一個小秘密:由于顯而易見的原因,開發(fā)人員往往不是最注重安全性的人。這不是他們的首要職責。軟件開發(fā)人員的首要任務是構建一個應用程序,讓它很好地執(zhí)行預期的任務,有時候也許還要考慮總體的用戶體驗(UX)和滿意度。如果他們足夠勤奮,他們可能會將基本的“安全檢查”作為編碼過程的一部分--比如不盲目地信任用戶輸入并對其進行清理,但除此之外,開發(fā)人員可能并不單獨擁有足夠的帶寬或專業(yè)知識來將最優(yōu)秀的安全檢查整合到應用程序當中。
實話實說:盡管我在Sonatype從事過DevSecOps方面的工作,但在很長一段時間里,我都不明白這個流行詞到底是什么意思。我經(jīng)常問自己,“組織在這方面會有什么好處?這完全是一種營銷時尚嗎?”
隨著時間的推移,我觀察到行業(yè)中有一種趨勢和向上的推動,即實現(xiàn)某種內(nèi)在的“安全性”來作為其開發(fā)工作流程的一部分,下面是我能夠立即想到的5個好處。
1.盡早地發(fā)現(xiàn)漏洞和錯誤
雖然開發(fā)人員可能會在實現(xiàn)基本級別的安全檢查方面進行盡職調查,但是沒有人能夠知道在這個擁有數(shù)百萬存儲庫的巨大開源生態(tài)系統(tǒng)中,有多少軟件包包含著安全漏洞,以及在哪個版本當中。如果數(shù)量巨大,又沒有某種安全自動化,就不可能意識到這一點。
國家漏洞數(shù)據(jù)庫(NVD)是美國NIST的一個倡議,它絕不是一個全面或準確的清單,它剛剛在2018年突破了第10萬個漏洞,而且每天都有更多的漏洞被添加進來。這并不僅僅只是包括“安全漏洞”和發(fā)布在GitHub或ExploitDB上的問題。
支持某種自動化的集成開發(fā)服務解決方案或工作流可以幫助開發(fā)人員發(fā)現(xiàn)他們是否無意中使用了任何具有已知漏洞的開源庫,甚至是在他們開始對軟件項目的其余模塊進行編碼之前,就意識到他們需要重新開始。
2.更加自信地利用開源
由于開源社區(qū)傳統(tǒng)上歡迎“任何人”的貢獻,這也為惡意行為者的濫用打開了大門。2019年,多起惡意軟件偽裝成合法開源軟件包的報道被曝光了。雖然npm的代表能夠從他們的服務器上發(fā)現(xiàn)和“移除”這些組件,但這個過程并不總是很快。一個已經(jīng)在使用其中一個受損組件的毫無防備的開發(fā)人員將無法知道這一點,除非有一個自動工具能夠不斷掃描他們的項目并指出任何惡意的開源組件。這就是IDE集成解決方案可以將開發(fā)人員和整個組織從發(fā)布后可能出現(xiàn)的失誤和尷尬中拯救出來的地方。
3.節(jié)約資源管理成本
作為一名前軟件開發(fā)人員,我可以權威地反思“依賴項”在軟件開發(fā)過程中是如何構成問題的,并對工作流的其余部分進行批判性地塑造。通俗地說,如果應用程序需要特定庫依賴于另一個庫B,而這又進一步取決于另一個C庫的版本2——這會是脆弱的,因為這意味著您不能使用這三個庫中的任何一個,除非庫A和B支持庫C的非易受攻擊的版本3,前提是存在這樣一個版本。
你可以看到這會變得多么乏味。想象一下,你必須為大中型軟件項目接受20個或更多組件的潛在安全風險,或者探索其他的開源庫。
對于項目經(jīng)理和開發(fā)人員來說,提前掌握這些知識并能夠盡早評估風險意味著能夠從一開始就尋找更好的替代方案并設計更加安全的軟件,而不是等到發(fā)布之后才這樣做,因為在發(fā)布之后,漏洞評估可能會在未來暴露出一個關鍵性的漏洞。實際上,這便意味著能夠極大地節(jié)省工時和資源管理成本。
4.讓開發(fā)人員了解安全性
您的開發(fā)人員可能很忙,他們的任務是用代碼為您的用戶實現(xiàn)特定的功能。由于截止日期的限制,或者是開發(fā)人員自身也缺乏安全專業(yè)知識,安全性可能并不總是他們的首要任務。然而,在DevSecOps軟件解決方案中,不斷地“提醒”將某些組件排除在軟件構建之外,并提供可信的理由,這使得您的開發(fā)人員在每次看到這樣的警告時都會對安全性更感興趣也更加地清楚。
從長遠來看,這可能會習慣性地強化開發(fā)人員的思維模式,即完全避免使用在多個版本中都有安全缺陷的開源組件。
5.降低風險和法律責任
組織經(jīng)常說,“我們會認真對待你的安全和隱私”,但沒有多少人真正以此為生。如果他們這樣做了,當前頻繁的網(wǎng)絡安全漏洞環(huán)境也將不復存在了。不管怎樣,任何這樣的破壞性新聞都會嚴重影響一個組織的品牌聲譽,并可能導致潛在的訴訟和罰款。在軟件項目的每個方面都遵循安全實踐——即使是一個簡單的網(wǎng)站,也更有可能減少這種風險和影響,而這些風險和影響可能來自于對安全的自滿態(tài)度。
總之,從各個方面來看,從來沒有辦法知道你的應用程序或項目是否是完全安全的:畢竟,我們不能聲稱能夠預測或排除未知的風險。但是遵循DevSecOps術語所概括的最佳實踐和自動化可以極大地降低您從一開始就使用具有已知漏洞的軟件組件所帶來的風險。
版權聲明:本文為企業(yè)網(wǎng)D1Net編譯,轉載需注明出處為:企業(yè)網(wǎng)D1Net,如果不注明出處,企業(yè)網(wǎng)D1Net將保留追究其法律責任的權利。