譯者 | 布加迪
(相關(guān)資料圖)
審校 | 重樓?
這幾年,微服務(wù)革命席卷整個(gè)IT界,71%的組織聲稱(chēng)2021年之前采用了這種架構(gòu)。在討論微服務(wù)時(shí),我們常聽(tīng)到其優(yōu)勢(shì)在于可以靈活地向客戶(hù)交付創(chuàng)新成果。但有一個(gè)方面卻很少被人提及,那就是企業(yè)安全問(wèn)題。?
在單體式應(yīng)用程序時(shí)代,單單一個(gè)安全問(wèn)題就可能意味著要花成百上千個(gè)小時(shí)從頭重新構(gòu)建應(yīng)用程序。除了必須修補(bǔ)安全漏洞本身外,這還意味著DevOps團(tuán)隊(duì)和安全團(tuán)隊(duì)將不得不審查和重構(gòu)應(yīng)用程序以調(diào)整依賴(lài)項(xiàng),有時(shí)不得不有效地對(duì)整個(gè)應(yīng)用程序進(jìn)行逆向工程處理。?
微服務(wù)顛覆了這種模式。它允許DevOps團(tuán)隊(duì)在不用擔(dān)心破壞整個(gè)應(yīng)用程序架構(gòu)的情況下隔離安全漏洞或問(wèn)題,并解決它們。這不僅意味著可以更迅速地開(kāi)發(fā)出安全補(bǔ)丁,還意味著DevOps團(tuán)隊(duì)和IT架構(gòu)整體上更有彈性、更高效。?
微服務(wù)如何幫助隔離安全漏洞??先有必要提醒一下什么是微服務(wù)架構(gòu):這是一組可以獨(dú)立部署的服務(wù),通過(guò)API等中介系統(tǒng)松散地聯(lián)系在一起。這些單獨(dú)的服務(wù)通常反映了應(yīng)用程序最基本的構(gòu)建模塊。?
實(shí)際上,容器是用于交付微服務(wù)架構(gòu)的技術(shù)。這些輕量級(jí)獨(dú)立軟件包將應(yīng)用程序代碼與輕量級(jí)操作系統(tǒng)、運(yùn)行時(shí)環(huán)境、庫(kù)和配置數(shù)據(jù)捆綁在一起。通過(guò)使用像Kubernetes這樣的編排系統(tǒng),各個(gè)容器可以彼此交換輸出內(nèi)容,使它們能夠執(zhí)行曾經(jīng)通過(guò)單體式應(yīng)用程序才能實(shí)現(xiàn)的總體任務(wù)。?
微服務(wù)架構(gòu)通常由容器提供,通過(guò)設(shè)計(jì)來(lái)隔離許多安全風(fēng)險(xiǎn)。由于單個(gè)微服務(wù)僅通過(guò)編排它們的中介系統(tǒng)交換輸出,單個(gè)微服務(wù)被破壞或攻擊很難影響整個(gè)應(yīng)用程序。?
以日歷為例?在實(shí)踐中,上述表述又意味著什么呢?以下是一個(gè)推演案例。?
幾年前制造商發(fā)現(xiàn),如果將日期改為1/1/1970,許多消費(fèi)級(jí)設(shè)備就無(wú)法使用。想象一下:如果我們將該缺陷引入到用于企業(yè)環(huán)境中的日歷應(yīng)用程序?,F(xiàn)在假設(shè)黑帽攻擊者搶在安全團(tuán)隊(duì)之前發(fā)現(xiàn)了這個(gè)問(wèn)題,隨后進(jìn)而獲取某人的憑據(jù),并將日歷應(yīng)用程序中的當(dāng)前日期更改為1/1/1970。?
如果企業(yè)的DevOps團(tuán)隊(duì)在處理單體式應(yīng)用程序,他們不得不做以下工作:?
首先,他們將不得不應(yīng)對(duì)由攻擊引起的一系列廣泛的系統(tǒng)故障,除非解決了這個(gè)缺陷,否則他們無(wú)法修復(fù)這些問(wèn)題。?
其次,假設(shè)他們發(fā)現(xiàn)了缺陷出在日歷應(yīng)用程序上,將不得不檢查該應(yīng)用程序的完整源代碼,并手動(dòng)找到問(wèn)題所在。?
最后,他們將不得不檢查整個(gè)日歷應(yīng)用程序的源代碼,以更改引用與有漏洞的代碼行相關(guān)的變量或語(yǔ)句的任何地方。?
如果同一個(gè)DevOps團(tuán)隊(duì)處理微服務(wù)架構(gòu),情況又會(huì)怎樣呢??
首先,一旦黑帽攻擊者更改了日期,他們會(huì)注意到含有缺陷的特定微服務(wù)出現(xiàn)了故障。?
其次,假設(shè)他們?cè)谑褂萌萜鳎麄兊腒ubernetes發(fā)行版會(huì)標(biāo)記特定的容器并沒(méi)有發(fā)送有效的輸出數(shù)據(jù)。?
最后,團(tuán)隊(duì)只需將有問(wèn)題的容器的設(shè)置恢復(fù)到惡意日期更改之前即可。?
一旦團(tuán)隊(duì)完成了最初的診斷并通過(guò)設(shè)置回滾來(lái)解決問(wèn)題,他們可以修復(fù)導(dǎo)致漏洞的底層缺陷。綜觀(guān)整個(gè)過(guò)程,更廣泛的日歷應(yīng)用程序以及依賴(lài)它的一切都保持在線(xiàn)狀態(tài)。?
微服務(wù)有助于提高效率和主動(dòng)性?從上面的故事中可以得出一大啟示:在微服務(wù)架構(gòu)中,只需要替換或更新有缺陷的組件,而不是替換或更新整個(gè)應(yīng)用程序。這意味著果真出現(xiàn)問(wèn)題或漏洞時(shí),停運(yùn)時(shí)間更短,因?yàn)閳F(tuán)隊(duì)可以識(shí)別并恢復(fù)受損的單個(gè)微服務(wù)。此外,這為DevOps團(tuán)隊(duì)和安全團(tuán)隊(duì)減少了解決缺陷的工作量,因?yàn)樗麄冎恍枰膭?dòng)單個(gè)微服務(wù),需要改動(dòng)的應(yīng)用程序代碼必然比完整的單體式應(yīng)用程序更少。?
此外,微服務(wù)讓團(tuán)隊(duì)可以更積極主動(dòng)。微服務(wù)通過(guò)防止攻擊或級(jí)聯(lián)漏洞的隔離機(jī)制來(lái)實(shí)現(xiàn)這種主動(dòng)性。這種隔離機(jī)制讓團(tuán)隊(duì)能夠不斷地改進(jìn)單個(gè)微服務(wù),不必考慮應(yīng)用程序的其余部分。?
這意味著DevSecOps專(zhuān)業(yè)人員可以致力于留意漏洞或推出安全更新。不需要管理或后勤工作來(lái)阻止安全更新破壞應(yīng)用程序中的另一個(gè)微服務(wù)。說(shuō)到修復(fù)零日漏洞或保護(hù)應(yīng)用程序免受新出現(xiàn)的威脅,這種靈活性和自由度大有益處。?
由于微服務(wù),團(tuán)隊(duì)可以比以往任何時(shí)候更快速、更有效地響應(yīng)安全威脅。說(shuō)到主動(dòng)性方面,微服務(wù)使團(tuán)隊(duì)能夠以極快的速度加固系統(tǒng)。總之,這就是為什么說(shuō)微服務(wù)已改變了企業(yè)IT安全界的面貌:它們讓開(kāi)發(fā)團(tuán)隊(duì)、運(yùn)營(yíng)團(tuán)隊(duì)和安全團(tuán)隊(duì)能夠以前所未有的靈活性更快速地工作。?
原文標(biāo)題:??How microservices have transformed enterprise security??,作者:Simon Wright
標(biāo)簽: