云原生應(yīng)用程序是專門(mén)為在云環(huán)境中部署和運(yùn)行而構(gòu)建的。它們由小型、獨(dú)立的微服務(wù)組成,例如無(wú)服務(wù)器功能和容器,并利用云提供商和第三方合作伙伴通過(guò) API 提供的服務(wù),同時(shí)利用云實(shí)現(xiàn)自動(dòng)化穩(wěn)定性、擴(kuò)展和恢復(fù)。構(gòu)建云原生應(yīng)用程序使開(kāi)發(fā)團(tuán)隊(duì)能夠?qū)W⒂趯?shí)施針對(duì)云擴(kuò)展方式優(yōu)化的架構(gòu)。
云原生應(yīng)用結(jié)構(gòu)
云原生應(yīng)用程序具有全新的獨(dú)特結(jié)構(gòu),它會(huì)影響攻擊者處理這些應(yīng)用程序的方式,從而改變威脅格局。隨著攻擊者改變他們的方法并轉(zhuǎn)向 Gen VI 攻擊,安全從業(yè)者和開(kāi)發(fā)人員必須相應(yīng)地調(diào)整他們保護(hù)云原生應(yīng)用程序的方式。
他們需要為這些新威脅分配更多的時(shí)間和資源,以便最好地為他們的組織阻止它們。必須戰(zhàn)略性地分配資源,但首先必須了解在這種新的威脅形勢(shì)下最有可能面臨哪些威脅。
云原生應(yīng)用程序威脅的類型
云原生應(yīng)用程序中的計(jì)算服務(wù)被設(shè)計(jì)為短暫的并且往往具有較短的生命周期。這是使云原生應(yīng)用程序本質(zhì)上更安全的眾多屬性之一。攻擊者無(wú)法輕易地在您的系統(tǒng)中長(zhǎng)期存在,因此必須改變策略。一種由此產(chǎn)生的策略是Groundhog Day Attack,其中攻擊者設(shè)計(jì)了一個(gè)更短的攻擊,例如竊取幾個(gè)信用卡號(hào)碼,然后重復(fù)。攻擊者利用云原生應(yīng)用程序的自動(dòng)擴(kuò)展來(lái)獲得它的短暫性。
另一種方法是上游攻擊或毒井,攻擊者旨在在您的應(yīng)用程序中獲得更長(zhǎng)期的持久性。云原生應(yīng)用程序往往包含許多模塊和庫(kù)。一個(gè)無(wú)服務(wù)器函數(shù)可能包含來(lái)自各種來(lái)源的數(shù)萬(wàn)行代碼,而不是您的開(kāi)發(fā)人員的工作。攻擊者致力于在常見(jiàn)項(xiàng)目中包含惡意代碼。然后,在井中下毒后,您的云應(yīng)用程序中的惡意代碼可以打電話回家、獲取指令并造成嚴(yán)重破壞。
如何保護(hù)云原生應(yīng)用
幸運(yùn)的是,云原生應(yīng)用程序往往更難受到攻擊。但作為一種新型架構(gòu),它們帶來(lái)了新的安全挑戰(zhàn),開(kāi)發(fā)人員必須采取行動(dòng)降低風(fēng)險(xiǎn)。以下是保護(hù)云原生應(yīng)用程序的一些最佳實(shí)踐:
在功能級(jí)別應(yīng)用邊界安全將您的應(yīng)用程序碎片化為可調(diào)用的較小組件,再加上使用來(lái)自不同來(lái)源(例如存儲(chǔ)、消息隊(duì)列和數(shù)據(jù)庫(kù))的基于事件的觸發(fā)器,這意味著攻擊者有更多的目標(biāo)和更多的攻擊載體。
除了確保您的Web API 和應(yīng)用程序保護(hù) (WAAP)服務(wù)得到改進(jìn)以滿足下一代需求之外,另一個(gè)云原生安全最佳實(shí)踐是在功能級(jí)別應(yīng)用邊界安全。特別注意由不同源類型觸發(fā)的函數(shù)。
為每個(gè)功能設(shè)計(jì)合適的最小角色您必須為云原生資源之間的許多交互建立角色。為每個(gè)無(wú)服務(wù)器功能分配一組唯一權(quán)限的能力提供了進(jìn)一步增強(qiáng) AppSec 的絕佳機(jī)會(huì)。
當(dāng)你在函數(shù)的粒度上做IAM時(shí),IAM 就變成了一個(gè) AppSec 工具。花時(shí)間為您的每個(gè)職能設(shè)計(jì)合適的、最小的角色。此外,請(qǐng)確保您的每個(gè)功能都以最小的可行權(quán)限集執(zhí)行,這樣任何漏掉的漏洞造成的損害就會(huì)降到最低。
安全的應(yīng)用程序依賴性函數(shù)通常包括從 npm (Node.js)、PyPI (Python)、Maven (Java) 或其他相關(guān)存儲(chǔ)庫(kù)中提取的依賴性。保護(hù)應(yīng)用程序依賴性需要訪問(wèn)良好的數(shù)據(jù)庫(kù)和自動(dòng)化工具,包括在開(kāi)發(fā)過(guò)程中觸發(fā)應(yīng)用程序安全性的本地編排工具,-。持續(xù)運(yùn)行這些工具可以防止使用新的易受攻擊的軟件包,并收到有關(guān)新披露問(wèn)題的警報(bào)。
讓安全成為每個(gè)人的問(wèn)題。在開(kāi)發(fā)人員、DevOps 和 AppSec 團(tuán)隊(duì)之間建立緊密的合作伙伴關(guān)系。在開(kāi)發(fā)人員不擁有安全性但他們也不能免除責(zé)任的地方找到平衡——以安全編碼為例。彭博社的一篇文章引用了OpenStack基金會(huì)首席運(yùn)營(yíng)官 Mark Collier 的話說(shuō):“從整體式/瀑布式到敏捷/DevOps 的轉(zhuǎn)變更多地是關(guān)于流程和組織心理學(xué),而不是關(guān)于采用哪些技術(shù)。
這已經(jīng)討論了好幾年,而且不會(huì)很快消失。這是企業(yè)必須解決的一個(gè)大問(wèn)題,并且需要數(shù)年時(shí)間才能實(shí)現(xiàn),因?yàn)檫@是理念的代際轉(zhuǎn)變。”對(duì)于團(tuán)隊(duì)來(lái)說(shuō),盡早彌合差距很重要,即使這感覺(jué)違背了公司 DNA 的正常行為,因?yàn)樵圃枰M織如何管理安全和開(kāi)發(fā)的不同方法。這為部門(mén)創(chuàng)造了一個(gè)真正的機(jī)會(huì)來(lái)促進(jìn)這種變化并產(chǎn)生真正的影響。