代碼安全:從響應式安全轉向主動式安全
漏洞界二八定律,過去20多年來的絕大多數安全事件都是頭部那10個軟件漏洞造成的。然而,很多企業仍然選擇事后補救,得過且過地承受安全事件造成的人員和業務后果。不過,當前一項新的研究為我們指明了由人主導的新方向。
以下討論見解源于Secure Code Warrior與Evans DataCorp進行的一項研究,題為《從響應轉向預防:轉變中的應用安全》,旨在探索開發人員對于安全編碼、安全代碼實踐和安全操作的態度。
研究中,開發人員和開發經理被問及他們最常用的安全編碼實踐。以下三種方法最為突出:
- 在部署之后掃描應用,找出異常或漏洞
- 仔細審查編寫的代碼,檢查是否存在異常或漏洞
- 重用之前通過審查確認安全的代碼
開發人員仍將安全代碼實踐視為主動式操作,但逐漸開始承認這是個重點在從左側開始的人的問題。
我們能從研究結果中看出什么呢?三大常見安全編碼實踐中有兩種都依然重在響應式方法,第一種依賴工具(掃描器),第二種依賴開發人員(即人的因素)執行人工檢查:兩種情況都是在代碼已經寫好之后。采用這些方法檢測到的漏洞都得踢回開發團隊返工,對項目時間線和項目成本產生連鎖反應。
排第三的常見安全編碼實踐則是認識到了主動編寫安全代碼,在第一時間避免漏洞的好處。這一操作凸顯了向從左開始的轉變,這種預防性的主動式方法在軟件開發周期伊始就將安全內置到軟件中了。
響應式就是昂貴的代名詞
IBM的研究表明,修復已發布代碼中的漏洞比在一開始就發現并修復漏洞要多貴30倍。巨大的價差有力刺激了業界采用更注重人的主動式軟件安全防御方法,開發人員可以使用這種方法從一開始就編寫更加安全的代碼。
這就是所謂由人主導的防御。但要令開發人員開始關注安全,安全就必須成為他們日常思考和編程的一部分。這需要拿出與開發人員的日常工作高度相關的新型培訓方法,激勵他們主動學習,而當前培訓模式與開發人員的日常工作相關度不高,且無法促使他們主動學習。
為創建主動安全文化,新型培訓模式應當:
- 讓安全編碼成為開發人員提升軟件安全技能過程中極具吸引力的積極體驗
- 鼓勵開發人員用安全思維審視自己的日常編碼工作
- 使安全編碼成為開發人員日常工作流程的固有特質
做到以上幾點,可以從一開始就防止漏洞出現,讓團隊能夠信心滿滿地快速拿出品質代碼。閱讀完整報告可以了解轉變中的軟件安全,獲悉關于企業如何阻止漏洞反復出現,并在整個SDLC中體驗安全文化積極轉變的分析與建議。學習怎樣:
- 確保從SDLC一開始就考慮安全因素
- 采取由人主導的方法安全編碼
- 杜絕不良編碼實踐,收獲良好結果