發(fā)布于:2020-12-24 16:16:19
0
137
0
開源軟件越來越受歡迎。 Forrester Research最近的研究發(fā)現(xiàn),開源模型現(xiàn)在在應(yīng)用程序開發(fā)中占主導(dǎo)地位,而自定義編寫的代碼現(xiàn)在通常僅占大多數(shù)應(yīng)用程序的10%到20%。
隨著開源模型成為開發(fā)人員的實際標(biāo)準(zhǔn),人們對其安全性的關(guān)注也越來越突出。正如CIO在2017年所說的那樣,“各地企業(yè)的開源部署速度使軟件安全性受到質(zhì)疑。”在過去的十年中,這場辯論一直在不斷浮出水面,許多評論員聲稱,開源比專有代碼更安全或更安全。
實際上,可以使開源代碼與最嚴(yán)格開發(fā)的專有代碼一樣安全,但是為了實現(xiàn)這一點,開發(fā)人員需要制定同樣嚴(yán)格的防御計劃。這不僅對于防止代碼段中的安全漏洞很重要,而且對于您自己的理智也很重要:如果經(jīng)常要求您修復(fù)由黑客造成的損害,就很難避免倦怠。
在本文中,我們將貫穿四個核心原則,這些原則應(yīng)構(gòu)成任何開源項目防御計劃的基礎(chǔ)。
1.盤點你的倉庫
盡管使用開放源代碼的頻率很高,但事實是,許多開發(fā)人員無法列出他們當(dāng)前使用的所有開放源代碼組件。由于您無法確保未跟蹤的內(nèi)容的安全,因此保護系統(tǒng)的第一步必須是對正在運行的所有開放源代碼進行徹底的清點。在進行清單清點時,您還應(yīng)該記住所使用的組件具有依賴性,因此進行清單清點也很重要。
雖然對于喜歡的紙牌游戲來說,這種研究水平似乎有些過頭了,但在考慮通用支付處理功能的技術(shù)基礎(chǔ)時,它卻引起了更多的關(guān)注,近年來,這些功能已越來越依賴于更高水平的代碼。約會,計費,CRM軟件和許多其他功能也是如此。當(dāng)有缺陷的代碼危及小企業(yè)的底線或功能時,匆忙就變得更加嚴(yán)重。
此清單應(yīng)考慮軟件的各個方面。從根本上講,許多應(yīng)用程序都使用開源數(shù)據(jù)庫,但是這些系統(tǒng)在軟件中的高度集中性使其很容易被忽略。在堆棧的另一端,以客戶為中心的系統(tǒng)(例如約會提醒軟件)通常包含開源組件,即使這些軟件包是專有的。您的清單應(yīng)該徹底評估軟件的每個部分,甚至是最小的開源代碼。
2.映射關(guān)鍵漏洞
有了所有正在使用的開源代碼的列表,您可以使用公共資源,例如國家漏洞數(shù)據(jù)庫(NVD)來收集有關(guān)這些組件中已知漏洞的信息。 請注意,并非所有安全問題都會及時報告給NVD,因此您不應(yīng)依賴它作為唯一的信息來源。
您可以使用更多調(diào)查技術(shù)來補充NVD等公共系統(tǒng),利用論壇和行業(yè)報告來查找更多漏洞報告。 正如媒體所報道的那樣,從引人注目的數(shù)據(jù)泄露中甚至可以學(xué)到很多東西,因為即使是大公司也可能會遭受開源漏洞的侵害。
3.使用政策
使用策略對于保護開源代碼非常重要,但開發(fā)人員通常會忘記使用策略。使用策略是軟件文檔的關(guān)鍵部分,應(yīng)包含有關(guān)測試了哪些其他組件的詳細(xì)信息。它們可以確保用戶不要將其與其他未經(jīng)測試的軟件一起使用,從而幫助用戶確保組件的安全。理想情況下,開發(fā)人員應(yīng)與管理層緊密聯(lián)系,為發(fā)布的每個軟件設(shè)計嚴(yán)格,安全的使用策略,并且這些策略應(yīng)特別涵蓋訪問和身份驗證協(xié)議。
當(dāng)然,在開放源代碼環(huán)境中,您不能阻止最終用戶與您的軟件一起使用軟件或?qū)⒛扑]的組件替換為其他組件。但是,您還應(yīng)該認(rèn)識到,員工經(jīng)常嘗試使用未經(jīng)批準(zhǔn)的額外軟件來規(guī)避安全措施。有時這些軟件是直接的軟件騙局,有時它們只是不安全。如果您竭盡全力來確保自己軟件的安全性,那么還應(yīng)該鼓勵最終用戶使用經(jīng)過安全性測試的組件。
4.持續(xù)監(jiān)控
雖然常見的軟件和硬件漏洞列表本身很短,但這掩蓋了每年查明的原始漏洞數(shù)量。每年有3600多個開放源代碼漏洞的個體實例:每天將近100個。因此,您需要在防御計劃中建立持續(xù)監(jiān)控。持續(xù)監(jiān)控對于不同的開發(fā)人員和公司而言可能意味著各種各樣的事情。
有些將利用專用軟件來掃描公告中的新漏洞。其他人將僅每周查看一次新聞。但是,在所有情況下,持續(xù)監(jiān)視意味著您需要一個系統(tǒng)來完全捕獲所有漏洞的發(fā)生,即使對于幾年前發(fā)布的軟件也是如此。
實際上,監(jiān)視既應(yīng)在軟件開發(fā)過程中進行,也應(yīng)在軟件發(fā)布后至關(guān)重要地進行。修補新出現(xiàn)的漏洞與在開發(fā)過程中避免它們一樣重要。監(jiān)視也應(yīng)與管理團隊聯(lián)系進行,并且應(yīng)構(gòu)成產(chǎn)品開發(fā)過程的組成部分。盡管您的業(yè)務(wù)開發(fā)團隊可能會很好地構(gòu)思最新流行的在線業(yè)務(wù)的變體,但可能幾乎不知道這些因素如何影響您已經(jīng)安裝(或開發(fā)中)的軟件的安全性。在每個新產(chǎn)品發(fā)布之前進行風(fēng)險評估,可以幫助避免以后出現(xiàn)問題。
學(xué)習(xí)
上面所有步驟都是開源軟件開發(fā)任何防御計劃的關(guān)鍵組成部分。 此外,它們不僅適用于開發(fā)人員和安全團隊。 有效的防御計劃需要各個組織級別的投入:不僅是開發(fā)人員,而且還包括管理人員和最終用戶。
這種組織集成是2020年網(wǎng)絡(luò)安全的關(guān)鍵部分,因為它允許將安全性內(nèi)置到每個軟件的概念化,開發(fā)和持續(xù)維護的每個階段。 因此,這種類型的組織聯(lián)絡(luò)是DevSecOps的重要組成部分,DevSecOps是一種相對較新的網(wǎng)絡(luò)安全方法,試圖將開發(fā)流程與運營業(yè)務(wù)功能結(jié)合起來。
這可能是您目前工作方式的重大變化。 但是,正如我們之前指出的那樣,在2020年成為一名開發(fā)人員就是要擁抱變革并保持敏捷。 換句話說,這是關(guān)于學(xué)習(xí)方法的知識。