- 云原生安全:攻防實踐與體系構建
- 劉文懋 江國龍 浦明 阮博男 葉曉虎
- 978字
- 2021-11-04 18:12:21
1.4.1 如何防護短生命周期的容器
曾有人研究容器的生命周期[4],即從一個容器創建到其銷毀的時間間隔(TTL),發現容器的生命周期分布呈三種類型,如圖1-4所示。

圖1-4 容器的TTL分布
1)虛擬機型。有一小部分容器被當成虛擬機使用,即將本來放置于一個虛擬機中的程序集合部署到單個容器中,那么這些容器的生命周期與虛擬機是相當的,平均在83天左右,最長的為333天。
2)原生型。有一部分容器是以Docker的命令啟動和管理的,這部分容器完成獨立的功能,因而生命周期在數十天。
3)編排型。還有大量的容器是由編排系統管理的,很多容器根據業務動態生成和銷毀,這類容器的生命周期在1天以內。
經過進一步統計發現,46%的容器生命周期短于1小時,11%的容器生命周期短于1分鐘。容器安全和虛擬化安全的最大差別看似是隔離技術強度,但其實應是生命周期,甚至沒有之一,因為這會影響到攻防雙方的戰術偏好。
對于攻擊者而言,在攻擊鏈的整個階段,他們是不會優先考慮在容器中持久化的。原因很簡單,如果試圖這么做,很有可能在數小時或數天內容器就銷毀了,持久化的努力也就付諸東流。因而,攻擊者會投入大部分精力去攻擊更為持久化的東西,如代碼、第三方庫、鏡像等資產??梢?,開發安全和供應鏈安全將是云原生環境中的重點安全措施。
而對于防守者而言,容器的短生命周期、輕量級隔離特性同樣存在很大的變數。傳統在宿主機或虛擬機上安裝殺毒軟件的機制對于追求微服務和輕量級的容器而言還是過重了,很難想象在一個運行一兩個進程的容器中安裝殺毒軟件套件,并實時對進程、文件進行查殺。
近年來終端側興起了終端檢測與響應(Endpoint Detection and Response,EDR)系統,該系統通過捕獲終端上的進程行為、狀態等日志并對其進行分析和規則匹配,發現終端上的惡意攻擊。但在容器環境中,一方面,容器逃逸等攻擊手法往往利用操作系統層面隔離的漏洞,與通常終端上的惡意軟件攻擊手法不同,現有的規則檢測不能直接適用;另一方面,容器運行的進程行為與桌面終端有很大的差別,在這種場景中更適合用行為特征對工作負載進行識別,類似于用戶和實體行為分析(User and Entity Behavior Analytics,UEBA),不過容器上的日志只能體現短時間內的進程、業務模式,無法通過機器學習等方式對正常模式進行畫像,這對于高度依賴客戶側做訓練的很多UEBA算法是致命的。
因而,如何防護短生命周期的容器是一個非常重要的問題,解決過程中需要轉變很多之前固有的防護思維,具體我們將在第7章進行分析。