Isaac Sacolick ?沈建苗
專家們介紹了軟件開發(fā)團(tuán)隊(duì)如何可以“將安全左移”(即在開發(fā)的早期階段就注重安全),并改善使用開源組件、管理代碼、部署服務(wù)和處理數(shù)據(jù)等方面的治理工作。
首席信息官及其IT部門面臨來自業(yè)務(wù)部門的巨大壓力,需要更新改造應(yīng)用程序、改善客戶體驗(yàn)、將應(yīng)用程序遷移到云端,以及實(shí)現(xiàn)工作流程自動(dòng)化。敏捷開發(fā)和開發(fā)運(yùn)維(DevOps)包括相應(yīng)的文化、實(shí)踐、工具和自動(dòng)化,它們使軟件開發(fā)團(tuán)隊(duì)能夠?qū)崿F(xiàn)這些目標(biāo),并交付業(yè)務(wù)價(jià)值,擁有更高的質(zhì)量和更快的發(fā)布周期。
最先進(jìn)的開發(fā)團(tuán)隊(duì)采用完全自動(dòng)化的持續(xù)集成和持續(xù)交付(CI/CD)管道,擁有集成的測(cè)試自動(dòng)化功能,并以基礎(chǔ)架構(gòu)即代碼這種方式進(jìn)行部署。它們將變更管理和事件管理工作流程與敏捷開發(fā)工具聯(lián)系在一起,并使用人工智能運(yùn)維(AIops)平臺(tái)更快速地找到生產(chǎn)環(huán)境中實(shí)際問題的根本原因。
然而,軟件開發(fā)中的安全問題依然存在。行業(yè)分析公司ESG的《現(xiàn)代應(yīng)用程序開發(fā)安全》報(bào)告顯示,只有36%的受訪者將其應(yīng)用程序安全項(xiàng)目評(píng)為9分或10分,而66%的受訪者表示應(yīng)用程序安全工具保護(hù)的代碼庫(kù)不到75%,48%的受訪者承認(rèn)經(jīng)常將易受攻擊的代碼推送到生產(chǎn)環(huán)境。
存在這些安全缺陷,倒不是由于缺乏技術(shù)、咨詢或安全服務(wù)提供商?!?020年網(wǎng)絡(luò)安全年鑒》列有3500多個(gè)潛在的安全合作伙伴。最終,要在盡量減少軟件開發(fā)中安全風(fēng)險(xiǎn)的同時(shí)提供業(yè)務(wù)價(jià)值,關(guān)鍵在于明確定義安全原則,并將這些原則告知軟件開發(fā)團(tuán)隊(duì)。
以下是首席信息官和IT負(fù)責(zé)人應(yīng)關(guān)注的六大風(fēng)險(xiǎn)以及應(yīng)對(duì)方法。
企業(yè)組織將安全放在首位,許多組織也的確遵循敏捷和開發(fā)運(yùn)維中的最佳安全實(shí)踐。但是與開發(fā)團(tuán)隊(duì)的人數(shù)相比,信息安全團(tuán)隊(duì)常常人手不足,不難看出業(yè)務(wù)和技術(shù)債務(wù)方面的其他優(yōu)先事項(xiàng)占了敏捷團(tuán)隊(duì)待完成工作的大部分,以及為什么整個(gè)組織沒有統(tǒng)一采用安全實(shí)踐。
ESG的研究報(bào)告支持這一結(jié)論。雖然78%的受訪者表示他們的安全分析員直接與開發(fā)人員互動(dòng),但只有31%的受訪者逐個(gè)審查功能和代碼。這個(gè)差距相當(dāng)大,大多數(shù)企業(yè)組織不太可能聘請(qǐng)足夠多的安全專家,并將他們長(zhǎng)期分配給敏捷開發(fā)團(tuán)隊(duì)。但是許多企業(yè)組織可以做下列這些事:
· 要求對(duì)整個(gè)軟件開發(fā)團(tuán)隊(duì)進(jìn)行持續(xù)的安全培訓(xùn)和教育。
· 要求信息安全團(tuán)隊(duì)在Atlassian Confluence或Microsoft Teams等工具中記載安全驗(yàn)收標(biāo)準(zhǔn),并要求敏捷團(tuán)隊(duì)在用戶故事中提到這些標(biāo)準(zhǔn)。
· 規(guī)范敏捷規(guī)劃和發(fā)布管理方面的協(xié)作,以便信息安全團(tuán)隊(duì)可以在開發(fā)過程的早期標(biāo)記高風(fēng)險(xiǎn)功能和用戶故事。
· 記錄并發(fā)布迭代開發(fā)周期(sprint)評(píng)審結(jié)果,以便信息安全團(tuán)隊(duì)可以看到更多的評(píng)審結(jié)果,并標(biāo)記有風(fēng)險(xiǎn)的實(shí)施。
· 要求所有新開發(fā)的API、微服務(wù)、集成機(jī)制和應(yīng)用程序在CI/CD管道中落實(shí)所需的安全測(cè)試。
定義原則、確??鐖F(tuán)隊(duì)協(xié)作、改善文化和增進(jìn)團(tuán)隊(duì)幸福感,這些可能是首席信息官有助于改善軟件安全的幾種最重要的方法。2020年的《開發(fā)安全運(yùn)維(DevSecOps)社區(qū)調(diào)查》發(fā)現(xiàn),心情舒暢的開發(fā)人員關(guān)注安全的可能性高出3.6倍。
軟件開發(fā)團(tuán)隊(duì)酷愛編寫和開發(fā)解決方案,企業(yè)組織需要他們的才能、創(chuàng)新和技術(shù)本領(lǐng),以應(yīng)對(duì)緊迫的業(yè)務(wù)挑戰(zhàn)。但有時(shí)候,實(shí)際需求也會(huì)讓開發(fā)團(tuán)隊(duì)陷入不斷解決棘手的技術(shù)挑戰(zhàn)和實(shí)施方法中,而這些原本是可以從第三方獲得的。
低代碼和無代碼有時(shí)可能意味著更安全的解決方案,這至少有兩個(gè)原因:首先,敏捷產(chǎn)品的所有者并不總是了解其主要功能的安全隱患。其次,許多人在未規(guī)定解決方案要素的情況下試圖明確表達(dá)需求,這有時(shí)會(huì)導(dǎo)致團(tuán)隊(duì)實(shí)施的代碼密集型解決方案帶來安全風(fēng)險(xiǎn)。
敏捷開發(fā)團(tuán)隊(duì)?wèi)?yīng)從向產(chǎn)品所有者詢問功能優(yōu)先事項(xiàng)方面的問題入手,并商議范圍和需求。避免受到質(zhì)疑的一種做法是,嚴(yán)格按照規(guī)范編寫用戶故事,并進(jìn)行評(píng)估,以便復(fù)雜情況能在編程開始之前暴露出來。
一旦團(tuán)隊(duì)就優(yōu)先事項(xiàng)和功能范圍達(dá)成一致,開發(fā)團(tuán)隊(duì)?wèi)?yīng)考慮實(shí)施時(shí)具體在哪些地方利用第三方技術(shù)。審核對(duì)象應(yīng)包括低代碼/無代碼平臺(tái)、開源代碼庫(kù)、商業(yè)框架、公共云服務(wù)和軟件即服務(wù)工具。
當(dāng)然,天下沒有免費(fèi)的午餐。使用第三方解決方案也會(huì)帶來風(fēng)險(xiǎn)。
你是否聽說過開發(fā)運(yùn)維團(tuán)隊(duì)為何最有能力挑選自己的工具?這是高級(jí)開發(fā)運(yùn)維團(tuán)隊(duì)經(jīng)常提及的一個(gè)觀念,我也聽說過好幾本倡導(dǎo)這個(gè)原則的著名的開發(fā)運(yùn)維書籍。
然而,許多首席信息官、IT負(fù)責(zé)人和首席信息安全官警告不要讓開發(fā)運(yùn)維團(tuán)隊(duì)全權(quán)決定工具和組件方面的選擇。與此同時(shí),大多數(shù)負(fù)責(zé)人也承認(rèn),過多的限制和復(fù)雜的審批流程會(huì)阻礙創(chuàng)新,并讓才華橫溢的開發(fā)人員頗為沮喪。首席信息官、IT負(fù)責(zé)人和首席信息安全官必須圍繞技術(shù)選擇、升級(jí)和補(bǔ)丁,確定條理清晰、易于遵守的規(guī)則和明智的治理。
最近的調(diào)查結(jié)果表明了風(fēng)險(xiǎn)。有公司對(duì)1500名IT專業(yè)人員就開發(fā)安全運(yùn)維和開源代碼管理進(jìn)行了調(diào)查,結(jié)果發(fā)現(xiàn),只有72%的企業(yè)聲稱擁有開源代碼使用方面的政策,只有64%的企業(yè)聲稱設(shè)有開源治理委員會(huì)。而這只是問題的冰山一角,因?yàn)橹挥?6%的受訪者認(rèn)為,一旦發(fā)現(xiàn)某個(gè)高危的開源漏洞,自己有能力修復(fù)漏洞。
考慮到與開源組件有關(guān)的泄密事件數(shù)量眾多,上述結(jié)果令人擔(dān)憂。在2020年的《開發(fā)安全運(yùn)維社區(qū)調(diào)查》中,21%的受訪者承認(rèn)遇到過與開源組件有關(guān)的泄密事件。這不僅僅是開源問題,因?yàn)槿魏紊虡I(yè)系統(tǒng)也可能存在API安全漏洞或其他軟件組件漏洞。
要緩解風(fēng)險(xiǎn),就需要在開源代碼的使用、工具選擇和技術(shù)生命周期等方面制定明確定義的政策、治理和管理實(shí)踐。但是企業(yè)組織在最佳實(shí)踐上有所不同。有些企業(yè)依賴更開放的程序,而另一些企業(yè)則依賴更低的風(fēng)險(xiǎn)容忍度和更嚴(yán)格的程序。為了在安全與創(chuàng)新之間達(dá)成兩者兼顧的政策,首席信息官應(yīng)成立一個(gè)跨部門團(tuán)隊(duì),以確定治理程序、實(shí)踐標(biāo)準(zhǔn)、工具和度量指標(biāo)。
擁有將開發(fā)者功能與安全最佳實(shí)踐相集成的工具,可以緩解選擇開源組件的一些挑戰(zhàn)。Quick Base公司的首席產(chǎn)品和技術(shù)官Jay Jamison介紹了該公司在用開源進(jìn)行創(chuàng)新這方面的做法:
“我們很早就采用了GitHub Advanced Security,有了該產(chǎn)品,可比較容易地揪出GitHub平臺(tái)上管理的開源項(xiàng)目中的漏洞。這是讓安全更早地進(jìn)入軟件開發(fā)生命周期(或用開發(fā)人員的術(shù)語來說就是左移)的重要一步?!?h3>第四大風(fēng)險(xiǎn):不受制約地訪問源代碼存儲(chǔ)庫(kù)和CI/CD管道
如何確保內(nèi)部軟件的安全?之前的方法是:嚴(yán)加保護(hù)版本控制存儲(chǔ)庫(kù)、掃描代碼以查找漏洞、定義最小權(quán)限以便于部署、加密連接以及執(zhí)行滲透測(cè)試。嚴(yán)加保護(hù)網(wǎng)絡(luò)和基礎(chǔ)架構(gòu)是個(gè)全然不同的安全領(lǐng)域,牽涉IT運(yùn)維部門管理的單獨(dú)工具和準(zhǔn)則。
如今有了更多的風(fēng)險(xiǎn)和更多的工具,但也有了更好的集成機(jī)制。我與Cherwell工程副總裁Josh Mason談過Cherwell確保代碼安全的做法。他說:“我們Cherwell添加了自動(dòng)靜態(tài)分析安全測(cè)試(SAST)、動(dòng)態(tài)應(yīng)用程序安全測(cè)試以及人工完成的滲透測(cè)試,這往往可以共同提高生產(chǎn)力。將SAST作為CI/CD管道的一部分來實(shí)施,使漏洞發(fā)現(xiàn)過程在軟件開發(fā)生命周期中進(jìn)一步左移,因而可以更快速、更省錢地解決問題?!?/p>
Mason還建議嚴(yán)加保管版本控制存儲(chǔ)庫(kù)?!白裱阈湃文P秃妥钚√貦?quán)原則的指導(dǎo)是一種良好的做法,限制了對(duì)源代碼控制存儲(chǔ)庫(kù)及其功能的訪問。源代碼控制存儲(chǔ)庫(kù)解決方案(比如Azure DevOps、GitHub和Bitbucket等)提供了細(xì)粒度的用戶權(quán)限,從而將開發(fā)人員(或整個(gè)開發(fā)團(tuán)隊(duì))限制在與他們的工作有關(guān)的一小部分代碼庫(kù)。”
戴爾科技旗下Boomi的工程主管Rajesh Raheja建議遵循幾個(gè)安全準(zhǔn)則,開發(fā)團(tuán)隊(duì)?wèi)?yīng)肩負(fù)起責(zé)任?!叭绻浖_發(fā)不當(dāng),與單個(gè)系統(tǒng)遭到攻擊相比,大規(guī)模環(huán)境下的安全風(fēng)險(xiǎn)會(huì)大幅放大。要想緩解風(fēng)險(xiǎn),就必須確保CI/CD管道安全,以最小特權(quán)原則嚴(yán)加保護(hù)系統(tǒng),借助多因子身份驗(yàn)證為自動(dòng)化實(shí)施安全變通方法,提高團(tuán)隊(duì)成員的安全意識(shí),并制定安全編程實(shí)踐?!?h3>第五大風(fēng)險(xiǎn):保護(hù)和管理敏感數(shù)據(jù)
雖然許多開發(fā)運(yùn)維團(tuán)隊(duì)精通開發(fā)、測(cè)試和部署應(yīng)用程序方面的安全實(shí)踐,但他們還必須添加數(shù)據(jù)管理和數(shù)據(jù)運(yùn)維方面的安全實(shí)踐。
DataKitchen首席執(zhí)行官Chris Bergh解釋了該問題以及更多的數(shù)據(jù)運(yùn)維安全實(shí)現(xiàn)自動(dòng)化的方法?!皵?shù)據(jù)隱私和安全方面的挑戰(zhàn)阻止公司利用其數(shù)據(jù)獲得競(jìng)爭(zhēng)優(yōu)勢(shì)。手動(dòng)流程無法解決這個(gè)問題——太多的數(shù)據(jù)太快速地流入,來不及處理。數(shù)據(jù)安全運(yùn)維(Datasecops)是一套使數(shù)據(jù)隱私和安全實(shí)現(xiàn)自動(dòng)化的方法,它將隱私、安全和治理集成到與數(shù)據(jù)分析開發(fā)、部署和運(yùn)維一起執(zhí)行的自動(dòng)化工作流程中?!?/p>
首席信息官和IT負(fù)責(zé)人在數(shù)據(jù)運(yùn)維方面遇到的主要挑戰(zhàn)是,采用主動(dòng)的數(shù)據(jù)治理、標(biāo)記敏感數(shù)據(jù),以及對(duì)開發(fā)人員和數(shù)據(jù)科學(xué)家進(jìn)行可接受的數(shù)據(jù)實(shí)踐方面的教育。集中身份管理、定義基于角色的授權(quán)以及掩藏開發(fā)環(huán)境中的敏感數(shù)據(jù),這些是確保數(shù)據(jù)安全和數(shù)據(jù)隱私的重要做法。
管理敏感數(shù)據(jù)超出了數(shù)據(jù)安全的范疇。比如說,許多公司(尤其是受監(jiān)管行業(yè)的那些公司)必須記錄數(shù)據(jù)沿襲(data lineage),表明誰變更了數(shù)據(jù)、何時(shí)更改、在何處更改以及如何更改。這些公司常常使用擁有內(nèi)置數(shù)據(jù)沿襲功能的數(shù)據(jù)集成和數(shù)據(jù)管理平臺(tái)。
我管理風(fēng)險(xiǎn)和安全的方法向來是聽取不同專家的建議。安全威脅的程度和復(fù)雜性在與日俱增,大多數(shù)企業(yè)組織不太可能擁有所有必需的專業(yè)知識(shí)。此外,真出現(xiàn)安全問題時(shí),可以向一群人討教如何降低風(fēng)險(xiǎn)、解決問題、收集取證分析結(jié)果以及堵住漏洞,對(duì)于盡量減小影響至關(guān)重要。
雖然諸多工具和實(shí)踐幫助首席信息官解決當(dāng)下的問題,但我們?nèi)孕枰獙<襾響?yīng)對(duì)下一批安全挑戰(zhàn)。
本文作者Isaac Sacolick著有亞馬遜暢銷書《數(shù)字化驅(qū)動(dòng):通過技術(shù)進(jìn)行業(yè)務(wù)轉(zhuǎn)型的領(lǐng)導(dǎo)者指南》,該書介紹了很多實(shí)踐,比如敏捷規(guī)劃、開發(fā)運(yùn)維和數(shù)據(jù)科學(xué),這些都是成功實(shí)施數(shù)字化轉(zhuǎn)型計(jì)劃的關(guān)鍵。Sacolick是一位公認(rèn)的頂級(jí)首席信息官和數(shù)字化轉(zhuǎn)型方面的影響力者。他在InfoWorld.com、CIO.com、個(gè)人博客Social, Agile, and Transformation以及其他網(wǎng)站上發(fā)表的文章超過了650篇。
原文網(wǎng)址
https://www.infoworld.com/article/3607914/6-security-risks-in-software-development-and-how-to-address-them.html