當(dāng)今競(jìng)爭(zhēng)激烈的商業(yè)環(huán)境要求企業(yè)快速行動(dòng)并保持創(chuàng)新。因此,80%或更多的企業(yè)采用了敏捷開發(fā)方法。不幸的是,這種更高的開發(fā)速度為網(wǎng)絡(luò)犯罪分子帶來了幾個(gè)利用的機(jī)會(huì),特別是在軟件生命周期過程不安全的情況下。
那么,企業(yè)如何使敏捷開發(fā)實(shí)踐更具安全性呢?以下是信息安全論壇推薦的10條原則:
定義角色和職責(zé)
負(fù)責(zé)指導(dǎo)敏捷項(xiàng)目的高級(jí)領(lǐng)導(dǎo)必須明確定義安全活動(dòng)的角色和責(zé)任,這包括建立正式和非正式的報(bào)告渠道,以及項(xiàng)目管理行動(dòng),如上報(bào)協(xié)議、強(qiáng)制性會(huì)議和向安保團(tuán)隊(duì)報(bào)告項(xiàng)目狀態(tài)。這將有助于將安全嵌入到靈活的應(yīng)用程序開發(fā)中,同時(shí)促進(jìn)承諾、責(zé)任以及業(yè)務(wù)IT和安全代表之間的建設(shè)性關(guān)系。
投資于技能和培訓(xùn)
安全是一項(xiàng)團(tuán)隊(duì)職責(zé),每個(gè)開發(fā)人員都需要在確保代碼沒有安全漏洞方面發(fā)揮自己的作用。開發(fā)人員通常缺乏對(duì)安全問題的知識(shí)和理解,他們傾向于將軟件交付置于安全問題之上。為了增強(qiáng)開發(fā)人員的能力,企業(yè)必須在指導(dǎo)和提高技能方面投入資源,這包括安全培訓(xùn)和認(rèn)知課程、高級(jí)開發(fā)人員的指導(dǎo)、專門的敏捷安全培訓(xùn)活動(dòng),以及訪問免費(fèi)可用的資源,如OWASP、CWE、BSIMM(構(gòu)建成熟模型中的安全)、SAFECode和CERT。
應(yīng)用信息風(fēng)險(xiǎn)管理流程
從一開始就確保安全措施成本更低,效率更高,而不是事后事項(xiàng)。領(lǐng)導(dǎo)層必須建立有助于在整個(gè)開發(fā)生命周期中管理信息風(fēng)險(xiǎn)的流程。
這包括從安全角度商定高級(jí)別應(yīng)用程序架構(gòu)、確定“安全關(guān)鍵”應(yīng)用程序和功能的列表、執(zhí)行業(yè)務(wù)影響評(píng)估、在早期階段進(jìn)行信息風(fēng)險(xiǎn)和脆弱性評(píng)估,以及報(bào)告新確定的風(fēng)險(xiǎn)的流程。領(lǐng)導(dǎo)層應(yīng)該就誰擁有信息風(fēng)險(xiǎn)提供指導(dǎo),定義審查風(fēng)險(xiǎn)的流程,并確定如何做出風(fēng)險(xiǎn)管理決策。
使用開發(fā)人員的格式指定安全要求
使用開發(fā)人員的格式(用戶故事、軟件需求規(guī)范、故事映射、線框、角色和用例)來闡明安全需求,以便開發(fā)人員能夠更好地理解、定義和實(shí)現(xiàn)安全規(guī)范。
這使得安全需求可以被視為產(chǎn)品待辦事項(xiàng)中的功能需求,并將其轉(zhuǎn)換為任務(wù)(也稱為分解),將它們合并到需求管理工具中,并將它們包括在項(xiàng)目的生產(chǎn)力度量中。
進(jìn)行威脅建模
定期進(jìn)行威脅建模練習(xí),以了解應(yīng)用程序的安全環(huán)境,發(fā)現(xiàn)設(shè)計(jì)中不安全的方面,識(shí)別、分析威脅并確定威脅的優(yōu)先順序,發(fā)現(xiàn)用于攻擊應(yīng)用程序的最常見技術(shù)和方法(欺騙、篡改、拒絕服務(wù)、權(quán)限提升),確定哪些威脅需要額外的安全測(cè)試,最重要的是,制定策略和解決方案以主動(dòng)緩解每個(gè)威脅。
采用安全編程技術(shù)
要求開發(fā)人員利用已建立的安全編程技術(shù),例如重構(gòu)、持續(xù)改進(jìn)/持續(xù)開發(fā)(CI/CD)、同行評(píng)審、安全迭代和測(cè)試驅(qū)動(dòng)開發(fā)。
這改進(jìn)了應(yīng)用程序代碼的非功能質(zhì)量,并有助于消除允許利用安全漏洞的編程缺陷。安全編程技術(shù)還有助于指導(dǎo)在安全方法方面缺乏經(jīng)驗(yàn)的開發(fā)人員,使用AI或低代碼/無代碼等新技術(shù),開發(fā)復(fù)雜應(yīng)用程序的一個(gè)方面,集成第三方應(yīng)用程序,或滿足合規(guī)性要求。
執(zhí)行獨(dú)立的安全審查
讓獨(dú)立的審查者執(zhí)行靜態(tài)代碼分析(審閱源代碼,以分析應(yīng)用程序代碼中的錯(cuò)誤、錯(cuò)誤和漏洞)和動(dòng)態(tài)分析(檢查執(zhí)行期間的應(yīng)用程序行為,以確定異常或意外行為)。這為利益相關(guān)者提供了應(yīng)用程序滿足安全要求且不包含任何安全漏洞的保證。
自動(dòng)執(zhí)行安全測(cè)試
對(duì)于安全團(tuán)隊(duì)來說,手動(dòng)測(cè)試和評(píng)估每個(gè)敏捷迭代通常是不可行的,這就是有必要采用某種類型的自動(dòng)化來持續(xù)檢查應(yīng)用程序代碼的安全性以發(fā)現(xiàn)缺陷和漏洞的原因,確保安全相關(guān)任務(wù)一致且有條不紊地完成,分析安全事件,并減輕安全團(tuán)隊(duì)和開發(fā)人員的負(fù)擔(dān)。然而,一切都不可能是自動(dòng)化的,自動(dòng)化也不能完全取代人工測(cè)試,例如,一個(gè)人需要手動(dòng)檢查以確定邏輯缺陷。
在驗(yàn)收標(biāo)準(zhǔn)中包括安全性
創(chuàng)建、溝通和維護(hù)一套標(biāo)準(zhǔn)的安全驗(yàn)收標(biāo)準(zhǔn),以確認(rèn)已經(jīng)執(zhí)行了對(duì)應(yīng)用程序代碼的獨(dú)立審查,已經(jīng)完成了安全測(cè)試,合并到應(yīng)用程序中的代碼部分是可維護(hù)的、可跟蹤的,并且來自經(jīng)過驗(yàn)證的、信譽(yù)良好的來源,已經(jīng)成功地滿足了迭代積壓的要求,已經(jīng)解決了所有缺陷,包括安全漏洞,并且已經(jīng)識(shí)別和批準(zhǔn)了任何可能影響安全性的設(shè)計(jì)變更。
這有助于減少技術(shù)債務(wù),向利益相關(guān)者提供保證,并在應(yīng)用程序代碼交付之前驗(yàn)證安全驗(yàn)收標(biāo)準(zhǔn)已完全滿足。
評(píng)估安全性能
敏捷項(xiàng)目通常包括有限的安全性能評(píng)估,這使得企業(yè)很難確定其應(yīng)用程序的安全性是否符合業(yè)務(wù)要求。因此,企業(yè)必須根據(jù)一組商定的KPI來監(jiān)控和評(píng)估適當(dāng)?shù)陌踩笜?biāo)。
安全指標(biāo)可以包括安全漏洞的類型、數(shù)量和嚴(yán)重程度、獨(dú)立測(cè)試的結(jié)果、已批準(zhǔn)和未批準(zhǔn)的安全策略偏差的數(shù)量、未違反安全措施的時(shí)間長(zhǎng)度以及其他缺陷消除指標(biāo)。
如果你的開發(fā)是敏捷的,那么信息安全就必須效仿,這就是建議所有企業(yè)遵循上述安全原則和最佳做法的原因。安全的成功取決于各方(開發(fā)人員、項(xiàng)目經(jīng)理、執(zhí)行團(tuán)隊(duì)等)之間的協(xié)作和承諾程度。如果安全流程可以像編碼一樣進(jìn)行快速迭代和改進(jìn),那么只有這樣才能在當(dāng)?shù)靥峁└玫膽?yīng)用程序安全性和有效的更改。
關(guān)于企業(yè)網(wǎng)D1net(hfnxjk.com):
國(guó)內(nèi)主流的to B IT門戶,同時(shí)在運(yùn)營(yíng)國(guó)內(nèi)最大的甲方CIO專家?guī)旌椭橇敵黾吧缃黄脚_(tái)-信眾智(www.cioall.com)。同時(shí)運(yùn)營(yíng)19個(gè)IT行業(yè)公眾號(hào)(微信搜索D1net即可關(guān)注)。
版權(quán)聲明:本文為企業(yè)網(wǎng)D1Net編譯,轉(zhuǎn)載需在文章開頭注明出處為:企業(yè)網(wǎng)D1Net,如果不注明出處,企業(yè)網(wǎng)D1Net將保留追究其法律責(zé)任的權(quán)利。