零信任體系化能力建設(shè)(4):應(yīng)用安全與開發(fā)部署
前言:應(yīng)用和工作負(fù)載是企業(yè)資產(chǎn)的重要組成部分,也是用戶訪問(wèn)企業(yè)數(shù)據(jù)的主要手段和攻擊者關(guān)注的首要目標(biāo),因此,強(qiáng)化對(duì)IT棧內(nèi)軟件部分的安全控制是企業(yè)推進(jìn)零信任成熟度的必由之路。
關(guān)鍵字:零信任;應(yīng)用安全;工作負(fù)載安全;開發(fā)部署;安全測(cè)試
一
零信任應(yīng)用安全
然而,基于邊界的安全模型假定了內(nèi)網(wǎng)的默認(rèn)安全,也抑制了對(duì)應(yīng)用開發(fā)的安全性需求。教育機(jī)構(gòu)忽視了對(duì)應(yīng)用安全設(shè)計(jì)或編碼的教學(xué)培訓(xùn),開發(fā)人員普遍缺乏生產(chǎn)安全產(chǎn)品的技能,安全措施經(jīng)常在應(yīng)用開發(fā)完成(甚至安全事件發(fā)生)后,以追加模式附著于應(yīng)用程序。在應(yīng)用生命周期的后期(運(yùn)行或維護(hù)階段),運(yùn)維人員甚至可能疏忽對(duì)安全漏洞的掃描和修復(fù)。
在應(yīng)用領(lǐng)域建設(shè)零信任安全能力,通常要面對(duì)比終端和網(wǎng)絡(luò)等領(lǐng)域更為復(fù)雜的局面,應(yīng)用的訪問(wèn)方式(例如,通信機(jī)制、共享機(jī)制,以及認(rèn)證方法等)、行為特征、編碼安全、開發(fā)部署、交付更新等問(wèn)題均需進(jìn)行梳理分析,并進(jìn)行合理的改進(jìn)優(yōu)化。
另外,在大多數(shù)時(shí)候,盡管應(yīng)用安全是從OSI參考架構(gòu)應(yīng)用層的視角去進(jìn)行觀察和分析的,但安全能力的構(gòu)建實(shí)際上需要從更低的層次開始,對(duì)應(yīng)用層的保護(hù)需要借助或依賴網(wǎng)絡(luò)層和傳輸層的安全能力,不同層次安全能力的關(guān)聯(lián)、集成和協(xié)作是減少暴露面、提高可見性、推進(jìn)零信任成熟度的關(guān)鍵。
二
應(yīng)用安全的關(guān)鍵能力
在零信任安全框架中,應(yīng)用安全能力既要確保應(yīng)用和工作負(fù)載間的安全訪問(wèn)授權(quán),阻止橫向移動(dòng)和非法訪問(wèn),也要保障應(yīng)用層的協(xié)議和內(nèi)容安全,識(shí)別并阻斷惡意內(nèi)容和威脅,同時(shí)還要保證應(yīng)用的全生命周期安全(包括設(shè)計(jì)、開發(fā)、測(cè)試、部署和運(yùn)維),以適應(yīng)不斷變化的威脅環(huán)境和安全需求。
1
訪問(wèn)與授權(quán)
零信任希望為用戶提供與位置無(wú)關(guān)的安全訪問(wèn)。在應(yīng)用支柱的最佳成熟度級(jí)別,無(wú)論用戶身在各處(內(nèi)網(wǎng)、互聯(lián)網(wǎng)等),組織都應(yīng)該向用戶提供基于零信任的應(yīng)用訪問(wèn)通道,減少訪問(wèn)延遲,并提供一致的、良好的用戶體驗(yàn)。
在向互聯(lián)網(wǎng)開放應(yīng)用訪問(wèn)時(shí),通常也需要利用傳輸層和網(wǎng)絡(luò)層的安全機(jī)制(例如,mTLS、IPSec等),實(shí)現(xiàn)在公共互聯(lián)網(wǎng)上的安全連接,確保數(shù)據(jù)在通信路徑的完整性和機(jī)密性。
2
威脅與保護(hù)
為防止?jié)撛诘穆┒幢还粽呃?,需要在?yīng)用層面實(shí)施多層次的保護(hù)機(jī)制。例如,通過(guò)WAF技術(shù)來(lái)檢測(cè)、識(shí)別和阻止對(duì)常見漏洞(例如,OWASP Top 10)的利用和Web攻擊,包括跨站腳本(XSS)、SQL注入、跨站請(qǐng)求偽造(CSRF)等。
另外,影子IT和API安全也是不容忽視的安全風(fēng)險(xiǎn),未經(jīng)批準(zhǔn)的云應(yīng)用程序和服務(wù),或API非法調(diào)用都可能導(dǎo)致數(shù)據(jù)泄露和安全風(fēng)險(xiǎn)。CASB通過(guò)監(jiān)控和管理云應(yīng)用程序的使用情況,識(shí)別和控制未經(jīng)授權(quán)的應(yīng)用程序訪問(wèn),減少影子IT帶來(lái)的風(fēng)險(xiǎn),還可以通過(guò)提供API保護(hù)功能,監(jiān)控和管理云應(yīng)用程序的API訪問(wèn),確保API的安全性和合規(guī)性。
3
開發(fā)與部署
通常,開發(fā)團(tuán)隊(duì)使用特定的DevOps工具和流程,形成了獨(dú)特的開發(fā)孤島。而且,開發(fā)人員的首要目標(biāo)與基本的安全優(yōu)先事項(xiàng)并不一致,他們更專注于快速交付業(yè)務(wù)部門所需的應(yīng)用功能,而管理或安全團(tuán)隊(duì)則希望進(jìn)一步降低業(yè)務(wù)風(fēng)險(xiǎn),并提供合規(guī)性支持,這些目標(biāo)分歧使應(yīng)用程序安全性進(jìn)一步復(fù)雜化。
在軟件開發(fā)生命周期(SDLC)中引入安全考慮,通過(guò)安全左移,可以避免開發(fā)團(tuán)隊(duì)在開發(fā)后期被迫進(jìn)行安全修復(fù)所面臨的低效問(wèn)題。
在圖1中,Gartner概述了SDLC的七個(gè)階段,并給出了適用于每個(gè)階段的DevSecOps工具。軟件工程領(lǐng)導(dǎo)者應(yīng)與安全和風(fēng)險(xiǎn)團(tuán)隊(duì)以及基礎(chǔ)設(shè)施和運(yùn)營(yíng)方面的同行合作,在SDLC的每個(gè)階段集成工具。零信任應(yīng)用安全的重點(diǎn)是“確保應(yīng)用程序可用且安全,并且了解它們正在做什么”。開發(fā)團(tuán)隊(duì)需要找到一種與DevOps有效合作的方法,以實(shí)現(xiàn)效率和安全的平衡,降低實(shí)現(xiàn)零信任目標(biāo)的難度。
4
安全與測(cè)試
應(yīng)用程序安全測(cè)試涉及對(duì)漏洞和弱點(diǎn)的測(cè)試,常見方法包括靜/動(dòng)態(tài)軟件測(cè)試、代碼審查、滲透測(cè)試、漏洞掃描、配置審計(jì)和安全評(píng)估等。
● 靜態(tài)應(yīng)用安全測(cè)試(SAST):通過(guò)分析源代碼或應(yīng)用程序的二進(jìn)制文件,檢測(cè)潛在的安全漏洞、軟件缺陷;● 動(dòng)態(tài)應(yīng)用安全測(cè)試(DAST):通過(guò)模擬攻擊者的行為,對(duì)正在運(yùn)行的應(yīng)用程序進(jìn)行測(cè)試,以發(fā)現(xiàn)實(shí)時(shí)的漏洞和弱點(diǎn);● 代碼審查:對(duì)應(yīng)用程序代碼進(jìn)行系統(tǒng)、詳細(xì)的審查和分析,以發(fā)現(xiàn)潛在安全問(wèn)題,確保符合最佳實(shí)踐和規(guī)范;● 滲透測(cè)試:模擬真實(shí)的攻擊行為,主動(dòng)尋找應(yīng)用程序的弱點(diǎn),測(cè)試其安全性;漏洞掃描:使用自動(dòng)化工具掃描應(yīng)用程序,尋找已知的漏洞和常見的安全問(wèn)題。● 配置審計(jì):檢查應(yīng)用程序的配置文件和設(shè)置,確保其安全性和合規(guī)性;● 安全評(píng)估:綜合考慮應(yīng)用程序的各個(gè)方面,包括架構(gòu)、設(shè)計(jì)、代碼、配置等,評(píng)估其整體安全性。
這些安全工具增強(qiáng)了開發(fā)人員的安全能力,但簡(jiǎn)單部署這些工具并不能完全實(shí)現(xiàn)零信任目標(biāo),開發(fā)人員需要將威脅模型應(yīng)用到他們的代碼中,并采取思維方式來(lái)考慮攻擊者可能訪問(wèn)的內(nèi)容,以及他們會(huì)怎樣破壞應(yīng)用程序或周圍的供應(yīng)鏈,將應(yīng)用安全編織到零信任安全體系中。
三
應(yīng)用安全的最佳實(shí)踐
零信任是一種可適用于軟件供應(yīng)鏈的思維方式和方法,可以由外向內(nèi)或由內(nèi)向外應(yīng)用于軟件開發(fā)的流程中,使開發(fā)人員更快速地開發(fā)、交付更安全的應(yīng)用。
1
建立軟件物料清單
該清單應(yīng)盡可能覆蓋軟件供應(yīng)鏈中的所有組成,包括代碼中的依賴項(xiàng)、調(diào)用的服務(wù)、公開或訪問(wèn)的API、工作負(fù)載以及用于開發(fā)、托管、集成和構(gòu)建應(yīng)用程序的工具。
軟件物料清單信息為在組織中實(shí)施零信任應(yīng)用安全策略提供了基礎(chǔ)。例如,通過(guò)分析CI/CD流水線和部署環(huán)境,為其設(shè)計(jì)并實(shí)施微隔離,或者了解每個(gè)軟件組件的版本,以確定應(yīng)用中是否存在已知的安全漏洞,并制定升級(jí)計(jì)劃,也可以基于容器清單,規(guī)劃不可變工作負(fù)載的替代方案。
2
改進(jìn)開發(fā)安全流程
有一種觀點(diǎn)認(rèn)為,應(yīng)用安全責(zé)任應(yīng)該由開發(fā)人員承擔(dān)。盡管大家都同意安全編碼是開發(fā)人員的責(zé)任,但引入安全相關(guān)工作可能會(huì)產(chǎn)生一些非預(yù)期的后果(例如,延遲交付)。另一種觀點(diǎn)是,安全團(tuán)隊(duì)?wèi)?yīng)該通過(guò)尋找和消除可能的安全漏洞,來(lái)負(fù)責(zé)應(yīng)用的安全性。但是,由于開發(fā)周期的快速迭代,可能導(dǎo)致安全檢查的覆蓋范圍存在疏忽。
此外,在軟件開發(fā)生命周期中,分析、設(shè)計(jì)和構(gòu)建等每個(gè)流程都有特定的風(fēng)險(xiǎn)要求,而不僅僅是安全編碼就一定能生成安全的應(yīng)用,特別是,合規(guī)性并沒(méi)有真正出現(xiàn)在SDLC的視野中,組織需要采用基于DevSecOps的流程,以端到端模式解決應(yīng)用開發(fā)的安全治理問(wèn)題。
3
持續(xù)監(jiān)控維護(hù)更新
過(guò)去,大多數(shù)組織都使用CVSS評(píng)分對(duì)漏洞進(jìn)行優(yōu)先級(jí)排序。從邏輯上講,關(guān)注漏洞的嚴(yán)重性似乎是正確的,但更重要的問(wèn)題是該漏洞是否可被利用。EPSS模型根據(jù)漏洞的特性和已知的攻擊模式,對(duì)漏洞的潛在可利用性進(jìn)行評(píng)估,可以提供對(duì)漏洞利用可能性的估計(jì),從而幫助安全團(tuán)隊(duì)確定哪些漏洞可能是攻擊者的首要目標(biāo)。
結(jié)合這兩個(gè)評(píng)估系統(tǒng),安全團(tuán)隊(duì)可以制定更全面和有效的漏洞修復(fù)策略,優(yōu)先處理那些同時(shí)具有高CVSS評(píng)分和高EPSS評(píng)分的漏洞,以最大程度地減少系統(tǒng)面臨的風(fēng)險(xiǎn)。
四
結(jié)語(yǔ)
數(shù)字化轉(zhuǎn)型的加速迫使組織重新評(píng)估其安全策略和基礎(chǔ)設(shè)施,推動(dòng)了零信任應(yīng)用程序安全性和合規(guī)性的需求增長(zhǎng)。在致力于零信任建設(shè)的組織中,應(yīng)用程序安全經(jīng)理有很多方法來(lái)實(shí)施相關(guān)行動(dòng),為變革創(chuàng)造動(dòng)力,但最終仍需要與其他支柱中構(gòu)建的解決方案相結(jié)合,或通過(guò)與其他團(tuán)隊(duì)協(xié)作構(gòu)建相關(guān)能力(例如,統(tǒng)一身份庫(kù)、持續(xù)認(rèn)證和授權(quán)、分段資源池以及數(shù)據(jù)分類和保護(hù)),以支持應(yīng)用支柱中的零信任目標(biāo)和組織業(yè)務(wù)。
隨著網(wǎng)絡(luò)威脅日益復(fù)雜和企業(yè)信息安全風(fēng)險(xiǎn)的增加,實(shí)施零信任架構(gòu)已成為保護(hù)企業(yè)關(guān)鍵資產(chǎn)和數(shù)據(jù)的有效策略。易安聯(lián)“權(quán)說(shuō)安全”公眾號(hào)近期擬發(fā)布系列研究成果,基于不同廠商、組織所提出的零信任成熟度模型和典型解決方案,從身份、設(shè)備、網(wǎng)絡(luò)、應(yīng)用與工作負(fù)載、數(shù)據(jù)等不同領(lǐng)域分析零信任能力建設(shè)的內(nèi)容、方法和趨勢(shì),討論零信任的安全能力組成和最佳實(shí)踐,幫助企業(yè)規(guī)劃、構(gòu)建和實(shí)施零信任戰(zhàn)略。
THE AUTHORS
本文作者
本文由易安聯(lián)
紅岸實(shí)驗(yàn)室寫作
專注網(wǎng)安行業(yè)發(fā)展方向
解讀熱門產(chǎn)品技術(shù)趨勢(shì)
歡迎技術(shù)大咖學(xué)習(xí)交流
https://mp.weixin.qq.com/s/dLb7FJuS992nJmucsDtGmA