在現今快速發展的數據應用環境之下,Kubernetes已經成為部署和管理容器化應用的首選平台。但是隨著應用服務愈來愈複雜、被攻擊的風險也愈來愈高。為了保護Kubernetes環境的安全性,跟大家介紹一個針對Kubernetes安全合規掃描的工具,幫助確保您的 Kubernetes 叢集設置和應用程序部署符合最佳安全實踐,並幫助您識別和解決可能存在的安全漏洞。

那些地方不符合規範呢?
本文將說明:
- Kubescape是什麼
- 部署kubescape
- 基本操作方式
- 結論
- Kubescape是什麼

Kubescape是一個針對Kubernetes安全合規掃描的工具,首先我們先簡單說明為什麼要做安全合規呢? 主要的目的是要確保系統是具備資訊安全和遵守法律法規,透過定期的檢視來達成以下關鍵目標:
- 確保資料不會有泄露和損失的風險
- 確保組織符合相關法律和法規(HIPAA, NIST, PCI DSS…)
- 識別這些漏洞(CVE)
- 持續改進
而針對Kubernetes平台,kubescape就是一個讓管理者可以有效率的達成以上目標的其中一個做法,它的主要功能如下:
- 風險檢查:Kubescape 能夠掃描 Kubernetes 叢集中的各種組件,包括 Pod、Service、Role、ConfigMap、Secret 等,並檢查它們的配置是否存在可能的安全風險,例如特權升級、不安全的許可權設置、漏洞等。
- 自定義配置:Kubescape 允許您根據自己的需求定義自定義配置文件,以檢查特定的安全策略和最佳實踐。
- 安全報告:當掃描完成後,Kubescape 會生成詳細的安全報告,該報告將列出發現的問題和建議的修復步驟。
並且在CLI界面具備彈性的輸出格式與自動掃描功能來提供給管理者進行操作。針對小規模Cluster也有online dashboard可使用。
Kubescape可以用來掃描運行中的Cluster、YAML、Helm Charts。並且根據多個框架(NSA-CISA, CIS Benchmart..)來檢測錯誤設定。Kubescape是由ARMO這間公司所開發,也進入CNCF專案行列之中。
2. 部署kubescape
以下簡單說明如何在Kubernetes環境下部署Kubescape的流程:
#-------------------------------------------
# S2-1. 確認目前狀態
#-------------------------------------------
[master]# kubectl get nodes

#-------------------------------------------
# S2-2. 安裝 & 執行
#-------------------------------------------
[master]# wget https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh
[master]# chmod +x install.sh ; ./install.sh

#-------------------------------------------
# S2-3. Cluster掃描並產生PDF格式檔案
#-------------------------------------------
[master]# kubescape scan --enable-host-scan --format pdf --output results.pdf --verbose

如果可以正確產生報告,就代表安裝成功。下一步我們再來執行一些基本操作。
3. 基本操作方式
#-------------------------------------------
# S3-1. 針對特定namespace
#-------------------------------------------
[master]# kubescape scan --include-namespaces kube-system

#-------------------------------------------
# S3-2. 部署前掃描特定檔案
#-------------------------------------------
[master]# kubescape scan /root/networking/ingress-controller/nginx-community/nginx-ingress-controller/manifests/*.yaml

#-------------------------------------------
# S3-3. 使用不同框架掃描
#-------------------------------------------
[master]# kubescape scan framework nsa
[master]# kubescape scan framework mitre

4. 結論
除了個人測試之外,只要是在公司內使用的環境就勢必需要面對環境安全性的要求,除了建置前的仔細規劃、平時的各種更新之外,就必須要依靠外部工具來協助管理者掃描與找出其他沒有注意到的地方。

同時,還有大大小小的稽核檢查也需要提供對應的報告,而kubescape可以直接套用各種標準以不同產業的需求來進行掃描產出對應的報告,讓管理團隊直接針對自已的產業進行最適合的掃描,最少可以確保自已的環境是合乎業界標準。
最後,有幾個應用的時機可以分享給大家參考,當有以下的需求時,就可以考慮是否需要使用kubescape。
- 安全審查與修復:使用 Kubescape 定期對其生產環境中的 Kubernetes 叢集進行安全審查。識別出潛在的安全問題,例如權限配置不當、容器運行以特權模式等,採取措施來解決這些問題,提高系統的安全性。
- 合規性測試:如果需要遵守特定的合規性標準,如 GDPR 或 HIPAA,Kubescape 可用於確保 Kubernetes 環境的配置符合這些要求。這有助於避免違反法律法規,降低合規性風險。
- 容器映像安全性檢查:不僅可以檢查叢集配置,還可以檢查容器映像的安全性。組織可以使用它來確保其使用的容器映像不包含已知的漏洞或恶意軟體,這有助於減少攻擊風險。
- CI/CD安全性:將 Kubescape 整合到 CI/CD 流程中,以在部署之前自動執行安全審查。這可以確保新程式碼或容器映像的安全性,並防止潛在的問題進入正式環境。
- Cloud Native應用服務的安全性:當開發和部署Cloud Native應用服務時,Kubescape 可以用來確保應用程序和底層基礎結構的安全性。有助於保護微服務架構中的每個元件。
- 測試新安全策略:使用 Kubescape 來測試和驗證新的安全策略,例如訪問控制政策、網絡策略等,以確保它們運作正常且不會引入不安全的設置。
將Kubescape這類工具整合進 DevSecOps 流程中,並透過上述情境考量來確保容器化應用在 Kubernetes 環境中運行時能夠保持安全。減少潛在的風險,提高應用的安全性,並確保 Kubernetes 叢集的配置符合最佳實踐。在容器服務愈來愈多的現代環境,利用這類工具來確保安全是在這個領域的必學技能。
Reference: