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