SAMM 資訊安全軟體成熟度模型 – 驗證面
資訊安全驗證面分為三個子項目
Verification = Design Review + Code Review + Security Testing
這部分的驗證與測試多半與Quality Assurance部門比較有關
Design Review (DR)
DR 1 : 指出潛在被攻擊的點 + 分析資訊安全需求與設計的關係
DR 2 : 檢查資訊安全機制 + Design Review 結合到軟體開發過程中
DR 3: 針對敏感性的資料描繪出 data flow + 對於 design review 訂定出合格的標準
針對軟體的設計與架構進行評估。在架構上檢視是否會有潛在的資訊安全風險。
Code Review (CR)
針對程式碼進行評估驗證,就筆者公司為例,我們會依造不同語言程式碼,
用相對應的工具進行自動化程式掃描,
自動化程式掃描會根據程式弱點資料庫指出程式的弱點與需要改進的地方
CR1: Code review 檢核表 + 高風險的程式法做 code review
(Code Review checklist 應該要包含哪些要素呢? 這裡舉OWASP CheatSheet 為例,該 CheatSheet 提供一些建議,例如如何避免 SQL/XSS Injection等.
https://www.owasp.org/index.php/OWASP_Cheat_Sheet_Series)
CR2: 善用自動化分析工具 + 將程式碼分析整合到軟體開發流程中
自動化程式碼分析工具有很多,例如 Klocwork 或是 IBM AppScan等。
CR3: 針對應用程式進一步做相關分析 + 建立起產品出貨的品質標準
例如,有些公司會就定義透過自動化分析工具的掃描結果,每千行必須低於 2 個瑕疵。
Security Testing (ST)
ST1: 針對資訊安全需求設計測試個案 + 進行滲透式測試
ST2: 運用自動化測試工具 + 資訊安全測試至軟體流程中
ST3: 針對應用程式進行資訊安全自動化測試 + 建立資訊安全測試的出貨標準
這部分大部分由 QA執行,透過測試個案、各種工具的自動化、半自動化測試,
並針對資訊安全品質訂出出貨標準,哪一些測試個案一定要通過才能夠出貨。