相信關注軟體安全的人,對 BSIMM(軟體安全構建成熟度模型)都不會陌生。
從 2008 年第一版開始,BSIMM 的版本迭代就一直由新思科技 (Synopsys) 和 BSIMM 社區雙方協力完成。其中,新思科技主要負責企業的調研、數據採集工作;BSIMM 社區則基於 BSIMM 首版形成的軟體安全框架 (SSF)和企業打分情況,對 BSIMM 活動進行更新,並從行業視角,形成對軟體安全計劃 (SSI) 實施情況的最新洞見。
2019 年 10 月,BSIMM 模型的第十個版本(中文報告)正式發布。新思科技軟體質量與安全部門的高級安全架構師楊國梁在新思科技北京的辦公區,對 BSIMM10 做了詳細的介紹和解讀。
從 BSIMM8 開始,安全牛就有對 BSIMM 的更新進行跟蹤報導。作為參會媒體中為數不多的信息安全專業媒體,從安全角度(而不是開發角度),我們能看到些不一樣的內容。因此,此篇著重介紹的不是 BSIMM10 的更新內容,而是 BSIMM 模型之於軟體安全工作推行的意義和思路。
BSIMM 是一種描述模型。企業通過參與 BSIMM 的評估,不僅可以更加具體的了解自身 SSI 的執行情況,還可以從行業視角明確所處的具體位置。
也就是說,BISMM 模型,是一把衡量企業在軟體開發階段構建軟體安全能力的標尺。
BSIMM10 使用的評估框架 SSF 內容上涵蓋四個大域(分別為治理、情報、SSDL 觸點和部署),對應 12 個實踐模塊,包含 119 項活動。
BSIMM10-SSF
作為一種描述性模型,BSIMM 唯一的目標就是觀察和報告。據統計,在過去的十年間,總計有 185 家企業參與過 BSIMM 的評估。其中有 50 家企業開展了至少 2 次評估,21 家開展了 3 次,8 家開展了 4 次,2 家開展了 5 次,評估次數總計 450 次。
因為每年 BSIMM 模型評估框架,都會根據參與企業情況適時進行 「活動」 的更新 (例如 BSIMM10 就新增了集成軟體生命周期管理、監控自動資產創建和自動驗證運營基礎架構的安全性,三項活動),以保證 BSIMM 模型的評估結果不會滯後於行業對最佳 SSI 實踐的認知。而且如果連續超過 36 個月沒有參與,企業之前的評估結果也不再被 BSIMM 社區承認。所以,持續參與的積極意義是非常明顯的。對於企業 SSG(軟體安全小組)負責人而言,BSIMM 的評估結果是其向高層闡述 SSI 實施效果、匯報工作的重要工具;從供應鏈安全角度,雖然不能把 BSIMM 作為一個認證或是 PR 指標來對待,但其可以在一定程度證明該供應商對軟體開發安全的重視和實踐程度。
此次 BSIMM10 的評估,有 122 家公司參與。相較於 BSIMM9 的 120 家企業,此次 BSIMM10 的 122 家企業是通過剔除 17 家,增加 19 家形成的。基於 119 項活動相對頻率,可以經常觀察到的定義為 「第1級」,不能經常觀察到的為 「第3級」,形成各家企業 BSIMM10 評估的記分卡。最終基於樣本總集,形成此次評估的觀察結果。
當然,評估結果包含趨勢洞見,也有嚴格數據驅動的的 「蛛網圖」(對應 12 個實踐模塊的均值)。其中,「蛛網圖」還會從垂直視角(如:雲計算、物聯網、高科技、金融服務、醫療保健、保險、零售等)將122家企業按照所屬行業拆分成不同子集,給出子集的均值。企業不僅可以明確在所有122家企業樣本總集的相對位置,也可以獲知在所屬行業的位置。雖然處於隱私保護,企業無法知道其它企業的具體情況,但對於SSG工作的評估,以及後續工作的開展,都是有指導性的。
蛛網圖-9個垂直行業數據
新思科技首席科學家 Sammy Migues 表示,領導一個有效的軟體安全計劃是富有挑戰性的,而 DevOps 和 CI/CD 帶來的巨大技術和組織變革並沒有使這項任務變得更加容易。而 BSIMM 以及其社區,無論是企業的軟體安全工作處於哪一位置,都會是寶貴的資源。
能夠輔助高層對 SSI 實施情況進行評價,是企業願意進行 BSIMM 評估的重要驅動力。所以幫助明確企業 SSI 的現狀,確定有效的發展方向,是 BSIMM 的重要價值所在。
此次 BSIMM10,對於軟體安全工作的一個重要價值,就在於首次明確定義了 SSI 的三個階段——興起、發展和優化。
報告認為,無論企業文化如何,企業在建立並完善企業SSI的過程中,通常都會經歷這三個階段。在「興起」階段,企業往往被迫從頭啟動新的 SSI,或將之前臨時的軟體安全活動變為整體策略。這個全新的 SSI 將包括初始策略、基礎活動、人員和預算等受限資源,以及 12 至 24 個月的發展路線圖。但在開展後續工作時,處於 「興起」 階段的 SSI 可能會迫於合規或其它高管要求,而不斷添加新的活動。
「興起」 之後是 「發展」 階段。在這個階段,企業已經擁有了軟體安全方法,但管理層希望進一步管理軟體安全風險,並沿著 SSI 路線圖擴充新的功能。所以在不斷完善的過程中,SSI 的領導者可能會一邊繼續提高現有活動的深度、廣度和成本效益,一邊減少新添加的活動數量。
第三個階段是 「優化」 階段。在這個階段,企業希望可以優化並發展現有的安全能力,明確運營目標和相關指標,是安全能夠適應技術變化並為業務賦能。SSI 領導者也可能會經歷從技術主管到業務推動者的變化。
經驗表明,企業 SSI 是否能達到 「發展」 階段是取決於開展軟體安全活動的適宜性,而非總數量,尤其在需要發展或優化的活動相對複雜時,尤為明顯。此外,這三個階段也不是完全按照時間順序演進的,而是會出現數次經歷相同的階段,或是 SSI 的功能可能不會同時發展到相同狀態。
此外,企業自身文化是確定 SSI 演進的方法、工具和方式的考慮因素。
BSIMM 社區一直有兩種截然不同的文化並存,一是由高層自上而下推動,專注於合規、測評和風險管理。這在銀行、保險、醫療保健等強監管行業是較為常見的。另一種,是由工程部門發起,但企業會創建高層的管理機構,創建和管理開發過程的安全標準。這種文化常見於高新技術企業,或獨立軟體供應商。但無論是哪種,幾乎所有SSI都是治理導向的,核心都是通過開展主動開展軟體安全活動降低相應風險。但對於開發、測試和運營團隊,治理導向的SSI更多是麻煩。
BSIMM10 的另一個重要意義,是反應了工程導向的安全文化新浪潮。
迫於現代軟體交付的需求和壓力,敏捷開發、持續集成/持續交付、DevOps 等實踐,正在影響企業實現軟體安全的方式。工程師更加重視自動化而不是人力驅動的任務。這也就意味著,所有軟體安全工作自開展時,經常不會考慮來自 SSG 的經驗或教訓。
治理導向的 SSI 通常是自上而下,進行積極、主動的風險管理,而且要求 「必須遵守既定規則」;但工程導向(往往是經驗豐富的開發、運維人員)則更注重在關鍵路徑上創建代碼,或在基礎架構層面實現安全功能。
為了能夠跟上軟體開發流程和技術架構的變化,BSIMM10 中提出,工程導向的安全文化正在區別與上述兩種而獨立演進。相對治理導向,工程導向的最大不同在於:傾向於將安全性視為軟體功能和代碼質量的保障工具(即安全性是質量的一個方面),並使用自己下載、集成的安全工具。他們認為制定安全標準是必要的,但在執行層面卻傾向「治理即代碼」而非人工審查的手動操作。這意味著,工程師往往可以將安全功能和框架構建到軟體架構中,並在交付前像處理其它缺陷一樣處理安全風險。而治理驅動的 SSI,則是根據高管的指示來更改策略、標準和流程,所以經常需要追趕工程師團隊的腳步。
工程主導的新型實施方式,其優勢在於可以很快看到收益,但劣勢也很明顯,就是依賴個人貢獻,而且難以將持久收益制度化。
當然,這種文化的興起,也只是在 BSIMM10 中首次被提及。後續,可能會看到更成熟工程導向的案例,以及在同一企業內部和治理導向SSI的融合。但這種新興的軟體安全的實踐方式,不應被忽視。
從 BSIMM 模型及社區自身來看,其評估框架以及給出的結果,對企業評估自身的軟體安全實踐、判斷行業所處位置、以及明確軟體安全工作的可能的趨勢和思路,都具有豐富、實際的借鑑意義。同時,結合新思科技(連續多年位於 Gartner 應用安全性測試領域的領導者象限)在軟體質量與安全的積累,以及其對中文軟體安全社區的重視(連續多個版本提供經過專業校對的完整中文報告),相信BSIMM會為更多企業的軟體安全工作,提供實質性的幫助與支持。
BSIMM10(中文)報告:
www.bsimm.com/zh-cn/download.html