軟體安全的心智圖,主要分為三大支柱,風險管理,7Touchpoint,相關知識,而所有均發展於軟體開發週期中(SDLC)。以下簡略說明三大支柱
一.風險管理:是軟體安全的核心要項,而風險分析亦是風險管理框架的中心,依據下圖所示,風險分析在一開始的業務需求和架構設計階段就開始實施,而後面再出現一次是測試階段,也就是依據之前所風險分析之結果進行測試。風險管理框架是一個循環的流程,如下圖右上所示:
- Step1.從一開始的對於客戶需求的詳細了解
Step2辨識此業務需求上會有哪些風險,例如購物網站上交易的安全風險
Step3辨識技術上的風險,例如Buffer Overflow,SQL injection等
Step4是將前兩的階段所辨識出來的風險做綜合與等級上的區分整理
Step5是決定降低風險的策略
Step6執行處置風險的策略
Step7確認風險處置是有效的
這是風險管理的步驟,而每個步驟亦有其各項措施不再此述,
二.Touchpoints:其中有七項分布在六個開發步驟(SDLC),如下圖左上所示,(每項上面所標示的數字表示其重要程度,不表示順序)
- 從客戶需求階段需要的重點
- Abuse Case:惡意使用的案例分析避免遭受惡意操弄
- Security Requirment:客戶系統的安全要求了解
- Risk Analysis:從商業上進行分析,引用風險管理的步驟,了解有哪些風險
- 軟體架構與設計
- Risk Analysis:從技術上進行分析,引用風險管理的步驟,了解有哪些風險
- 擬定測試計畫
- Risk-based Security Text:依據風險分析的結果擬定測試計畫
- 程式開發
- Code Review:利用工具進行原始碼檢測,如RATS,ITS4都是檢測工具,找出是否有不當的程式邏輯會造成bug
- 系統測試
- Risk Analysis:依據分險分析結果和測試計畫進行測試
- Penetration Text:對系統進行滲透測試,看是否有漏洞,通常會委由專人進行
- 回饋報告
- Penetration Text:對系統進行滲透測試,看是否有漏洞,通常會委由專人進行
- Security Operations:系統作業的安全
三.知識 :是支持整個軟體安全所需的基礎,分為三種類別七種類型的知識,如下圖右下所示
- 規則類
- Princlpies:安全的原則,模型等
- Guidelines:安全的指引
- Rules:安全的規則,標準等
- 特徵類
- Attack Patterns:攻擊的形式
- Vulnerabilities:應用系統,作業平台等弱點
- Exploites:可被攻擊利用的
- 歷史類
- Historical:過去的攻擊事件,漏洞,弱點等歷史資料
沒有留言:
張貼留言