開發(fā)人員需要什么來對抗常見漏洞
當今的威脅形勢在不斷演變,現(xiàn)在每個部門的組織和企業(yè)比以往任何時候都更迫切需要始終如一地生產(chǎn)和維護安全軟件。雖然一些垂直行業(yè)——例如金融業(yè)——在一段時間內(nèi)一直受到監(jiān)管和合規(guī)要求的約束,但我們看到美國、英國和英國等最高級別政府對網(wǎng)絡安全最佳實踐的關注正在穩(wěn)步增加。澳大利亞最近都在強調(diào)在 SDLC 的每個階段進行安全開發(fā)的必要性。
盡管如此,攻擊者仍在不斷尋找新的方法來繞過最先進的保護和防御。例如,許多人已經(jīng)將他們的重點從交付惡意軟件轉(zhuǎn)移到破壞 API 或?qū)湴l(fā)起有針對性的攻擊。雖然這些高級別事件的發(fā)生頻率要高得多,但更簡單的攻擊(如跨站點腳本和 SQL 注入)也是如此,這兩種攻擊幾十年來一直是網(wǎng)絡安全防御的禍害。就在上個月,WooCommerce WordPress 插件中報告了一個嚴重的 SQL 注入漏洞,嚴重程度為 9.8/10。
越來越明顯的是,雖然網(wǎng)絡安全平臺和防御是防御現(xiàn)代攻擊的關鍵組成部分,但真正需要的是可以無漏洞部署的安全代碼。這需要有安全意識的開發(fā)人員采取行動,有意識地、堅定地提升安全編碼標準。
許多開發(fā)人員表示他們愿意擁護安全并致力于更高標準的代碼質(zhì)量和安全輸出,但他們不能單獨做到這一點。我們不能忽視開發(fā)人員在與常見漏洞作斗爭時的需求,他們需要合適的工具和培訓的支持,以及改造他們的雇主和組織通常用來評判他們的傳統(tǒng)指標。
為什么大多數(shù)開發(fā)人員尚未將安全放在首位
編碼最佳實踐多年來不斷發(fā)展,以響應業(yè)務需求和市場趨勢。過去,大多數(shù)應用程序都是使用所謂的瀑布開發(fā)模型創(chuàng)建的,在該模型中,軟件工程師努力讓他們的代碼準備好滿足一系列正在進行的里程碑或目標,然后再進入下一階段的開發(fā)。Waterfall 傾向于支持程序的開發(fā),這些程序已經(jīng)一路滿足了所有先前的里程碑,并且在為生產(chǎn)環(huán)境做好準備時沒有錯誤或操作缺陷。但按照今天的標準,它的速度慢得令人痛苦,有時從開始一個項目到到達終點線之間需要 18 個月或更長時間。如今,這在大多數(shù)公司都行不通。
敏捷方法傾向于取代瀑布方法,更加強調(diào)速度。緊隨其后的是 DevOps,它通過將開發(fā)和運營結合在一起來提高速度,以確保程序幾乎在完成最終開發(fā)調(diào)整后就可以投入生產(chǎn)。
隨著業(yè)務環(huán)境的發(fā)展,將速度置于安全之上,以及功能之外的幾乎所有其他方面都是必要的。在基于云的世界中,每個人都始終在線,數(shù)以百萬計的移動交易每隔幾秒鐘就會發(fā)生一次,盡快部署軟件并進入持續(xù)集成和持續(xù)交付 (CI/CD) 管道是關鍵任務對于企業(yè)。
這并不是說組織不關心安全性。只是在大多數(shù)行業(yè)存在的競爭激烈的商業(yè)環(huán)境中,速度被認為更為重要。能夠達到這種速度的開發(fā)人員蓬勃發(fā)展,以至于它成為判斷他們工作績效的主要手段。
現(xiàn)在高級攻擊正在急劇增加,部署易受攻擊的代碼正成為一種負擔。這種偏好再次發(fā)生變化,安全性越來越成為軟件開發(fā)的主要焦點,速度緊隨其后。事后加強安全性不僅危險,而且還會減慢軟件部署過程。這導致了DevSecOps方法的興起,該方法試圖將速度和安全性結合在一起以幫助生成安全代碼,并將安全性視為共同責任。但是,如果沒有組織的大力支持,受過純粹速度訓練的開發(fā)人員無法在功能上具備安全意識。
開發(fā)人員需要什么才能真正對減少漏洞產(chǎn)生影響
好消息是,大多數(shù)開發(fā)人員希望在開發(fā)過程中看到轉(zhuǎn)向安全編碼和重新確定安全性的優(yōu)先級。今年早些時候,Evans Data 對全球 1,200 多名積極工作的專業(yè)開發(fā)人員進行了一項綜合調(diào)查,絕大多數(shù)人表示他們支持創(chuàng)建安全代碼的概念。大多數(shù)人還希望它成為他們組織中的優(yōu)先事項。然而,只有 8% 的受訪者表示編寫安全代碼很容易實現(xiàn)。這在大多數(shù)組織的開發(fā)團隊中留下了很大的改進空間,在需要什么和達到目標所需要的東西之間。
簡單地要求安全代碼不會完成工作,如果不努力培養(yǎng)正確的技能和意識,這將對他們的工作流程造成高度破壞。開發(fā)團隊需要存在于培養(yǎng)他們的安全思維并促進共同責任文化的環(huán)境中。
最需要的是為他們提供更好的培訓,其次是幫助使安全編碼成為他們工作流程的無縫部分的工具。并且該程序應該是定制的,以便經(jīng)驗不足的開發(fā)人員可以通過學習如何識別經(jīng)常潛入代碼的常見漏洞類型來開始他們的培訓,并提供大量實踐學習和示例。同時,展示其安全技能的更高級開發(fā)人員可以承擔更復雜的錯誤甚至高級威脅建模概念的任務。
除了資助和支持培訓計劃,包括讓開發(fā)人員有足夠的時間遠離編碼以便正確參與這些計劃,組織還需要改變評估其隊列的方式。獎勵開發(fā)人員的主要指標需要從原始速度轉(zhuǎn)變。相反,評估可以獎勵那些能夠創(chuàng)建沒有漏洞或漏洞利用的安全代碼的人。是的,速度也可以是一個評估因素,但首要的是,代碼需要安全,現(xiàn)代開發(fā)需要開辟一條道路,讓速度安全不再是神話。
運送不安全或易受攻擊的代碼不應成為可接受的業(yè)務風險,事后加強安全性變得越來越無效。值得慶幸的是,對抗這種令人不安的趨勢的最佳武器是讓開發(fā)者社區(qū)生成攻擊者無法利用的安全代碼。大多數(shù)開發(fā)人員都愿意迎接這一挑戰(zhàn);給予他們支持以實現(xiàn)它。
注意 —本文由 Secure Code Warrior 的首席技術官兼聯(lián)合創(chuàng)始人 Matias Madou 撰寫和貢獻。