雖然微服務(wù)公平地分享他們的利益,但在安全性方面需要重視,包括新的威脅和工具。
隨著越來越多的組織從整體轉(zhuǎn)向更分散的基于微服務(wù)的體系結(jié)構(gòu),那么其安全性是否隨之提高?雖然有些事情有所改善,但微服務(wù)仍然存在一些重大的安全挑戰(zhàn),開發(fā)人員和架構(gòu)師將不得不面臨這些挑戰(zhàn)。
獨(dú)立技術(shù)顧問,Specto Labs公司首席技術(shù)官Daniel Bryant對(duì)提高微服務(wù)的安全性以及可以使用的一些工具和技術(shù)解決出現(xiàn)的一些挑戰(zhàn)進(jìn)行了闡述。
與傳統(tǒng)架構(gòu)相比,微服務(wù)在安全性方面面臨著哪些新挑戰(zhàn)?
Bryant:按照傳統(tǒng)的方法,如果有一件事妥協(xié)了,那就麻煩不斷。這就像將所有的雞蛋放在一個(gè)籃子里。另一方面,當(dāng)事情弄糟之后,突然之間,就必須確保更多的事物的安全。然后隨著攻擊面變得越來越大,就不必再做類似硬化邊緣的事情。
現(xiàn)在最大的挑戰(zhàn)是每個(gè)開發(fā)人員必須更加意識(shí)到安全。還有更多的事情,還有更多的攻擊面,所有這些暴露的東西之間還有更多的溝通。
什么樣的工具和技術(shù)對(duì)于微服務(wù)安全性至關(guān)重要?
Bryant:有一些像Web應(yīng)用程序防火墻這樣非常受歡迎的東西。很多公司使用F5這樣的工作,實(shí)際上就是F5防火墻。人們將越來越多地看到更多的軟件防火墻。
這顯然是預(yù)防,但也需要考慮檢測(cè)。因此,基本內(nèi)容是:記錄通信中的低帶寬、記錄Web流量、記錄SSH[安全套接字shell]訪問。在任何面向公眾的Web服務(wù)器中,如果查看日志,人們就會(huì)不斷地探測(cè)邊緣。如果查看這個(gè)IP地址,或來自己哪個(gè)國家…需要對(duì)來自哪里的東西做某種類似于持續(xù)分析。
還有哪些攻擊呢?他們?cè)噲D探測(cè)什么向量?如果沒有修補(bǔ)系統(tǒng),可能有一天會(huì)遭遇到黑客攻擊。所以肯定需要檢測(cè),需要確保所有的修補(bǔ)完成。用戶將大量的費(fèi)用花費(fèi)在網(wǎng)絡(luò)上和計(jì)算上。這些是很好的東西,但不要忘記應(yīng)用程序。如果應(yīng)用程序有很大的漏洞,那么所有其他的東西都會(huì)受到損害。只有漏洞才會(huì)讓黑客進(jìn)入,并開始造成傷害。
我認(rèn)為像威脅建模這樣的東西也是非常有用的。了解威脅是如何工作的,存在哪些威脅,并建模它們可能如何攻擊系統(tǒng)。人們經(jīng)常發(fā)現(xiàn),正確地建模的副作用讓人們對(duì)事情發(fā)生的不同方式有了不同的認(rèn)識(shí)。所以,如果開始做攻擊向量,會(huì)突然想,‘我真的在應(yīng)用程序中強(qiáng)化了這個(gè)東西,’你會(huì)意識(shí)到你的電子郵件系統(tǒng)或其他東西有一個(gè)巨大的缺陷。
開放Web應(yīng)用程序安全項(xiàng)目(OWASP),他們是一個(gè)非常優(yōu)秀的組織。他們有一系列語言類型的診斷工具,用于掃描依賴關(guān)系中的關(guān)鍵漏洞。所以,如果使用Java或Maven,可以把它放在MavenPalm中。
在微服務(wù)安全性方面,每個(gè)人都應(yīng)該問什么問題?
Bryant:人們?cè)撛趺醋觯繂栕约旱膱F(tuán)隊(duì)和管理層我該怎么辦?這樣的工作與安全有什么關(guān)系?應(yīng)該遵守某些標(biāo)準(zhǔn)嗎?應(yīng)該重新檢查工作嗎?這些東西是最關(guān)鍵的。
我認(rèn)為微服務(wù)安全性與傳統(tǒng)安全性沒有大的不同。作為開發(fā)人員,人們的工作越來越多,必須成為一名操作人員以及開發(fā)人員。你知道,前端和后端,所有這些東西這么繁雜,那么技術(shù)人員的知識(shí)就會(huì)全面卻不深入。
與此同時(shí),如果開發(fā)人員在整個(gè)堆棧中受過良好教育,但對(duì)安全性并不太了解,則很容易留下大量漏洞。如果留下一些巨大的安全漏洞,這可能是非常糟糕的。所以,開發(fā)意識(shí),建模,記錄,分享,到會(huì)議,與人聊天,學(xué)習(xí)等這些因素都很重要。
專家們?cè)谖⒎?wù)安全方面十分重視,但為什么還不能有效的解決呢?
Bryant:這并不是明確所指的是微服務(wù)。隨著世界越來越多的連接,像比特幣這樣的新生事物現(xiàn)在越來越受到攻擊者的攻擊。
我認(rèn)為,IT行業(yè)并沒有像應(yīng)該承擔(dān)的那樣負(fù)責(zé)任。所以,更重要的一個(gè)例子就是人為因素。作為開發(fā)人員還是作為架構(gòu)師,人們是否對(duì)此給予足夠的關(guān)注?人們是不是做了像縱深防御之類的事情?人們是在做審計(jì)和記錄,然后回顧那些事情嗎?有一些基本的東西,比如編碼術(shù)語。這里再次重申,人們并沒有做到。
在安全性方面,傳統(tǒng)架構(gòu)(如面向服務(wù)架構(gòu)(SOA))與分布式微服務(wù)體系結(jié)構(gòu)有何好轉(zhuǎn)?
Bryant:原則上沒有太大的變化。我唯一想說的是,在SOA中,我們有更多的治理。SOA是由供應(yīng)商的法律驅(qū)動(dòng)的。他們說,“你必須使用我的ESB(企業(yè)服務(wù)總線)或我的特定的技術(shù)”,這有很多缺點(diǎn),但其中一個(gè)好處有這個(gè)ESB,可以管理服務(wù)中的所有連接。所以,他們真的投資于政策和治理以及所有這些事情。如果出了問題,你知道應(yīng)該打電話聯(lián)系誰。
然而,這些天來,我們傾向于更輕量級(jí)的技術(shù),但作為一名開發(fā)人員和架構(gòu)師,必須承擔(dān)更多的責(zé)任。治理、政策和事物,盡管有時(shí)是糟糕的,但還是有好處的。擁有更多的控制權(quán),其自由顯然就少了,但這是一種平衡。
DevOps團(tuán)隊(duì)如何能夠與安全團(tuán)隊(duì)合作,確保服務(wù)得到保障?
Bryant:DevOps的理念是讓大家加入。所以,很多顧問公司嘗試引入信息安全。在一個(gè)傳統(tǒng)的組織中,他們通常被稱為信息。讓他們?cè)缛者M(jìn)入項(xiàng)目,他們的知識(shí)是非常有價(jià)值的,所以讓他們?cè)缛諈⑴c是正確的舉措。