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