Docker 運(yùn)行時(shí)如何將安全和隔離作為容器架構(gòu)一部分

Docker 是開(kāi)源的一個(gè)基于LXC 的高級(jí)容器引擎,容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。 >
我們需要的不是一次性的標(biāo)簽或設(shè)置,而是需要將安全放到軟件生命周期的每個(gè)階段。
由于軟件供應(yīng)鏈上的人、代碼和基礎(chǔ)設(shè)施一直在改變,交互也越來(lái)多,組織(公司)必須將安全納入供應(yīng)鏈的核心部分。
考慮一個(gè)實(shí)際存在的產(chǎn)品:如電話,僅僅考慮到最終產(chǎn)品的安全性是不夠的。除了決定使用什么樣的防盜包裝,你可能也想知道材料的來(lái)源,以及他們是如何組裝,包裝,運(yùn)輸。因?yàn)?,重要的是我們還要確保手機(jī)不被改造或運(yùn)輸途中被盜。
軟件供應(yīng)鏈幾乎跟實(shí)際產(chǎn)品的供應(yīng)鏈?zhǔn)窍嗤?。你必須能夠識(shí)別和信任原材料(代碼、依賴(lài)、打包),把它們組裝在一起后,將它們從海上、陸上或空中(網(wǎng)絡(luò))運(yùn)輸?shù)揭粋€(gè)存儲(chǔ)地(存儲(chǔ)庫(kù)),以便將項(xiàng)目(應(yīng)用)(部署)給終端用戶。
確保軟件供應(yīng)鏈也十分相似。你需要:
確定流水線中的所有東西,從人,代碼,依賴(lài)關(guān)系,到基礎(chǔ)設(shè)施 確保一個(gè)一致和優(yōu)質(zhì)的構(gòu)建過(guò)程 在存儲(chǔ)和運(yùn)輸中保護(hù)產(chǎn)品 對(duì)材料清單的交付保證并驗(yàn)證最終產(chǎn)品
在這篇文章中,我們將詮釋Docker的安全特性如何為軟件供應(yīng)鏈提供持續(xù)的安全。
身份
整個(gè)流水線構(gòu)建在身份驗(yàn)證和訪問(wèn)控制之上 。從根本上說(shuō),你需要知道誰(shuí)可以訪問(wèn)什么資產(chǎn),可以使用哪些操作。
Docker 架構(gòu)中的身份認(rèn)證理念很清晰,它隱藏在軟件供應(yīng)鏈策略中:加密密鑰允許發(fā)布者對(duì)鏡像進(jìn)行簽名,以保證其來(lái)源的真實(shí)性。
一致的構(gòu)建:好的輸入= 好的輸出
確定一致的構(gòu)建允許你創(chuàng)建一個(gè)可重復(fù)的過(guò)程,并控制你的應(yīng)用程序依賴(lài)和組件,以便使它更容易測(cè)試出缺陷和漏洞。當(dāng)你對(duì)你的組件有一個(gè)清晰認(rèn)識(shí)的時(shí)候,它變得更容易識(shí)別異常的組件。
要獲得一致的構(gòu)建,你必須確保你添加了優(yōu)質(zhì)的組件:
評(píng)價(jià)依賴(lài)的質(zhì)量,確保它是最新/兼容的版本,并用你的軟件進(jìn)行測(cè)試 驗(yàn)證組件來(lái)自于你期望的來(lái)源,并且在傳輸過(guò)程中沒(méi)有損壞或改變 確定依賴(lài)后不要輕易改變,確保后續(xù)重建是一致的,因此如果一個(gè)缺陷是由代碼或依賴(lài)的變化引起的,很容易被發(fā)現(xiàn) 使用Docker Content Trust ,從可信的、有標(biāo)識(shí)的基礎(chǔ)鏡像中構(gòu)建你的鏡像
使用簽名”密封”構(gòu)建結(jié)果
應(yīng)用程序簽名是從構(gòu)建進(jìn)行有效“密封”的一步。通過(guò)鏡像簽名,可以確保任何在接收端(docker pull)的簽名驗(yàn)證與鏡像發(fā)布者建立一個(gè)安全鏈。
這種關(guān)系保證了鏡像在傳輸過(guò)程中不被改變、添加、或刪除。此外,簽名表明發(fā)布者“贊同”你拉取的該鏡像是沒(méi)問(wèn)題的 。
在構(gòu)建機(jī)器和運(yùn)行環(huán)境上啟用 Docker Content Trust后,一個(gè)策略就會(huì)生效:只有簽名鏡像才可以被拉取并運(yùn)行在那些 Docker 主機(jī)上。
在組織中,簽名的鏡像向其他人傳遞一個(gè)信號(hào):發(fā)布者(構(gòu)建者)聲明鏡像是沒(méi)問(wèn)題的。
安全掃描和風(fēng)控
CI系統(tǒng)和開(kāi)發(fā)者都需要確認(rèn)一件事情:構(gòu)建工具與依賴(lài)一起工作,操作你的應(yīng)用程序時(shí),無(wú)論在成功還是失敗,都有預(yù)期的行為。
Docker 安全掃描有助于鏡像的自動(dòng)化掃描。因?yàn)檫@是發(fā)生在鏡像被推送到registry之前,在容器被部署進(jìn)生產(chǎn)環(huán)境之前的最后一次檢查。
該功能目前在Docker Cloud 中可用,并且很快延伸到Docker Datacenter。安全掃描創(chuàng)建了一個(gè)清單,清單中包括鏡像每一層的打包信息和版本信息。
這份材料清單被用于連續(xù)監(jiān)測(cè)各種 CVE 數(shù)據(jù)庫(kù)。確保該掃描不止一次地發(fā)生,并在爆出新漏洞時(shí),及時(shí)通知使用鏡像的系統(tǒng)管理員或應(yīng)用程序開(kāi)發(fā)者。
多重簽名-- 把簽名綁在一起
安全保證最強(qiáng)大的一點(diǎn)來(lái)自Docker Content Trust 簽名,它允許多個(gè)簽名者參與容器的簽名過(guò)程。要了解這一點(diǎn),想象一個(gè)簡(jiǎn)單的 CI 過(guò)程,通過(guò)以下步驟移動(dòng)容器鏡像:
自動(dòng)化CI Docker 安全掃描 推送到 staging環(huán)境 推送到 production 環(huán)境
這里有四個(gè)階段,每個(gè)階段完成后,都可以添加一個(gè)簽名,從而CI/CD 過(guò)程的每一個(gè)階段都有驗(yàn)證。
鏡像通過(guò)CI 嗎?添加簽名! Docker Security Scanning 確定鏡像沒(méi)有漏洞?添加簽名! staging階段中構(gòu)建成功?添加簽名! 驗(yàn)證所有3個(gè)簽名的鏡像并將其部署到生產(chǎn)中
現(xiàn)在構(gòu)建被部署到生產(chǎn)集群之前,它可以加密驗(yàn)證,CI / CD過(guò)程各階段已經(jīng)簽訂了一個(gè)鏡像。
結(jié)論
在軟件生命周期的每個(gè)環(huán)節(jié),Docker 平臺(tái)都允許企業(yè)將安全納入其中。從與用戶建立信任,到基礎(chǔ)設(shè)施和代碼,docker模型給了開(kāi)發(fā)者以及 IT團(tuán)隊(duì)足夠的自由和控制力。
從構(gòu)建安全的基礎(chǔ)鏡像,到掃描每一個(gè)鏡像驗(yàn)證簽名,每個(gè)特性都允許IT人員將信任植入到應(yīng)用中。
當(dāng)應(yīng)用沿著正常的生命周期不斷前行,安全信息也能夠動(dòng)態(tài)維護(hù)和更新,并在部署到生產(chǎn)環(huán)境之前通過(guò)風(fēng)控檢查。
相關(guān)文章
FTTC/FTTH和FTTR有什么區(qū)別? 光纖接入方式詳細(xì)介紹
國(guó)內(nèi)主流 ISP 普遍都采用了光纖連接,常見(jiàn)術(shù)語(yǔ)包括 FTTC(光纖到路邊)、FTTB(光纖到樓宇)、FTTH(光纖到戶)和 FTTR(光纖到房間),他們之間有什么區(qū)別?詳細(xì)如下2025-03-05TP-Link PDDNS服將于務(wù)6月30日正式停運(yùn):用戶需轉(zhuǎn)向第三方DDNS服務(wù)
近期,路由器制造巨頭普聯(lián)(TP-Link)在用戶群體中引發(fā)了一系列重要變動(dòng),上個(gè)月,公司發(fā)出了一則通知,明確要求所有用戶必須通過(guò)實(shí)名認(rèn)證流程,方能繼續(xù)使用其提供的DDNS服2025-02-15電腦怎么查看隱藏和顯示SSID? 服務(wù)集標(biāo)識(shí)符等你來(lái)揭秘
之前我們介紹過(guò)ssid的概念,那么自己的設(shè)備怎么顯示ssid和隱藏ssid呢?下面我們就來(lái)看看詳細(xì)的教程2025-01-14SSID究竟是什么? WiFi網(wǎng)絡(luò)名稱(chēng)及工作方式解析
SID可以看作是無(wú)線網(wǎng)絡(luò)的名稱(chēng),類(lèi)似于有線網(wǎng)絡(luò)中的網(wǎng)絡(luò)名稱(chēng)或者路由器的名稱(chēng),在無(wú)線網(wǎng)絡(luò)中,設(shè)備通過(guò)SSID來(lái)識(shí)別和連接到特定的無(wú)線網(wǎng)絡(luò)2025-01-14向日葵Q2Pro怎么樣? 貝銳向日葵Q2Pro工業(yè)級(jí)遠(yuǎn)控設(shè)備測(cè)評(píng)
今天帶來(lái)的這款向日葵 Q2Pro ,就是一款專(zhuān)門(mén)用于工業(yè)設(shè)備、醫(yī)療設(shè)備等遠(yuǎn)程控制的硬件產(chǎn)品,憑借其即插即用、斷網(wǎng)可遠(yuǎn)控、無(wú)需被控主機(jī)安裝軟件等特性,為設(shè)備維護(hù)帶來(lái)了全2024-11-23雙頻BE5100面板AP! TP-LINK TL-7AP5100HI-PoE拆機(jī)測(cè)評(píng)
TP-LINK一款為T(mén)L-7AP5100HI-PoE 易展版的 Wi-Fi 7 AP 面板怎么樣?該面板隸屬 BE5100 規(guī)格家族,詳細(xì)請(qǐng)看下文拆機(jī)測(cè)評(píng)2024-06-28AP2.4g和5g的wifi區(qū)別 無(wú)線網(wǎng)2.4g和5g有什么區(qū)別
AP2.4g和5g的wifi區(qū)別 無(wú)線網(wǎng)2.4g和5g有什么區(qū)別WIFI這一名詞可謂是家喻戶曉,但是你知道2.4g和5g wifi的區(qū)別嗎2024-01-03- 無(wú)線路由器根據(jù)不同用戶群體的需求,提供了多種工作模式,只有選對(duì)了模式,才能充分發(fā)揮路由器的作用,路由器常見(jiàn)的三大工作模式為:路由模式、中繼模式和AP模式,不同的模2023-12-26
SSU雙口2.5g軟路由群暉有線電口網(wǎng)卡測(cè)評(píng)
第一次測(cè)評(píng)PCIe 3.0 x1的雙口2.5G網(wǎng)卡,下面我們就來(lái)看看SSU雙口2.5G網(wǎng)卡拆機(jī)和測(cè)試雙口有沒(méi)有瓶頸2023-12-12一篇文章告訴你公網(wǎng),私網(wǎng),內(nèi)網(wǎng),外網(wǎng)的區(qū)別
最近經(jīng)常有很多小白朋友在后臺(tái)問(wèn),公網(wǎng)、私網(wǎng)、內(nèi)網(wǎng)、外網(wǎng),這些的概念是啥樣的,又該怎么去界定2023-09-06