Clair助力Docker映象安全

2021-09-17 07:18:28 字數 1438 閱讀 8285

clair是coreos最近發布的一款開源容器漏洞掃瞄工具。該工具可以交叉檢查docker映象的作業系統以及上面安裝的任何包是否與任何已知不安全的包版本相匹配。漏洞是從特定作業系統的通用漏洞披露(cve)資料庫獲取。該工具當前支援的作業系統包括red hat、ubuntu和debian。

\\ 通過從映象檔案系統中抽取靜態資訊以及維護乙個組成映象的不同層之間的差異列表,可以大大減少分析時間,而且不需要實際執行可能存在漏洞的容器。如果映象所依賴的乙個靠下的層存在漏洞,那麼該映象就會被識別為有漏洞,而且,通過使用圖儲存,可以避免重新分析映象。

\\ coreos使用clair分析使用者上傳到quay.io(乙個類似dockerhub的容器註冊中心)的docker映象。現已發現,quay上的大多數映象都存在漏洞,甚至是像heartbleed(80%)或ghost(67%)這樣的著名漏洞。2023年初,乙份有關dockerhub的報告推斷,至少有30%的官方映象和多達40%的使用者上傳映象包含高階漏洞。期間,在dockercon 2015歐洲大會上,除了其他安全相關的特性外,docker還宣布了他們自己的映象掃瞄和漏洞檢測專案nautilus。nautilus並不開源,而且只能執行在docker hub上。

\\ 市場上還有其他容器漏洞檢測工具,比如ibm的vulnerability advisor或flawcheck。它們的主要不同之處在於它們是專有的,在ibm的場景中,僅應用於託管在bluemix雲產品上的映象。ibm的解決方案還支援基本的安全策略(比如,「密碼使用期限應該為90天」),會以同靜態**分析工具類似的方式生成警告。

\\ 當然,這些工具可以確定是否存在可能有漏洞的包,但不能驗證它們實際上是否已被利用。另外,它們也無法檢測執行例項中的動態行為,比如在執行時安裝有漏洞的包版本。

\\ clair提供了乙個json api,並且可以在本地執行以檢查容器映象,例如,作為持續整合或持續交付管道的一部分。

\\ 下面的**片段初始化(預設配置)並啟動了乙個clair本地服務:

\\\\

如果管道生成了可以部署的不可變docker映象,那麼漏洞掃瞄就可以在某個階段成為安全測試的一部分,這可能會中斷管道。例如,下面的**分析乙個名為「tmpimage」的docker映象:

\\

\$ go get -u github.com/coreos/clair/contrib/analyze-local-images \# 需要安裝go\\$ $gopath/bin/analyze-local-images tmpimage                      \# analyze-local-images是乙個包裝器指令碼,分析映象中的所有層\
\\

上述**片段查詢映象中任意層上的高階或嚴重漏洞。通過抽取每個層然後單個提交給clair的api,可以指定其他的嚴重性等級。

\\ 單個層的完整漏洞列表(任意嚴重性等級,從可忽略到嚴重)可以通過稍後的分析生成,例如通過執行下面的**:

\\

Docker學習 Docker映象

一 列出映象 命令 docker images optsions repositort a 標識列出所有 f 寫過濾條件 no trunc 不截斷id q 只顯示唯一id repository是倉庫名字 registry代表的是大庫 tag標籤名字 對應版本,id唯一標識 庫名字 標籤 對應乙個id...

redhat映象 三 docker映象

映象的結構 1.1 hello world映象為例 這個映象只列印了 hello world 1.2 base 映象 能提供基本作業系統的映象 特點 1 不依賴其他映象,從scratch開始構建 2 其他映象可以在base基礎上擴充套件 比如centos 為什麼大小只有200m?linux系統包括 ...

docker映象使用

可以去 搜尋dockerfile mysql 缺省會在 3306 埠啟動資料庫。sudo docker run name some mysql e mysql root password mysecretpassword d mysql 之後就可以使用其它應用來連線到該容器。mongodb 缺省會在...