如何使開發(fā)人員注重安全性
安全責(zé)任通常由最終用戶承擔(dān),而人們較少關(guān)注負(fù)責(zé)構(gòu)建產(chǎn)品的開發(fā)人員。
為了成功地將安全性推廣到開發(fā)人員,安全性必須易于部署。這是關(guān)于如何使安全成為最簡單的選擇,使構(gòu)建安全的應(yīng)用程序必須比構(gòu)建不安全的應(yīng)用程序更容易。
正如思科公司的Wendy Nather在2020年RSA主題演講中所說:“安全應(yīng)該被設(shè)計為被部署,而不僅僅是被設(shè)計來強制執(zhí)行。”
隨著越來越多人采用現(xiàn)代開發(fā)做法,開發(fā)人員被鼓勵負(fù)責(zé)其產(chǎn)品的發(fā)布管理生命周期。然而,應(yīng)用程序開發(fā)的快速步伐使得安全團(tuán)隊難以跟上其步伐,而且安全團(tuán)隊通常缺乏資源。安全團(tuán)隊很難及時為開發(fā)人員提供可訪問、適用和可操作的指導(dǎo)。最后,開發(fā)人員沒有獲得必要的安全指導(dǎo),這意味著部署的應(yīng)用程序通常存在安全漏洞。
然而,加劇這些挑戰(zhàn)的相同開發(fā)實踐也有助于推進(jìn)技術(shù)來解決這些問題。
基礎(chǔ)設(shè)施即代碼 (IaC) 就是這樣一種技術(shù)?,F(xiàn)代開發(fā)實踐使用IaC將應(yīng)用程序架構(gòu)定義為代碼,并自動部署這些架構(gòu)。通過使用IaC,只需更新代碼,應(yīng)用程序架構(gòu)就會變得更加安全和合規(guī)。IaC有助于為開發(fā)人員提供可訪問的、適用的和可操作的指南,指導(dǎo)他們的應(yīng)用程序架構(gòu)應(yīng)如何設(shè)計,以實現(xiàn)安全性。
安全民主化需要什么?
安全團(tuán)隊很少參與開發(fā)過程的早期階段。當(dāng)他們參與時,他們會遵循基于紙張的工作流程-在Word文檔或Excel工作表上。現(xiàn)代安全做法應(yīng)該在現(xiàn)代開發(fā)工作流程中采用自動化。這將使安全團(tuán)隊能夠查看整個應(yīng)用程序組合,盡早參與,并在通過IaC進(jìn)行更改時為開發(fā)人員提供指導(dǎo)。
為了讓開發(fā)人員擁抱安全,應(yīng)側(cè)重于確保安全指南適用于正在開發(fā)的產(chǎn)品或功能。開發(fā)人員通常會忽略或拒絕通用指南,因此指南必須清晰且具有相關(guān)性。
另外,開發(fā)人員和安全工程師并不是說同一種語言。對于開發(fā)人員來說,安全術(shù)語通常很復(fù)雜或無法訪問。因此,同樣重要的是,以易于開發(fā)人員理解的簡單術(shù)語提供重要的指導(dǎo)。
安全培訓(xùn)是安全民主化的另一個關(guān)鍵組成部分。良好的安全培訓(xùn)有助于開發(fā)人員了解安全概念,而他們無需成為安全專家。該策略還可以幫助開發(fā)人員更好地理解來自安全同行的指導(dǎo)。
開發(fā)團(tuán)隊和安全團(tuán)隊之間也應(yīng)該存在強大的反饋循環(huán)。由于提供安全指導(dǎo),反饋應(yīng)推動持續(xù)改進(jìn)。
我們?nèi)绾巫詣踊踩δ?
為了使安全成為阻力最小的途徑,我們需要制定安全要求,關(guān)于“什么”可訪問和適用,同時我們還需要幫助開發(fā)人員解決“如何”的問題。IaC構(gòu)建與如何使用代碼相關(guān)的指南。如果你可以自動化操作,那么安全性就會變得很簡單,方便開發(fā)人員部署。
當(dāng)最佳實踐通過代碼自動化時,開發(fā)人員無需成為安全專家。相反,開發(fā)人員只需要了解他們的業(yè)務(wù)用例以及他們圍繞安全性和合規(guī)性的目標(biāo)。了解他們的應(yīng)用程序的需求(他們的消費者是誰,應(yīng)用程序需要遵守哪些法規(guī)或標(biāo)準(zhǔn)等等)已經(jīng)是他們工作的一部分。使用這種方法,可消除很多通常阻礙民主化的摩擦和文化問題。
在代碼中自動化最佳實踐有助于改進(jìn)安全開發(fā)過程。我們正在接近一個臨界點,民主化的安全不僅是可能的,而且會加強開發(fā)人員和安全團(tuán)隊之間的關(guān)系。