国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

Docker容器安全管控方法

發(fā)布時(shí)間:2021-09-04 11:56 來(lái)源:億速云 閱讀:0 作者:chen 欄目: 網(wǎng)絡(luò )安全

這篇文章主要講解了“Docker容器安全管控方法”,文中的講解內容簡(jiǎn)單清晰,易于學(xué)習與理解,下面請大家跟著(zhù)小編的思路慢慢深入,一起來(lái)研究和學(xué)習“Docker容器安全管控方法”吧!

一、前言

毫無(wú)疑問(wèn),容器是當前云計算的熱門(mén)主流技術(shù)之一。Docker  通過(guò)把應用的運行時(shí)環(huán)境和應用打包在一起,解決了部署環(huán)境依賴(lài)等問(wèn)題;它消除了編譯、打包與部署、運維之間的鴻溝,有助于提高應用開(kāi)發(fā)、運維效率:總之,它與  DevOps 理念不謀而合,受到了很多企業(yè)的推崇。

當然 Docker 容器的生命周期中也存在著(zhù)不少安全隱患,比如容器自身的問(wèn)題、容器鏡像的問(wèn)題,還有容器在運行時(shí)暴露的問(wèn)題等等。因此,本文將對 Docker  容器生命周期的安全問(wèn)題及相應的改善方法進(jìn)行若干探討,掛一漏萬(wàn),拋磚引玉,希望各位讀者予以批評指正!

二、Docker容器生命周期安全問(wèn)題

在 Docker 容器生命周期內的多個(gè)階段均可能引入安全問(wèn)題,本章將分模塊對這些安全問(wèn)題進(jìn)行淺析,綱舉目張,我們先了解一下 Docker  容器全生命周期安全管控的架構,如圖1所示。

圖1. Docker 容器全生命周期安全管控架構

這張圖片可以反映 Docker 對其核心——“鏡像” 的 “Build, Ship and  Run”(構建鏡像、傳輸鏡像與運行容器)操作;Docker的應用環(huán)境可被分為“非生產(chǎn)環(huán)境”和 “生產(chǎn)環(huán)境” 這兩類(lèi)。

非生產(chǎn)環(huán)境與  Dev(開(kāi)發(fā))強相關(guān),而生產(chǎn)環(huán)境則與Ops(運維)強相關(guān)。非生產(chǎn)環(huán)境內的主要管控點(diǎn)是鏡像深度掃描,在生產(chǎn)環(huán)境做容器編排時(shí)需要從非生產(chǎn)環(huán)境拉取并運行Docker鏡像,因此鏡像運行控制也是一個(gè)主要管控點(diǎn)。

生產(chǎn)環(huán)境內的主要管控點(diǎn)是容器系統入侵檢測與防護以及容器網(wǎng)絡(luò )入侵檢測與防護。同時(shí),應在Docker容器全生命周期中的各個(gè)階段將合規基線(xiàn)問(wèn)題作為重要的管控點(diǎn)。

下面從Docker容器安全的各個(gè)主要管控點(diǎn)出發(fā),列舉部分它們所應對的安全問(wèn)題。

1. 鏡像深度掃描

在做鏡像深度掃描時(shí),應重視的安全問(wèn)題包括但不限于:

  • 鏡像中的操作系統軟件包與應用程序依賴(lài)項包含已知CVE漏洞

  • 鏡像的應用目錄被植入Webshell

  • 鏡像敏感信息泄露

  • 鏡像完整性校驗問(wèn)題

Dockerfile中存在不安全的寫(xiě)法(Dockerfile是Docker鏡像的構建腳本)

2. 鏡像運行控制

在做鏡像運行控制時(shí),應重視的安全問(wèn)題包括但不限于:

  • 鏡像完整性校驗問(wèn)題

  • 特權模式共享root權限

  • 內存配額未被限制

  • CPU優(yōu)先級未被限制

  • 存儲空間配額未被限制

  • 在啟用容器時(shí)使用Host網(wǎng)絡(luò )模式

3. 容器系統入侵檢測與防護

在做容器系統入侵檢測與防護時(shí),應重視的安全問(wèn)題包括但不限于:

  • 未隔離文件系統

  • 調用有漏洞的系統內核函數

  • 拒絕服務(wù)攻擊

4. 容器網(wǎng)絡(luò )入侵檢測與防護

在做容器網(wǎng)絡(luò )入侵檢測與防護時(shí),應重視的安全問(wèn)題包括但不限于:

  • 容器間的局域網(wǎng)攻擊

  • Remote API接口安全

  • Docker缺陷架構與安全機制紕漏

  • 微服務(wù)架構Web應用安全問(wèn)題

5. 安全合規基線(xiàn)

為了應對Docker安全問(wèn)題,應重視的安全問(wèn)題包括但不限于:

  • 內核級別

  • 網(wǎng)絡(luò )級別

  • 鏡像級別

  • 容器級別

  • 文件限制

  • 能力限制

6. Docker及其配套軟件漏洞

在使用Docker及其配套軟件時(shí),應重視的安全問(wèn)題包括但不限于:

  • Docker自身漏洞

  • K8S(Kubernetes)等編排應用自身漏洞

  • 鏡像倉庫自身漏洞

注:Docker及其配套軟件漏洞對Docker容器安全問(wèn)題有著(zhù)較深的影響,因而將之獨立成一個(gè)管控點(diǎn)點(diǎn)??蓪ⅰ八褂玫腄ocker及其配套軟件的版本不受已知漏洞影響”作為一條“安全合規基線(xiàn)”。

三、淺談Docker容器安全現狀改善方法

面對 Docker 容器安全的挑戰,可以  “分而治之”,對各個(gè)階段的安全管控點(diǎn)進(jìn)行管控。在實(shí)施管控時(shí),也可劃分優(yōu)先級,優(yōu)先考慮較為重要的管控點(diǎn),推遲考慮較為次要的管控點(diǎn)(例如,“鏡像運行控制”  管控點(diǎn)與用戶(hù)對 Docker 的使用方式有較大關(guān)聯(lián)??梢栽诎踩a(chǎn)品中對用戶(hù)的危險操作進(jìn)行告警,但不一定要進(jìn)行阻斷。Docker  容器安全產(chǎn)品應注重對由用戶(hù)的不安全使用方式催生的安全問(wèn)題進(jìn)行防御)。

下面,結合行業(yè)實(shí)踐經(jīng)驗梳理針對 “鏡像深度掃描”、“容器系統入侵檢測與防護”、“容器網(wǎng)絡(luò )入侵檢測與防護” 與 “安全合規基線(xiàn)” 的管控方法。

1. “鏡像深度掃描” 管控方法

在使用 Docker 鏡像之前使用 Docker 鏡像掃描器有助于發(fā)現 Docker 鏡像的安全性問(wèn)題?;诖?,知名的開(kāi)源鏡像倉庫 Harbor  就集成了鏡像掃描器,如圖 2 所示。

圖2. 知名開(kāi)源鏡像倉庫Harbor集成了鏡像掃描器

現有鏡像掃描工具基本都具備了 “對軟件漏洞進(jìn)行掃描” 的基礎功能。部分開(kāi)源項目或商業(yè)平臺具備如下特殊功能:

  • 對木馬、病毒、惡意軟件或其他惡意威脅進(jìn)行靜態(tài)分析

  • 對主流編程語(yǔ)言的代碼安全問(wèn)題進(jìn)行靜態(tài)發(fā)現(與開(kāi)發(fā)工作流緊密結合)

  • 對Dockerfile進(jìn)行檢查

  • 對憑據泄露進(jìn)行檢查

因為 Docker 鏡像是 Docker 容器的模板,所涉及的攻擊面較大,并且有的安全風(fēng)險不易被掃描器所發(fā)現,所以現階段的  “Docker鏡像掃描”的做法仍不能保障 Docker 鏡像的安全性,建議人工介入檢查(可結合“docker inspect” 與 “docker  history” 等命令查看鏡像的部分信息)。

2. “容器系統入侵檢測與防護” 管控方法

加強 Docker 容器與內核層面的隔離性有助于強化 “容器系統入侵檢測與防護”。比如 Docker 社區開(kāi)發(fā)的安全特性、Linux  運行時(shí)方案、異常行為檢測應用以及 “容器+全虛擬化” 方案,如圖 3 所示。

圖3. “容器系統入侵檢測與防護” 管控方法

Docker 社區開(kāi)發(fā)了針對 Linux 的 Cgroup 和 Namespce  的安全特性(Cgroup可用于限制CPU、內存、塊設備I/O(具體可參考“docker run”命令的參數);Namespace 可用于對  PID、mount、network、UTS、IPC、user 等內核資源進(jìn)行隔離;Cgroup 對系統資源的隔離已經(jīng)比較完善了,而 Namespace  的隔離還不夠完善(甚至不可能完善,因為這是共享內核導致的固有缺陷)。

部分可借鑒的Linux運行時(shí)方案如下:

  • Capability:令某程序擁有哪些能力;

  •  Selinux:定義了系統中每一個(gè)用戶(hù)、進(jìn)程、應用、文件訪(fǎng)問(wèn)及轉變的權限,然后使用一個(gè)安全策略來(lái)控制這些實(shí)體(即用戶(hù)、進(jìn)程、應用和文件)之間的交互,安全策略指定了如何嚴格或者寬松地進(jìn)行檢查;

  • Apparmor:設置執行程序的訪(fǎng)問(wèn)控制權限(可限制程序讀/寫(xiě)某個(gè)目錄文件,打開(kāi)/讀/寫(xiě)網(wǎng)絡(luò )端口等);

  • Secomp:應用程序的沙盒機制,以白名單、黑名單方式限定進(jìn)程對系統進(jìn)行調用;

  • Grsecurity:linux 內核補丁,增強內核安全性。

部分可借鑒的容器環(huán)境異常行為檢測開(kāi)源應用如下:

  • Sysdig Falco:一款為云原生平臺設計的進(jìn)程異常行為檢測工具,支持接入系統調用事件和 Kubernetes 審計日志;

  • cAdvisor:可以對節點(diǎn)機器上的資源及容器進(jìn)行實(shí)時(shí)監控和性能數據采集,包括 CPU  使用情況、內存使用情況、網(wǎng)絡(luò )吞吐量及文件系統使用情況。

“容器+全虛擬化” 方案也是 “容器系統入侵防護”  的有效方案,如果將容器運行在全虛擬化環(huán)境中(例如在虛擬機中運行容器),這樣就算容器被攻破,也還有虛擬機的保護作用(目前一些安全需求很高的應用場(chǎng)景采用的就是這種方式)。

3. “容器網(wǎng)絡(luò )入侵檢測與防護” 管控方法

Docker 容器網(wǎng)絡(luò )的安全問(wèn)題可被劃分為 “網(wǎng)絡(luò )安全防護” 與 “微服務(wù)Web應用安全” 兩類(lèi),“隔離” 和 “訪(fǎng)問(wèn)控制”  等主要思路均有助于管控二者的安全問(wèn)題。此外,仍可將部分現階段較為成熟的安全技術(shù)應用到 Docker 場(chǎng)景中。在具體實(shí)施時(shí),可依據 Docker  應用規模與實(shí)際的網(wǎng)絡(luò )部署情況進(jìn)行管控。

Docker 網(wǎng)絡(luò )本身具備 “隔離” 和 “訪(fǎng)問(wèn)控制” 功能的網(wǎng)絡(luò )安全機制,但存在 “粒度較大” 與 “對安全威脅的感知能力不足”  等缺陷,如圖4所示。

圖4. Docker 網(wǎng)絡(luò )自身安全機制

為了彌補 Docker 網(wǎng)絡(luò )的安全缺陷,一些商業(yè)化的端對端的 Docker 安全產(chǎn)品對網(wǎng)絡(luò )集群進(jìn)行了縱深防御,它們具備的功能特點(diǎn)包括了:

  • 容器防火墻

  • 運行時(shí)保護

  • 網(wǎng)絡(luò )深度數據包檢測

  • 攻擊行為、異常行為告警

  • 日志監控

  • 多編排平臺支持

  • 網(wǎng)絡(luò )流量可視化

部分廠(chǎng)商在實(shí)現上述功能點(diǎn)時(shí),在產(chǎn)品中引入了機器學(xué)習方法,用于生成行為模式與容器感知網(wǎng)絡(luò )規則。

Docker 網(wǎng)絡(luò )具有組網(wǎng)方案多樣化、容器生命周期長(cháng)短不一、應用場(chǎng)景多樣化等特點(diǎn)。因而,應參照組網(wǎng)方案特點(diǎn)制定管控方法。筆者梳理的針對  “類(lèi)傳統單體應用”和 “微服務(wù)架構應用” 的入侵檢測與防御思路如圖5所示。

圖5. Docker 網(wǎng)絡(luò )入侵檢測與防護思路

首先來(lái)看 “類(lèi)傳統單體應用” 的 Docker 網(wǎng)絡(luò )集群的入侵檢測和防護思路。以圖 6 所示的微服務(wù)集群為例進(jìn)行介紹。該集群里只有  Nginx、Tomcat 以及 的 3 個(gè)容器。

圖6. “類(lèi)傳統單體應用”的Docker網(wǎng)絡(luò )集群的入侵檢測和防護思路

注:圖中的綠色虛線(xiàn)表示文件掛載或者Docker的cp命令等方式,通過(guò)這兩種方式可以更便捷地在宿主機實(shí)時(shí)修改Nginx容器里的配置文件,調整Tomcat容器里的應用程序文件,或者對MySQL容器里的數據進(jìn)行持久化。

為了對這套 Docker Web 應用進(jìn)行入侵檢測與防御,可考慮以下 9 點(diǎn)方法:

(1) Iptables隔離

通過(guò)在宿主機側對Docker網(wǎng)絡(luò )集群外部做基于Iptables的隔離策略,可以限制攻擊者對“容器在宿主機所映射端口”的訪(fǎng)問(wèn),縮小受攻擊面。

(2) 部署軟WAF

通過(guò)在Docker網(wǎng)絡(luò )集群的流量入口處做軟WAF的部署(形態(tài)可以是宿主機軟件或者Docker容器),可以在此處阻斷、發(fā)現部分惡意流量。

(3) 部署RASP

通過(guò)在Java、PHPDocker容器內部部署RASP產(chǎn)品,可以用之作為保護的最后一環(huán),作為網(wǎng)絡(luò )治理的一個(gè)補充小點(diǎn)。

(4) Webshell掃描

通過(guò)在宿主機側通過(guò)Webshell掃描引擎掃描來(lái)自Docker容器的“Web應用程序文件”(這些文件可通過(guò)“docker  cp”命令或者“動(dòng)態(tài)掛載”機制獲得),有助于發(fā)現攻擊者植入的Webshell。

(5) 日志分析

通過(guò)在宿主機側通過(guò)ELK等日志分析分析來(lái)自Docker容器的日志文件(這些日志文件同樣可通過(guò)“docker  cp”或“動(dòng)態(tài)掛載”等方式獲得)。此外,單獨運行Sidekick日志容器等做法有助于發(fā)現安全威脅。

(6) 識別中間人攻擊

通過(guò)在Docker網(wǎng)絡(luò )集群內部通過(guò)網(wǎng)絡(luò )隔離是防止此類(lèi)基于網(wǎng)絡(luò )的攻擊的有效方法,此方法可使得攻擊者無(wú)法操縱或竊聽(tīng)主機及其他容器的網(wǎng)絡(luò )流量;在這種情況下,OpenVPN(開(kāi)放虛擬專(zhuān)用網(wǎng)絡(luò ))提供了一種通過(guò)TLS(傳輸層安全協(xié)議)加密實(shí)現虛擬專(zhuān)用網(wǎng)絡(luò )(VPN)的方法。

(7) 識別、阻斷流向異常的流量

通過(guò)在Docker網(wǎng)絡(luò )集群內部依據實(shí)際的網(wǎng)絡(luò )拓撲圖對網(wǎng)絡(luò )進(jìn)行 “微分段”  隔離(在“微服務(wù)架構”下,IP地址可能變換頻繁,但是預先劃分的網(wǎng)段不會(huì )變換頻繁),或者對指定的網(wǎng)橋、網(wǎng)卡進(jìn)行流量的DPI分析,有助于識別、阻斷流向異常的流量。

(8)識別拒絕服務(wù)攻擊

通過(guò)在宿主機側讀取和Docker容器對應的cgroup文件系統相關(guān)文件的實(shí)時(shí)內容(網(wǎng)絡(luò )、CPU、內存、磁盤(pán)),可以識別出拒絕服務(wù)攻擊。

(9) 網(wǎng)絡(luò )流量可視化

“網(wǎng)絡(luò )流量可視化” 是現有的 “容器安全產(chǎn)品”的常見(jiàn)附加功能。該功能的功能可能依托于 “對指定的網(wǎng)橋、網(wǎng)卡進(jìn)行流量的DPI分析”。

接著(zhù)來(lái)看 “微服務(wù)架構應用” 的 Docker 網(wǎng)絡(luò )集群的入侵檢測和防護思路?!拔⒎?wù)架構應用” 與 “類(lèi)傳統單體應用” 的顯著(zhù)區別包括了 Docker  容器數量較多、網(wǎng)絡(luò )拓撲較復雜等方面。在這種生產(chǎn)場(chǎng)景下,K8S 等平臺可幫助用戶(hù)進(jìn)行大規模容器編排??煽紤]使用的入侵檢測和防護思路如下:

(1) 運用 K8S 原生或其第三方網(wǎng)絡(luò )插件的網(wǎng)絡(luò )策略

K8S原生的網(wǎng)絡(luò )策略 “NetworkPolicy” 可為 K8S 的最基本操作單位 “Pod” 提供 “IP地址/端口號” 級別的網(wǎng)絡(luò )隔離。

注:K8S支持以“第三方網(wǎng)絡(luò )插件”的形式選擇網(wǎng)絡(luò )方案,進(jìn)而會(huì )影響網(wǎng)絡(luò )策略的選擇。例如,

NetworkPolicy須由實(shí)現了CNI接口的網(wǎng)絡(luò )插件提供(如Calico、Cilium、Kube-route、Weave Net等等)。

(2) 關(guān)注微服務(wù)架構Web應用的接口“認證鑒權”問(wèn)題

開(kāi)發(fā)方應對微服務(wù)架構Web應用的認證鑒權等問(wèn)題予以重視,降低接口被網(wǎng)絡(luò )可互通的容器惡意訪(fǎng)問(wèn)的風(fēng)險。常見(jiàn)的“認證鑒權”方案可包括:網(wǎng)關(guān)鑒權模式、服務(wù)自主鑒權模式、API  Token模式。

(3) 以“組件化”的形式在微服務(wù)集群中部署Web安全應用

為了增加 Docker 網(wǎng)絡(luò )集群的安全能力,可在 Docker 集群中部署 Web 安全應用(針對 “類(lèi)單體Web應用”  的做法仍可繼續使用。比如,我司的網(wǎng)站安全狗可用于保護部署在 Docker 容器里的 Web 應用,如圖 7  所示),此外也可考慮在容器集群中部署API網(wǎng)關(guān)容器(基于Nginx+Lua)、蜜罐容器或者資產(chǎn)發(fā)現與漏洞掃描器。

圖7. 網(wǎng)站安全狗可以用于保護 Docker 容器

(4) 運用 “Service Mesh” 技術(shù)

Service Mesh(服務(wù)網(wǎng)格)技術(shù)彌補了 K8S  在微服務(wù)通信的短板,有助于對應用層做訪(fǎng)問(wèn)限制。服務(wù)網(wǎng)格是一個(gè)基礎設施層,功能在于處理服務(wù)間通信,其主要職責在于負責實(shí)現請求的可靠傳輸。在實(shí)踐中,服務(wù)網(wǎng)格通常實(shí)現為輕量級網(wǎng)絡(luò )代理,通常與應用程序部署在一起,但是對應用程序透明。以開(kāi)源應用  Istio  為例,它通過(guò)為整個(gè)服務(wù)網(wǎng)格提供行為洞察和操作控制滿(mǎn)足微服務(wù)應用程序的多樣化需求。它在服務(wù)網(wǎng)絡(luò )中統一提供了流量管理、策略執行、服務(wù)身份和安全等關(guān)鍵功能。同時(shí),Istio還可集成已有的  ACL、日志、監控、配額、審計等功能。未來(lái) Service Mesh 的融合架構模型如圖8所示。

圖8. 未來(lái) Service Mesh 融合架構

4. “安全合規基線(xiàn)” 管控方法

為了應對 Docker 容器生命周期里的全問(wèn)題,需要可操作、可執行的 Docker  安全基線(xiàn)檢查清單,這個(gè)清單要清晰、可查、可維護,以供在生產(chǎn)環(huán)境中執行基礎架構的安全檢查和審計。

以下安全合規檢查工具有較好的參考性:

(1) docker-bench-security(與Docker官方及CIS推出的安全標準相配套,如圖9所示)。

(2) Kube-bench(運行 CIS Kubernetes 基準測試,來(lái)檢查 Kubernetes 部署的安全程度)。

(3) OpenPolicyAgent(將安全策略和最佳實(shí)踐從特定的運行時(shí)平臺解耦)。

圖9. Docker-Bench-Security 與官方白皮書(shū)配套

四、總結

經(jīng)過(guò)多年發(fā)展,Docker 容器技術(shù)逐漸被接受并應用于 DevOps  和微服務(wù)等領(lǐng)域,在未來(lái)還有很大的潛力。本文探討了若干容器生命周期內的安全問(wèn)題,不難發(fā)現,要做好 Docker  容器安全管控工作,不應忽視鏡像深度掃描、容器系統與容器網(wǎng)絡(luò )的入侵檢測與防護以及安全合規問(wèn)題等環(huán)節。在面對上述環(huán)節時(shí),可考慮借鑒、改造現有的網(wǎng)絡(luò )安全技術(shù)。

由于不同組織機構有著(zhù)不同的 Docker  應用級別和技術(shù)選型,因而具體的實(shí)施方法會(huì )有不同。不同組織機構應結合自身情況,分階段、分層(容器引擎層、編排調度層)選擇適合的解決方案,以更好地保護 Docker  容器環(huán)境。

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

无码粉嫩虎白一线天在线观看| 人妻少妇中文字幕久久| 国内最真实的XXXX人伦| 无人区码一码二码三MBA智库| 亚洲综合国产精品第一页| 吃奶呻吟打开双腿做受动态图|