偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Docker安全嗎?通過這三點來判斷

云計算
在審查Docker的安全時,需要考慮以下三個主要方面。

[[123732]]

在審查Docker的安全時,需要考慮三個主要方面:

  • 容器內(nèi)在的安全性,由內(nèi)核命名空間和cgroup中實現(xiàn);
  • docker守護(hù)程序本身的攻擊面;
  • 加固內(nèi)核安全特性,以及它們?nèi)绾闻c容器中互動。

一、內(nèi)核和制組

內(nèi)核 命名空間 Kernel Namespace

Docker容器中非常相似LXC容器,并且它們都具有類似的安全功能。當(dāng)您以“docker run”啟動一個容器,后臺Docker為容器創(chuàng)建一組命名空間和控制組的集合。

命名空間提供隔離的最初也是最簡單的形式:一個容器中運(yùn)行的進(jìn)程看不到運(yùn)行在另一個容器中或者在主機(jī)系統(tǒng)中的進(jìn)程,甚至它們之間更少的影響。

每個容器也都有自己的網(wǎng)絡(luò)協(xié)議棧,這意味著容器沒有得到特權(quán)訪問另一個容器的套接字或接口。當(dāng)然,如果主機(jī)系統(tǒng)是設(shè)置因此,容器中可以相互通過各自的網(wǎng)絡(luò)接口進(jìn)行交互 ——就像他們可以與外部的主機(jī)進(jìn)行交互。當(dāng)您為您的容器中或使用鏈路指定公共端口則IP通信允許容器之間。他們可以互相ping通,發(fā)送/接收UDP數(shù)據(jù)包,并建立TCP連接,但可以在必要時會受到限制。從一個網(wǎng)絡(luò)架構(gòu)來看,給定Docker主機(jī)上的所有容器都坐在橋接接口。這意味著,他們只是想通過一個普通的以太網(wǎng)交換機(jī)連接的物理機(jī)器,不會多,不會少。

代碼是如何成熟提供內(nèi)核命名空間和專用網(wǎng)絡(luò)?內(nèi)核命名空間的內(nèi)核版本2.6.15和2.6.26之間進(jìn)行了介紹。這意味著,自2008年7月(2.6.26發(fā)布日期,現(xiàn)在5年前),命名空間代碼已經(jīng)實行和審查上有大量的生產(chǎn)系統(tǒng)。還有更多:設(shè)計靈感的命名空間代碼,甚至更老。命名空間實際上是為了重新實現(xiàn)的,因為它們可能被主流內(nèi)核內(nèi)合并這樣的方式的OpenVZ的特性。OpenVZ的最初發(fā)布于2005年,所以在設(shè)計和執(zhí)行都相當(dāng)成熟。

控制組 cgroups

控制組是Linux的容器的另一重要組成部分。他們實行資源核算和限制。他們提供了很多非常有用的指標(biāo),但他們也有助于確保每個容器獲得其公平的內(nèi)存,CPU,磁盤共享I/O;并且,更重要的是,一個單一的容器不能用盡這些資源中的一個而使系統(tǒng)癱瘓。

因此,盡管它們不起到防止一個容器訪問或影響數(shù)據(jù)和另一個容器的進(jìn)程的作用,它們是必不可少的,以抵擋拒絕服務(wù)的一些攻擊。他們是在多租戶平臺,像公共和私有PaaS尤為重要,以保證正常運(yùn)行時間一致(和性能),即使一些應(yīng)用開始胡作非為。

控制組已經(jīng)存在了一段時間,以及:代碼在2006年已經(jīng)開始,并在內(nèi)核2.6.24開始合并。

二、Docker守護(hù)攻擊面

運(yùn)行容器(和應(yīng)用程序)與Docker意味著運(yùn)行Docker守護(hù)進(jìn)程。此守護(hù)進(jìn)程目前需要root權(quán)限,因此,你應(yīng)該知道的一些重要的細(xì)節(jié)。

首先,只有受信任的用戶應(yīng)該可以控制你的Docker守護(hù)進(jìn)程。這是直接造成一些強(qiáng)大的Docker功能。具體來說,Docker可以讓你分享的Docker主體和客體容器之間的目錄;它允許你這樣做不限制容器的訪問權(quán)限。這意味著,你可以開始一個容器,其中/host目錄將是你的主機(jī)上的/目錄下;并且容器將能夠改變你的主機(jī)文件系統(tǒng)沒有任何限制。這聽起來很瘋狂?好吧,你要知道,所有的虛擬化系統(tǒng)允許文件系統(tǒng)資源共享的行為方式相同。沒有什么能阻止你從一個虛擬機(jī)共享您的根文件系統(tǒng)(甚至是你的root塊設(shè)備)。

這具有很強(qiáng)的安全性含義:例如,如果從通過API的Web服務(wù)器來提供容器中工具Docker,你應(yīng)該比平常使用參數(shù)檢查多加小心,以確保惡意用戶無法通過精雕細(xì)琢的參數(shù)引起Docker創(chuàng)建任意容器。

出于這個原因,所述的REST API端點(所使用的DockerCLI與Docker守護(hù)程序進(jìn)行通信)中Docker0.5.2改變,現(xiàn)在采用的是UNIX套接字代替結(jié)合在127.0.0.1 TCP套接字(后者是容易跨站點腳本攻擊,如果你碰巧直接在本地計算機(jī)上運(yùn)行Docker,一個VM之外)。然后,您可以使用傳統(tǒng)的UNIX權(quán)限檢查限制訪問控制套接字。

您也可以通過暴露在HTTP REST API,如果你明確決定等。但是,如果你這樣做,意識到上述的安全含義,你應(yīng)該確保它會到達(dá)只能從一個可信任的網(wǎng)絡(luò)或VPN;或受保護(hù)的如與安全通道和客戶端的SSL證書。你也可以保證他們HTTPS和證書。

在Linux的命名空間中的最新改進(jìn)將很快允許沒有root權(quán)限運(yùn)行全功能的容器中,這要?dú)w功于新的用戶空間。這是覆蓋在這里詳細(xì)。此外,這將解決由共享主機(jī)和客戶之間的文件系統(tǒng)的問題,因為用戶命名空間允許容器(包括root用戶)內(nèi)的用戶被映射到在主機(jī)系統(tǒng)的其他用戶。

因此,最終目標(biāo)是Docker要實現(xiàn)兩個額外的安全性改進(jìn):

  • 映射容器的root用戶的Docker主機(jī)的非root用戶,以減少容器到主機(jī)的權(quán)限提升的效果;
  • 允許docker守護(hù)程序沒有root權(quán)限運(yùn)行,并委托操作要求這些特權(quán)以及審計的子流程,每個都有自己的(非常有限)適用范圍:虛擬網(wǎng)絡(luò)設(shè)置,文件系統(tǒng)管理,等等。

最后,如果在服務(wù)器上運(yùn)行Docker,建議以在服務(wù)器上運(yùn)行專門Docker,并且通過Docker控制容器中內(nèi)移動的所有其他服務(wù)。當(dāng)然,這是好的,讓您最喜歡的管理工具(可能至少SSH服務(wù)器),以及現(xiàn)有的監(jiān)測/監(jiān)控過程(例如,NRPE,collectd等)。

三、內(nèi)核安全特性和何與容器中互動

Linux內(nèi)核能力 Capabilities

默認(rèn)情況下,Docker開始容器具有非常有限的功能集。這意味著什么?

功能打開二進(jìn)制“root/非root”二分法成細(xì)粒度的訪問控制系統(tǒng)。進(jìn)程(如Web服務(wù)器),僅僅需要綁定低于1024的端口上沒有以root身份運(yùn)行:他們可以被授予net_bind_service能力來代替。而且還有很多其他功能,幾乎所有的地方,通常都需要root權(quán)限的具體領(lǐng)域。

這意味著許多為docker的安全;讓我們來看看為什么!

一般的服務(wù)器(裸機(jī)或虛擬機(jī))都需要運(yùn)行一堆流程作為root。這些通常包括SSH,cron,syslogd;硬件管理工具(如加載模塊),網(wǎng)絡(luò)配置工具(如處理DHCP,WPA或VPN)的,等等。容器是非常不同的,因為幾乎所有的這些任務(wù)由容器周圍的基礎(chǔ)設(shè)施進(jìn)行處理:

  • SSH訪問通常由Docker主機(jī)運(yùn)行的單個服務(wù)器進(jìn)行管理;
  • cron,必要的時候,應(yīng)該運(yùn)行作為一個用戶進(jìn)程,敬業(yè),專為需要它的調(diào)度服務(wù),而不是作為一個平臺性的設(shè)備應(yīng)用程序;
  • 日志管理層也通常會被交給Docker,或由第三方服務(wù),如Loggly或Splunk的;
  • 硬件管理是無關(guān)緊要的,這意味著你永遠(yuǎn)不需要容器中運(yùn)行udevd會或同等守護(hù)進(jìn)程;
  • 網(wǎng)絡(luò)管理發(fā)生在容器外,執(zhí)行的盡可能多的分離關(guān)注點,這意味著容器不應(yīng)該需要執(zhí)行ifconfig,route,或IP命令(除了當(dāng)一個容器是專為像一個路由器或防火墻,當(dāng)然)。

這意味著,在大多數(shù)情況下,容器將不會在所有需要的“真實”root特權(quán)。因此,容器可以使用減少的能力集運(yùn)行;這意味著“root”在一個容器內(nèi)具有比真正的“root”少得多特權(quán)。例如,它是可能的:

  • 拒絕所有“裝載”操作;
  • 拒絕訪問原始套接字(防止數(shù)據(jù)包欺騙);
  • 拒絕訪問某些文件系統(tǒng)操作,如創(chuàng)建新的設(shè)備節(jié)點,改變文件的所有者,或者改變屬性(包括不可變標(biāo)志);
  • 拒絕模塊加載;
  • 以及等等。

這意味著,即使入侵者設(shè)法升級到root的容器內(nèi),這將是非常困難做嚴(yán)重?fù)p壞,或升級到主機(jī)。

這不會影響常規(guī)的網(wǎng)絡(luò)應(yīng)用;但惡意的用戶會發(fā)現(xiàn),兵工廠在他們的處置大幅下降!默認(rèn)情況下,Docker滴除了那些需要的,白名單,而不是黑名單的方式全部功能。你可以看到在Linux中提供聯(lián)機(jī)幫助功能的完整列表。

當(dāng)然,你可以隨時啟用額外的功能,如果你真的需要它們(舉例來說,如果你想使用FUSE為基礎(chǔ)的文件系統(tǒng)),但默認(rèn)情況下,Docker容器使用默認(rèn)的核心能力,只有白名單。

其他內(nèi)核安全特性

Capabilities 能力是現(xiàn)代Linux內(nèi)核提供了許多安全特性之一。另外,也可以利用現(xiàn)有的,公知的系統(tǒng),如TOMOYO,AppArmor,SELinux,GRSEC等使用Docker。

而Docker目前只允許功能,它不干擾其它系統(tǒng)。這意味著,有許多不同的方式來加固Docker主機(jī)。下面是一些例子。

  • 您可以運(yùn)行GRSEC和PAX內(nèi)核。這將增加很多安全檢查,無論是在編譯時和運(yùn)行時;它也將打敗很多漏洞,這要?dú)w功于像地址隨機(jī)化技術(shù)。它不需要Docker特定的配置中,由于這些安全功能適用全系統(tǒng),獨(dú)立的容器中。
  • 如果你的發(fā)行版自帶的Docker容器安全模型模板,你可以使用它們的開箱即用。舉例來說,推出一個與AppArmor工作和Red Hat自帶SELinux策略Docker的模板。這些模板提供了一個額外的安全網(wǎng)(即使它大大重疊使用能力)。
  • 您可以使用自己喜歡的訪問控制機(jī)制,定義自己的策略。

就像有許多第三方工具來增強(qiáng)Docker容器如特殊的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)或共享文件系統(tǒng),你可以期望看到的工具來強(qiáng)化現(xiàn)有的Docker容器,而不會影響Docker的核心。

結(jié)論

Docker容器,默認(rèn)情況下,相當(dāng)安全的;特別是如果你把你的運(yùn)行進(jìn)程容器非特權(quán)用戶內(nèi)部的護(hù)理(即非root)。

您可以通過啟用AppArmor中,SELinux,GRSEC,或者你最喜歡的加固解決方案中添加額外的安全層。

最后但并非最不重要的,如果你看到在其他容器化系統(tǒng),有趣的安全功能,您將能夠?qū)崿F(xiàn)它們,以及使用Docker,因為一切無論如何都是由內(nèi)核提供。

譯自Docker官方文檔:https://docs.docker.com/articles/security/

原文出自:http://blog.csdn.net/yangzhenping/article/details/41721073

責(zé)任編輯:Ophira 來源: yangzhenping的博客
相關(guān)推薦

2010-10-15 14:28:39

無線WLAN安全規(guī)范

2019-11-13 22:31:23

智能會議平板

2019-10-29 07:01:02

網(wǎng)絡(luò)爬蟲網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2021-12-03 11:05:24

人工智能AI智能交通

2018-02-10 09:36:16

物聯(lián)網(wǎng) 邊緣計算OEM

2023-06-30 07:15:40

顯示器高度角度

2016-07-21 11:38:42

云計算

2021-12-16 15:53:14

遠(yuǎn)程辦公網(wǎng)絡(luò)攻擊勒索軟件

2020-10-12 16:43:48

無人機(jī)互聯(lián)網(wǎng)技術(shù)

2017-10-30 14:51:44

APP網(wǎng)頁窗口

2024-11-18 15:57:49

2015-09-07 09:52:31

數(shù)據(jù)科學(xué)經(jīng)驗

2019-03-01 10:12:54

2021-05-06 10:28:15

手機(jī)系統(tǒng)軟件

2019-03-20 14:26:34

人工智能機(jī)器人AI

2019-03-04 08:43:29

LeaderTL職責(zé)

2021-09-13 22:25:52

手機(jī)缺陷技術(shù)

2010-06-29 10:41:39

2016-03-11 16:22:55

2020-08-01 14:00:27

微信親屬卡移動應(yīng)用
點贊
收藏

51CTO技術(shù)棧公眾號