無服務器計算近些年取得了長足發展,其增長伴隨著豐富多彩的新解決方案生態系統的繁榮,這些新解決方案能提供可見性、實時跟蹤、部署框架和應用安全。
隨著無服務器安全風險意識的上升,憤世嫉俗者又開始重復那老掉牙的“恐懼、不確定和懷疑(FUD)”論調,力證無服務器模式雖能快速部署軟件和大幅降低總擁有成本(TCO),卻引入了新的安全問題。
不斷進化的無服務器生態系統
成熟技術的主要標志之一就是圍繞其不斷發展的生態系統。擁有生機勃勃的社區、廣泛的文檔、最佳實踐指南和各種工具,是驅動公司企業信任新技術并采用之的原動力。
最近,云安全聯盟( Cloud Security Alliance )聯合PureSec推出了涵蓋廣泛的無服務器安全指南,在去年的基礎上新增兩大風險類型。
該指南題為《無服務器應用12大關鍵性風險》,安全團隊和處理無服務器應用的開發人員適用,但該指南不僅僅點出這些風險,還提供針對所有平臺的最佳實踐。指南中定義的風險類型如下:
風險1:功能事件-數據注入
無服務器功能可消費來自不同類型事件源的輸入,每個事件源都有其獨特的消息格式和編碼體系。這些事件消息的各個部分可能包含攻擊者控制的輸入或不可信輸入,應受到仔細檢查。
風險2:驗證出錯
因為無服務器模式提倡面向微服務的系統設計,應用可能包含數十乃至數百個功能函數。一旦執行不謹慎,很容易在健壯驗證的應用上出錯。
風險3:不安全的無服務器部署配置
云提供商有多套配置設置可供根據特定需求調整服務。現成的設置未必總是最安全的。隨著越來越多的公司企業遷移到云端,云配置漏洞也會變得更加普遍。
風險4:過高的功能權限和角色
管理功能權限及角色是公司企業將應用部署到云端時面臨的最艱巨的任務。開發人員走捷徑應用“通用”權限模型的情況很常見。
風險5:功能監視與日志記錄不足
盡管大多數云供應商提供非常強大的日志功能,這些日志卻未必總是適合在應用層執行全面安全事件審計跟蹤。
風險6:不安全第三方依賴
雖然不安全第三方庫不是無服務器特有的問題,但在無服務器環境中檢測惡意包卻更為復雜——因為無法應用網絡和行為安全控制。
風險7:不安全應用秘密存儲
與應用秘密存儲相關的最常見錯誤之一,是將這些秘密簡單地存儲在作為軟件工程一部分的明文配置文件中。另一個常見錯誤是將秘密存成了明文的環境變量。
風險8:拒絕服務和金融資源耗盡
無服務器架構具備自動化擴展和高可用性的前景;然而,與其他任一應用類型相同,只有應用最佳實踐和良好設計才可以避免瓶頸。
風險9:無服務器業務邏輯篡改
業務邏輯篡改是很多軟件的常見問題。不過,無服務器應用很特別,因為它們常遵從微服務設計,包含太多鏈接在一起以實現整體邏輯的功能函數。如果沒有恰當執行,攻擊者可能會篡改既定邏輯。
風險10:不恰當的異常處理和詳細錯誤信息
與標準應用的調試功能相比,無服務器應用的逐行調試選項非常有限(而且更加復雜)。因此,開發人員常會使用詳細錯誤信息,這就有可能泄露敏感數據了。
風險11:遺留/未使用功能&云資源
隨時間推移,無服務器功能和相關云資源可能過時,理應停止使用。移除過時組件是為了減少不必要的開支和消除可避免的攻擊界面。過時無服務器應用組件可能含有老版本功能函數、未使用的云資源、不必要的事件源、未使用的角色或身份,以及未使用的依賴。
風險12:跨執行數據保留
無服務器平臺為應用開發者提供本地磁盤存儲、環境變量和內存以執行其任務。為使無服務器平臺能高效處理新調用,云提供商可能會重用執行環境處理后續調用。如果無服務器執行環境被重用于屬于不同用戶或會話的后續調用,其留下的敏感數據可能面臨被暴露的風險。
需要指出的是,該指南旨在提升安全意識和幫助公司企業安全應用無服務器架構,并非是要散布恐懼。任何類型的平臺都存在安全風險,無服務器平臺也不例外。云安全聯盟提出這些問題的目的是要鼓勵公司企業在采納新技術的同時規避風險和常見錯誤。
《無服務器應用12大關鍵性風險》:
https://www.puresec.io/serverless-security-top-12-csa-puresec