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