容器安全最佳實踐入門

2021-01-13 InfoQ技術實驗室

保證容器安全是一項複雜的任務。這個問題域很廣,面對大量的檢查清單和最佳實踐,你很難確定採用哪個解決方案。所以,如果你要實現容器安全策略,應該從哪裡開始呢?

我建議從最基本的開始:理解容器安全是什麼,並構建模型來降低風險。

遵循 DevOps 生命周期

安全計劃最終都會受到環境的限制,遵循標準的 DevOps 生命周期可以更好地發現模式和發揮協同效應。

DevOps 的生命周期是一個無限迭代的過程:

計劃編碼構建測試發布部署運維監控

容器通過 Dockerfile 文件的形式包含在應用程式中,但實際上並不是應用程式的一部分。因此,計劃和編碼階段與容器無關。

其餘的每一個步驟都與容器安全有關,我對它們進行這樣的分組:

構建時:構建、測試和發布。容器基礎設施:部署和運維。運行時:監控。

為什麼要這樣分組?安全策略只有在能夠被實現的情況下才是有效的。每個分組中的每一個步驟都共享了一個公共設施,可以很容易往其中注入安全控制元素:

構建時:CI/CD基礎設施、容器註冊表;容器基礎設施:容器編配器;運行時:生產環境。

現在我們有了三個風險評估著手點。

構建時安全性

在構建階段,我們輸入了一堆源文件和一個 Dockerfile,得到了一個 Docker 鏡像。

大多數供應商在這個時候向你強調容器鏡像掃描的重要性。容器安全掃描的確很重要,但還不夠。

這個階段的目標:最小化供應鏈攻擊風險。

容器鏡像「衛生」

首先,思考一下你的鏡像應該是什麼樣的,並重點關注依賴項是如何引入的:

允許開發人員使用哪些基本鏡像?依賴項是固定的嗎?是從哪裡拉取的?是否需要一些標籤來簡化監管和合規性?檢查一下Dockerfile。在編寫Dockerfile時遵循Docker安全最佳實踐。

所有這些檢查都是靜態的,可以很容易在構建管道中實現。

容器鏡像掃描

然後,我們可以進行容器鏡像掃描。

不要在構建管道中掃描鏡像,而是在容器註冊表中進行持續的掃描。

為什麼要這樣?服務不一定會進行不間斷的構建,但漏洞會不斷出現。其次,構建是增量的:每個構建都將生成一個新鏡像。因此,假設你的容器編配器信任你的註冊中心,所以你發布的每個標記總是可以部署並需要進行評估。

這個時候你就要開始考慮補丁管理和保存期限:

補丁管理:根據掃描結果提供補丁,生成新版本鏡像;保存期限:未修補/舊/不安全的鏡像將從註冊表中刪除。

容器基礎設施安全性

容器基礎設施由負責從註冊表拉取鏡像並在生產環境中作為容器運行的所有活動部件組成。

這主要是容器編配器——Kubernetes。

這一階段的目標:避免存在安全隱患的平臺配置錯誤;最大限度地減少來自受損容器的攻擊。

基礎設施安全性:配置錯誤

容器編配器比較複雜,特別是 Kubernetes。到目前為止,它都沒有兌現 DevOps 的承諾。我認為,我們離成為不需要太多運維開銷的主流解決方案還有一兩個抽象層的距離。

每一個複雜的平臺都很容易出現配置錯誤,而這正是你需要關注的部分。

你必須對基礎設施進行威脅建模,確保它不會被攻擊。這個特殊的威脅模型應該關注每一個參與者,但受損的容器除外(我們將在下面討論這個問題)。

這裡我就不詳細講了,因為這取決於你運行的是什麼平臺。對於 Kubernetes,建立威脅模型的一個著手點是這樣的。

此外,如果你還沒有這麼做,可以考慮使用託管平臺:如果你可以利用(受信任的)供應商提供的模型,複雜性就會降低。

基礎設施安全性:橫向移動

接下來,我們來討論當一個容器被破壞時會發生什麼。

你想要最小化攻擊者橫向移動的能力,專注於以下兩個層:

網絡層身份和訪問管理層(IAM)

網絡不應該是平的。你可以先把所有東西分配到子網絡,然後建立起完整的服務網絡。

在 IAM 層,為每個容器使用單一的標識,以此來優化授權。這在多租戶平臺中尤其重要:如果沒有細粒度的身份標識,就不可能獲得最小權限。

最後,由於它們是不可變的,所以最好是減少容器可以運行的時間:攻擊者橫向移動並獲得持久性機會窗口等於容器運行生命周期。所以,持續關閉和滾動重啟你的容器。

運行時安全性

最後一個是工作負載的安全性。到這個時候,大部分的強化工作都已完成,我們將進入反應性安全控制領域,也就是故障後(post-fail)。

這個階段的目標:將受損容器的攻擊影響降至最低。

探測和事故響應

控制攻擊影響面最好的辦法是儘量縮短從入侵開始到安全團隊收到警報之間的時間。

探測正在發生的漏洞是供應商們爭相尋找解決方案的另一個領域。現在有很多方法,其中大多數都需要使用邊車或守護進程來主動監控 Pod 流量和系統調用。

大多數解決方案都會提供一些價值,但我的建議是從簡單的開始,並進行迭代:使用現有的 SIEM,攝取來自平臺、應用程式和審計系統的日誌。

發生事故是不可避免的,不過這沒關係,只要你有相應的事故響應流程。

每次事後分析的第一個要點應該是:「下次我們如何更快地發現這個問題」?搞清楚這些問題可以讓你發現自己的盲點,然後利用這些盲點來了解自己錯過了哪些信號,以及什麼東西是值得相信的。

結論

容器安全是一個廣泛存在的問題,不僅僅是掃描鏡像那麼簡單。這就是我建立的模型,用於分析容器風險和解決方案。它比較抽象,當然,和所有模型一樣,它不一定是絕對正確的。我們都知道,每一個基礎設施就像是一片雪花:以此為靈感去建立你自己的威脅模型。

原文連結:

https://cloudberry.engineering/article/practical-introduction-container-security/

延伸閱讀:

無需手動輸入命令,簡單3步即可在K8S集群中啟用GPU-InfoQ

關注我並轉發此篇文章,即可獲得學習資料~若想了解更多,也可移步InfoQ官網,獲取InfoQ最新資訊~

相關焦點

  • 容器時代:數萬臺伺服器下的 Docker 深度安全實踐
    本文整理自2019年GOPS 全球運維大會主題演講——《容器時代:數萬臺伺服器下的 Docker 深度安全實踐》,演講嘉賓劉湛盧,來自於OPPO網際網路安全團隊,負責OPPO網際網路安全團隊的研發工作。本文主要內容如下:Docker生態與架構安全問題和應對方案OPPO容器安全實踐容器生態的安全展望先簡單介紹一下行業背景。
  • 從安全到鏡像流水線,Docker 最佳實踐與反模式一覽
    僅憑啟動一個Docker容器並且讓應用程式運行良好,並不能說明你已經實現了一個良好的解決方案。有時,由於時間限制,我們只能複製粘貼Docker鏡像,卻沒能真正理解實現細節以及如何構建Docker鏡像的細微差別。在本文中,我們將探討Docker的最佳實踐和反模式。反模式是人們對於反覆出現的問題的一般解決方案,這些方案沒有效率,甚至會完全抵消Docker技術棧帶來的好處。
  • 青藤雲安全「蜂巢之聲」:OWASP TOP 10風險與容器安全
    在安全領域,幾乎每個人都知道OWASP(開源Web應用安全項目),該組織會定期發布Web應用Top 10安全風險列表,是了解最需要關注哪些攻擊方式的一個重要資源。在OWASP網站上可以找到有關這些攻擊的詳細說明,以及有關如何防止這些攻擊的建議。本文,我們將探討OWASP Top10 風險中與容器相關的內容,並給出相關的緩解措施建議。
  • 在K8S/OpenShift上開發應用程式的14種最佳實踐
    📓 備註:本篇為譯文, 思路和我之前的: 《容器化應用系統上生產的最佳實踐
  • CoreOS實踐指南(七):Docker容器管理服務
    這篇文章裡不會對Docker做很深入的講解,而重點放在開始使用Docker所需的基本知識以及在CoreOS中使用Docker託管服務的推薦實踐方法。 而NodeJs的容器還需要些許定製,將應由部署到容器中然後生成新的鏡像。再次說明,製作鏡像的最佳途徑是寫一個Dockerfile,實現基礎設施可視化。以下通過修改現有鏡像的方法一般只用於演示目的。接下來我們要分別啟動MongoDB和NodeJs的容器實例,並將MongoDB的埠暴露到NodeJs的容器中。
  • 微眾銀行案例|容器化實踐在金融行業落地面臨的問題和挑戰
    本文整理自微眾銀行容器負責人陳廣鎮和李煥 在 Techo 開發者大會雲原生專題的分享內容——微眾容器化實踐。本文主要和大家介紹微眾的容器化實踐,具體分為三個部分:裡程碑、實踐之路,以及未來的規劃。再來看一下容器的網絡的實踐。
  • 最佳 JS 入門書
    在 IT 出版界,說起入門型書籍,口碑最佳的無疑是 Head First 系列。
  • 如何選配安全的壓力容器儲氣罐?
    、盛裝氣體、液體、液化氣體等介質的壓力容器,如各種型式的儲氣罐,儲油罐等。為了保證能夠安全而放心的使用,江蘇嘉宇特裝股份將如何選擇和購買安全而放心的儲氣罐總結為5步。   如今市場上的儲氣罐品牌很雜,一般壓力容器設計時都又取安全係數、壓力容器上還設有每年反省的安全閥。況且中國的壓力容器設計標準本身就比國外的更保守。所以一般來說壓力容器使用是安全的。
  • DHCP最佳實踐(三)
    如果您有任何最佳做法或技巧,請在下面的評論中發布它們。在本指南(三)中,我將分享以下DHCP最佳實踐和技巧。僅在需要時才使用IP衝突檢測運行DHCP最佳實踐分析器記錄IP位址或我們的IPAM設置DHCP伺服器選項僅在需要時才使用IP衝突檢測當同一LAN上的兩個設備具有相同的IP位址時,會發生IP位址衝突。這導致其中一個或兩個設備在網絡上進行通信時遇到問題。DHCP伺服器具有幫助減少IP衝突的選項。
  • AWS安全最佳實踐#2:在任何時候開啟MFA令牌
    本文章屬於AWS安全最佳實踐的第二篇。在上篇禁用root API訪問秘鑰的文章中,我們推薦建立至少2個(不超過3個)的IAM用戶來代替root AWS用戶。之所以建立2個是為了避免單點故障(Single Point of Failure),而不超過3個則是為了更好的掌控(這一點我們將在後續的博文中詳述)。
  • CloudPassage擴展了AWS上Docker,Kubernetes和與容器相關的服務的...
    來源:TechWeb.com.cn【TechWeb】CloudPassage宣布為其屢獲殊榮的Halo雲安全平臺擴展與容器相關的安全功能。Halo安全平臺可以在公共,私有,混合和多雲環境的任何混合中,跨伺服器,容器和IaaS資源統一和自動化安全控制和合規性。「各種規模的企業越來越多地使用容器來利用它們所提供的速度,效率,可移植性和規模優勢。但是,容器的短暫性和幾乎可以在任何地方運行的能力可能給承擔通用計算資產的信息安全團隊帶來挑戰。
  • 青藤雲安全:蜂巢之聲之28項容器鏡像的檢查清單(Checklist)
    由於容器鏡像需要大量分發和部署,因此,需要確保容器鏡像在構建、分發和運行全生命周期內的安全。鏡像掃描是檢查作業系統和安裝包中是否存在已知漏洞的一項基本措施。除此之外,還有很多措施可以加強容器鏡像的安全。如下表所示,基於鏡像安全4個階段,11個要求,28項檢查點,全面檢測容器生命周期各個階段的鏡像風險,確保容器鏡像的安全。
  • BlackHat Europe京東安全再放大招——基於容器雲平臺的安全防護
    ,京東安全矽谷首席AI安全科學家羅通博在會上發布最新研究成果——基於容器雲平臺的安全防護。據了解,京東安全在BlackHat Europe發布這項容器沙箱研究在安全行業尚屬首例。  為了進一步強化防守方的「反偵查」能力,京東安全矽谷研究院做了這項研究。  「容器本身直接利用宿主機的內核,更輕便,啟動速度更快,規模更小、創建和遷移速度也更快。」羅博通介紹稱,「而將沙箱嵌入容器環境中,也同樣具備了容器輕便、適配性高等優點。
  • 「雲原生怪圈」驅動的網易大規模容器化與 Service Mesh 實踐
    近日,2019攜程技術峰會在上海舉行,本屆峰會主題為「技速前進,與智攜行」,聚焦大數據與人工智慧、無線大前端、架構演進、雲原生四大熱門技術領域,網易雲首席架構師劉超受邀在雲原生分會場發表演講,為與會嘉賓分享了網易大規模容器化與Service Mesh的實踐經驗。
  • 福奈特榮獲「2018全球最佳實踐獎」
    原標題:福奈特榮獲「2018全球最佳實踐獎」2018年10月19日,國際織物護理委員會(CINET)舉辦的「全球最佳實踐獎」評選活動在義大利米蘭召開,本屆「全球最佳實踐獎」評選分為「洗衣店」與「洗衣工廠」兩個分類角逐。
  • 壓力容器安全技術監察規程—第四章製造
    3.壓力容器產品安全質量監督檢驗證書(未實施監檢的產品除外)。  4.移動式壓力容器還應提供產品使用說明書(含安全附件使用說明書)、隨車工具及安全附件清單、底盤使用說明書等。  5.本規程第33條要求提供的強度計算書。
  • 我校再度榮獲「最佳實踐大學」
    11月5日,中國青年報公布「2020年第六屆尋找全國大學生百強暑期實踐團隊」評選結果,我校榮獲「最佳實踐大學」榮譽稱號,全國僅有浙江大學、重慶大學
  • 寧波部署開展移動式壓力容器安全大檢查
    為切實消除移動式壓力容器使用、充裝環節上的安全隱患,著力防範化解安全風險,寧波市市場監管局迅速行動,立即組織對全市範圍內移動式壓力容器使用單位和充裝單位開展安全大檢查。檢查時間:2020年6月17日至2020年7月10日。
  • 華為DevRun第四講,華為雲鯤鵬雲服務移植快速入門與實踐
    6月23日,華為DevRun開發者沙龍系列活動在線上舉行,「華為雲和TA的朋友們公開課」第四次直播課程順利結束,本次公開課的主題是《華為雲鯤鵬雲服務移植快速入門及實踐》,課程由華為雲鯤鵬雲服務高級產品經理盧啟主講。
  • 2020入門TypeScript最佳書籍推薦
    本文選擇三本最佳TypeScript書籍,介紹給需要學習TypeScript的同學。TypeScript快速入門共分為兩大部分理論和實戰。第一部分是掌握TypeScript語法,第二部分實戰是以時下最流行的區塊鏈應用為例子進行的。第1部分:掌握TypeScript語法,從第一章到第七章。