- 云原生安全:攻防實踐與體系構建
- 劉文懋 江國龍 浦明 阮博男 葉曉虎
- 825字
- 2021-11-04 18:12:23
1.5.4 運行時安全關注度上升,但依然很難
在前文中我們已經分析過,在安全左移的理念下,開發側安全的重要性很高,也相對容易做,而運營側的運行時安全防護因為容器的生命周期短、業務復雜,難度會比較高。
Falco[1]是首個加入CNCF的運行時安全項目,可以認為是面向容器環境的主機入侵檢測系統。Falco通過監控內核調用等宿主機、容器的各類行為,并檢查內置的安全策略,可及時發現潛在的威脅并發出告警。
Falco的源碼是由Sysdig公司貢獻給CNCF社區的,Sysdig也會通過商業化版本的日常運營收集到客戶側的告警,進而進行分析和策略調優。在這個過程中,Sysdig總結出十大違反規則的行為類型,包括寫/etc目錄(Write below etc)、寫/root目錄(Write below root)、創建特權容器(Launch privileged container)、更改線程命名空間(Change thread namespace)、啟動掛載敏感目錄的容器(Launch sensitive mount container)、嘗試通過setuid更改用戶(Non sudo setuid)、嘗試在二進制目錄下寫文件(Write below binary dir)、運行不可信的shell(Run shell untrusted)、某些系統程序處理網絡收發包行為(System procs network activity)、通過shell登入容器(Terminal shell in container)。
雖然這些行為大多是不尋常的,但不代表它們就是惡意的,如創建特權容器本身就是很多容器安全機制部署的行為。要想找到攻擊者的真正惡意行為,僅僅依靠Falco是遠遠不夠的。在筆者的一些攻擊場景驗證中,如容器逃逸,雖然Falco能產生若干異常告警,但這些告警還不能明確地指示發生了容器逃逸,往往還需要安全運營者在告警基礎上再實現一層告警關聯。如果沒有異常告警到逃逸事件的映射,那么逃逸攻擊所觸發的告警往往就會淹沒在日常大量平凡無奇的各類告警中。可見,在主機側的容器行為異常檢測目前應該說是初具能力,但離好用還有相當長的路要走。
盡管如此,運行時安全還是日益引起了業界的關注。Sysdig在前面報告中提到,2018年Falco在Docker Hub上的下載量超過670萬次,比2017年增加了2.5倍。筆者觀察到,截止到2020年9月,Falco的鏡像[2]已經超過1000萬次下載。無論從哪個數據看,容器運行時安全的關注度都在不斷上升。當安全團隊將安全控制左移后,若基本解決開發端安全,則必然會將注意力右移,因而運行時安全依然很重要。
[1] https://github.com/falcosecurity/falco。
[2] https://hub.docker.com/r/falcosecurity/falco。