新的防禦方式在開發週期的運用

ecioforum發表於2011-04-15

本篇文章版權由ECFHP所有

作者:高朗

大家好,上次我們談到,如今的黑客攻擊主要利用軟體本身的安全漏洞,這些漏洞是由不良的軟體架構和不安全的編碼產生的。

基於這個原因,新的防禦方案孕於而生:Building Security In,構建安全的程式碼,構建安全的軟體。

構建安全的程式碼,構建安全的軟體,說起來是很簡單,但是如何做才能到呢?有沒有什麼捷徑?

其實構建安全的軟體沒有捷徑,軟體的生命週期大致包括:需求分析、設計、程式碼實現、系統測試、驗收測試、上線維護,如果說軟體的開發生命週期是一個大圓的話,那麼軟體安全就是這是這個圓中心的一個小圓,時刻伴隨著軟體開發過程,而且軟體安全的工作分佈在開發過程的每一個環節。

展開來看,具體到企業的各部門之間,開發人員在開發的初期解決安全問題,當然程式碼進入到版本管理中的後,安全人員在集中進行安全審查,發現問題後,再交給開發人員,並指導開發人員進行修改。當階段性版本釋出後由安全測試人員進行測試和驗證,保證所有的問題已經得到解決,然後釋出,交於安全運維人員進行上線時刻的監測和保護。整個過程中,管理人員進行協調資源,溝通,管理。

這整個的部署實施過程就是開頭給大家提到的Building Security In的理念,也就是軟體安全行業提出的,SDLC/SDL的理念。

 那如果將SDLC這個理念與我們實際的開發過程具體步驟有效地結合起來呢?軟體安全業界總結並提出了seven touchpoint, 七個切入點。

從軟體開發的;需求分析,架構設計,到編碼,測試及運維,每一個環節都有切入的工作。

如,需求分析階段,切入安全需求分析,就是對功能需求進行評定,看這個功能是否會引發安全隱患,還有我們對此係統的安全性的需求是什麼級別?

在架構設計階段,對軟體架構,和實現技術進行安全評估,找出架構和技術上的安全隱患。編碼階段,要對原始碼進行安全審查,查詢出原始碼中存在的安全隱患,等等。

直到運維,這裡每一個環節都要有一到兩個安全工作需要切入。那麼,這些安全工作如何在企業實施, 有沒有最佳實踐?從哪一個環節入手最好?良好的開端是成功的一半嘛!

第一步就是Code Review,程式碼審查,為什麼呢? 原因有兩個,一方面,程式碼審查比較簡單,也比較有有效,可以達到立稈見影的效果,同時也有較成熟的工具可以實現,比方說Fortify的原始碼掃描工具。另一方面,如果在開發軟體後面的階段或者軟體交付給使用者後才來處理、查詢和修改程式缺陷的話,會要花費更多成本。

本篇文章版權由ECFHP所有

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25389417/viewspace-692617/,如需轉載,請註明出處,否則將追究法律責任。

相關文章