數人云|20種終極工具,爲你的Docker搭建安全防火牆

數人云:隨着愈來愈多的企業將生產工做負載遷移到容器當中,關於Docker的安全性,成了廣泛關注的問題。linux

這是一個簡單卻又沒有答案的問題,不要試圖用二進制的方式去考慮Docker安全性,最好深刻地去了解Docker的工做細節,以瞭解Docker安全模式的運行方式。git

先來看看Docker是如何工做的,以及這對容器安全意味着什麼。github

image

Docker有兩個關鍵部分:Docker Engine、Docker Hub。後者是Docker的官方註冊中心,這兩個部分都很是重要,須要瞭解每一個組件的組成,哪些須要被保護以及如何操做,先從Docker Engine引擎提及:docker

〓 Docker Engine數據庫

Docker Engine 從容器鏡像文件中運行容器,以及管理網絡和存儲容量,保護Docker Engine須要從兩個方面——Namespaces 和 Control Groups。安全

Namespaces是Docker從Linux內核繼承的特性,將容器進行隔離,這樣容器中的每一個進程都沒法看到相鄰容器中運行的進程。網絡

最初,Docker容器默認是根用戶運行,但自V1.10依賴,Docker支持Namespaces容許以非Root用戶的身份運行容器,但因其實關閉的,因此在使用以前須要激活。架構

Docker中支持Control Groups或Cgroups,容許設置CPU、內存、網絡和Block IO的限制,容器默承認以使用無限數量的系統資源,因此設置限制很是重要,不然整個系統可能會受到Hungry 容器的影響。app

除了Namespaces和Control Groups外,Docker Engine還能夠經過使用SELinux和AppArmor等附加工具進一步增強。編輯器

  • SELinux爲內核提供訪問控制,根據用戶爲主機設置的策略,能夠基於在容器中運行的流程類型或級別來管理訪問,基於此,它能夠啓動或限對主機的訪問。
  • AppArmor在主機上運行的每一個進程都有一個安全配置文件,定義了流程能夠利用的資源,Docker將默認配置文件應用到流程中,同時用戶也能夠應用自定義文件。
  • Similar與AppArmor相似,使用安全配置文件限制進程調用的數量,這是Docker Engine提供的基於Linux的內核安全特性列表。

〓 Docker Hub

雖然Docker Engine能夠對容器進行管理,但它須要Docker棧的另一半來拉取容器鏡像,即Docker Hub容器註冊表,存儲和共享着容器鏡像。

任何人均可以建立容器鏡像,並將其公開供人下載,這既是一件好事,但同時也是一件壞事,好是由於支持開發者之間的協做,只需點擊便可容易地將操做系統或應用實例化,但若是下載一個具備脆弱性的公共容器鏡像,就會很糟糕。

根據經驗法則,下載官方存儲庫,大多數經常使用工具均可以使用,而且不從未知的做者那裏下載存儲庫,最重要的是,每一個下載的容器鏡像都應該掃描到漏洞。

對於私有存儲庫的用戶,Docker Hub將掃描下載的容器鏡像,它能夠掃描一些免費的存儲庫,然後若是將掃描做爲一個附加組件的話,須要付費。

Docker Hub並非Docker容器的惟一註冊服務,其餘受歡迎的註冊中心包括:Quay、AWS ECR、和GitLab Container Registry,這些工具也具有掃描的功能,另外Docker Trusted Registry(DTR)能夠在付費後,安裝在防火牆以後。

Docker是一個錯綜複雜的有着各類移動和靜態部件的網絡,顯然插入這些安全工具中的任何一個都不會當即使整個堆棧安全,在因此層面上,都須要結合這些方法來確保Docker的安全。

所以,下次有人問Docker是否安全時,應該反問他們,是指的Docker的哪個部分?而後,向其解釋影響該層的各類安全注意事項。

儘管上面的安全功能爲Docker Engine和Docker Hub提供了基本的保護,但它們缺少專用容器安全工具的強大功能,像Twistlock這樣的工具能夠徹底保護你的Docker棧,它超越了任何一個部分,而且可讓用戶對系統有一個總體的見解,下面介紹一些Docker 安全工具:

在生態系統中有很是多的Docker安全工具,這裏有一個全面的Docker安全工具列表供以參考。

Docker安全工具的索引

BlackDuck Docker security

Docker capabilities and resource quotas

Docker-bench security

1 Anchore Navigator

image

主頁:https://anchore.io/

受權:商用,一些服務是無償使用的。

場景:預生產分析、漏洞新聞提要。

Anchore Navigator提供了一項免費服務:能夠對Docker鏡像進行深度檢查。還能夠探索其豐富的剖析公共映像庫,充分了解其內容、構建過程和發現CVE威脅,以及已知修復相關的連接。

能夠對本身的鏡像進行深度分析,並訂閱您常用的鏡像,以便在升級到商業版本時接收安全警告。

2 AppArmor

image

主頁:http://wiki.apparmor.net

受權:開源。

場景:運行時保護、強制訪問控制(MAC)。

AppArmor讓管理員爲系統中的每一個程序分配一個安全概要文件:文件系統訪問、網絡功能、連接和執行規則等等。

它是一個強制性的訪問控制(或MAC)系統,防止任何被禁止的行爲發生,同時還可報告違反概要文件的訪問嘗試等。

只須要了解概要文件的語法,並能夠根據喜歡的編輯器去編寫AppArmor規則。

Docker context:Docker能夠自動生成和加載一個默認的文件,用於名爲docker-default AppArmor的容器,能夠爲容器或其中的應用建立特定的安全配置文件。

3 AquaSec

image

主頁:https://www.aquasec.com/

受權:商用。

場景:預生產分析、運行時保護、法規遵循和審覈等。

AquaSec爲容器設計的商業安全套件,功能包括:安全審計、容器鏡像驗證、運行時保護、自動策略學習或入侵預防。

4 BlackDuck Docker Security

image

主頁:https://www.blackducksoftware...

受權:商用。

場景:預生產分析、漏洞報告、許可/法律風險。

Black Duck Hub專門負責容器庫存和報告鏡像庫存,將已知的安全漏洞映射到鏡像索引和跨項目風險報告。能夠輕鬆地查明致使安全風險的特定庫、軟件包或二進制文件,自動提供已知修復的列表。

5 Cilium

image

主頁:https://www.cilium.io/

受權:開源。

場景:http層網絡安全性、網絡層安全性。

Cilium在容器應用之間提供透明的網絡安全性。基於一種稱爲eBPF的新Linux內核技術,容許根據容器/pod身份定義並執行網絡層和http層安全策略。

Cilum利用BPF執行核心數據路徑過濾、管理、監視和重定向。這些BPF功能能夠在任何Linux4.8.0內核版本或更新版本中使用。

6 CoreOS Clair

image

主頁:https://coreos.com/clair/docs...

受權:開源。

場景:預生產分析、漏洞新聞提要。

Clair是一個開源項目,用於靜態分析容器中的漏洞(目前支持AppC和Docker)。按期從一組配置的CVE源中刷新其漏洞數據庫,對可用的容器映像進行仔細檢查,並對安裝的軟件包進行索引。若是檢測到任何不安全的應用,它能夠警告或阻止部署到生產。

因爲Clair的鏡像分析是靜態的,容器永遠不須要實際執行,因此能夠在系統中運行以前檢測到安全威脅。Clair是CoreOS Quay容器註冊中心的安全引擎。

7 Docker Capabilities & Resource Quotas

image

主頁:https://www.docker.com

受權:開源。

場景:運行時保護、資源保護。

資源濫用和拒絕服務是一個常常被忽視的問題,但在擁有大量軟件實體競爭主機資源的環境中,這是一個切實存在的安全問題,因此不該該忘記已經與操做系統和Docker引擎捆綁在一塊兒的基本安全措施。

Control Groupscgroups)是Linux內核的一個特性,容許您限制訪問進程和容器對CPU、RAM、IOPS和網絡等系統資源的限制。

容許將完整的根權限分解爲多個分割權限,所以能夠從根賬戶中刪除特定的功能,或者在更細粒度的級別上增長用戶賬戶的功能。

8 Docker-bench security

image

主頁:https://github.com/docker/doc...

受權:開源。

場景:合規審計。

Docker用於安全的工做臺是一個元腳本,用於檢查生產中部署Docker容器的數十種常見的最佳實踐。

此腳本很方便地打包爲Docker容器,只需在其主頁上覆制和粘貼一行代碼,就能夠當即看到Docker容器和運行Docker引擎的主機(Docker CE或Docker Swarm)的250個檢查結果。Docker Bench測試的靈感來自於CIS Docker Community Edition v1.1.0。

9 Dockscan

image

主頁:https://github.com/kost/dockscan

受權:開源。

場景:合規審計。

簡單的Ruby腳本,用於分析Docker安裝和運行容器,既針對本地主機,也針對遠程主機。

安裝和運行只需一個命令便可,而且會生成HTML報告文件。Dockscan reports配置了資源限制,若容器生成了太多的進程,或者有大量修改過的文件,或者Docker主機容許容器直接將流量轉發到主機網關,便可命名幾個檢查。

10  Sysdig Falco

image

主頁:https://www.sysdig.org/falco/

受權:開源。

場景:運行時報警、取證。

Sysdig Falco是一種開源的行爲監測應用,旨在檢測基於其技術的異常活動。Sysdig Falco在任何Linux主機上都是一種入侵檢測系統。

Falco是一種不同凡響的審計工具,它在用戶空間中運行,使用內核模塊來攔截系統調用,而其餘相似的工具在內核級執行系統調用過濾/監視。用戶空間實現的優勢是可以與Docker、Docker Swarm、Kubernetes、Mesos等外部系統集成,並導入其資源知識和標籤。

Docker上下文:Falco支持特定於容器的上下文。能夠監視容器的行爲,沒必要修改它們。定製規則的建立很容易掌握,默認的規則文件以正常的默認值填充。

11 HashiCorp Vault

image

主頁:https://www.vaultproject.io/

受權:免費企業版。

場景:安全容器的憑證存儲,信任管理。

Hashicorp的密碼庫是用於管理密碼的高級套件:密碼、Ssl/Tls證書、API密鑰、訪問令牌、SSH證書等等。支持基於時間的 Secrets租賃、細粒度的 Secrets訪問、新Secrets的生成、關鍵的滾動(更新密鑰,而不使用舊的密鑰生成的祕密)等等。

Vaults Keeps保存了詳細的審計日誌,記錄每一個用戶/實體執行的全部 Secrets和訪問及操做,所以操做人員能夠很容易地跟蹤任何可疑的交互。

Docker上下文:在新的微服務和容器環境中,安全的分發和可跟蹤性是一個核心問題,在此環境中,軟件實體不斷地被派生和刪除。Vaults自己能夠做爲Docker容器進行部署。

12 NeuVector

image

主頁:http://neuvector.com/

受權:商用。

場景:運行時保護、聽從性和審計。

NeuVector專一於運行時的實時安全保護。自動發現應用程序、容器和服務的行爲,以及與其餘Linux Id相似方式檢測安全升級和其餘威脅。NeuVector「強制」容器部署在每一個物理主機上,並徹底訪問本地的Docker守護進程,所使用的內部技術在公開可訪問的文檔中並無詳細地詳細說明。

NeuVector的目標是非侵入式、插裝式安全套件、自動發現運行的容器以及它們的默認行爲,幫助和建議操做人員設計他們的基礎設施安全配置文件。

13 Notary

image

主頁:https://github.com/docker/notary

受權:開源。

用例:可信的映像庫、信任管理和可驗證性。

鏡像僞造和篡改是基於文檔的部署的一個主要安全問題,Notary是一種發佈和管理受信任的內容集合的工具,能夠經過與Linux系統中提供的軟件存儲庫管理工具相似的方式批准可信發佈和建立簽名的集合。

一些Notary目標包括保證圖像的新鮮度(大部分是最新的內容,避免已知的漏洞),用戶之間的信任委託,或可信的分佈在不可信的鏡像或傳輸通道上。

14 OpenSCAP

image

主頁:https://www.open-scap.org/

受權:開源。

場景:法規遵循和審覈,認證

OpenSCAP提供了一套自動化的審計工具,以檢查應用中的配置和已知的漏洞,遵循了Nist認證的安全內容自動化協議(SCAP)。

能夠建立本身的自定義規則,並按期檢查部署在公司中的任何軟件是否嚴格遵照規則。

這些工具集不只關注於安全性自己,還提供了測試和報告。

Docker上下文:OpenSCAP套件提供了一個特定於docdocker的工具——Oscap-Docker,來審計鏡像,同時評估運行的容器和雲端鏡像。

15 Remnux

image

主頁:https://remnux.org/

許可:開源。

場景:取證。

基於Ubuntu的安全發行版。REMnux是一個免費的Linux工具包,幫助惡意應用分析人員使用逆向工程的應用,一般稱爲取證。系統綁定了大量預先安裝的分析和安全工具:Wireshark, ClamAV, Tcpextract, Rhino Debugger, Sysdig, Vivisect。

16 SELinux

image

主頁:https://selinuxproject.org

受權:開源。

場景:運行時保護、強制訪問控制(MAC)。

SELinux是Linux內核安全模塊。也是一個強制性的訪問控制系統。從強制訪問控制到強制性的完整性控制、基於角色的訪問控制(RBAC)和類型強制架構。

Docker上下文:相似於AppArmor,SELinux提供了一層額外的訪問策略,並在主機和容器應用之間進行隔離。

17 Seccomp

image

主頁:https://www.kernel.org

受權:開源。

場景:運行時保護、強制訪問控制(MAC)。

Seccomp是Linux內核中的一個沙箱化工具,能夠將其看作基於規則的防火牆,但對於系統調用,使用Berkeley包過濾(BPF)規則來過濾Syscall API,並控制它們的處理方式。

有了Seccomp,能夠選擇哪些系統是禁止的,哪些是容許的,如,您能夠禁止在容器內進行文件權限操做。

18 Sysdig

image

主頁:https://www.sysdig.org/

許可證:開放源碼,商業產品創建在免費技術之上。

場景:異常行爲調試,取證。

Sysding是針對Linux系統的全系統的探索、故障排除和調試工具。它記錄任何進程所作的全部系統調用,容許系統管理員在操做系統或運行在它上的任何進程中查找BUG。

19 Tenable Flawcheck

image

主頁:https://www.tenable.com/flawc...

受權:商用。

場景:預生產分析、漏洞新聞提要。

與此列表中的其餘商業工具同樣,缺陷檢查能夠存儲容器映像,並在它們構建以前進行掃描,而後才能推到生產環境。缺陷檢查利用了漏洞/Nessus的技術和數據庫漏洞,惡意軟件和入侵載體,並將其調整爲容器化和敏捷/CD的環境。

20 Twistlock

image

主頁:https://www.twistlock.com/

受權:商用。

場景:預生產分析、運行時保護、法規遵循和審覈等。

用於支持容器化環境的商業安全套件:漏洞管理、訪問控制、分析和對安全標準聽從性的取證。

Twistlock與CI/CD集成,爲像Jenkins或TeamCity和可調用的Webhooks這樣的工具提供原生插件,這樣便可爲每個構建和測試環境觸發索引和掃描過程。

Docker是一個錯綜複雜的有着各類移動和靜態部件的網絡,顯然插入這些安全工具中的任何一個都不會當即使整個堆棧安全,在全部層面上,都須要將這些工具結合起來確保Docker的安全。

相關文章
相關標籤/搜索