DevSecOps是一種保護軟件開發(fā)的安全理念,充分吸收了“敏捷(agile)”和“精益開發(fā)(lean startup)” 這兩種主流軟件開發(fā)方法的成功經(jīng)驗,使用人工智能和機器學(xué)習(xí)提升軟件開發(fā)自動化水平。DevSecOps目前正在美國各軍種中大規(guī)模推廣應(yīng)用。本文主要介紹美海軍及海軍陸戰(zhàn)隊的應(yīng)用情況。
近日,美海軍信息戰(zhàn)中心(NIWC)大西洋分部首次向美海軍陸戰(zhàn)隊提供了“開發(fā)、安全和運行”,即DevSecOps。DevSecOps是一種商業(yè)最優(yōu)方法,它徹底改變了軟件產(chǎn)業(yè),近年來在美軍事領(lǐng)域取得了較大進展。
圖1 海軍信息戰(zhàn)中心大西洋分部的企業(yè)工程團隊正在部署DevSecOps開發(fā)軟件
1
DevSecOps概述
DevSecOps是一種保護軟件開發(fā)的安全理念,其核心是將安全貫徹至整個業(yè)務(wù)周期的每一個環(huán)節(jié)(包括開發(fā)、安全、運維)。從廣義上來說,DevSecOps意味著“更快地為客戶提供價值”。它將程序員(Dev)與系統(tǒng)管理員(Ops)聯(lián)系起來,同時將安全性(Sec)嵌入到開發(fā)的每個步驟中。
近年來,DevSecOps模型充分吸收了“敏捷(agile)”和“精益開發(fā)(lean startup)” 這兩種主流軟件開發(fā)方法的成功經(jīng)驗,兩者因?qū)鹘y(tǒng)的“瀑布(waterfall)”式“規(guī)劃-設(shè)計-開發(fā)-測試-交付”縮減為“最小變量產(chǎn)品(MVP)”而聞名?!熬骈_發(fā)”不會耗費幾年時間交付可能無法滿足客戶需求的產(chǎn)品,而是推廣一種“快速失效”的方法,每周或每兩周安排推出一次最小變量產(chǎn)品,讓客戶評分,以便開發(fā)人員不斷改進。下圖為美海軍“敏捷”和DevSecOps概念示意圖。
圖2 美海軍“敏捷”和DevSecOps概念
除了“敏捷”和“精益開發(fā)”法,自動化是DevSecOps環(huán)境中的一個關(guān)鍵驅(qū)動因素。通過使用人工智能和機器學(xué)習(xí),DevSecOps的自動化服務(wù)可持續(xù)報告平臺的功能健康狀況,包括與賽博攻擊、用戶數(shù)量、停機和降級相關(guān)的關(guān)鍵指標(biāo)。
2
美軍推動DevSecOps發(fā)展
2018年5月,美空軍Kessel Run實驗室與國防創(chuàng)新小組成功將DevSecOps方法應(yīng)用于軟件開發(fā),在4個月內(nèi)實現(xiàn)一款簡化版軟件部署;此后,《空軍快速采辦活動指南》指出,“除非獲得許可,否則所有新項目均采用敏捷軟件開發(fā)”。
2019年1月,美國防部《2018財年作戰(zhàn)試驗鑒定報告》建議,采用DevSecOps等迭代遞增式采辦和鑒定方法,以數(shù)周甚至數(shù)日為周期快速形成軟件原型,提高軟件交付與部署能力。5月,國防部向國會提交國防創(chuàng)新委員會“軟件采辦與實踐”報告,建議重構(gòu)軟件采購、開發(fā)、部署流程,并將軟件開發(fā)作為單獨的預(yù)算類別,以提高軟件快速部署和持續(xù)迭代能力;依據(jù)該報告,國防部制定了臨時軟件采辦框架。8月,國防部首席信息官發(fā)布《國防部體系開發(fā)安全運維基準(zhǔn)設(shè)計》1.0版,推動全軍應(yīng)用敏捷的開源軟件開發(fā)模式。隨后,國防部立法提案請求國會在科研預(yù)算7個子類之后創(chuàng)建第8類預(yù)算,為軟件開發(fā)提供明確的資金支持,并在2021財年啟動8個軟件試點項目單元,為期2年,范圍涵蓋軟件全壽命周期。
3
OASIS——美國海軍DevSecOps實驗室
兩年多前,美國空軍開始接觸DevSecOps,是第一個成功利用DevSecOps概念的軍種。其成立的Kessel Run實驗室在提高效率方面取得了巨大成功,并引起了國防部高層領(lǐng)導(dǎo)的注意。美海軍也效仿了空軍Kessel Run模式,NIWC遠征戰(zhàn)部門的遠征企業(yè)系統(tǒng)和服務(wù)(E2S2)團隊于一年多前創(chuàng)立了作戰(zhàn)應(yīng)用和服務(wù)創(chuàng)新站(OASIS),以支持美國海軍陸戰(zhàn)隊負責(zé)計劃和資源的副司令提出的改進企業(yè)軟件開發(fā)的要求。2019年夏,E2S2實現(xiàn)了OASIS的初始運行能力,通過實施近30項自動化平臺服務(wù)和9項自動化應(yīng)用開發(fā)服務(wù),鞏固了NIWC大西洋分部DevSecOps的領(lǐng)導(dǎo)地位。這些覆蓋從業(yè)務(wù)運營到戰(zhàn)術(shù)系統(tǒng)的服務(wù),可能將是國防部未來解決方案。OASIS近期通過了軍方認證。
NIWC大西洋分部執(zhí)行理事Peter C. Reddy表示,當(dāng)前,工業(yè)界商業(yè)部門的屬性已發(fā)生變化,例如物流公司實際上已是一家配備卡車的軟件公司。海軍部必須成為一家配備作戰(zhàn)人員的軟件公司,這是因為無數(shù)基于軟件的戰(zhàn)場任務(wù)可以立即受益于DevSecOps,這使得OASIS的未來與信息環(huán)境中的作戰(zhàn)密切相關(guān)。
NIWC大西洋分部企業(yè)工程團隊負責(zé)人Jeff Hays表示,軟件工廠正在美國軍事組織中涌現(xiàn),但OASIS是獨一無二的。OASIS不關(guān)注單一渠道或單一平臺,而是給技術(shù)專家提供最新的主流工具以及多重選擇。DevSecOps開發(fā)指導(dǎo)Tony Stafford認為,從多個維度來說,軟件工廠的概念是為了減少解決方案提供團隊和用戶之間的摩擦,同時也最大限度地減少將工具交到作戰(zhàn)人員手中的時間和步驟。這就是為什么OASIS被設(shè)計成海軍企業(yè)的中心樞紐,負責(zé)發(fā)現(xiàn)并最大限度地減少低效工作。
4
DevSecOps優(yōu)勢
NIWC大西洋分部OASIS總監(jiān)Erik Gardner表示,DevSecOps將用戶反饋納入流程中,負責(zé)搭建產(chǎn)品的程序員能夠直接獲取最終用戶的想法。海軍陸戰(zhàn)隊在開發(fā)未來戰(zhàn)場工具方面有直接的發(fā)言權(quán)。
DevSecOps的另一個主要吸引力在于節(jié)約開支。NIWC大西洋分部企業(yè)工程和集成服務(wù)領(lǐng)域的技術(shù)專家Robert Neuman稱,與過去單一的“瀑布”流程不同,如果一個MVP失敗了,在資源方面不會產(chǎn)生巨大的影響,項目風(fēng)險實際上降低了?!澳憧赡軙幸恢軙r間倒退重來,但這不是什么大事?!?/p>
5
美國海軍DevSecOps設(shè)計概念
美海軍對于應(yīng)用DevSecOps,提出了以下主旨:
先租再買,先買再建:僅開發(fā)海軍部任務(wù)獨一無二的定制能力;將DevSecOps能力作為一項專供本軍種的數(shù)字核心服務(wù)交付并使用;加強軟件工廠建設(shè)和工具網(wǎng)絡(luò)鋪設(shè),并實現(xiàn)渠道的差異化和局部控制;與國防部企業(yè)DevSecOps參考設(shè)計保持一致;使艦隊賽博司令部能夠看見并持續(xù)控制交付物和目標(biāo)環(huán)境;改變文化,實現(xiàn)敏捷式開發(fā)具有跨工廠互操作性,促進重復(fù)利用整合反饋環(huán),并能自助訪問生產(chǎn)數(shù)據(jù)和開發(fā)基線所有方面做到自動化,包括功能測試將所有項目視為“基礎(chǔ)設(shè)施即代碼(Infrastructure as Code)”6
美國海軍及陸戰(zhàn)隊DevSecOps應(yīng)用情況
海軍陸戰(zhàn)隊業(yè)務(wù)運營支持服務(wù)(MCBOSS)是由OASIS團隊開發(fā)的第一項DevSecOps能力。MCBOSS是一個多平臺環(huán)境,包括PEGA、Appian、MarkLogic和Pivotal Cloud Foundry等服務(wù)。NIWC大西洋分部云工程師和DevSecOps負責(zé)人Jason Anderson指出,如果MCBOSS平臺是汽車,那么ADTS團隊的服務(wù)將是汽油、石油和電力。
海軍還成立了一個名為應(yīng)用、開發(fā)和測試服務(wù)(ADTS)的團隊,大部分自動化測試和構(gòu)建工作是由該團隊完成,使DevSecOps得以在MCBOSS環(huán)境下運行,從而推動OASIS總體目標(biāo)的實現(xiàn)。
在MCBOSS啟動不久,海軍陸戰(zhàn)隊就開始使用首個OASIS開發(fā)的應(yīng)用程序——監(jiān)察長(IG)案例行動管理程序,該程序提供了對監(jiān)察長調(diào)查相關(guān)數(shù)據(jù)的實時跟蹤。
最近,OASIS執(zhí)行了一個海軍創(chuàng)新科學(xué)與工程項目,以驗證OASIS開發(fā)的美國海軍陸戰(zhàn)隊?wèi)?yīng)用程序與海軍綜合海上網(wǎng)絡(luò)和企業(yè)服務(wù)(CANES)的互操作性。
軟件開發(fā)高級科技經(jīng)理Kathryn Murphy表示,正在繼續(xù)與NIWC太平洋分部的同行合作,推動整個海軍企業(yè)和國防部的DevSecOps解決方案。“在OASIS等項目上持續(xù)取得成功的關(guān)鍵在于讓員工了解可用的軟件工廠,并準(zhǔn)備好成功使用它們。”
7
其他方面
將DevSecOps引入傳統(tǒng)組織需要在文化和理念上進行相當(dāng)大的轉(zhuǎn)變。真正能實時解決實際問題的軟件不僅需要強大的自動化能力,還需要良好的傾聽技能。在DevSecOps文化中,最好是對20個有相同問題的人進行20次不同的采訪,效果比閱讀需求文檔好。20人中可能有12人說的話與紙上的完全不同。每個視角都很重要。
DevSecOps方法的支持者表示,在現(xiàn)代戰(zhàn)場上,快速變化的技術(shù)以閃電般的速度改變著局面,傳統(tǒng)的采辦流程根本無法將最新的軟件設(shè)備投入現(xiàn)代戰(zhàn)場。他們認為必須轉(zhuǎn)換思維,改變不僅不可避免,而且必須持續(xù)進行。OASIS總監(jiān)Erik Gardner認為,軟件開發(fā)需要在實踐和思維上進行徹底的文化轉(zhuǎn)變,以加快解決作戰(zhàn)人員的問題?!安粌H僅是舊的流程和規(guī)定導(dǎo)致了更晚的交付時間,”他說?!岸夷壳凹夹g(shù)領(lǐng)域的現(xiàn)狀會把錯誤的東西交到作戰(zhàn)人員手中。我們不能犯這樣的錯誤?!?/p>