適用于 Kubernetes 的九大開源 DevSecOps 工具
在構(gòu)建和部署云原生應(yīng)用程序的過程中,開發(fā)人員和安全團隊的目標(biāo)經(jīng)常會相互矛盾。一是加快應(yīng)用交付的力量,而后者有時被視為創(chuàng)新引擎的障礙。實際上,安全性和缺乏安全性都有可能減緩創(chuàng)新。
研究表明,如果不解決安全問題,會導(dǎo)致應(yīng)用程序部署延遲。DevSecOps 作為一門學(xué)科,通過在開發(fā)和運營團隊之間插入安全性來拒絕信息安全和開發(fā)團隊之間的二分法。DevSecOps 將安全視為各個團隊之間的共同責(zé)任,并且基于將安全工具和流程嵌入到現(xiàn)有的開發(fā)人員和運營(或 DevOps)工作流中,并盡可能實現(xiàn)自動化。
以下是開源 DevSecOps 工具的非全面列表,可幫助您開始在 Kubernetes 中構(gòu)建、部署和運行更安全的容器化應(yīng)用程序。
1、Anchore
Anchore是一個開源圖像掃描器和漏洞管理工具,可檢測 Docker 圖像中的已知漏洞。Anchore Toolbox是一組獨立的開源工具,包括Syft和Grype。Syft 可以通過查看您的鏡像和文件系統(tǒng)來生成軟件材料清單,而 Grype 可以掃描鏡像中的漏洞。當(dāng)與 Anchore Engine 結(jié)合并集成到您的 CI/CD 工具中時,用戶可以在其現(xiàn)有工作流程中自動執(zhí)行安全策略評估和實施。借助Kubernetes 準(zhǔn)入控制器,Anchore 可以在您的構(gòu)建和運行階段掃描容器鏡像。
Anchore的用例
- 鏡像漏洞掃描
- 強制執(zhí)行
- 容器鏡像的軟件材料清單
2、Checkov
Checkov是一種開源靜態(tài)代碼分析工具,可幫助實施 AWS、Azure 和 Google Cloud 的安全性和合規(guī)性策略。Checkov 有助于在 Terraform、Cloudformation、Kubernetes 和其他基礎(chǔ)設(shè)施即代碼系統(tǒng)的構(gòu)建期間防止云配置錯誤。由于用戶驅(qū)動的錯誤配置是主要的安全問題,Checkov 可以成為幫助降低工作負載風(fēng)險的重要工具。
Checkov 的用例
- 基礎(chǔ)設(shè)施即代碼掃描
- 云配置管理
- Compliance
3、Clair
Clair是一個用于 Docker 容器的開源容器鏡像漏洞掃描器和靜態(tài)分析工具。Clair 用于開源項目Quay,一個獨立的容器注冊表。如果您希望避免商業(yè)選項的成本,Clair 是一個很好的起點,特別是因為 Clair 是許多商業(yè)容器掃描解決方案的開源構(gòu)建塊。
Clair的用例
- 鏡像漏洞掃描
4、Falco
Falco是一個孵化中的 CNCF 開源項目,它通過消耗內(nèi)核事件并將它們與來自 Kubernetes 的數(shù)據(jù)相結(jié)合來在 Linux 系統(tǒng)調(diào)用期間通知用戶違反策略,從而提供運行時可見性和自省。Falco 是一個受歡迎的項目,在認證 Kubernetes 安全專家考試 (CKS)中用于評估應(yīng)試者檢查運行時事件的能力。
Falco 的用例
- 運行時容器分析
- 威脅檢測
5、Kube-bench
Kube-bench是一個開源安全工具,它運行檢查以確保 Kubernetes 的部署符合CIS Kubernetes Benchmark。Kube-bench 最適合用于本地環(huán)境中的合規(guī)性,因為托管 Kubernetes 集群保護控制平面組件以保證正常運行時間、高可用性和 SLA。Kube-bench 也出現(xiàn)在CKS 考試中。
kube-bench 的用例
- 配置管理
- 合規(guī)
6、Kube-hunter
kube-bench 掃描 Kubernetes 的部署方式,而 kube-hunter 查看部署在 Kubernetes 中的集群以檢測可利用的錯誤配置,例如暴露的 Kubernetes Dashboard。有一堆主動和被動測試將顯示您的錯誤配置所在。您可以從集群外部、集群機器上或作為集群中的 pod 運行 kube-hunter。每個場景都會讓您對集群的安全狀況有不同的看法。
kube-hunter 的用例
- 配置管理
- 風(fēng)險和影響
7、KubeLinter
KubeLinter是 Kubernetes YAML 文件和 HELM 圖表的靜態(tài)分析工具,可幫助確保它們遵循生產(chǎn)準(zhǔn)備和安全性的最佳實踐。KubeLinter 附帶了一些默認檢查,也可以配置為運行自定義檢查。KubeLinter 作為 Go 二進制文件開發(fā),與 kubectl 具有相同的包,比其他策略工具更直接,并且專注于開發(fā)人員使用和 CI 集成。KubeLinter 利用配置文件允許團隊在其 CI 應(yīng)用程序中擴展他們的策略。
KubeLinter 的用例
- 配置管理
- YAML/Helm chart linting
8、開放策略代理(Open Policy Agent)
Open Policy Agent (OPA) 是一個畢業(yè)的 CNCF 開源項目,它使用戶能夠使用 OPA 的通用策略引擎來標(biāo)準(zhǔn)化他們的策略創(chuàng)建和執(zhí)行。除了 Kubernetes,OPA 還可以在使用 Envoy、Terraform 和 Kafka 等云原生技術(shù)時強制執(zhí)行策略。OPA 策略甚至可以轉(zhuǎn)換為 SQL 以在您的數(shù)據(jù)庫中強制執(zhí)行規(guī)則。
- Policy enforcement
9、Terrascan
Terrascan是一個建立在 OPA 之上的新興開源解決方案。Terrascan 擁有超過 500 多個安全最佳實踐策略,適用于各種應(yīng)用程序,包括 Terraform、Kubernetes (JSON/YAML)、AWS、Azure、GCP、Kubernetes 和 GitHub。Terrascan 顯示了 OPA 引擎的價值,并通過推薦默認值而不是讓用戶使用Rego來擴展它。
Terrascan 的用例
- 配置管理
- YAML/Helm chart linting
總結(jié)
如果實施得當(dāng),DevSecOps 原則將在整個軟件開發(fā)生命周期中持續(xù)集成,將安全責(zé)任進一步向左轉(zhuǎn)移,以最大限度地減少后期安全控制的操作開銷,并使開發(fā)人員和 DevOps 最終用戶成為安全用戶,允許他們獨立地在其工作流程中實施安全控制。
隨著 Kubernetes 等云原生技術(shù)的出現(xiàn),作為在云和混合環(huán)境中管理應(yīng)用程序的標(biāo)準(zhǔn),安全團隊需要充分了解這些技術(shù)以建立適當(dāng)?shù)淖o欄和控制。DevOps 團隊必須在他們用于在 Kubernetes 環(huán)境中配置基礎(chǔ)設(shè)施和構(gòu)建軟件應(yīng)用程序的工作流和工具鏈中集成強大的安全保護。當(dāng)與正確的人員和流程相結(jié)合時,這個開源安全工具列表可以幫助您的組織實現(xiàn)這些目標(biāo),并以新的更好的方式實現(xiàn)安全自動化。