對于互聯網和科技企業來說,“天下武功唯快不破”的時代已經過去。今天,一次重大的算法、產品、數據、服務、內容安全事故就可能給企業帶來無法承受的財務、品牌損失甚至生存危機。沒有安全的敏捷,比沒有敏捷更加可怕。如何實現“敏捷安全”,正在成為所有“敏捷企業”的頭等大事。
在人工智能、5G、物聯網、云計算的助推下,全球經濟科技競爭日趨白熱化,企業的核心競爭力是不僅是持續創新,更強調快速行動和快速交付(迭代)。因此,全球超過80%的科技企業(以及很多傳統企業)已經開始踐行敏捷開發方法。不幸的是,產品和應用的快速開發和交付也為網絡犯罪分子提供了大量利用機會,特別是當軟件生命周期流程沒有得到足夠的安全防護時。
那么,企業如何使敏捷開發變得更加安全呢?以下是ISF推薦的10個原則:
一、定義角色和職責
負責指導敏捷項目的高級領導者必須明確定義安全活動的角色和職責。這包括建立正式和非正式的匯報線,以及項目管理行動,如升級安全協議、強制會議和向安全團隊報告項目狀態。這有助于將安全嵌入到敏捷開發中,同時培養業務IT和安全團隊之間的承諾、責任和建設性關系。
二、投資技能和培訓
安全是“全攻全守”的團隊運動,除了安全團隊外,所有企業員工應都對安全負責。每個開發者都需要確保代碼沒有安全漏洞。開發者經常缺乏對安全問題的認知和理解,他們傾向于優先考慮軟件交付而不是安全事務。為了賦予開發者權力,組織必須投資資源進行輔導、指導和提高技能。這包括安全培訓和意識課程、來自高級開發者的指導、專門的敏捷安全培訓活動,并經常訪問像OWASP、CWE、BSIMM、SAFECode和CERT這樣的免費資源。
三、實施信息風險管理流程
實現“敏捷安全”需要從開發生命周期一開始就植入安全性,而不是試圖在完成后再添加。領導層必須推動建立覆蓋整個開發生命周期的信息風險管理流程。這包括從安全角度達成高級應用架構的共識,確定“安全優先”的應用和功能列表,進行業務影響評估,在早期進行信息風險和脆弱性評估,以及報告新識別的風險的流程。領導層應該制定明確的信息風險問責機制,定義審查風險的流程,并確定風險管理決策方法。
四、用開發者能理解的方式制定安全要求
使用開發者的格式(用戶故事、軟件需求規范、故事映射、線框圖、角色和用例)來明確安全要求,以便開發者更好地理解、定義和實施安全規范。這使得安全要求被視為產品開發待辦事項中的功能要求,將安全要求轉化為任務,將它們納入需求管理工具,并將它們包括在項目的生產力指標中。
五、進行威脅建模
定期進行威脅建模練習,以了解應用的安全上下文,發現設計中不安全的部分,識別、分析和優先考慮威脅;發現最常見的攻擊技術和方法,識別哪些威脅需要額外的安全測試,最重要的是,提前制定策略和解決方案來緩解每個威脅。
六、采用安全編程技術
要求開發者采用成熟的安全編程技術,如配對編程、重構、持續改進/持續開發、同行評審、安全迭代和測試驅動的開發。這提高了應用代碼的非功能質量,并幫助消除可導致安全漏洞被利用的編程缺陷。此外,安全編程技術有助于引導不熟悉安全方法的開發者、并能顯著提升以下開發場景的安全性,例如應用新技術(如AI或低代碼/無代碼)、開發應用的復雜部分、集成第三方應用或滿足合規要求等。
七、進行獨立的安全審查
讓獨立的審查者進行靜態代碼分析和動態分析。這為產品和應用的所有利益相關者,包括監管部門和用戶,提供安全保證。
八、自動化安全測試
通常,安全團隊不可能手動測試和評估每個敏捷迭代,需要采用某種自動化方法,持續檢查應用代碼的安全性,確保安全相關任務始終能一致和有效地完成。此外,通過自動化安全測試分析安全事件還能減輕安全團隊和開發者的負擔。
九、在驗收標準中增加安全內容
十、評估安全性能
敏捷項目的安全評估通常并不充分,為了確保應用程序在生產環境中的性能不會受到安全控制的影響,必須進行全面的安全性能評估。這包括對應用程序進行壓力測試、負載測試和峰值測試,以確保它在各種條件下都能安全、穩定地運行。
總結
隨著敏捷開發方法的廣泛采納,應用安全問題變得越來越緊迫和重要。通過遵循上述10個原則,企業可以確保敏捷開發實踐快速和高效的同時安全可靠。安全不應被視為一個獨立的流程或任務,而應被整合到整個開發生命周期中,從需求收集到代碼部署,再到維護和更新。只有這樣,企業才能確保他們的應用程序不僅能滿足業務需求,而且能抵御各種網絡威脅,保護企業機密信息和用戶隱私數據,符合國家監管法規。
聲明:本文來自GoUpSec