技術(shù)
導(dǎo)讀:在這個(gè)時(shí)代,安全團(tuán)隊(duì)將重點(diǎn)轉(zhuǎn)移到使開(kāi)發(fā)人員能夠更安全地構(gòu)建代碼,并且開(kāi)發(fā)人員在安全配置的云計(jì)算環(huán)境中對(duì)基于安全基礎(chǔ)的安全代碼負(fù)責(zé)。
采用云優(yōu)先策略的企業(yè)正在以驚人的速度發(fā)展。規(guī)模較大的企業(yè)可能每天進(jìn)行數(shù)千次部署,同一時(shí)期的代碼更改次數(shù)可能達(dá)到數(shù)十萬(wàn)次。
除此之外,以技術(shù)為中心的企業(yè)可能會(huì)雇用數(shù)百名開(kāi)發(fā)人員:在這種情況下,跟蹤和理解每個(gè)項(xiàng)目或準(zhǔn)確跟蹤他們的工作變得極其困難。這樣的速度和數(shù)量意味著早期設(shè)計(jì)的安全程序(安全團(tuán)隊(duì)在部署之前檢查和測(cè)試代碼)不再實(shí)用。
在成功采用DevOps之后,現(xiàn)在已經(jīng)進(jìn)入了DevSecOps時(shí)代,在這個(gè)時(shí)代,安全團(tuán)隊(duì)將重點(diǎn)轉(zhuǎn)移到使開(kāi)發(fā)人員能夠更安全地構(gòu)建代碼,并且開(kāi)發(fā)人員在安全配置的云計(jì)算環(huán)境中對(duì)基于安全基礎(chǔ)的安全代碼負(fù)責(zé)。
如果這聽(tīng)起來(lái)像是增加很多額外的工作,那么事實(shí)上,典型的云計(jì)算應(yīng)用程序中只有大約20%的代碼是其應(yīng)用程序所獨(dú)有的,這又使情況變得更加復(fù)雜。其余情況還包括Linux操作系統(tǒng)文件、開(kāi)放源代碼庫(kù)、它們的依賴項(xiàng)和其他繼承的元素。開(kāi)發(fā)人員需要更多幫助來(lái)確定應(yīng)用程序中潛在的漏洞、更廣泛的代碼庫(kù)和配置。需要采用自動(dòng)化技術(shù)來(lái)采用高度復(fù)雜的安全工具集。
工作中的安全自動(dòng)化
實(shí)現(xiàn)自動(dòng)化可以采取多種形式,進(jìn)入這一領(lǐng)域的第一步將取決于企業(yè)的實(shí)際情況及其主要痛點(diǎn)。第一步是確保按設(shè)置的時(shí)間間隔自動(dòng)掃描應(yīng)用程序及其組件的漏洞。正如美國(guó)一家云計(jì)算通信平臺(tái)即服務(wù)公司的高級(jí)安全工程師所說(shuō):“自動(dòng)化是大規(guī)模確保安全性的關(guān)鍵,因?yàn)樗巳藶殄e(cuò)誤。當(dāng)我們實(shí)現(xiàn)自動(dòng)化時(shí),就會(huì)發(fā)現(xiàn)更多的漏洞?!毙枰涀〉氖?,即使在正常情況下進(jìn)行掃描,對(duì)于訓(xùn)練有素的團(tuán)隊(duì)而言,這也會(huì)造成潛在的薄弱環(huán)節(jié),此外,如果已經(jīng)實(shí)現(xiàn)了自動(dòng)化,那么這是一項(xiàng)多余的工作。
這家云通信公司的團(tuán)隊(duì)已經(jīng)將這種自動(dòng)化技術(shù)向前推進(jìn)了一步。他們開(kāi)發(fā)了一個(gè)GitHub應(yīng)用程序,該應(yīng)用程序利用該工具的API來(lái)監(jiān)視該公司應(yīng)用程序主要分支的更改和提取請(qǐng)求。當(dāng)拉取請(qǐng)求合并時(shí),它將自動(dòng)導(dǎo)入項(xiàng)目以進(jìn)行掃描。當(dāng)創(chuàng)建、刪除或重命名項(xiàng)目時(shí),它也會(huì)做出反應(yīng),觸發(fā)適當(dāng)?shù)陌踩胧?。該公司現(xiàn)在已經(jīng)開(kāi)放了該工具的源代碼,這可以讓其他人從其創(chuàng)新中受益。
一家在線旅行社對(duì)其系統(tǒng)是否存在安全漏洞十分關(guān)注。該公司正在經(jīng)歷以上提到的大規(guī)??焖侔l(fā)展的情況,因此需要采用自動(dòng)化技術(shù)。該公司一位軟件工程師指出:“以我們目前的經(jīng)營(yíng)規(guī)模,人工審查代碼和配置是一場(chǎng)噩夢(mèng)?!痹摴緵Q定構(gòu)建自己的儀表板應(yīng)用程序,以便開(kāi)發(fā)人員和管理人員能夠通過(guò)API調(diào)用來(lái)收集信息,從而為開(kāi)發(fā)人員和管理人員提供跨項(xiàng)目安全所需的可見(jiàn)性。
由于在管道流程方面需要協(xié)助,促使一家美國(guó)媒體公司創(chuàng)建了自己的內(nèi)部應(yīng)用程序,該應(yīng)用程序通過(guò)Cloudtrail檢測(cè)新的容器映像,掃描它們中的漏洞,并使用其安全工具的API來(lái)獲取結(jié)果和處理這些信息,為相關(guān)團(tuán)隊(duì)和開(kāi)發(fā)人員創(chuàng)建Jira票證。該公司的平臺(tái)工程總監(jiān)表示,該業(yè)務(wù)可以處理數(shù)千個(gè)容器映像以及多達(dá)7000個(gè)代碼存儲(chǔ)庫(kù)。只有通過(guò)盡可能多地實(shí)現(xiàn)工作流程的自動(dòng)化,才能確信風(fēng)險(xiǎn)得到了持續(xù)發(fā)現(xiàn)和緩解。
不斷實(shí)現(xiàn)自動(dòng)化
隨著企業(yè)不斷實(shí)現(xiàn)自動(dòng)化,必須考慮多種因素才能獲得最佳效果。首先,這很可能會(huì)影響安全工具的整體選擇,并且希望自動(dòng)化工具有更強(qiáng)的適應(yīng)性。在制定決策時(shí),功能強(qiáng)大且文檔齊全的API的可用性似乎并不總是被優(yōu)先考慮,而是創(chuàng)建完全可以滿足企業(yè)需求的安全自動(dòng)化工具。對(duì)于其他企業(yè)(通常是規(guī)模較小的企業(yè)),選擇的編程語(yǔ)言所固有的SDK的可用性將是絕對(duì)必要的。
當(dāng)這家媒體公司開(kāi)發(fā)自己的內(nèi)部應(yīng)用程序時(shí),該公司平臺(tái)工程總監(jiān)強(qiáng)調(diào)的第二個(gè)關(guān)鍵點(diǎn)是仔細(xì)考慮自動(dòng)化的結(jié)果。如果一次掃描可以檢測(cè)到數(shù)千個(gè)漏洞,那么簡(jiǎn)單地出現(xiàn)故障單,要求解決所有漏洞問(wèn)題,可能會(huì)很快造成低級(jí)別作業(yè)的日志阻塞,并讓開(kāi)發(fā)團(tuán)隊(duì)感到沮喪。與其相反,系統(tǒng)會(huì)過(guò)濾掉不可修復(fù)或無(wú)法利用的漏洞,并根據(jù)這些漏洞對(duì)應(yīng)用程序安全性的影響程度對(duì)任務(wù)進(jìn)行優(yōu)先級(jí)排序。該系統(tǒng)還使開(kāi)發(fā)人員更輕松地處理故障單,提供有關(guān)補(bǔ)丁可用性的建議以及描述漏洞性質(zhì)的文檔鏈接。
關(guān)于自動(dòng)化項(xiàng)目的最后一點(diǎn)是要確保始終記住目標(biāo)是使工作盡可能輕松。創(chuàng)建新的流程、新的工具或跳轉(zhuǎn)的方法可能是必要的一步。在可能的情況下,盡量使用開(kāi)發(fā)人員日常使用的工具,無(wú)論是通過(guò)IDE、存儲(chǔ)庫(kù)還是票務(wù)系統(tǒng)。當(dāng)自動(dòng)化在不增加問(wèn)題的情況下實(shí)現(xiàn)安全性時(shí),這就是企業(yè)應(yīng)該努力實(shí)現(xiàn)的理想組合。