關於容器安全的六大誤解。 現在很多企業仍褒有傳統虛擬化技術比容器技術更為安全的想法。 曾經在全球化學公司 500 強 Albemarle 公司任職首席資訊安全官,目前在 Twistlock 任職 CTO 的 John Morello 表示,他撰寫此文來揭開有關容器技術安全方面的很多錯誤認知,並且讓讀者將目光聚焦在企業真正應該關 心的問題之上。
誤解一:容器也能越獄(jailbreaks)
越獄聽起來很嚇人,但是現實中卻很少發生。 多數攻擊是專門攻擊應用的,如果已經入侵應用,又何需越獄呢? 其實企業需要關心的問題是:明確駭客發起攻擊的具體時間,以及系統是否已遭到攻擊。
誤解二:只有解決了多租戶問題,容器才可以用於生產環境
沒有一家企業真的因為多租戶問題而困擾。 其實,只要將應用拆分為多個微服務,並且將其部署在虛擬機器裡,問題即刻化解。
誤解三:憑藉防火牆就可以保護容器應用
容器應用經常在幾秒內就會切換所在主機,甚至在有效負荷(payload)加密傳輸的狀況下,防火牆都可以說是毫無用武之地的。 容器安全性最終還是仰賴于對應用的感知力以及開發者的安全意識。
誤解四:端點安全是一個保護微服務的有效方式
端點安全雖然很適合保護筆記本電腦、PC 以及移動裝置,但是端點安全並不是為保護微服務而生。 事實上,他們在針對微服務攻擊時顯得毫無用處。 端點安全無法介入 Docker runtime 以及容器編排。
誤解五:使用 Dockerfiles 的 FROM 指令加上 latest 參數就能取得最新版本
漏洞管理並非如表面上簡單,源鏡像(Source images)不一定永遠都會隨著專案更新。 即使你使用了最新的鏡像基礎層,鏡像中可能還有幾百個元件並沒有包含在你的基礎層包管理器之中。 由於環境變化頻繁,傳統的補丁管理方法基本沒有什麼效果。
為了解決這個問題你可以:
1)在持續集成(CI)的流程中找到漏洞
2)一開始就使用 quality gates 來阻止那些不安全或者不相容的鏡像進行部署
誤解六:無法分析容器中的惡意行為
容器行為可以監控。 有以下幾個方法:
1)容器是聲明式的:容器 manifest 詳細描述了容器的行為,可以用來轉換成一份安全設定檔。
2)容器是可被預測的:開發者常會把幾個知名的軟體元件組合成容器微服務來執行,容器部署比虛擬機器部署更有規則可循。
3)容器是不可變的:容器只有在更新程式時才改變,一旦發現容器運作行為有變化,不是配置發生了變化,就是遭受了攻擊。