severless計算的出現(xiàn)使應(yīng)用的安全責(zé)任發(fā)生了一次洗牌
severless計算的出現(xiàn)使應(yīng)用的安全責(zé)任發(fā)生了一次洗牌,將很多責(zé)任從云服務(wù)的使用者身上轉(zhuǎn)移給了云供應(yīng)商。除此之外,serverless計算還必須解決應(yīng)用程序分離和多租戶資源共享本身的風(fēng)險。
隨機(jī)化調(diào)度和物理隔離: 物理共存是在云平臺內(nèi)部引發(fā) hardware-level side-channel 和 Rowhammer 攻擊的主要原因。此類攻擊的第一步往往是尋找和攻擊目標(biāo)位于同一物理宿主機(jī)的租戶作為侵入對象,而cloud functions的生命周期往往較短,且調(diào)度存在隨機(jī)性,這會使攻擊者難以找到和攻擊目標(biāo)共存的侵入對象。使用一種隨機(jī)化的、能感知入侵的調(diào)度算法將會大大降低此類攻擊發(fā)生的可能性,不過這樣產(chǎn)生的物理隔離又可能會導(dǎo)致啟動時間增加、資源利用率降低以及低效通信等問題。
細(xì)粒度的安全上下文: cloud functions需要細(xì)粒度的配置,包括私鑰、儲存對象甚至是本地臨時資源的訪問權(quán)限。這要求我們轉(zhuǎn)變現(xiàn)有serverful應(yīng)用的安全策略,并且為cloud functions提供能夠動態(tài)調(diào)用的安全API。舉個例子,某個cloud function可能需要給其他的cloud function或云服務(wù)提供安全授權(quán),而基于密碼學(xué)的能力控制模型 (A capability-based access control mechanism using cryptographically)就能很好的適用于這樣的分布式系統(tǒng)(近期也有一些研究使用信息流作為跨函數(shù)訪問的控制方法)。如果為cloud function動態(tài)創(chuàng)建短期的密鑰和認(rèn)證,則會進(jìn)一步加大提供分布式安全控制所帶來的挑戰(zhàn),比如非模糊性 (non-equivocation) 和認(rèn)證吊銷問題。
在系統(tǒng)層面上,用戶需要為cloud function提供的更加細(xì)粒度的安全隔離措施,至少作為一個可選的選項。提供函數(shù)級沙箱的要面臨的挑戰(zhàn)是在不緩存執(zhí)行環(huán)境的條件下,仍然要保證足夠短的啟動時間。一種可能性是使用本地快照,這樣每個函數(shù)都可以從一個足夠干凈的狀態(tài)啟動?;蛘?,目前輕量級的虛擬化技術(shù)也正在逐漸被serverless供應(yīng)商所采用,比如包括gVisor在內(nèi)的library OS,通過用戶態(tài)的“墊片層 (shim layer)”來提供系統(tǒng)API;以及像AWS Firecracker這樣的unikernel和microVM,簡化訪客內(nèi)核并幫助縮小可能的攻擊面。這些隔離技術(shù)可以把啟動時間降低到幾十毫秒,比起VM秒級的啟動速度要快得多。至于這些方案是否能夠達(dá)到和傳統(tǒng)VM技術(shù)相同的安全性還需要時間來檢驗,我們也希望構(gòu)建低啟動延時的隔離環(huán)境能夠成為一個持續(xù)發(fā)展的研究和開發(fā)課題。至少從積極的一面看,serverless計算中由供應(yīng)商提供的管理機(jī)制和短生命周期的實例會讓漏洞的修補(bǔ)變得更加迅速。
對于那些想要防御同駐攻擊 (co-residency attack) 的用戶而言,要求物理隔離可能是一個不錯的解決方案,因為近來的硬件攻擊(如 Spectre 和 Meltdown)幾乎可以使整個核心或是整臺物理機(jī)器癱瘓。云供應(yīng)商可以為客戶提供一些高級選項,允許他們在專用的物理主機(jī)上啟動函數(shù)服務(wù)。
serverless計算的隱患: cloud function有可能會在通信期間泄露訪問模式和計時信息。對于serverful的應(yīng)用而言,數(shù)據(jù)通常以批量方式檢索并緩存在本地。相對的,由于cloud functions生命周期短暫,并且廣泛分布在云端,因此它的網(wǎng)絡(luò)傳輸模式有可能會向網(wǎng)絡(luò)攻擊者(比如內(nèi)部雇員)泄露更多的敏感信息(即便運(yùn)輸載體已經(jīng)被加密了),而將serverless應(yīng)用拆分成諸多更小函數(shù)的趨勢則進(jìn)一步加劇了這種風(fēng)險。盡管最大的安全隱患往往來自外部的攻擊者,但針對內(nèi)部人員也應(yīng)當(dāng)采取一定的防范措施,不幸的是,這些措施往往有很高的成本。