1. 程式人生 > >說到容器的安全性,我覺得它就像三明治

說到容器的安全性,我覺得它就像三明治

在RSA會議上,當我正在談論容器時忽然想到,我們可以認為容器就像一個三明治,不是說他們有多“好吃”,而是關注於你的容器是從哪裡來的。我感到高興的是,幾乎所有我與之交談的安全人員,他們都瞭解當前的容器安全噩夢,當然,挑戰在於我們如何把當前的狀況解釋給其他人。安全問題(Security)很難,我們也很不善於講述它。其他人同樣也不知道紅帽(Red
Hat)當前在做什麼,這完全是我們自己的錯,但我們會在別的地方談那些。 但是容器就像三明治,這意味著什麼呢?讓我們從這個方面的來思考。
你可以拿起一個三明治,看看它,你就可以說出來裡面基本上都有些什麼成分。是否有西紅柿?生菜?火腿?火雞?這並不難。可以有隱藏的東西,但在大多數情況下,你可以得到很完整的細節。這就像一個容器。基於Fedora?紅帽?Ubuntu?
包含httpd?太棒了。 包含一個shell? systemd?
酷。也會有些嚇人的東西隱藏在其中,比如有人決定用一個Python來替換/bin/sh指令碼?這就像生菜下隱藏著橄欖,什麼樣的“瘋子”才會做這樣的事情呢!
現在,我們已經在腦海中有了一個三明治的形象,下面讓我們來思考幾個場景。 在公園的長凳上發現它
假設你正在公園散步,剛好看到一個三明治就放在一條長凳上,你會做什麼呢?你可能會環顧四周,想知道是誰留下的這個令人愉悅的美味,但你不會吃它。大多數人甚至不會去碰它,誰把它放在那裡的,它是從哪裡來的,它做出來多久了,裡面有洋蔥麼?
這麼多的問題,而老實說你不會得到一個像樣的答案。 即使有人能夠回答這些問題,你會吃那個三明治麼? 我是不會。
公園的長凳上發現的三明治,就像publish container
registry(公共容器登錄檔)裡的容器。如果這就是你所知道的全部,你可能不會覺得這樣做有什麼不妥,但就像pubic
registry,你不會總是清楚你得到的容器裡都有些什麼。我想知道有多少這類的容器注意了到glibc幾周前的缺陷更新?它們可能更容易不知道。
從食材有問題的“黑”店得到它 很久以前,我在紐約街頭漫步,決定進一家三明治店大快朵頤。
當我正準備進門時,看到門旁有一張來自衛生部門的通知,於是我決定堅持往前走。即使你可以從某個店裡買到三明治,但如果那是一家“黑店”,你還是會陷入麻煩之中。
類似的,網上有大量可用但不被信任的容器可供你下載。但是不要在隨意的地方下載隨意的容器,那樣做無異於試圖從一個需要用掃帚把老鼠趕出廚房的骯髒的商店裡購買一個三明治。
從使用舊食材的“好”店得到它
我們都見過一些看起來很不錯的賣三明治的地方。那裡指示牌是新刷的,窗明几淨,當你坐在桌旁的時候,那些桌子看起來甚至乾淨得可以吃。但是當你點餐的時候,你就會清楚的發現,所有的食材都是過時的,乾癟的。你也許可以在那位
這種情況正是目前容器界所面臨的巨大危險。容器現在正是炙手可熱的時候,有許多人工作在這領域中,許多這樣的團隊甚至不知道他們的容器是有問題的。容器中的軟體很像是三明治中的夾心肉,要到幾個星期以後,你可能才能聞到它不好的味道,而一個月以後,它將會給那些“消費”它的人帶來嚴重的傷害。
所以,一定要問清楚你的容器供應商,他們的容器所裝載的是什麼,從哪裡來的,以及“保鮮度”如何。“如果這個容器是一個三明治,你會消費它麼?”這樣問並不合理。(譯者注:個人覺得應該是:這是個合理的問題,原文:it
would not be reasonable to ask) 從使用好食材的“好”店得到它
這是我們的夢想。你走進一家不錯的店,一位漂亮的店員在櫃檯後面受理你點的餐,並使用最新鮮的食材,為你製作了一個堪稱藝術作品的三明治。你拍照留念,並把它發給你所有的朋友,解釋說,這家的三明治是你一生求而不得,卻直到如今才知道的。
這就是為什麼當涉及到容器內容的時候,你需要一個可以信任的合作伙伴。距源頭越近,你所能得到的就越好。多問關於容器內容的問題。比如它從哪裡來的?誰負責維護?我怎麼能證實這些?誰負責更新?容器是項了不起的技術,它嶄新而令人興奮,同時它也被嚴重的誤解。一定要使用“新鮮”的容器。如果你使用的容器的內容已經好幾個月沒有更新了,那麼你正在吃一個在公園的長椅上發現的三明治,不要吃那些留在公園長椅上的三明治。要問一些尖銳的問題,如果你的供應商不能回答這些問題,你需要嘗試街對面的那家店。容器的魔力之一就在於它們是真正的作業系統商品化的結果,你可以從很多渠道獲得容器的內容,總能找到一個好的。
如果我們對待基礎設施(infrastructure)就像對待公共衛生一樣的話,那麼我們一定不想對“讓每個人都生病”這樣的事情負責。你需要知道你使用的是什麼,它們從哪裡來的,有多“新鮮”,誰製作的,它裡面的成分是什麼?假裝一切都很好是不夠的,因為一切並不是都很好。