Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~
本篇是 建構安全軟體開發 系列文的 EP11。
經過前面的 10 回的介紹,看來很多篇幅都是在講有關資訊安全的相關法規跟規範,感覺很「法匠」。
而在接下來從本篇開始討論「安全軟體開發生命週期的風險管理」議題。
首先,先提一個由前面提過 OWASP® Foundation 組織,所提出的 SAMM - Software Assurance Maturity Model:
如果有想進一步了解 1.5 -> 2.0 的改變與對應,可參考下列連結:
https://owaspsamm.org/mapping-versions/
SAMM 2.0 中提出了針對 5 種面向(Bussiness Function) 的 15 個安全務實作法(Security Practice),並透過其中的成熟度(Maturity Level),衍伸出各種應有的組合活動(Activity),來建構可依循的軟體安全品質成熟度模型,下圖是 OWASP SAMM Structure 的看法:
上圖參考自 OWASP SAMM structure 的網頁。
而在 SAMM 2.0 當中,跟過去的 1.x 不同的地方是,多了一個 Stream A/B 的切入角度去檢視在該安全務實作法(Security Practice) 時,要採取不同的活動(Activity) 去進行。
就舉在 設計(Design) 的這個面向(Bussiness Function) 來說,在進行 Security Architecture 這個安全務實作法(Security Practice)的檢視時,透過 Stream A/B 的切入角度去探討如何達成不同層級的成熟度(Maturity Level):
上圖截取自 SAMM Model 的 Design 討論 Security Architecture 網頁
而 OWASP 的目的當然是希望透過 SAMM 來達成依下四點:
OWASP 冀求透過 SAMM 這樣的可量測與檢視的作法來對於建構安全軟體的作為更加明確與簡單。
想要更了解 SAMM 2.0 的各種活動(Activity)作為,可以透過下列網址觀看:
https://owaspsamm.org/model/
另外,還有一套由 Synopsys 所提出的軟體安全建構成熟度模型,稱之為 BSIMM - Building Security In Maturity Model
BSIMM 目前的最新版本為 v12,又稱作 BSIMM12 Software Security Framework:
上圖取自 BISMM Peports 的第 7 頁 Figure 1.
在 BSIMM 的 v12 當中的 Software Security Framework(SSF),總計制定了 122 個活動(Activity),歸納了 4 個面向(Domain),以及 12 個務實作法(Practice)。
就舉 治理(Governance) 這個面向(Domain) 來說好了,其中的務實作法有三個:
再根據想要達到哪一個層級 (Level) 的要求,進行對應的活動(Activity) 檢視:
上圖取自 BISMM Peports 的第 8 頁 Figure 2.
而透過 BISMM 整個流程的檢視,可以得到一次又一次的評量,以確認在整體的軟體建構過程當中,是否有達成相關的目標,來協助建構更安全的軟體開發。
上圖取自 BISMM Peports 的第 26 頁 Figure 8.
若真要比較這兩個 建構安全軟體的成熟度模型,雖然感覺起來 "SAMM 比較偏理想化的概念推廣;BSIMM 則是由業界經驗歸納訂出",但其實這並沒有好壞的問題,只有適不適合的問題,找到適合的準則並檢視其風險,經過驗證後做應有的改善,致力於建構安全軟體這才是最重要的。