資訊安全的軟體開發流程 – 開發面

SAMM Construction

資訊安全  – 開發面

延續 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 等

 

Leave a Reply

Your email address will not be published.