自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

十個優(yōu)秀開源Docker&Kubernetes安全掃描工具,提升容器安全性!

開源 安全
本文主要介紹k8s和Docker所面對的安全性問題,并推薦幾款開源免費(fèi)容器安全工具。

Kubernetes(k8s)是一種目前流行的開源容器編排系統(tǒng),可以自動部署、擴(kuò)展和管理容器化工作負(fù)載。Kubernetes提供了容器自修復(fù)、自動擴(kuò)展和服務(wù)發(fā)現(xiàn)的功能,但是,也存在一些固有的安全風(fēng)險。Docker 是一個容器平臺,用于構(gòu)建、部署和管理應(yīng)用程序。Docker容器的輕量、可移植和可擴(kuò)展特性為應(yīng)用程序的開發(fā)和交付帶來了巨大的便利,特別是在微服務(wù)架構(gòu)應(yīng)用上,是許多開發(fā)者和組織的首選。然而,隨著容器化的廣泛應(yīng)用,Docker也面臨著日益復(fù)雜和嚴(yán)峻的容器安全挑戰(zhàn)。

本文主要介紹k8s和Docker所面對的安全性問題,并推薦幾款開源免費(fèi)容器安全工具。

Kubernetes的安全性問題

(1)集群安全

集群安全包括通過啟用認(rèn)證、授權(quán)和加密來保護(hù)控制組件,如API服務(wù)器、etcd和Kubernetes控制器管理程序(Kubernetes controller manager)等。

(2)節(jié)點(diǎn)安全

節(jié)點(diǎn)安全主要是指正確配置網(wǎng)絡(luò)和保護(hù)Kubernetes運(yùn)行時環(huán)境,包括刪除不必要的用戶帳戶、確保應(yīng)用訪問的合規(guī)性。

(3)應(yīng)用程序安全

應(yīng)用程序安全意味著要對pod進(jìn)行保護(hù),在Kubernetes中,pod是用于運(yùn)行應(yīng)用程序的容器。保護(hù)這些應(yīng)用程序的前提是保護(hù)pod。Kubernetes提供了多個安全特性來幫助保護(hù)應(yīng)用程序。這些特性可用于限制資源訪問、實施網(wǎng)絡(luò)策略,并支持容器之間的安全通信。

Docker容器的安全問題

(1)鏡像污染

目前Docker Hub上面有著數(shù)量眾多的第三方上傳鏡像,這些鏡像質(zhì)量參差不齊。在這其中,不排除有黑客故意上傳包含了惡意程序的鏡像,并偽裝成業(yè)務(wù)鏡像供用戶下載使用。當(dāng)用戶誤用此類鏡像啟動容器時,無疑會導(dǎo)致容器被入侵。因此,用戶必須對這些鏡像進(jìn)行掃描甄別,以保證容器所使用的鏡像是可受信任的,盡可能不使用非信任的第三方鏡像。

(2)網(wǎng)絡(luò)攻擊

Docker默認(rèn)使用bridge網(wǎng)絡(luò),該網(wǎng)絡(luò)會創(chuàng)建一個虛擬網(wǎng)橋,連接在同一個網(wǎng)橋之間的容器可以互相訪問。當(dāng)某個容器被入侵時,黑客有可能順著網(wǎng)絡(luò)訪問到宿主機(jī)中的其他容器。同時 ,攻擊者也可以通過DDos等方式,攻擊容器的服務(wù)來耗盡主機(jī)的資源,從而引起整個宿主機(jī)的崩潰。

(3)內(nèi)核攻擊

當(dāng)黑客獲取到容器權(quán)限時,由于共享內(nèi)核的緣故,理論上可通過對內(nèi)核的攻擊來達(dá)到控制或影響主機(jī)的地步 。

(4)操作不當(dāng)

有些操作不當(dāng)容易使容器出現(xiàn)漏洞,例如:

  • 在啟動容器時將主機(jī)的根目錄映射到容器中;
  • 在啟用容器時使用特權(quán)模式——privileged,此時Docker容器允許可以訪問主機(jī)上的所有設(shè)備,并可以獲取大量設(shè)備文件的訪問權(quán)限。

(5)針對Docker Daemon的攻擊

Docker使用的是C/S架構(gòu),作為服務(wù)端的Docker Daemon會接收客戶端通過CLI或者REST API發(fā)送的命令,并執(zhí)行對容器的相應(yīng)操作。但請求不一定都是由可信任的用戶發(fā)起的,攻擊者可能通過偽造請求的方式,來達(dá)到欺騙Daemon端執(zhí)行危險的操作。

(6)Docker漏洞攻擊

Docker本身屬于應(yīng)用程序,不可避免地會有出現(xiàn)代碼的漏洞,這可能導(dǎo)致程序受到攻擊。

綜上所述,要確保容器安全,涉及設(shè)備、系統(tǒng)、網(wǎng)絡(luò)、鏡像、應(yīng)用、操作等各個層次。其中,容器本身的安全往往容易容易被忽略,下面內(nèi)容主要推薦一些對保護(hù)Kubernetes集群和Docker容器有用的開源工具,有助于Docker 鏡像的靜態(tài)掃描、安全審計、加固 Kubernetes 集群和實現(xiàn)運(yùn)行時安全性。

1.Trivy

https://github.com/aquasecurity/trivy

Trivy是一個全面且多功能的安全掃軟件。Trivy包含擁有查找安全問題的掃描器,并將目標(biāo)定位在可以找到這些問題的地方??捎糜诓檎胰萜鳌ubernetes、代碼存儲庫、云等當(dāng)中存在的漏洞、錯誤配置、密碼泄露、SBOM等問題。Trivy支持大多數(shù)流行的編程語言,支持跨平臺操作系統(tǒng)。

Trivy支持掃描的對象包括:

  • 容器鏡像
  • 文件系統(tǒng)
  • Git倉庫(遠(yuǎn)程)
  • 虛擬機(jī)鏡像
  • Kubernetes
  • AWS

Trivy能夠發(fā)現(xiàn)的問題包括:

  • 使用中的操作系統(tǒng)包和軟件依賴關(guān)系(SBOM)
  • 已知漏洞(CVEs)
  • IaC問題和錯誤配置
  • 敏感信息和秘密
  • 軟件許可信息

在執(zhí)行Trivy掃描之后,將得到一個漏洞列表,包括漏洞的嚴(yán)重性和CVE編號。

實際的安裝和使用如下:

(1)安裝

使用Homebrew for MacOS and Linux 安裝:

brew install trivy
docker run aquasec/trivy

或者使用腳本安裝:

curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.47.0

也可以基于源碼安裝:

git clone --depth 1 --branch v0.47.0 https://github.com/aquasecurity/trivy
cd trivy
go install ./cmd/trivy

(2)掃描容器鏡像

docker run -v /var/run/docker.sock:/var/run/docker.sock -v $HOME/Library/Caches:/root/.cache/ aquasec/trivy:0.47.0 image python:3.4-alpine

掃描結(jié)果如下:

2.Docker Bench for Security

https://github.com/docker/docker-bench-security

Docker Bench for Security是一個Docker安全相關(guān)的命令集,用于自動檢查在生產(chǎn)環(huán)境中部署Docker容器的數(shù)十種常見最佳實踐。

使用以下腳本可以從本機(jī)運(yùn)行:

git clone https://github.com/docker/docker-bench-security.git
cd docker-bench-security
sudo sh docker-bench-security.sh

或者基于Docker執(zhí)行:

docker run --rm --net host --pid host --userns host --cap-add audit_control \
    -e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST \
    -v /etc:/etc:ro \
    -v /lib/systemd/system:/lib/systemd/system:ro \
    -v /usr/bin/containerd:/usr/bin/containerd:ro \
    -v /usr/bin/runc:/usr/bin/runc:ro \
    -v /usr/lib/systemd:/usr/lib/systemd:ro \
    -v /var/lib:/var/lib:ro \
    -v /var/run/docker.sock:/var/run/docker.sock:ro \
    --label docker_bench_security \
    docker-bench-security

3.Clair

https://github.com/quay/clair

Clair是一個用于靜態(tài)分析Docker和appc容器中的漏洞的開源項目。該工具有多種部署模式,最適合高可伸縮性和可用性。Clair 支持REST api,并提供HTML掃描報告。他還可以與Docker Registry集成以自動提供漏洞報告。

Clair 目前的版本v4使用ClairCore庫作為其檢查內(nèi)容和報告漏洞的引擎。在較高的層次上,可以將Clair視為ClairCore庫中提供的功能的服務(wù)包裝器。Clair V4的架構(gòu)如下圖所示:

詳細(xì)使用方式可以參考官方文檔:https://quay.github.io/clair/howto/getting_started.html

4.Kube-bench

https://github.com/aquasecurity/kube-bench

CIS Benchmarking 是保護(hù)IT系統(tǒng)和數(shù)據(jù)的全球公認(rèn)標(biāo)準(zhǔn),它提供了一系列的指導(dǎo)手冊來保護(hù)容易受到網(wǎng)絡(luò)攻擊的操作系統(tǒng)、軟件和網(wǎng)絡(luò)。

Kube-bench是一個開源工具,用于檢查Kubernetes是否按照CIS Kubernetes基準(zhǔn)(包含一組Kubernetes安全最佳實踐)來優(yōu)化部署。因此,當(dāng)僅為CIS基準(zhǔn)測試目的需要掃描時,kube-bench是最好的。

運(yùn)行kube-bench有多種方法??梢栽趐od中運(yùn)行kube-bench,但它需要訪問主機(jī)的PID命名空間以檢查正在運(yùn)行的進(jìn)程,以及訪問主機(jī)上存儲配置文件和其他文件的某些目錄。GitHub存儲庫包含特定于云的 job-*.yaml 文件 ,kube-bench將根據(jù)機(jī)器上運(yùn)行的Kubernetes版本自動決定運(yùn)行哪個測試集。

例如:

$ kubectl apply -f job.yaml
job.batch/kube-bench created

$ kubectl get pods
NAME                      READY   STATUS              RESTARTS   AGE
kube-bench-j76s9   0/1     ContainerCreating   0          3s

# Wait for a few seconds for the job to complete
$ kubectl get pods
NAME                      READY   STATUS      RESTARTS   AGE
kube-bench-j76s9   0/1     Completed   0          11s

# The results are held in the pod's logs
kubectl logs kube-bench-j76s9
[INFO] 1 Master Node Security Configuration
[INFO] 1.1 API Server
...

具體可以參考相關(guān)文檔:https://github.com/aquasecurity/kube-bench/blob/main/docs/running.md

5.kubeaudit

https://github.com/Shopify/kubeaudit

kubeaudit是一個可以針對常見的安全控制對Kubernetes的部署進(jìn)行審計的開源工具,比如:

  • 以非root用戶運(yùn)行
  • 使用只讀的根文件系統(tǒng)
  • 放棄易受攻擊的能力,不要添加新的
  • 不要特權(quán)運(yùn)行

kubeaudit的Brewhome安裝如下:

kubeaudit all -f "/path/to/manifest.yml"

Kubeaudit 可以在三種不同的模式下運(yùn)行:manifest、cluster和local。它還可以自動修復(fù)清單,這使它有別于其他競爭對手。

manifest模式運(yùn)行—在該模式下,需要提供相關(guān)Kubernetes資源的manifest文件。

例如:

kubeaudit all -f "/path/to/manifest.yml"

輸出結(jié)果:

$ kubeaudit all -f "internal/test/fixtures/all_resources/deployment-apps-v1.yml"

---------------- Results for ---------------

  apiVersion: apps/v1
  kind: Deployment
  metadata:
    name: deployment
    namespace: deployment-apps-v1

--------------------------------------------

-- [error] AppArmorAnnotationMissing
   Message: AppArmor annotation missing. The annotation 'container.apparmor.security.beta.kubernetes.io/container' should be added.
   Metadata:
      Container: container
      MissingAnnotation: container.apparmor.security.beta.kubernetes.io/container

-- [error] AutomountServiceAccountTokenTrueAndDefaultSA
   Message: Default service account with token mounted. automountServiceAccountToken should be set to 'false' or a non-default service account should be used.

-- [error] CapabilityShouldDropAll
   Message: Capability not set to ALL. Ideally, you should drop ALL capabilities and add the specific ones you need to the add list.
   Metadata:
      Container: container
      Capability: AUDIT_WRITE
...

另外,還有集群模式:

kubeaudit all

本地模式:

kubeaudit all -f "/path/to/config"
br

此外,kubeaudit有多個審計配置文件,包括外觀,能力,限制,特權(quán),rootfs, seccomp, netpols和asat。

6.Kubescape

https://github.com/kubescape/kubescape

Kubescape是一個開源的Kubernetes安全平臺,適用于IDE、CI/CD管道和集群。它的功能包括風(fēng)險分析、安全性、合規(guī)性和錯誤配置掃描,為Kubernetes用戶和管理員節(jié)省了寶貴的時間、精力和資源。

安裝:

curl -s https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash

執(zhí)行掃描:

kubescape scan --verbose

結(jié)果如下

7.Kube-hunter

https://github.com/aquasecurity/kube-hunter

kube-hunter是一個用Python開發(fā)的開源滲透測試工具,用于在Kubernetes集群中尋找安全漏洞。它支持編寫可以在本地機(jī)器、集群內(nèi)部以及主動和被動模式下遠(yuǎn)程執(zhí)行的自定義模塊。

在活動模式下,kube-hunter可以發(fā)現(xiàn)任何漏洞,還可以將kube-hunter作為模擬攻擊工具在staging 環(huán)境中運(yùn)行。

安裝和使用方式如下:

pip install kube-hunter # Installing Kube-hunter.
kube-hunter --remote some.node.com # Running remotely.
kube-hunter --cidr 192.168.0.0/24. # Network Scanning.
kube-hunter --remote some.domain.com --active # Active Mode.
kube-hunter --list --active # List of test cases.
kube-hunter --remote some.node.com --json # Json output
kube-hunter --k8s-auto-discover-nodes --kubeconfig "/path/config"

8.Cilium

https://github.com/cilium/cilium

Cilium是一個網(wǎng)絡(luò)安全檢測項目,提供基于eBPF的網(wǎng)絡(luò)可觀察性和安全性解決方案。它與Docker和Kubernetes兼容,允許在不更改應(yīng)用程序代碼或容器配置的情況下應(yīng)用安全策略。

9.Syft and Grype

https://github.com/anchore/syft

https://github.com/anchore/grype

Syft是一個基于Go開發(fā)的CLI工具庫,用于從容器映像和文件系統(tǒng)生成軟件物料清單(SBOM)。Grype是一個針對容器映像和文件系統(tǒng)的漏洞掃描工具。當(dāng)Syft與Grype等掃描工具一起搭配使用時,可以用于檢測系統(tǒng)漏洞或異常。

Syft安裝:

curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin

Grype安裝:

curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin

具體使用,可參考官方文檔。

10.Dockle

https://github.com/goodwithtech/dockle

Dockle是一個基于遵循CIS(互聯(lián)網(wǎng)安全中心)Docker基準(zhǔn),并按照最佳實踐構(gòu)建安全的Docker容器鏡像的工具。

掃描Docker Image的操作命令如下:

(1)掃描Docker鏡像:

$ dockle goodwithtech/test-image:v1
br

(2)掃描Docker鏡像文件:

$ docker save alpine:latest -o alpine.tar
$ dockle --input alpine.tar

(3)獲取掃描JSON結(jié)果:

$ dockle -f json goodwithtech/test-image:v1
$ dockle -f json -o results.json goodwithtech/test-image:v1

更多操作可參考官方手冊。

責(zé)任編輯:趙寧寧 來源: andflow
相關(guān)推薦

2011-08-01 09:20:16

2021-10-25 14:40:43

Web工具Linux

2025-04-08 09:46:56

2021-02-21 09:33:19

Docker容器安全 應(yīng)用程序

2022-07-18 11:13:07

容器安全Docker

2024-04-24 12:34:44

2020-06-16 11:22:19

SaaS云服務(wù)云安全

2023-02-24 14:28:56

2020-10-08 10:15:15

LynisLinux系統(tǒng)安全

2022-11-03 15:26:52

2018-11-27 09:00:53

DockerKubernetes容器

2023-11-17 12:09:54

2021-12-26 08:03:31

容器安全掃描工具漏洞

2016-11-15 11:20:39

2017-06-12 08:47:14

ESXi安全vSphere

2024-08-13 00:23:48

2012-04-05 09:52:21

開源軟件Linux

2020-06-09 21:07:56

OT安全網(wǎng)絡(luò)安全攻擊

2010-09-06 10:47:56

2024-01-12 16:01:10

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號