|
我們必須把應用程序的安全性整合到軟件開發(fā)的過程中。之后在測試中才關注安全性是不夠的,因為對于修改錯誤來說,那太遲了,而且非常昂貴。微軟的Steve Lipner在上周舉行的RSA大會2011上發(fā)表了關于應用程序安全性的演講,其中談到在軟件開發(fā)生命周期中的安全性。他向大家介紹了微軟創(chuàng)建的安全性開發(fā)生命周期過程,其中包括以下階段:
- 安全性培訓
- 需求分析
- 設計
- 實現(xiàn)
- 驗證
- 發(fā)布
- 反饋
另外,SDL框架還有一個敏捷的版本,它支持把安全性因素整合到敏捷開發(fā)過程中。敏捷過程中的安全性需求可以歸為三類:
- 每次Sprint(Every-Sprint):這些是高優(yōu)先級和重要的安全性需求,我們可以使用像威脅建模之類的技術來識別它們。
- 一次(One-time):這類需求包括架構(gòu)和策略上的需求,像決定編譯器的版本或者設置缺陷跟蹤數(shù)據(jù)庫等等。
- 大量(Bucket):這類需求包括長期運行或者可以暫緩的需求。比方說文件或者ActiveX fuzzing。
其他演講者也在會上談到了提高應用程序安全性的技術。Alberto Revelli(Cigital)討論了安全設計原則,像黑名單和白名單、內(nèi)存級別和主機級別上的保護、安全的互操作性、最小權限原則以及區(qū)域分割(compartmentalization)等等。
Brian Chess和Jacob West(都來自于Fortify)談到了關于安全編碼技術。現(xiàn)在已經(jīng)有多種安全缺陷的分類列表,像OWASP Top 10、七種致命錯誤(Seven Pernicious Kingdoms)、常見弱點列表(CWE)、Sans Top 25以及常見易受攻擊點評分系統(tǒng)(CVSS)等等,各個組織可以使用它們來管理應用程序中的安全弱點。Jacob對其中的一些弱點給出了示例,像跨站點腳本攻擊(XSS)、跨站點偽造請求(CSRF)、HTTP響應分割、會話固定攻擊以及SQL注入攻擊等等。Brian推薦了一些安全編碼原則,像默認做出良好的驗證、在應用程序的不同層之間發(fā)布信任邊界、間接選擇以及白名單等等。
Chris Eng(Veracode)說明了各種不同的安全測試方法,像靜態(tài)、動態(tài)、手動的測試以及其中的細節(jié),另外還談到了各種方式的強度和局限性。Reeny Sondhi(EMC公司)也對她的公司中所使用的缺陷響應程序做了概述。
查看英文原文:Security in the Software Development Lifecycle
it知識庫:軟件開發(fā)生命周期中的安全性,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。