在你初次使用docker pull之前應注意的

Total votes: 299

原文連結:http://opensource.com/business/14/12/steps-to-initiate-docker-pull

除了常見的有關獨立container的問題以外,docker还帶來了一種全新的攻擊方式,因為它具有自動獲取和安裝的機制,這個機制就是“docker pull”。 與我們平時的認知不同,“docker pull”能在一個步驟內獲取和解壓container圖像。而且在這個步之中沒有驗證步驟,更令人驚訝的是,即便container本身從不運行,錯誤的文件包(pakage)就已經可以損害系統。許多反對Docker 的CVE議題已經涉及到由包裝(bakaging)導致的安裝時系統損害問題和Docker 註冊表的相關議題。

現在一個解決這些惡意危及系統的問題的方法是用由一個簡單的路徑遍曆解包步驟。對於惡意圖像而言,他們只需要使用解壓到諸如路徑壓縮包的能力“../../../,”便能夠覆蓋系統任何一部分,包括他們所需要侵入的主機檔案系統。

因此,你在使用Docker 圖像時,保護自己最重要的途徑之一是要確保你只從你信任的來源使用內容並且分開下載和解壓/安裝步驟。要做到這一點最簡單的方法是根本不使用“docker pull”命令,而從一個值得信賴的來源通過一個安全的通道來下載docker圖像,然後使用“Docker 負荷”命令。大多數圖像提供商也會提供安全的,或至少是可核查的鏈接。例如,紅帽提供了SSL的訪問的“container的圖像。”Fedora每次的版本發行也提供Docker 圖像,然而Fedora不會給每個樣本提供SSL,它提供一個可用於在使用“docker load”之前驗證它的docker圖像的簽名校驗。

由於“docker pull”自動解壓縮的圖像和拆包過程本身往往容易出差錯,有可能因為拼寫錯誤導致系統損壞(例如,當你打算“RHEL”時,一個惡意的“相對”的圖像進行了下載並解壓。)拼寫錯誤也可能發生在Dockerfiles中。保護自己的一種方式是在防火牆級別設置中防止其意外進入index.docker.io或通過添加以下的/ etc / hosts項:

127.0.0.1 index.docker.io

這麼做可能導致一些錯誤比如超時,而不是下載不需要的圖像。您同樣可以通過直接提供註冊表的方式來讓私人倉庫使用“docker pull”:

dockerpullregistry.somewhere.com/image

你也可以使用與Dockerfiles類似的語法:

from registry.somewhere.com/image

總的來說,Docker 是一個了不起的技術,但它并不安全也不是萬用的靈丹妙藥。圖片仍需要從能證明其安全性,電平支持性,相容性的平臺下載。

 

翻譯者: 
林葉和