淺析云原生應(yīng)用安全組織架構(gòu)
數(shù)字化轉(zhuǎn)型是一股不可忽視的力量。在每個(gè)垂直領(lǐng)域,企業(yè)都努力成為技術(shù)公司,并越來(lái)越多地區(qū)分他們?nèi)绾螌?shí)現(xiàn)這一描述。
云和DevOps在這種轉(zhuǎn)型中發(fā)揮著巨大的作用,并徹底改變了我們開(kāi)發(fā)和運(yùn)營(yíng)軟件的方式。軟件從未像今天這樣容易創(chuàng)建,從未像今天這樣頻繁地更新,也從未創(chuàng)新過(guò)如此迅速地適應(yīng)客戶(hù)需求。

面對(duì)這樣的變化,安全別無(wú)選擇,只能適應(yīng)。企業(yè)必須并將繼續(xù)努力提高速度,而獨(dú)立團(tuán)隊(duì)是實(shí)現(xiàn)這一目標(biāo)的唯一途徑。我們保護(hù)應(yīng)用程序的方式必須轉(zhuǎn)變,使其成為這些獨(dú)立開(kāi)發(fā)團(tuán)隊(duì)日常工作的一部分。安全團(tuán)隊(duì)首先需要專(zhuān)注于幫助這些團(tuán)隊(duì)實(shí)現(xiàn)安全性。安全性需要成為開(kāi)發(fā)優(yōu)先。
安全行業(yè)并不是 DevOps 旅程的一部分。安全流程傾向于控制持續(xù)流程,而不是合并到流程中。值得注意的是,安全流程無(wú)法實(shí)現(xiàn)以下功能:
增強(qiáng)獨(dú)立開(kāi)發(fā)團(tuán)隊(duì)的能力
安全能力由一個(gè)單獨(dú)的團(tuán)隊(duì)擁有,開(kāi)發(fā)團(tuán)隊(duì)無(wú)權(quán)做出安全決策,并且工具主要是為審計(jì)人員而不是構(gòu)建人員設(shè)計(jì)的。
持續(xù)運(yùn)維
安全流程仍然嚴(yán)重依賴(lài)手動(dòng)門(mén),例如安全審計(jì)或結(jié)果審查,從而減慢了持續(xù)流程的速度。
讓安全工作違背速度和獨(dú)立性的業(yè)務(wù)動(dòng)機(jī),不可能有好下場(chǎng)。開(kāi)發(fā)團(tuán)隊(duì)必須在放慢速度(這會(huì)損害業(yè)務(wù)成果)和規(guī)避安全控制(這會(huì)引入重大風(fēng)險(xiǎn))之間做出選擇。這些都不是可行的長(zhǎng)期選擇,因此企業(yè)必須改變其安全實(shí)踐以適應(yīng) DevOps 現(xiàn)實(shí)。
DevOps 推動(dòng)了對(duì)開(kāi)發(fā)優(yōu)先的安全方法論的需求,在數(shù)字化轉(zhuǎn)型時(shí)代,我們還看到了云的演變和云原生應(yīng)用程序。云原生應(yīng)用程序的范圍比其前身更廣泛,并且越來(lái)越多地包含底層堆棧的更多元素。
應(yīng)用程序范圍的這種變化也需要改變應(yīng)用程序安全的范圍。本文討論應(yīng)用程序安全性的一個(gè)新的和擴(kuò)展的范圍,稱(chēng)為云原生應(yīng)用程序安全 (CNAS)。
采用 CNAS 需要對(duì)我們保護(hù)應(yīng)用程序和基礎(chǔ)架構(gòu)的方式進(jìn)行重大更改。進(jìn)行轉(zhuǎn)變的過(guò)程是一個(gè)旅程,對(duì)于每個(gè)組織,甚至對(duì)于同一組織的不同部分,其經(jīng)歷都是不同的。
雖然選擇正確的道路是由你的決定,但是為了獲得正確的路徑,模式和最佳實(shí)踐已經(jīng)開(kāi)始出現(xiàn)。在本文中,我提出了幾個(gè)可以考慮打破現(xiàn)狀的領(lǐng)域,以及如何打破現(xiàn)狀。
重新思考安全組織架構(gòu)
組織通常根據(jù)責(zé)任范圍進(jìn)行拆分。當(dāng)你將保護(hù)基礎(chǔ)架構(gòu)的某些部分視為應(yīng)用程序安全問(wèn)題時(shí),請(qǐng)重新考慮如何構(gòu)建安全組織。更具體地說(shuō),請(qǐng)考慮是否更改應(yīng)用程序安全團(tuán)隊(duì)的責(zé)任范圍。
此外,隨著你的安全實(shí)踐變得更加偏向開(kāi)發(fā)優(yōu)先的理念,并專(zhuān)注于增強(qiáng)開(kāi)發(fā)人員的能力,你對(duì)此應(yīng)用程序安全團(tuán)隊(duì)的要求也會(huì)發(fā)生變化。你需要更多的同理心和項(xiàng)目管理以及更多的工程能力。你需要更多的建設(shè)者和更少的破壞者。
為了幫助你評(píng)估安全部門(mén)的組織結(jié)構(gòu),以下是我在應(yīng)用程序安全這個(gè)領(lǐng)域中看到的三個(gè)最常見(jiàn)的團(tuán)隊(duì)作用域:核心應(yīng)用程序安全、安全工程和較新的產(chǎn)品安全。這些應(yīng)該作為如何構(gòu)建組織的參考點(diǎn),而不是采用完美的模型。
核心應(yīng)用安全團(tuán)隊(duì)
讓我們從現(xiàn)狀開(kāi)始,為應(yīng)用程序安全團(tuán)隊(duì)保持相同的范圍。由于這是默認(rèn)狀態(tài),因此大多數(shù)組織都使用此團(tuán)隊(duì)作用域, 至少作為起點(diǎn)。
核心應(yīng)用程序安全團(tuán)隊(duì)的任務(wù)是保護(hù)自定義應(yīng)用程序代碼和業(yè)務(wù)邏輯以及正在使用的開(kāi)源庫(kù)。他們通常擁有經(jīng)典的應(yīng)用程序安全測(cè)試(AST)套件,包括靜態(tài),動(dòng)態(tài)和交互式應(yīng)用程序安全測(cè)試(SAST,DAST和IAST)以查找自定義代碼中的漏洞,以及軟件成分分析(SCA)工具以查找易受攻擊的開(kāi)源庫(kù)。此外,這些團(tuán)隊(duì)通常會(huì)開(kāi)發(fā)安全教育和培訓(xùn),并可能開(kāi)展漏洞管理或漏洞賞金工作。在某些情況下,他們也可能使用 RASP 或 WAF 工具實(shí)現(xiàn)運(yùn)行時(shí)應(yīng)用程序保護(hù)的能力。
核心應(yīng)用程序安全團(tuán)隊(duì)成員通常需要是安全編碼方面的專(zhuān)家,并具有應(yīng)用程序運(yùn)行審核和安全代碼審計(jì)的一些經(jīng)驗(yàn)。他們需要良好的開(kāi)發(fā)人員同理心才能與開(kāi)發(fā)人員合作,這反過(guò)來(lái)又需要一些理解或與代碼相關(guān)的能力,但不需要完整的軟件開(kāi)發(fā)證書(shū)。
堅(jiān)持設(shè)定核心應(yīng)用程序安全團(tuán)隊(duì)的主要優(yōu)勢(shì)是它在行業(yè)中的長(zhǎng)期地位。它使招聘具有整個(gè)團(tuán)隊(duì)領(lǐng)域經(jīng)驗(yàn)的專(zhuān)業(yè)人員變得更容易。對(duì)于工具來(lái)說(shuō),這是一個(gè)工具和實(shí)踐被很好地記錄的領(lǐng)域。從組織結(jié)構(gòu)的角度來(lái)看,大多數(shù)行業(yè)都會(huì)認(rèn)為應(yīng)用程序安全團(tuán)隊(duì)與核心應(yīng)用程序安全團(tuán)隊(duì)類(lèi)似。
雖然核心應(yīng)用程序安全團(tuán)隊(duì)的職責(zé)范圍是維持現(xiàn)狀,但它的方法論往往變得更加有利于開(kāi)發(fā)人員。應(yīng)用程序安全團(tuán)隊(duì)通常會(huì)將團(tuán)隊(duì)中的個(gè)人職責(zé)分配為多個(gè)開(kāi)發(fā)團(tuán)隊(duì)的合作伙伴,從而幫助促進(jìn)更好的協(xié)作。在應(yīng)用安全領(lǐng)域有許多同行會(huì)開(kāi)展安全冠軍計(jì)劃,幫助他們獲得規(guī)模并在開(kāi)發(fā)團(tuán)隊(duì)中嵌入更多安全專(zhuān)業(yè)知識(shí)。雖然范圍基本保持不變,但核心應(yīng)用程序安全團(tuán)隊(duì)的內(nèi)部實(shí)踐不必是傳統(tǒng)的那些做法。
安全工程/安全平臺(tái)團(tuán)隊(duì)
將安全管控流程的步驟實(shí)現(xiàn)自動(dòng)化是現(xiàn)代開(kāi)發(fā)環(huán)境中的關(guān)鍵??焖?nbsp;CI/CD 管道沒(méi)有手動(dòng)審查的空間,而是需要自動(dòng)化管道測(cè)試。此外,開(kāi)發(fā)人員不是安全專(zhuān)家,他們花在安全上的時(shí)間更少,因此需要具有嵌入式安全專(zhuān)業(yè)知識(shí)的工具,并能夠減輕或促進(jìn)安全性決策。
構(gòu)建和運(yùn)營(yíng)安全工具并非易事,尤其是在大型組織中,不同的開(kāi)發(fā)團(tuán)隊(duì)有著截然不同的要求。為了幫助提高自動(dòng)化程度,一些組織創(chuàng)建了專(zhuān)門(mén)的安全工程團(tuán)隊(duì),專(zhuān)注于構(gòu)建內(nèi)部工具和集成外部工具,所有這些都是為了增強(qiáng)安全性。
安全工程團(tuán)隊(duì)由對(duì)安全性略有偏見(jiàn)的軟件工程師組成,其運(yùn)作方式與完整的 DevOps 工程團(tuán)隊(duì)類(lèi)似。他們通常構(gòu)建、部署和運(yùn)營(yíng)他們構(gòu)建的服務(wù),并使用與其他工程團(tuán)隊(duì)相同的方法來(lái)運(yùn)行其敏捷流程和管理產(chǎn)品積壓工作。
如果工作量不夠大,不足以保證單獨(dú)建立自己的團(tuán)隊(duì),那么同樣的活動(dòng)通常也可以嵌入到核心應(yīng)用程序安全團(tuán)隊(duì)中。然而,盡管名為“安全工程”的團(tuán)隊(duì)在章程中非常一致,但擁有(越來(lái)越普遍的)安全工程師頭銜的個(gè)人在職責(zé)上差異很大。有些人是上文所描述的軟件工程師,而對(duì)于其他人來(lái)說(shuō),頭銜中的“工程師”部分指的則是安全領(lǐng)域。
安全工程團(tuán)隊(duì)是真正提高自動(dòng)化程度的好方法,并且是面向運(yùn)維的平臺(tái)或站點(diǎn)可靠性工程師 (SRE) 團(tuán)隊(duì)的絕佳并行團(tuán)隊(duì)。事實(shí)上,在相當(dāng)多的情況下,平臺(tái)團(tuán)隊(duì)的范圍已經(jīng)擴(kuò)大到包括構(gòu)建和運(yùn)營(yíng)此類(lèi)安全工具。這也是讓軟件工程師加入安全團(tuán)隊(duì)的好方法,幫助解決人才短缺問(wèn)題,并在安全團(tuán)隊(duì)中建立更多的開(kāi)發(fā)人員同理心。
產(chǎn)品安全團(tuán)隊(duì)/云原生應(yīng)用安全團(tuán)隊(duì)
安全團(tuán)隊(duì)模式的最新成員是產(chǎn)品安全團(tuán)隊(duì)。這些團(tuán)隊(duì)的范圍更大,不僅包括應(yīng)用程序代碼本身,還包括與產(chǎn)品有關(guān)的所有內(nèi)容。最值得注意的是,兩個(gè)關(guān)鍵的新增功能是捕獲完整的 CNAS 范圍,并幫助在產(chǎn)品本身中構(gòu)建安全功能。
完整的云原生應(yīng)用安全范圍
擴(kuò)展到包括 CNAS 范圍是將某些基礎(chǔ)架構(gòu)風(fēng)險(xiǎn)重新思考為應(yīng)用程序安全性的自然結(jié)果。如今,像容器和IaC這樣的技術(shù)都是由編寫(xiě)自定義代碼、使用相同實(shí)踐和工具的相同開(kāi)發(fā)人員驅(qū)動(dòng)的。為了支持這一變化,AppSec團(tuán)隊(duì)需要支持這些工程師成功地做到這一點(diǎn)。擁抱這個(gè)更廣泛范圍的團(tuán)隊(duì)通常將自己稱(chēng)為產(chǎn)品安全團(tuán)隊(duì)。
這種擴(kuò)展的CNAS范圍意味著產(chǎn)品安全團(tuán)隊(duì)在軟件開(kāi)發(fā)生命周期中的更大一部分內(nèi)開(kāi)展工作。包括更多的參與到生產(chǎn)部署甚至運(yùn)維工作中,從而導(dǎo)致與更注重運(yùn)營(yíng)的云安全團(tuán)隊(duì)重疊。在實(shí)踐中,云原生開(kāi)發(fā)意味著云安全同時(shí)受到開(kāi)發(fā)和運(yùn)維團(tuán)隊(duì)的影響,產(chǎn)品安全團(tuán)隊(duì)覆蓋前者。
請(qǐng)注意,許多核心應(yīng)用程序安全團(tuán)隊(duì)正在擴(kuò)展以涵蓋完整的 CNAS 范圍,而無(wú)需正式更改其團(tuán)隊(duì)名稱(chēng)和任務(wù)。選擇和實(shí)施解決方案來(lái)掃描容器鏡像以查找漏洞并審核 IaC 文件越來(lái)越成為應(yīng)用程序安全團(tuán)隊(duì)的領(lǐng)域。雖然可以安全地假設(shè)產(chǎn)品安全團(tuán)隊(duì)捕獲了這個(gè)完整的范圍,但這樣的重命名并不是絕對(duì)必要的,而且許多應(yīng)用安全團(tuán)隊(duì)在沒(méi)有這種聲明的情況下已經(jīng)發(fā)展起來(lái)了。
產(chǎn)品安全功能
與CNAS無(wú)關(guān)但仍然值得注意的一點(diǎn)是,產(chǎn)品安全團(tuán)隊(duì)的參與具有更面向用戶(hù)的安全性部分:安全功能。隨著用戶(hù)對(duì)安全的重要性的認(rèn)識(shí)不斷提高,許多產(chǎn)品都希望構(gòu)建專(zhuān)用的安全功能,并通過(guò)它們實(shí)現(xiàn)差異化。確定哪些安全功能有價(jià)值需要一定程度的安全理解,開(kāi)發(fā)團(tuán)隊(duì)可能沒(méi)有,但安全團(tuán)隊(duì)有。產(chǎn)品安全團(tuán)隊(duì)通常在這里扮演一個(gè)明確的角色,與產(chǎn)品經(jīng)理(PM)合作,他們擁有完整的產(chǎn)品功能和價(jià)值主張,比以往任何時(shí)候都要多。
此職責(zé)在應(yīng)用程序和安全團(tuán)隊(duì)之間的關(guān)系中起著重要作用。安全控制是降低風(fēng)險(xiǎn)的一種手段,但能夠?qū)⒋孙L(fēng)險(xiǎn)緩解作為安全功能提供意味著它可以幫助增加收入。增加收入是兩個(gè)團(tuán)隊(duì)的另一個(gè)共同目標(biāo),而且比降低風(fēng)險(xiǎn)更明顯,這使得慶祝成功變得更加容易。
產(chǎn)品安全的演變
產(chǎn)品安全是一個(gè)新的頭銜和范圍,并且仍在定義中。鑒于其范圍更廣,它通常是上級(jí)頭銜或大團(tuán)隊(duì),其中包括提到的其他團(tuán)隊(duì)。在一些云原生組織中,產(chǎn)品安全是首席安全官(CSO)的主要范圍,而其他一些組織則開(kāi)始任命領(lǐng)導(dǎo)者為首席產(chǎn)品安全官(CSO)。
Atlassian 首席信息安全官 (CISO) Adrian Ludwig 說(shuō)得最好,他說(shuō):“產(chǎn)品安全的目標(biāo)是改善產(chǎn)品的安全狀況,并在內(nèi)部向開(kāi)發(fā)團(tuán)隊(duì)代表客戶(hù)的安全期望”。Twilio,Deliveroo和Snyk等其他公司也使用這個(gè)頭銜,我相信這是解決 CNAS 的正確方法。
DevSecOps 團(tuán)隊(duì)呢?
你可能已經(jīng)注意到我沒(méi)有說(shuō)出 DevSecOps 團(tuán)隊(duì)的名字,這不是偶然的。與DevOps一樣,DevSecOps不是一個(gè)團(tuán)隊(duì);這是一項(xiàng)運(yùn)動(dòng),旨在將安全性嵌入到核心開(kāi)發(fā)和運(yùn)營(yíng)工作中。在我看來(lái),它不應(yīng)該是一個(gè)團(tuán)隊(duì)的頭銜。
但是,就像 DevOps 團(tuán)隊(duì)一樣,DevSecOps 團(tuán)隊(duì)也存在,他們的任務(wù)也大不相同。有時(shí),他們實(shí)際上是一個(gè)云安全團(tuán)隊(duì),專(zhuān)注于運(yùn)營(yíng)和運(yùn)行時(shí)的安全性。其他時(shí)候,它們更像平臺(tái),其職責(zé)范圍類(lèi)似于安全工程團(tuán)隊(duì)。由于頭銜并不意味著一組特定的職責(zé),因此DevSecOps團(tuán)隊(duì)的職責(zé)范圍并不是可以真正定義的。
然而,所有這些團(tuán)隊(duì)的共同點(diǎn)是他們具有前瞻性思維。DevSecOps旨在改變我們做安全的方式,而DevSecOps團(tuán)隊(duì),無(wú)論其范圍如何,都始終將自己視為變革推動(dòng)者。他們擁抱自動(dòng)化和云,更喜歡工程化的安全解決方案而不是開(kāi)展審計(jì)工作,并致力于授權(quán)開(kāi)發(fā)和運(yùn)維團(tuán)隊(duì)能夠自己保護(hù)自己的工作。

































