如何提升云原生應用的安全性,你學會了嗎?
本文翻譯自 Hazel Raoult[1] 的 How to Optimize Security in Cloud-Native Applications[2]。
近年來,企業(yè)對云原生應用的依賴日益增加,這也使云原生應用成為攻擊的首選目標。如今,企業(yè)的安全團隊需要優(yōu)先考慮這些資產(chǎn)的安全性,以防止大規(guī)模的服務中斷和數(shù)據(jù)泄露。
根據(jù) IBM 2024 年《Cost of a Data Breach(數(shù)據(jù)泄露成本報告)》顯示,目前 45%的網(wǎng)絡攻擊[3] 是基于云的。2024 年 7 月,微軟的 Azure 遭遇了一次重大的 DDoS 攻擊,導致關鍵服務 停運近10小時[4]。對于依賴這些服務來為客戶提供不間斷服務的企業(yè)來說,這種停機時間無疑會帶來巨大的損失。
基于這一背景,讓我們探討如何提升云原生應用的安全性,以防止類似情況的發(fā)生,并確保關鍵云服務的韌性和可靠性。
用戶控制優(yōu)化
人為因素始終在數(shù)字資產(chǎn)(包括云原生應用程序)的安全中發(fā)揮重要作用。除非我們在不久的將來完全被機器取代,否則人類仍將在代碼編寫、配置管理以及最終的應用安全性方面做出重要決策。這是一種巨大的壓力,因為一個小小的錯誤就可能導致嚴重的漏洞,進而讓我們的云資產(chǎn)暴露在攻擊和操作失誤的風險之下。
一個合理的解決方案是加強教育和培訓,使開發(fā)人員和用戶能夠理解潛在風險,并學會實施強有力的安全協(xié)議和最佳實踐。
在技術措施方面,應重點關注強大的身份和訪問管理(IAM)。最小權限原則是實現(xiàn)強 IAM 的首選方法。它確保用戶被授予完成任務所需的最低訪問權限,從而顯著減少攻擊面和帳戶受損的風險。
花時間為每個無服務器函數(shù)或容器創(chuàng)建最小角色或權限集。這樣,即使云原生架構中的某個元素被攻破,造成的損害也將最小,且不會輕易擴散到其他組件。
這里需要避免的一個錯誤是將訪問級別審查限制在不頻繁的時間間隔。隨著工作職責的變化(或解除),應持續(xù)監(jiān)控和調(diào)整訪問權限。定期評估和更新角色,以確保訪問權限保持適當并與當前職責保持一致。
安全測試精簡化
云原生應用相較于傳統(tǒng)開發(fā)的一個優(yōu)勢在于能夠利用更細粒度的自動化安全測試。云原生環(huán)境可以利用持續(xù)集成和持續(xù)部署(CI/CD)流水線。這使開發(fā)人員能夠將安全測試 集成到開發(fā)的每個階段[5],使其成為軟件開發(fā)生命周期的基礎組成部分,而不是事后的考慮。
有各種開源工具和應用安全服務可用于增強安全測試。自動化工具可以 確保代碼[6] 沒有錯誤配置和漏洞,并避免敏感數(shù)據(jù)的意外泄露。這些工具可以掃描已知的漏洞,檢查是否符合安全最佳實踐,甚至實時識別潛在的風險區(qū)域。
自動化的持續(xù)監(jiān)控是簡化云原生安全的另一個關鍵方面。有效實現(xiàn)這一點有兩種方法??梢约扇?Prometheus、Grafana、ELK Stack 或 Datadog 等監(jiān)控工具來實時收集、分析和可視化安全日志和指標?;蛘?,可以通過嵌入自定義代碼來指示應用程序自身收集和聚合安全日志數(shù)據(jù)、指標和監(jiān)控信息。
為了獲得最佳安全性,可以結合這兩種方法,將所有日志導向如 Splunk 等集中服務進行實時分析。然后,可以基于特定條件定義告警規(guī)則,將通知直接發(fā)送到 Slack 或電子郵件等服務,以確保及時發(fā)出告警,幫助團隊快速做出反應。
API 管理嚴密化
應用程序編程接口(API)是云原生應用用于各 微服務和組件之間[7] 通信的主要通道。要記住的是,由于 API 促進了數(shù)據(jù)交換,它們也是一個重要的攻擊媒介和被利用的目標。
為所有 API 端點實施強大的身份驗證和授權機制應是首要任務之一。OAuth 2.0 是 API 授權的行業(yè)標準,它允許應用程序在不暴露用戶憑證的情況下代表用戶訪問資源。
速率限制也是一項關鍵措施。它將限制單個用戶在指定時間段內(nèi)可以發(fā)出的請求數(shù)量,從而防止?jié)撛诘木芙^服務(DoS)攻擊。
最后,確保 API 免受常見攻擊如注入攻擊和跨站腳本攻擊(XSS)的威脅。適當?shù)妮斎腧炞C和清理是幫助緩解廣泛威脅的標準安全措施。輸入驗證確保 API 接收到的所有輸入格式正確,從而防止?jié)撛诘挠泻?shù)據(jù)被處理。例如,處理 JSON 數(shù)據(jù)的 API 應驗證傳入請求的 Content-Type 頭是否為“application/json”,以及數(shù)據(jù)本身是否為有效的 JSON。
總結
日益頻繁的云端網(wǎng)絡攻擊提醒我們,安全性不應讓位于便利性。我們必須通過設計安全的云原生架構,并在整個軟件開發(fā)生命周期中實施全面的安全措施,來積極抵御這些威脅。
展望未來,云原生應用的安全性將成為我們數(shù)字基礎設施及其所依賴的關鍵服務成功與穩(wěn)定的決定性因素。
參考資料
[1] Hazel Raoult: https://cloudnativenow.com/author/hazel-raoult/
[2] How to Optimize Security in Cloud-Native Applications: https://cloudnativenow.com/editorial-calendar/cloud-native-security/how-to-optimize-security-in-cloud-native-applications/
[3] 45%的網(wǎng)絡攻擊: https://www.ibm.com/reports/data-breach
[4] 停運近10小時: https://www.forbes.com/sites/kateoflahertyuk/2024/07/31/microsoft-confirms-new-outage-was-triggered-by-cyberattack/
[5] 集成到開發(fā)的每個階段: https://cloudnativenow.com/topics/revolutionizing-software-development-with-cloud-native-devsecops/
[6] 確保代碼: https://www.imperva.com/learn/application-security/application-security/
[7] 微服務和組件之間: https://cloudnativenow.com/topics/cloudnativedevelopment/microservices-the-good-the-bad-the-clunky/