軟件安全構(gòu)建成熟度模型演變與分析

責(zé)任編輯:editor004

2017-10-30 11:30:20

摘自:黑客與極客

建立軟件安全構(gòu)建成熟度模型能夠幫助企業(yè)理解安全開(kāi)發(fā)舉措的關(guān)鍵要素,根據(jù)開(kāi)發(fā)團(tuán)隊(duì)的成熟度水平確定各種安全舉措的優(yōu)先級(jí),從而控制上述因素的影響。

軟件安全開(kāi)發(fā)主要是從生命周期的角度,對(duì)安全設(shè)計(jì)原則、安全開(kāi)發(fā)方法、最佳實(shí)踐和安全專(zhuān)家經(jīng)驗(yàn)等進(jìn)行總結(jié),通過(guò)采取各種安全活動(dòng)來(lái)保證盡可能得到安全的軟件。但是,能否將安全開(kāi)發(fā)的概念整合到企業(yè)原有的開(kāi)發(fā)過(guò)程中,通常取決于企業(yè)規(guī)模、資源(時(shí)間、人才和預(yù)算),以及管理層支持等各種因素。如果方式不當(dāng),很可能造成高昂的成本甚至整合失敗。

建立軟件安全構(gòu)建成熟度模型能夠幫助企業(yè)理解安全開(kāi)發(fā)舉措的關(guān)鍵要素,根據(jù)開(kāi)發(fā)團(tuán)隊(duì)的成熟度水平確定各種安全舉措的優(yōu)先級(jí),從而控制上述因素的影響。

本文介紹了BSIMM、SAMM、SDL優(yōu)化模型、CMMI+SAFE等四款軟件安全構(gòu)建成熟度模型,分析了這些模型近年來(lái)的演變及其產(chǎn)生的原因。

一、軟件安全構(gòu)建成熟度模型概述

該部分介紹各軟件安全構(gòu)建成熟度模型的由來(lái)、概念和基本組成。

1、內(nèi)建安全成熟度模型BSIMM

內(nèi)建安全成熟度模型(BuildingSecurity In Maturity Model,簡(jiǎn)稱(chēng)BSIMM),是2009年3月正式提出的。BSIMM的核心目的就是對(duì)組織所實(shí)施的“軟件安全舉措”進(jìn)行量化。

軟件安全框架(SoftwareSecurity Framework,以下簡(jiǎn)稱(chēng)為SSF)是BSIMM賴(lài)以成型的基本結(jié)構(gòu),如上圖所示,它為各種安全活動(dòng)提供了一個(gè)通用的詞匯表,來(lái)解釋”軟件安全舉措”中的主要要素。

從2013年開(kāi)始,BSIMM經(jīng)歷了3個(gè)版本的變動(dòng):2013年10月的BSIMM5、2015年10月的BSIMM6和2016年8月的BSIMM7。在這三個(gè)版本的變動(dòng)中,其基礎(chǔ)的SSF框架并沒(méi)有任何的變動(dòng)。

2、軟件保障成熟度模型SAMM

軟件保障成熟度模型(SoftwareAssurance Maturity Model,簡(jiǎn)稱(chēng)SAMM)是一個(gè)開(kāi)放式的框架,用于幫助組織制定并實(shí)施所面臨來(lái)自軟件安全的特定風(fēng)險(xiǎn)的策略。在2009年3月發(fā)布正式版之后,它成為OWASP的項(xiàng)目之一。

SAMM的框架頂層定義了四種關(guān)鍵業(yè)務(wù)功能,而每種關(guān)鍵業(yè)務(wù)功能下又包含了三類(lèi)安全措施,共計(jì)12種安全措施,如上圖所示。

自2009年SAMM1.0發(fā)布之后,SAMM共更新過(guò)兩次,分別是2016年3月的SAMM1.1和2017年4月的SAMM1.5。

3、安全開(kāi)發(fā)生命周期SDL優(yōu)化模型

SDL優(yōu)化模型圍繞5個(gè)功能領(lǐng)域構(gòu)建,這些領(lǐng)域大致與軟件開(kāi)發(fā)生命周期的各個(gè)階段相對(duì)應(yīng):培訓(xùn)以及政策、組織功能、要求和設(shè)計(jì)、實(shí)施、驗(yàn)證、發(fā)布和響應(yīng)。針對(duì)這些領(lǐng)域中的實(shí)踐和功能,SDL優(yōu)化模型還定義了四個(gè)成熟度水平——基本、標(biāo)準(zhǔn)、高級(jí)和動(dòng)態(tài)。其結(jié)構(gòu)如下圖所示。

從SDL優(yōu)化模型2008年發(fā)布以來(lái),它的內(nèi)容未更新過(guò)。而且現(xiàn)在微軟的官方網(wǎng)站上也找不到相關(guān)材料,只是在“安全自評(píng)估”的頁(yè)面中提到:“使用SDL優(yōu)化模型能夠幫助組織評(píng)估產(chǎn)品在開(kāi)發(fā)過(guò)程中的安全狀態(tài),隨后組織可以利用SDL優(yōu)化模型為漸進(jìn)地、經(jīng)濟(jì)地創(chuàng)建更安全、可靠的軟件提供愿景和實(shí)施路線”。

4、CMMI+SAFE

+SAFE模型是由澳大利亞國(guó)防部和美國(guó)卡內(nèi)基梅隆大學(xué)共同研制開(kāi)發(fā)的,并且針對(duì)CMMI開(kāi)發(fā)模型(CMMI-DEV)增加了兩個(gè)額外的過(guò)程域,涵蓋安全管理和安全工程的內(nèi)容。

+SAFE旨在識(shí)別安全關(guān)鍵產(chǎn)品的安全性強(qiáng)項(xiàng)和弱項(xiàng),并且意圖在產(chǎn)品采購(gòu)過(guò)程的早期識(shí)別出的安全漏洞。

從2007年3月發(fā)布以來(lái),+SAFE的內(nèi)容也未更新過(guò)。

二、軟件安全構(gòu)建成熟度模型的演變

本節(jié),我們對(duì)近年來(lái)模型的演變情況進(jìn)行分析,因?yàn)橹挥蠦SIMM和SAMM存在內(nèi)容的更新,所以主要聚焦在這兩個(gè)模型上。

1、BSIMM的演變

(1)模型演變

BSIMM模型基礎(chǔ)框架SSF近年來(lái)并沒(méi)有變化,而只是對(duì)各種安全活動(dòng)的變更。具體情況如下表:

其中,紫色框表示該活動(dòng)為該版本BSIMM新增加內(nèi)容;綠色框表示該活動(dòng)的成熟度級(jí)別進(jìn)行了上調(diào),即考慮的優(yōu)先級(jí)有較明顯的降低;橙色框表示該活動(dòng)的成熟度級(jí)別進(jìn)行了下調(diào),即考慮的優(yōu)先級(jí)有較明顯提升。

安全活動(dòng)增加

從上表中可以看到,在BSIMM5和BSIMM 7中分別新增了一項(xiàng)安全活動(dòng),為“運(yùn)營(yíng)漏洞獎(jiǎng)勵(lì)計(jì)劃”和“使用應(yīng)用程序容器”。“運(yùn)營(yíng)漏洞獎(jiǎng)勵(lì)計(jì)劃”是為了借助更多的外部技術(shù)力量來(lái)保障軟件安全,而“使用應(yīng)用程序容器”則明顯是順應(yīng)了目前大量使用Docker等容器進(jìn)行開(kāi)發(fā)的趨勢(shì)。

安全活動(dòng)級(jí)別調(diào)整

另外,在版本演變的過(guò)程中,對(duì)部分安全活動(dòng)的成熟度級(jí)別進(jìn)行了調(diào)整。在3次版本更新的所有13項(xiàng)變化中,只有3項(xiàng)的成熟度級(jí)別進(jìn)行了下調(diào),也就是說(shuō)這3項(xiàng)活動(dòng)的應(yīng)用趨勢(shì)有較明顯的增加,分別是:“使用自動(dòng)化工具檢測(cè)自定義規(guī)則”、“將安全測(cè)試包括在QA自動(dòng)化中”和“執(zhí)行為應(yīng)用程序API定制的模糊測(cè)試”。

一方面,這三項(xiàng)活動(dòng)分別屬于“代碼審計(jì)”和“安全測(cè)試”這兩項(xiàng)安全實(shí)踐,且都屬于“SSDL接觸點(diǎn)”這個(gè)領(lǐng)域;另一方面,前兩項(xiàng)都與自動(dòng)化相關(guān),可見(jiàn)安全測(cè)試的自動(dòng)化趨勢(shì)愈加明顯。安全測(cè)試自動(dòng)化的需求應(yīng)主要來(lái)自于DevOps;而對(duì)應(yīng)用API進(jìn)行模糊測(cè)試的需求可能來(lái)源于大量WebAPI的使用。

(2)數(shù)據(jù)演變

由于BSIMM是一種觀察模型,所以BSIMM中也包含了觀察到的各種數(shù)據(jù)。而這些數(shù)據(jù)的變化,也揭示了一些安全開(kāi)發(fā)的趨勢(shì)。

從數(shù)據(jù)中可以看到,越來(lái)越多的垂直行業(yè)開(kāi)始參與到BSIMM的評(píng)估中,從最開(kāi)始的金融服務(wù)、軟件開(kāi)發(fā),到醫(yī)療和物聯(lián)網(wǎng),再到云廠商和保險(xiǎn)廠商。

加入BSIMM社區(qū)的安全人員和開(kāi)發(fā)人員對(duì)比的詳細(xì)數(shù)據(jù)如下表所示:

從上表中可以看出,安全人員與開(kāi)發(fā)人員的比例呈現(xiàn)逐步上升的趨勢(shì)(從BSIMM4到BSIMM 5的數(shù)據(jù)下降,是因?yàn)锽SIMM5引入了數(shù)據(jù)新鮮度的概念,數(shù)據(jù)的計(jì)算方式有所變化)。

2、SAMM演變

與BSIMM類(lèi)似,SAMM的整體框架(業(yè)務(wù)功能、安全實(shí)踐)并沒(méi)有變化。但是在形式和內(nèi)容上,進(jìn)行了大量的豐富和完善。

SAMM1.1的改進(jìn)

如上圖所示,在SAMM1.1中,原有的SAMM 1.0模型被劃分成了兩部分:操作指南和核心模型。并新增了快速入門(mén)指南、工具箱、OWASP資源和SAMM基準(zhǔn)。

SAMM1.5的改進(jìn)

SAMM1.5通過(guò)細(xì)化評(píng)分模型提升了評(píng)估的粒度,并在成熟度基準(zhǔn)的評(píng)估中允許部分評(píng)分?,F(xiàn)在,組織將獲得在安全實(shí)踐中完成的所有相關(guān)工作的評(píng)分,而不是將分?jǐn)?shù)保持在最高的成熟度水平。

同時(shí),SAMM1.5通過(guò)工作表和指南中的典型案例,幫助組織在理解自身安全狀況定位的同時(shí),也知道類(lèi)似情況下哪些工作對(duì)于別人是有效的。

從兩次SAMM的演變情況中,可以看出SAMM對(duì)于評(píng)估的可操作性和實(shí)用性進(jìn)行了較大的改進(jìn)。不難看出,在企業(yè)對(duì)軟件安全構(gòu)建成熟度模型一無(wú)所知的情況下,如果想對(duì)開(kāi)發(fā)安全狀況進(jìn)行自評(píng)估、了解下一步的改進(jìn)方向,那么SAMM無(wú)疑是成本最小、最便捷的方式。

三、分析及展望

通過(guò)上述分析可以得出以下結(jié)論:

l 軟件安全成熟度模型,仍然以大量安全實(shí)踐和統(tǒng)計(jì)數(shù)據(jù)為基礎(chǔ)。本文中分析的軟件安全成熟度模型,近年來(lái)并沒(méi)有發(fā)生大的變動(dòng)。自2013年來(lái),這四個(gè)模型的基礎(chǔ)框架都未發(fā)生變化,仍然是以安全實(shí)踐和安全活動(dòng)為主,并未引入新的理論依據(jù)。

l 安全構(gòu)建成熟度模型會(huì)根據(jù)軟件開(kāi)發(fā)技術(shù)的發(fā)展而演變。BSIMM新增的安全活動(dòng)“使用應(yīng)用程序容器”,以及對(duì)“使用自動(dòng)化工具檢測(cè)自定義規(guī)則”、“將安全測(cè)試包括在QA自動(dòng)化中”和“執(zhí)行為應(yīng)用程序API而定制的模糊測(cè)試”的級(jí)別調(diào)整,都揭示了容器、DevOps、WebAPI等對(duì)成熟度模型的影響。

l 安全測(cè)試的工具化、自動(dòng)化,是未來(lái)的發(fā)展趨勢(shì)。為了順應(yīng)現(xiàn)代軟件開(kāi)發(fā)部署的快節(jié)奏,軟件安全測(cè)試的工具化、自動(dòng)化將勢(shì)不可擋。例如SAMM的工具化、實(shí)用化演變,SDL威脅建模工具、靜態(tài)分析工具、二進(jìn)制驗(yàn)證工具的持續(xù)更新,BSIMM中“使用自動(dòng)化工具檢測(cè)自定義規(guī)則”、“將安全測(cè)試包括在QA自動(dòng)化中”這種自動(dòng)化安全活動(dòng)的興起,都證實(shí)了這一點(diǎn)。

l 軟件安全將受到越來(lái)越多的關(guān)注與重視。從BSIMM的數(shù)據(jù)演變中可以發(fā)現(xiàn),無(wú)論是加入軟件評(píng)估的企業(yè)數(shù)目,還是各企業(yè)內(nèi)專(zhuān)業(yè)從事軟件安全的人員比例,都呈現(xiàn)逐步上升的趨勢(shì)。

對(duì)于軟件開(kāi)發(fā)安全的未來(lái)趨勢(shì),我們認(rèn)為:隨著DevOps、微服務(wù)等軟件開(kāi)發(fā)技術(shù)的發(fā)展,傳統(tǒng)軟件安全的形態(tài)不斷發(fā)生著演變。很多測(cè)試、評(píng)估的技術(shù)路線都在持續(xù)地演進(jìn),但是自動(dòng)化、高速、與傳統(tǒng)開(kāi)發(fā)流程進(jìn)行融合的趨勢(shì)將愈發(fā)明顯。工具化、自動(dòng)化的安全測(cè)試將會(huì)成為各家公司保障軟件安全的基礎(chǔ)舉措,而安全從業(yè)人員能夠?qū)⒏嗑ν度氲竭^(guò)程的改進(jìn)與管理中。根據(jù)目前各軟件安全構(gòu)建成熟度模型的情況,我們也給出如下建議:

l 對(duì)于依托互聯(lián)網(wǎng)、云服務(wù)等技術(shù)演變迅速的高科技公司,應(yīng)盡可能避免使用SDL優(yōu)化模型、CMMI+SAFE模型,因?yàn)槠鋬?nèi)容已經(jīng)較長(zhǎng)時(shí)間沒(méi)有更新,可能有些細(xì)節(jié)已經(jīng)無(wú)法與現(xiàn)階段的開(kāi)發(fā)過(guò)程或技術(shù)相匹配;

l 對(duì)于資源相對(duì)充足、安全關(guān)鍵的大型機(jī)構(gòu),可以采用BSIMM模型來(lái)指導(dǎo)安全開(kāi)發(fā)體系的建設(shè),同時(shí)引入專(zhuān)業(yè)的安全開(kāi)發(fā)咨詢(xún)服務(wù),來(lái)盡可能保證企業(yè)始終處于較高的安全水平;

l 對(duì)于資源有限的中小型公司或創(chuàng)業(yè)公司,可以考慮引入SAMM模型,從而在控制成本的同時(shí),盡快提升整體的軟件安全水平。

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)