資訊安全 – 開發面
延續 SAMM (Software Assurance Maturity Model ),專案開發需要注意哪些項目呢?
開發的過程主要參予的人員不外乎為研發團隊 (project managers, RD/QA)
根據 SAMM 的建議,開發的過程中,在資訊安全的部分,主要有下列三個方向可以考慮:
1. Threat Assessment (TA) 風險評估
2. Security Requirements (SR) 資訊安全需求
3. Secure Architecture (SA) 資訊安全架構
接這讓我們分別看這三個方向,有哪一些具體的工作要執行
1. Threat Assessment (TA) 風險評估
每個軟體系統在執行時,潛在所可能帶來的風險為何?
例如:該系統在做密碼傳輸時,是否有加密? 是否有被中途截取或是修改的可能性?
TA 又分為三個階段
- TA 1: 建立適當的威脅模型 (例如:登入的功能,潛在的威脅有密碼明文傳送、密碼cookie被盜用等..) + 建立駭客攻擊的模型
- TA2: 建立潛在可能被濫用的模型 + 將威脅的類型案權重計算
- TA3: 評估第三方工具使用的安全威脅 + 威脅模型與資訊安全控制
以筆者公司為例,我們會針對每個產品所使用的 library,
去檢查是否有已知的 CVE (Common Vulnerability Exploit),
如果有重大的CVE,就必須要針對該 lib做更新
2. Security Requirements (SR) 資訊安全需求
這點指的是軟體的功能應該如何達到資訊安全的需求
例如:密碼的複雜度,至少為8個字元。其中必須包含英文與數字等。
- SR1: 從功能面定義資訊安全需求(例如密碼強度) + 評估資訊安全準則的需求 (例如:電子商務網站就必須符合PCI規範)
- SR2: 建立控制的機制 + 針對已知的風險建立資訊安全需求(例如:敏感性資料一律用HTTPS/SSL加密的方式傳輸)
- SR3: 將資訊安全規範導入至上下游供應商 + 資訊安全稽核
由於有些公司的軟體或是開發工作為外包,所以就必須將這樣的資訊安全需求列入考量
相關的資訊安全稽核也應該包含軟體需求分析的階段。
例如:密碼的強度的規範、資料的加密傳輸、權限的管理、非法字元的檢查等。
3. Secure Architecture (SA) 資訊安全架構
整體的資訊安全架構,
例如:帳號密法的驗證,都透過 Active Directory 整合方式進行。
例如:資料的傳輸都是透過 SSL / HTTS 等