敏捷開發(fā)的十大安全原則

對于互聯(lián)網(wǎng)和科技企業(yè)來說,“天下武功唯快不破”的時代已經(jīng)過去。今天,一次重大的算法、產(chǎn)品、數(shù)據(jù)、服務、內(nèi)容安全事故就可能給企業(yè)帶來無法承受的財務、品牌損失甚至生存危機。沒有安全的敏捷,比沒有敏捷更加可怕。如何實現(xiàn)“敏捷安全”,正在成為所有“敏捷企業(yè)”的頭等大事。

1.png

本文來自微信公眾號“GoUpSec”。

對于互聯(lián)網(wǎng)和科技企業(yè)來說,“天下武功唯快不破”的時代已經(jīng)過去。今天,一次重大的算法、產(chǎn)品、數(shù)據(jù)、服務、內(nèi)容安全事故就可能給企業(yè)帶來無法承受的財務、品牌損失甚至生存危機。沒有安全的敏捷,比沒有敏捷更加可怕。如何實現(xiàn)“敏捷安全”,正在成為所有“敏捷企業(yè)”的頭等大事。

在人工智能、5G、物聯(lián)網(wǎng)、云計算的助推下,全球經(jīng)濟科技競爭日趨白熱化,企業(yè)的核心競爭力是不僅是持續(xù)創(chuàng)新,更強調(diào)快速行動和快速交付(迭代)。因此,全球超過80%的科技企業(yè)(以及很多傳統(tǒng)企業(yè))已經(jīng)開始踐行敏捷開發(fā)方法。不幸的是,產(chǎn)品和應用的快速開發(fā)和交付也為網(wǎng)絡犯罪分子提供了大量利用機會,特別是當軟件生命周期流程沒有得到足夠的安全防護時。

那么,企業(yè)如何使敏捷開發(fā)變得更加安全呢?以下是ISF推薦的10個原則:

一、定義角色和職責

負責指導敏捷項目的高級領導者必須明確定義安全活動的角色和職責。這包括建立正式和非正式的匯報線,以及項目管理行動,如升級安全協(xié)議、強制會議和向安全團隊報告項目狀態(tài)。這有助于將安全嵌入到敏捷開發(fā)中,同時培養(yǎng)業(yè)務IT和安全團隊之間的承諾、責任和建設性關系。

二、投資技能和培訓

安全是“全攻全守”的團隊運動,除了安全團隊外,所有企業(yè)員工應都對安全負責。每個開發(fā)者都需要確保代碼沒有安全漏洞。開發(fā)者經(jīng)常缺乏對安全問題的認知和理解,他們傾向于優(yōu)先考慮軟件交付而不是安全事務。為了賦予開發(fā)者權力,組織必須投資資源進行輔導、指導和提高技能。這包括安全培訓和意識課程、來自高級開發(fā)者的指導、專門的敏捷安全培訓活動,并經(jīng)常訪問像OWASP、CWE、BSIMM、SAFECode和CERT這樣的免費資源。

三、實施信息風險管理流程

實現(xiàn)“敏捷安全”需要從開發(fā)生命周期一開始就植入安全性,而不是試圖在完成后再添加。領導層必須推動建立覆蓋整個開發(fā)生命周期的信息風險管理流程。這包括從安全角度達成高級應用架構的共識,確定“安全優(yōu)先”的應用和功能列表,進行業(yè)務影響評估,在早期進行信息風險和脆弱性評估,以及報告新識別的風險的流程。領導層應該制定明確的信息風險問責機制,定義審查風險的流程,并確定風險管理決策方法。

四、用開發(fā)者能理解的方式制定安全要求

使用開發(fā)者的格式(用戶故事、軟件需求規(guī)范、故事映射、線框圖、角色和用例)來明確安全要求,以便開發(fā)者更好地理解、定義和實施安全規(guī)范。這使得安全要求被視為產(chǎn)品開發(fā)待辦事項中的功能要求,將安全要求轉(zhuǎn)化為任務,將它們納入需求管理工具,并將它們包括在項目的生產(chǎn)力指標中。

五、進行威脅建模

定期進行威脅建模練習,以了解應用的安全上下文,發(fā)現(xiàn)設計中不安全的部分,識別、分析和優(yōu)先考慮威脅;發(fā)現(xiàn)最常見的攻擊技術和方法,識別哪些威脅需要額外的安全測試,最重要的是,提前制定策略和解決方案來緩解每個威脅。

六、采用安全編程技術

要求開發(fā)者采用成熟的安全編程技術,如配對編程、重構、持續(xù)改進/持續(xù)開發(fā)、同行評審、安全迭代和測試驅(qū)動的開發(fā)。這提高了應用代碼的非功能質(zhì)量,并幫助消除可導致安全漏洞被利用的編程缺陷。此外,安全編程技術有助于引導不熟悉安全方法的開發(fā)者、并能顯著提升以下開發(fā)場景的安全性,例如應用新技術(如AI或低代碼/無代碼)、開發(fā)應用的復雜部分、集成第三方應用或滿足合規(guī)要求等。

七、進行獨立的安全審查

讓獨立的審查者進行靜態(tài)代碼分析和動態(tài)分析。這為產(chǎn)品和應用的所有利益相關者,包括監(jiān)管部門和用戶,提供安全保證。

八、自動化安全測試

通常,安全團隊不可能手動測試和評估每個敏捷迭代,需要采用某種自動化方法,持續(xù)檢查應用代碼的安全性,確保安全相關任務始終能一致和有效地完成。此外,通過自動化安全測試分析安全事件還能減輕安全團隊和開發(fā)者的負擔。

九、在驗收標準中增加安全內(nèi)容

創(chuàng)建、溝通并維護一套標準的安全驗收標準,以確認:

對軟件代碼進行了獨立審查。

已完成安全測試。

納入應用的代碼(包括開源代碼)是可維護的、被跟蹤的,并且來自經(jīng)過驗證的、有聲譽的來源。

已成功滿足迭代待辦事項中的要求。

已解決所有缺陷和漏洞,并且已經(jīng)對所有已知的安全問題進行了評估和處理。

十、評估安全性能

敏捷項目的安全評估通常并不充分,為了確保應用程序在生產(chǎn)環(huán)境中的性能不會受到安全控制的影響,必須進行全面的安全性能評估。這包括對應用程序進行壓力測試、負載測試和峰值測試,以確保它在各種條件下都能安全、穩(wěn)定地運行。

總結

隨著敏捷開發(fā)方法的廣泛采納,應用安全問題變得越來越緊迫和重要。通過遵循上述10個原則,企業(yè)可以確保敏捷開發(fā)實踐快速和高效的同時安全可靠。安全不應被視為一個獨立的流程或任務,而應被整合到整個開發(fā)生命周期中,從需求收集到代碼部署,再到維護和更新。只有這樣,企業(yè)才能確保他們的應用程序不僅能滿足業(yè)務需求,而且能抵御各種網(wǎng)絡威脅,保護企業(yè)機密信息和用戶隱私數(shù)據(jù),符合國家監(jiān)管法規(guī)。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論