走近Docker安全掃描器
本文是關于一款Docker安全掃描器的一般性使用介紹,其原名為 Project Nautilus 。它 可以作為Docker云私有倉庫或者Docker Hub官方倉庫的擴展服務,安全掃描會為你的Docker鏡像提供主動的風險管理和軟件合規管理的詳細安全配置信息。
Docker安全掃描在你部署之前 可以 對你的鏡像進行二進制層面的掃描, 并 提供一個詳細的材料清單(BOM)列出所有的層級和組件,不斷監控新的漏洞,在新的漏洞出現時推送通知。

當你考慮現代軟件供應鏈時,一個公司會在不同的時段協調一些不同的開發者和IT團隊,來建立棧和基礎設施,移動和運行軟件。 A pp開發團隊最關心的就是盡可能快的寫好軟件并交付給客戶。然而,軟件供應鏈并不是以開發者結束,它還需要反復的迭代,在團隊之間分享代碼,在各個環境之間移動代碼。Docker讓app無縫移植并且通過安全平臺傳輸,控制安全訪問和安全內容。Docker安全掃描提供了深入Docker鏡像內部的安全內容,包含內部組件的安全配置。這些信息在app生命周期的每個步驟都是可用的。
讓我們深入Docker安全掃描的更多細節,看看它是怎么工作的吧。
Docker安全掃描與Docker云協同使用(還有Docker數據中心),在新的鏡像上傳到倉庫時觸發一系列事件。這個服務包含一個掃描觸發器,掃描器,數據庫,框架插件和連接到CVE數據庫的驗證服務。
深入查看安全配置
Docker安全掃描服務在用戶上傳鏡像到Dokcer云端倉庫時啟動。掃描服務將鏡像的各個層次和組件進行分離。然后組件發送給校驗服務來與CVE數據庫一起進行檢查,不僅僅包括包名,版本,還包括二進制層面的內容掃描。
***一步非常重要因為這個方法確保包的正確性。
一個Docker鏡像是由許多層組成的,每個層都有許多組件和包,每個包都有相應的名字和版本信息。當漏洞報告給CVE數據庫時,他們會跟一個包名和版本信息綁定。

許多服務都只是簡單的校驗一下包的名字,通過查詢數據庫中已有問題的方式。這樣做是不夠的,這不足以回答“容器中運行了什么?”。除了校驗包名之外,我們對每個層級的二進制進行分析,然后匹配每個二進制的簽名來確定組件和版本信息,然后查看數據庫中已知漏洞的引用。這讓我們能夠找到標準BOM以外的其他組件(比如dpkg – l 或 yum list installed),包括任何靜態鏈接來準確標識組件,這些組件已經發布補丁并且之前報告過漏洞。這個方法降低了誤報率,因為相關的包可能已經修復了漏洞但是沒有更新版本信息,同時也能防止某些人故意將一個惡意的包進行重命名。
為了提供保護,Docker安全掃描支持大部分的操作系統,包括主流的Linux發行版和windows服務器語言和二進制。
一旦所有東西掃描完成并返回結果,就會生成BOM的細節然后存儲到Docker安全掃描數據庫,并打上鏡像的標簽。對于每個掃描報告,結果發送到Docker云然后發表到UI。
持續監控并推送通知
鏡像掃描能夠實時提供信息。Docker安全掃描持續性的監視和通知推送來保證你的鏡像安全。Dokcer安全掃描數據庫存儲鏡像BOM的細節和每個組件的漏洞狀態。當一個新的漏洞報告給CVE數據庫,Docker安全掃描將會在數據庫中查看那個鏡像相關的包會受到影響然后推送通知郵件給管理員。
這些推送信息包含漏洞的信息,以及倉庫中受影響的目標列表。通過這些信息,IT團隊知道哪些軟件受影響,從而可以主動進行管理,審視漏洞的嚴重性并快速做出決策。
整個內容生命周期的安全
Docker安全掃描是一個很棒的Docker工作流來幫助公司構建,遷移和運行安全軟件。當與安全內容結合在一起,你可以確保軟件的正確性,保證軟件沒有被篡改。例如,官方倉庫從 DockerCon EU in Nov 2015 開始就使用安全掃描來獲取漏洞信息,修復問題,用內容信任簽名更新鏡像。這一特性讓Docker能夠讓上游可以給你提供更安全的鏡像。
開始使用
Docker云的用戶的私有倉庫可以免費使用Docker安全掃描(次數是有限的)。如果你登錄了你可以直接查看Docker官方鏡像的掃描結果,不管你是不是訂閱用戶。安全掃描也會擴展Docker數據中心和Docker云給用戶。
在Docker云使用:
為了使用這一特性,進入Account Settings > Plans然后勾選。一旦激活,每個私有倉庫最常使用的3個目標都會被掃描,BOM結果將會在24小時內顯示。然后,docker安全掃描會在你每次上傳之后掃描你的鏡像。
下面的截圖展示了用戶的5個私有倉庫掃描結果。 Dokcer安全選項在平臺的底部。
