當前位置:
首頁 > 知識 > 確保Docker安全的10款頂尖開源工具

確保Docker安全的10款頂尖開源工具

說到容器安全,你會發現好多開源工具有助於防止像特斯拉那樣遭受的Kubernetes集群泄密災難。但容器安全仍然很棘手,所以你需要知道往工具箱添加哪些實用程序。

當然,市面上不乏商業容器安全產品,但開源項目給你帶來的幫助很大。許多人專註於審計和跟蹤CIS、國家漏洞資料庫及其他機構建立的通用漏洞披露(CVE)資料庫和基準。然後,工具掃描容器鏡像,顯示內容,將內容與已知漏洞的這些清單進行比較。

由於可以幫助團隊在構建管道時早期發現問題,容器審計自動化以及使用其他容器安全流程對企業大有好處。

雖然市面上有好多開源容器安全工具,但下面是擁有最大用戶社區的應用好且成熟的幾個工具。


確保Docker安全的10款頂尖開源工具

打開今日頭條,查看更多精彩圖片


1.Docker Bench for Security

對照安全基準審計Docker容器的腳本

Docker Bench for Security面向使用Docker社區版管理容器的開發人員,它是Docker的開源腳本,用於對照常見的安全最佳實踐審計容器。

Docker Bench的測試基於行業標準CIS基準,幫助手動測試漏洞的繁瑣過程實現自動化。

Docker的安全負責人Diogo Mónica稱它是「測試容器的容器」。你可以按如下方式啟動容器:

docker run -it --net host --pid host --userns host --cap-add audit_control -e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST -v /var/lib:/var/lib -v /var/run/docker.sock:/var/run/docker.sock -v /usr/lib/systemd:/usr/lib/systemd -v /etc:/etc --label docker_bench_security docker/docker-bench-security

結果會為每個安全配置基準生成Info、Warning和Pass等日誌。也可以從Docker主機運行該實用程序,通過Docker Compose克隆它,或直接從基本主機運行它。

一個缺點是輸出結果缺乏機器可讀性。許多社區軟體包可增強Docker Bench,比如Docker Bench Test、drydock和Actuary。

2.Clair

API驅動的靜態容器安全分析工具,擁有龐大的CVE資料庫

Clair由CoreOS開發,對容器漏洞進行靜態分析。它還用在Quay.io中,這是一種替代Docker Hub的公共容器註冊中心。

Clair可獲取許多漏洞數據源,比如Debian Security Bug Tracker、Ubuntu CVE Tracker和Red Hat Security Data。由於Clair使用如此多的CVE資料庫,因此審計非常全面。

Clair先索引容器鏡像裡面的一系列功能。然後,使用Clair API,開發人員可以查詢資料庫,查找與特定鏡像有關的漏洞。

想開始使用Clair,請參閱Running Clair指南。很容易將它部署到Kubernetes集群:

git clone https://github.com/coreos/clair cd clair/contrib/helm cp clair/values.yaml ~/my_custom_values.yaml vi ~/my_custom_values.yaml helm dependency update clair helm install clair -f ~/my_custom_values.yaml

Clair的功能很靈活。它允許你添加自己的驅動程序用於其他行為。此外,執行另外的API調用以便審計特定容器鏡像是一種流暢的、機器驅動的方法,不必搜索龐大的報告日誌。

3.Cilium

內核層可感知API的網路和安全工具

Cilium的使命就是保護網路連接。Cilium與Docker和Kubernetes等Linux容器平台兼容,增加了安全可見性和控制邏輯。

它基於BPF(以前名為Berkeley數據包過濾器),這是一種Linux內核技術。低級實現的一個有意思的方面是,無需更改應用程序代碼或容器配置,就可以應用和更新Cilium安全策略。

鑒於現代微服務開發變化不定的生命周期和快速的容器部署,CoreOS開發了Cilium。 將它與Kubernetes集成起來簡單直觀;下面顯示了如何部署Cilium:

$ kubectl create -f ./cilium.yaml clusterrole "cilium" created serviceaccount "cilium" created clusterrolebinding "cilium" created configmap "cilium-config" created secret "cilium-etcd-secrets" created daemonset "cilium" created $ kubectl get ds --namespace kube-system NAME DESIRED CURRENT READY NODE-SELECTOR AGE cilium 1 1 1 2m

Cilium的支持和社區很棒。你會找到大量的指南和文檔、專門的Slack頻道,甚至每周可以與項目維護人員聯絡。

4.Anchore

使用CVE數據和用戶定義的策略檢查容器安全的工具

Anchore Engine是一種用於分析容器鏡像的工具。除了基於CVE的安全漏洞報告外,Anchore Engine還可以使用自定義策略評估Docker鏡像。

策略會導致Pass或Fail的結果。策略基於白名單或黑名單、登錄信息、文件內容、配置類型或用戶生成的其他線索。

Anchore打包成了Docker容器鏡像,可以獨立運行,也可以在Kubernetes等編排平台上運行。它還有與Jenkins和GitLab集成的功能,實現持續集成/持續交付(CI/CD)。

Anchore命令行界面(CLI)是操作Anchore Engine的簡易方法。比如說,該CLI命令返回有關鏡像內容的詳細信息:

anchore-cli image content INPUT_IMAGE CONTENT_TYPE

而該示例命令將對鏡像執行漏洞掃描:

anchore-cli image vuln docker.io/library/debian:latest os

Anchore輸出了漏洞詳細信息、威脅級別、CVE標識符及其他相關信息。由於用戶定義的規則是使用Anchore Cloud Service圖形用戶界面(GUI)創建的,它運行起來類似SaaS。

5. OpenSCAP Workbench

用於為各種平台創建和維護安全策略的環境

OpenSCAP是面向IT管理員和安全審計員的生態系統,包括許多開放式安全基準指南、配置基準和開源工具。

在Fedora、Red Hat Enterprise Linux、CentOS或Scientific Linux上運行的人可以將OpenSCAP Workbench作為GUI來安裝,以便在虛擬機、容器和鏡像上運行掃描。可使用該命令安裝OpenSCAP Workbench:

#yum install scap-workbench

想對照SCAP策略指南和CVE驗證容器,請使用OpenSCAP附帶的oscap-docker實用程序。

OpenSCAP以NIST認證的安全內容自動化協議(SCAP)為中心,提供許多機器可讀的安全策略。OpenSCAP安全指南指出,該項目的目標是「允許多家組織通過避免冗餘,高效地開發安全內容。」

由於OpenSCAP的應用比本文中的其他工具更廣泛,對於希望為整個平台創建安全策略的團隊而言,它是不錯的選擇。

6.Dagda

用於在Docker容器中掃描漏洞特洛伊木馬、病毒和惡意軟體的工具

Dagda是另一種用於容器安全靜態分析的工具。其CVE源包括OWASP依賴項檢查、Red Hat Oval和Offensive Security漏洞資料庫。

想使用Dagda掃描Docker容器,先要往Mongo資料庫填充漏洞數據。執行該命令即可分析單個Docker鏡像:

python3 dagda.py check --docker_image jboss/wildfly

可以遠程運行它,也可以不斷調用它來監視活動的Docker容器。輸出顯示了漏洞數量、嚴重性級別及其他詳細信息,有助於修復。

Dagda的一個好處是涵蓋廣泛的漏洞數據。這意味著可直接訪問大量更新後的、全面的漏洞資料庫。它也很靈活,可以通過CLI和REST API來控制它。

7. Notary

使用伺服器加強容器安全的框架,用於以加密方式委派責任

Notary是事實上的Docker鏡像簽名框架,現已開源。Docker開發了它,然後在2017年捐給了雲原生計算基金會。

Notary的任務就是確保責任分離;使用Notary,開發人員可以在容器之間委派角色、定義職責。該軟體包提供了伺服器和客戶端,提供一種加密安全的方法來發布和驗證內容。

想在本地部署Notary,可通過克隆repo來開始入手。然後,使用Docker Compose部署本地配置:

$ docker-compose build $ docker-compose up -d $ mkdir -p ~/.notary && cp cmd/notary/config.json cmd/notary/root-ca.crt ~/.notary

依賴更新框架和Go語言作為依賴項,Notary可以驗證容器應用程序鏡像的加密完整性。

8.Grafaes

幫助管理內部安全策略的元數據API

Grafaes可以幫助你創建自己的容器安全掃描項目。該容器安全工具於2017年底發布,由IBM和谷歌開發。

開發人員可以使用Grafaes(被稱為「組件元數據API」)來定義虛擬機和容器的元數據。 IBM的Vulnerability Advisor也集成到項目中。

想了解實際的案例,不妨看看Shopify如何使用Grafaes管理50萬個容器鏡像的元數據(https://cloudplatform.googleblog.com/2018/04/exploring-container-security-digging-into-Grafeas-container-image-metadata.html?m=1)。團隊藉助Kritis,在使用Grafeas元數據的Kubernetes集群上執行安全策略。

能夠快速獲取容器元數據有助於加快修復工作,從而縮短從漏洞利用到解決漏洞的時間。雖然Grafaes是開源的,但它由大型軟體提供商維護,這有助於長期支持。

9.Sysdig Falco

提供了行為活動監控,可深入了解容器

Falco是一種可識別Kubernetes的安全審計工具,由Sysdig開發,注重對容器、主機和網路活動實施行為監控。使用Falco,開發人員可以設置持續檢查基礎設施的機制、檢測異常情況,並為任何類型的Linux系統調用設置警報。

Falco文檔建議用戶將Falco作為Docker容器來運行,可以使用這些命令安裝它。部署後,標準輸出Falco警報如下所示:

stdout_output: enabled: true 10:20:05.408091526: Warning Sensitive file opened for reading by non-trusted program

可以使用Falco監控shell何時在容器中運行、容器掛載到哪裡、敏感文件的意外讀取、出站網路嘗試或其他可疑調用。Sysdig在此(https://github.com/draios/sysdig)提供了更多的容器故障排除資料。

10.Banyanops Collector

靜態分析Docker容器鏡像的框架

Collector得到Banyanops的支持,這個開源實用程序可用於「窺視」Docker容器鏡像文件的內部。使用Collector,開發人員可以收集容器數據、執行安全策略等。

首先,Banyanops可以在私有註冊中心上運行,也可以作為Docker Hub上的容器來運行。Banyanops還提供可更深入數據分析的SaaS產品,所以如果遇到有限的功能,注意商家的向上銷售。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

資料庫學習計劃——learning plan
推薦一款工具可以把 json 轉成 go 的 struct

TAG:程序員小新人學習 |