現(xiàn)在大部分從業(yè)人員都很熟悉云計(jì)算,由于這種熟悉程度,有時(shí)候很難回想起云計(jì)算的原始承諾。
云計(jì)算的原始承諾是企業(yè)可將注意力從不增加價(jià)值的事物轉(zhuǎn)移到增加價(jià)值的事物。具體來(lái)說(shuō),企業(yè)原本需要構(gòu)建基礎(chǔ)設(shè)施、維護(hù)數(shù)據(jù)中心以及提供業(yè)務(wù)所依賴的應(yīng)用,而云計(jì)算可將其重點(diǎn)轉(zhuǎn)移到構(gòu)建更好、更無(wú)縫和更相關(guān)的應(yīng)用。
然而,僅因?yàn)槭挛镌谠贫瞬⒉灰欢ㄒ馕吨芯S護(hù)要求都消失。例如,基礎(chǔ)設(shè)施即服務(wù)部署仍然需要你進(jìn)行漏洞修復(fù)、布置虛擬網(wǎng)絡(luò)路徑、提供基礎(chǔ)安全設(shè)備以及完成很多其他任務(wù),正如托管在內(nèi)部數(shù)據(jù)中心時(shí)你做的那樣。
而無(wú)服務(wù)器應(yīng)用的新趨勢(shì)有望幫助我們實(shí)現(xiàn)云計(jì)算的原始?jí)粝搿Mㄟ^(guò)無(wú)服務(wù)器應(yīng)用,不再有維護(hù)基礎(chǔ)設(shè)施的工作,讓你可專注于構(gòu)建更好的應(yīng)用。你可以想象,這非常令人信服和強(qiáng)大。
也就是說(shuō),保護(hù)無(wú)服務(wù)器應(yīng)用安全相關(guān)的具體方法與企業(yè)過(guò)去可能采用的方法有些不同。這意味著,如果你計(jì)劃使用無(wú)服務(wù)器應(yīng)用,你可能需要提前思考安全方法并打下堅(jiān)實(shí)基礎(chǔ)。
無(wú)服務(wù)器意味著什么?
無(wú)服務(wù)器并不意味著沒(méi)有服務(wù)器;事實(shí)是這里有服務(wù)器,只是用戶或者構(gòu)建應(yīng)用的開(kāi)發(fā)人員不需要知道服務(wù)器,也不需要了解服務(wù)器在做什么、了解它們?nèi)绾芜\(yùn)作或者警惕應(yīng)用層下可能發(fā)生的情況。開(kāi)發(fā)人員可通過(guò)定義API進(jìn)行交互以部署他們所需要的邏輯。擴(kuò)展、與特定硬件或底層中間件服務(wù)接口邏輯等操作都是由環(huán)境無(wú)縫且透明地處理。
在Google Cloud Functions或Amazon Web Services Lambda等環(huán)境中,通過(guò)事件觸發(fā)功能,而應(yīng)用功能用以響應(yīng)這些事件,并實(shí)現(xiàn)小規(guī)模功能。環(huán)境會(huì)根據(jù)需要配置功能,并根據(jù)需求進(jìn)行擴(kuò)展。這樣做的優(yōu)勢(shì)是,即使超出大多數(shù)云計(jì)算使用情況,你只需要支付你使用的部分。
這與常規(guī)、非服務(wù)器平臺(tái)即服務(wù)部署有何不同?簡(jiǎn)單的回答是,從哲學(xué)角度來(lái)看它們非常接近。然而,即使在PaaS環(huán)境中,與無(wú)服務(wù)器環(huán)境相比,你仍然需要擔(dān)心底層部署方面的情況。
例如,你可能需要在很多PaaS情況下專門(mén)提供資源,這樣擴(kuò)展并不是真正隱藏。同樣,PaaS中特定服務(wù)的配置(例如數(shù)據(jù)庫(kù)或郵件)可能需要非常了解底層部署。所以,從某種意義上來(lái)說(shuō),無(wú)服務(wù)器就像PaaS++。
無(wú)服務(wù)器應(yīng)用的安全注意事項(xiàng)
你可能會(huì)想到,保護(hù)無(wú)服務(wù)器應(yīng)用于保護(hù)傳統(tǒng)單片應(yīng)用或其他云部署有所不同。
首先,最重要的是,你與7層網(wǎng)絡(luò)以下交互的能力幾乎不存在。這意味著你無(wú)法將入侵檢測(cè)設(shè)備放到虛擬網(wǎng)絡(luò)或者在底層操作系統(tǒng)安裝惡意軟件掃描工具。因此,你需要徹底且完整地了解你正在部署的邏輯相關(guān)的威脅模型。
同樣,你需要確保開(kāi)發(fā)的代碼是安全的。這可能不是簡(jiǎn)單的事情,因?yàn)閼?yīng)用安全是很多企業(yè)掙扎的領(lǐng)域。
例如,在應(yīng)用問(wèn)題方面,注入攻擊仍然排在首位。雖然在某種程度上,漏洞總是會(huì)發(fā)生,但其實(shí)我們保護(hù)無(wú)服務(wù)器應(yīng)用的能力與我們了解應(yīng)用邏輯、移除或緩解潛在問(wèn)題、保持代碼高質(zhì)量和監(jiān)控環(huán)境的能力直接相關(guān)。這并非火箭科學(xué),但確實(shí)需要有紀(jì)律。
如果你還沒(méi)有這樣做,這里有種方法可提供即時(shí)價(jià)值,那就是威脅建模。威脅建模已經(jīng)是加強(qiáng)應(yīng)用的有效工具,而它在無(wú)服務(wù)器環(huán)境中比其他情況下更有價(jià)值。它不僅可讓你系統(tǒng)地映射和分析組件之間的交互點(diǎn),而且還可生成數(shù)據(jù)流映射作為流程的部分。即使你可能沒(méi)有完全了解數(shù)據(jù)存儲(chǔ)或計(jì)算的底層機(jī)制,但應(yīng)用元素如何交互的虛擬映射很有用,不僅僅是對(duì)威脅模型的分析。
在執(zhí)行此操作時(shí),你可能會(huì)考慮有哪些可用的選項(xiàng)可隔離應(yīng)用邏輯,以為你提供更多的可見(jiàn)性或?qū)Σ僮鞯目刂啤@纾琕anadium等工具可讓你以對(duì)開(kāi)發(fā)人員透明的方式封裝功能。你還可以選擇自行部署包裝策略。這樣的策略可幫助尋找和過(guò)濾注入攻擊,而不是假設(shè)所有開(kāi)發(fā)人員可提供無(wú)注入代碼。
最后,與任何其他事物一樣,監(jiān)控是必須事項(xiàng)。除了訪問(wèn)控制決策等,你還要了解應(yīng)用邏輯本身。你想要發(fā)現(xiàn)任何不符合業(yè)務(wù)規(guī)則的異常事件。這將根據(jù)特定應(yīng)用的用途而有所不同。這也是威脅建模可提供價(jià)值的領(lǐng)域,因?yàn)槔硐肭闆r下,在創(chuàng)建和記錄威脅建模的時(shí)候,你將首先了解應(yīng)用的設(shè)計(jì)原理。
無(wú)服務(wù)器應(yīng)用是強(qiáng)大的工具,但確保這些工具的安全性并不是安全團(tuán)隊(duì)可完全勝任的工作,因此,最好獲得額外的外部和內(nèi)部專業(yè)技能。
同樣有幫助的做法是培訓(xùn)內(nèi)部員工,讓他們了解威脅建模方法、強(qiáng)大的編碼做法以及常見(jiàn)濫用案例、攻擊和威脅模型等。這也是很好的機(jī)會(huì)來(lái)培養(yǎng)人才、建立技能以及提高企業(yè)整體應(yīng)用的復(fù)雜性和成熟度。