日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

目錄
  • 正文
  • Kubernetes 加固概述
    • 通用性的安全建議
  • Kubescape 概述
    • Kubescape 基本原理
      • Kubescape 安裝部署
        • Linux 安裝 Kubescape
        • macOS 安裝 Kubescape
      • Kubescape 實踐
        • 掃描結果分析
      • 常用掃描技巧

        正文

        Hello folks! 今天我們介紹一款開源容器平臺安全掃描工具 – Kubescape。作為第一個用于測試 Kubernetes 集群是否遵循 NSA-CISA 和 MITREATT&CK 等多個框架安全部署規范的開源工具,Kubescape 在整容器編排生態中具有舉足輕重的意義。在這篇文章中,我們將解析什么是 Kubernetes 加固以及如何基于 Kubescape 工具進行 Kubernetes 生態體系加固。

        Kubernetes 加固概述

        隨著云原生理念的不斷普及、生態體系的不斷完善,越來越多的企業開始邁入云化之路,無論是基于何種緣由。然而,在實施過程中,我們中的大多數人只考慮到如何將現有的業務系統平滑遷移至 Kubernetes 平臺,其中有多少人考慮過 Kubernetes 集群的安全性?

        根據 RedHat 報道,“人為錯誤” 是 Kubernetes 安全事故的主要原因。事實上,94% 的受訪者承認他們在過去一年中經歷過 Kubernetes 和容器環境安全事件。更糟糕的是,超過一半(55%)的受訪者在過去一年中由于安全問題最終推遲了 Kubernetes  應用程序生產開發。因此,如果我們盡可能想建設一個最好的系統,至少在人為錯誤層面要有所改變。

        同樣,針對基礎設施安全,我們可能會在托管環境中實施很多限制,但這還還遠遠不夠,因為如果存在任何人為錯誤或任何惡意軟件/軟件包或我們跳過的其他可能原因,大多數這些可能會受到損害初始設置時間。因為,就像我們正在遷移到 Kubernetes 一樣,黑客也可以開始針對 Kubernetes 環境進行數據竊取、拒絕服務或加密貨幣挖掘等。

        因此,如果我們計劃將 Kubernetes 作為我們將來的業務支撐平臺的未來,那么我們有責任保護 Kubernetes 集群,為此我們應該實施加強 Kubernetes 安全性的技術。

        那么,什么是 Kubernetes 加固呢?通常我們可以這樣理解:Kubernetes 加固主要為保護 Kubernetes 系統而采取的一系列安全執行措施,從而不被外界影響。

        通用性的安全建議

        1、盡可能掃描 Container 和 Pod 以查找漏洞或配置錯誤

        2、以盡可能少的權限運行 Container 和 Pod

        3、使用網絡分離來控制危害可能造成的損害程度

        4、使用防火墻技術來限制不必要的網絡連接,并采用加密機制

        5、使用強身份驗證和授權來限制用戶和管理員訪問以及限制攻擊面

        6、捕獲和監控審計日志,以便管理員可以收到潛在惡意活動的警報

        7、定期審查所有 Kubernetes 設置并基于漏洞掃描來確保平臺處于安全狀態以及進行必要的安全補丁措施。

        基于如上所述的通用性建議在某些場景中可能對我們的業務運行有所幫助。例如,我們都知道我們不應該以 root 用戶身份運行應用程序,但我們可以看到,許多 Kubernetes 容器服務仍以 root 用戶身份運行,并且應用程序亦是如此,即便它們不需要特權執行。即使有警告,開發人員也會構建以 root 身份執行的容器應用程序。為什么?因為這很容易。同時它也很危險。

          當然,即使是 Kubernetes 也有其自身的安全問題。因此,我們所能做的便是基于當前的業務現狀,遵守網絡安全技術報告中的建議,以確保應用程序的安全,并通過補丁、升級和更新等相關措施使得系統保持最新狀態,以降低風險。

        Kubescape 概述

        作為一個 K8s 開源工具,Kubescape 能夠提供 Kubernetes 單一管理平臺,包括風險分析、安全合規、RBAC 可視化工具和圖像漏洞掃描。Kubescape 工具能夠掃描 K8s 集群、YAML 文件和 HELM 圖表,根據多個框架(如 NSA-CISA、MITRE ATT & CK®)檢測錯誤配置、軟件漏洞和早期 RBAC(基于角色的訪問控制)違規 CI/CD 管道,即時計算風險評分并顯示隨時間變化的風險趨勢。

        基于其易用的 CLI 界面、靈活的輸出格式和自動掃描功能,Kubescape 已成為開發人員中增長最快的 Kubernetes 工具之一,為 Kubernetes 用戶和管理員節省了寶貴的時間、精力和資源。Kubescape 與其他 DevOps 工具本地集成,包括 Jenkins、CircleCI、Github 工作流、Prometheus 和 Slack,并支持多云 K8s 部署,如 EKS、GKE 和 AKS。

        總而言之,Kubescape 能夠基于非根容器、特權容器、主機網絡訪問、匿名請求等多方面屬性進 Kubernetes 集群環境的健康掃描,檢測錯誤配置和軟件漏洞,即時計算風險評分并顯示風險隨時間變化的趨勢。掃描結果以命令行表格或 JSON 格式顯示,顯示可能被利用的不同錯誤配置區域,從而幫助工程師評估 Kubernetes 環境的安全狀況。

        基于上述所述,Kubescape 功能特性主要體現在 4 個層面:Kubernetes 配置掃描、Kubernetes 容器漏洞掃描、Kubernetes RBAC 簡化以及在 CI/CD 工作流中運行等。具體內容可參考如下思維導圖:

        一文詳解基于Kubescape進行Kubernetes安全加固

        Kubescape 基本原理

        Kubescape 基于 OPA 引擎 和 ARMO 的框架機制。它從 API Server 檢索 Kubernetes 對象,并通過運行一組由 ARMO 開發的 Rego Snippets 片段規則來對所流經的對象信息進行掃描。默認情況下,掃描輸出結果以“控制臺模型”的方式進行打印展示,但也可以以 JSON 或 Junit 格式檢索它們以進行進一步處理。

        Kubescape 工作原理如下所示:

        一文詳解基于Kubescape進行Kubernetes安全加固

        基于上述架構圖所述,OPA 作為一個通用策略引擎,可在我們所構建的 Kubernetes 集群中實施策略編排。基于 OPA ,我們可以計算出: 用戶 X 是否能夠可以對資源 Z 做 Y 操作? 應該允許查看哪些記錄?等。

        而作為一種規則,Rego 是 OPA 開發的一種聲明性策略語言。基于此,Kubescape 從 API Server 中檢索有關 K8s 對象的信息,然后使用 OPA 對其進行掃描。

        Kubescape 基于控件模型,在生態系統中,NSA/MITRE/ArmoBest/DevOpsBest指南被分解成小的策略集(可稱之為控制)。每個控件都有自己的一組規則,用于掃描集群或管道。

        關于 ARMO 的 ArmoBest 框架,當發現最新漏洞時,ARMO 會不斷升級此框架。每當行業中發生任何最新的安全漏洞,Armo 都會嘗試盡快對其庫進行更新。

        Kubescape 安裝部署

        關于 Kubescape 工具的安裝較為簡單,Kubescape 支持在 Windows、macOS 以及 Linux 等平臺上部署使用。

        在部署 Kubescape 工具之前,我們需要部署一個 Kubernetes Cluster 并使其處于運行狀態。如下所示:

        [leonli@Leon kubescape ] % kubectl get po -A -o wideNAMESPACE              NAME                                        READY   STATUS    RESTARTS   AGE     IP             NODE          NOMINATED NODE   READINESS GATESkube-system            coredns-64897985d-v9jcf                     1/1     Running   0          2d17h   172.17.0.2     k8s-cluster   <none>           <none>……kubernetes-dashboard   dashboard-metrics-scraper-58549894f-ns2ld   1/1     Running   0          2d17h   172.17.0.11    k8s-cluster   <none>           <none>……monitoring             prometheus-k8s-0                            2/2     Running   0          2d17h   172.17.0.9     k8s-cluster   <none>           <none>monitoring             prometheus-operator-6dc9f66cb7-h7mrp        2/2     Running   0          2d17h   172.17.0.7     k8s-cluster   <none>           <none>traefik-v2             traefik-767667c75c-kwjn4                    1/1     Running   0          2d13h   172.17.0.12    k8s-cluster   <none>           <none>

        我這里以 Linux、macOS 操作系統為例,簡要介紹一下 Kubescape 安裝部署過程,具體如下。

        Linux 安裝 Kubescape

        這里主要基于 GitHub 下載的 Kubescape CLI 二進制文件進行安裝,部署,當然,也可通過命令行一次性安裝,具體操作如下:

        [leonli@Leon kubescape ] % wget https://github.com/kubescape/kubescape/releases/download/v2.0.176/kubescape-macos-latest

        拉取到本地后,然后進行執行即可,具體暫不在本文中贅述。

        macOS 安裝 Kubescape

        基于 macOS 安裝 Kubescape 也有多種不同的方式,其簡要的安裝步驟主要分為如下 2 步:

        1、添加 Kubescape GitHub 存儲庫:

        [leonli@Leon kubescape ] % brew tap kubescape/tap

        2、執行 Kubescape 安裝

        [leonli@Leon kubescape ] % brew install kubescape-cli[leonli@Leon kubescape ] % kubescape versionYour current version is: v2.0.176

        此時,可借助 -h 命令標志來獲取有關某個命令的額外信息,如下所示:

        [leonli@Leon kubescape ] % kubescape -h     Kubescape is a tool for testing Kubernetes security posture. Docs: https://hub.armosec.io/docs
        Usage:  kubescape [command]
        Examples:
          # Scan command  kubescape scan --submit
          # List supported frameworks  kubescape list frameworks
          # Download artifacts (air-gapped environment support)  kubescape download artifacts
          # View cached configurations  kubescape config view
        Available Commands:  completion  Generate autocompletion script  config      Handle cached configurations  delete      Delete configurations in Kubescape SaaS version  download    Download control,framework,artifacts,controls-inputs,exceptions  help        Help about any command  list        List frameworks/controls will list the supported frameworks and controls  scan        Scan the current running cluster or yaml files  submit      Submit an object to the Kubescape SaaS version  update      Update your version  version     Get current version
        Flags:      --cache-dir string   Cache directory [$KS_CACHE_DIR] (default "/Users/leonli/.kubescape")      --disable-color      Disable Color output for logging      --enable-color       Force enable Color output for logging  -h, --help               help for kubescape  -l, --logger string      Logger level. Supported: debug/info/success/warning/error/fatal [$KS_LOGGER] (default "info")
        Use "kubescape [command] --help" for more information about a command.

        Kubescape 實踐

            Kubescape scan 命令掃描集群中可用每個 Kubernetes 對象和集群上安裝的 Helm Charts。它具有以下標志:

        1、–submit:此標志將掃描結果發送到 Armo 管理門戶

        2、–enable-host-scan:此標志部署了ARMOK K8s 主機傳感器 DaemonSet,該DaemonSet 從主機收集有關集群的有價值且無限的信息

        3、–verbose:此標志顯示掃描的所有資源

        例如,現在我們掃描下所部署的 K8s Cluster,操作命令如下所示:

        [leonli@Leon kubescape ] % kubescape scan --submit --enable-host-scan --format-version v2 --verbose[info] Kubescape scanner starting[info] Installing host scanner……[success] Done scanning. Cluster: k8s-cluster^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^################################################################################ApiVersion: Kind: ServiceAccountName: prometheus-k8sNamespace: monitoring
        Controls: 14 (Failed: 1, Excluded: 0)
        +----------+--------------------------------+------------------------------------+-----------------------+| SEVERITY |          CONTROL NAME          |                DOCS                | ASSISTANT REMEDIATION |+----------+--------------------------------+------------------------------------+-----------------------+| Medium   | Access container service       | https://hub.armosec.io/docs/c-0053 |                       ||          | account                        |                                    |                       |+----------+--------------------------------+------------------------------------+-----------------------+……ApiVersion: v1Kind: ServiceAccountName: defaultNamespace: traefik-v2
        Controls: 4 (Failed: 3, Excluded: 0)
        +----------+--------------------------------+---------------------------------------+------------------------------------+| SEVERITY |          CONTROL NAME          |                 DOCS                  |       ASSISTANT REMEDIATION        |+----------+--------------------------------+---------------------------------------+------------------------------------+| Medium   | Automatic mapping of service   | https://hub.armosec.io/docs/c-0034    | automountServiceAccountToken=false ||          | account                        |                                       |                                    |+          +--------------------------------+---------------------------------------+                                    +|          | Ensure that Service Account    | https://hub.armosec.io/docs/cis-5-1-6 |                                    ||          | Tokens are only mounted where  |                                       |                                    ||          | necessary                      |                                       |                                    |+          +--------------------------------+---------------------------------------+                                    +|          | Ensure that default service    | https://hub.armosec.io/docs/cis-5-1-5 |                                    ||          | accounts are not actively used |                                       |                                    |+----------+--------------------------------+---------------------------------------+------------------------------------+

        如上掃描命令將輸出集群中每個對象的所有安全分析。由于提供了 “–submit” 提交參數選項,結果將會推送到 Armosec 門戶。因此,可以通過登錄 Dashboard 查看詳細信息,如下所示:

        一文詳解基于Kubescape進行Kubernetes安全加固

        基于上述所展示,在 Dashboard 頁面,我們可以看到當前 Kubernetes 集群所承載的所有資源的健康狀態。除此之外,我們還可以基于 RBAC 可視化檢查誰有權訪問哪些資源以及做了什么操作等。例如,如果我們想檢查誰可以執行到一個 Pod 中,那么我們可以基于它運行一個查詢,Kubescape 會以一種很好的可視化方式向顯示結果。我們還可以觀測哪些用戶可以訪問 Kubernetes 儀表板等。

        一文詳解基于Kubescape進行Kubernetes安全加固

        掃描結果分析

        我們以 Namespace: monitoring 的 prometheus-adapter 為例,針對其對象的風險分析,具體如下所示:

        ################################################################################ApiVersion: apps/v1Kind: DeploymentName: prometheus-adapterNamespace: monitoring
        Controls: 35 (Failed: 12, Excluded: 0)
        +----------+----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+| SEVERITY |              CONTROL NAME              |                 DOCS                  |                                ASSISTANT REMEDIATION                                |+----------+----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+| High     | Apply Security Context to Your         | https://hub.armosec.io/docs/cis-5-7-3 | spec.template.spec.containers[0].securityContext.readOnlyRootFilesystem=true        ||          | Pods and Containers                    |                                       | spec.template.spec.containers[0].securityContext.runAsNonRoot=true                  ||          |                                        |                                       | spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation=false     ||          |                                        |                                       | spec.template.spec.containers[0].securityContext.capabilities.drop=NET_RAW          ||          |                                        |                                       | spec.template.spec.containers[0].securityContext.seLinuxOptions=YOUR_VALUE          ||          |                                        |                                       | spec.template.spec.containers[0].securityContext.seccompProfile=YOUR_VALUE          |+----------+----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+| Medium   | Allow privilege escalation             | https://hub.armosec.io/docs/c-0016    | spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation=false     |+          +----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+|          | ……                                     |                                       | spec.template.spec.containers[0].securityContext.seLinuxOptions=YOUR_VALUE          ||          |                                        |                                       | spec.template.spec.containers[0].securityContext.capabilities.drop[0]=YOUR_VALUE    |+          +----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+|          | Non-root containers                    | https://hub.armosec.io/docs/c-0013    | spec.template.spec.containers[0].securityContext.runAsNonRoot=true                  ||          |                                        |                                       | spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation=false     |+----------+----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+| Low      | Immutable container filesystem         | https://hub.armosec.io/docs/c-0017    | spec.template.spec.containers[0].securityContext.readOnlyRootFilesystem=true        |+          +----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+|          | Label usage for resources              | https://hub.armosec.io/docs/c-0076    | metadata.labels=YOUR_VALUE                                                          ||          |                                        |                                       | spec.template.metadata.labels=YOUR_VALUE                                            |+----------+----------------------------------------+---------------------------------------+-------------------------------------------------------------------------------------+

        我們可以看到,prometheus-adapter 掃描共涉及 35 個控件,其結果威脅高、中及低都有涉及,依據 Kubescape 給出的建議進行優先級修復。

        基于 Kubescape 風險分析具有以下字段:

        # 威脅嚴重性:該字段衡量威脅的嚴重程度。威脅分為三個級別,即:高、中和低。

        # 控件名稱:此字段說明正在分析的組件或方面的名稱。

        # 文檔:此字段包含將您重定向到包含有關掃描期間檢測到的風險和威脅信息的頁面的鏈接。

        # Assistant remediation:此字段包含可以對 YAML 文件或集群進行的更改以消除威脅。

        被標記為“嚴重”/“高”的漏洞,通常基于實際的業務場景建議需要立即修復。在修復過程中可參考文檔和協助修復列中的信息來幫助我們修復檢測到的漏洞。

        常用掃描技巧

        1、指定 Yaml 文件掃描

        基于不同的場景需求,面對較多的文件時,我們可能需要會針對性的進行文件掃描,從而減少不必要的數據輸出。使用 Kubescape 不僅僅針對容器集群的全局性掃描,而且也可以掃描單個文件,具體命令如下所示:

        [leonli@Leon kubescape ] % kubescape scan prometheusAdapter-deployment.yaml 

        2、文件導出

        通常,如果使用 “–verbose” 參數標志,它可能會顯示更多的行,終端可能會清除最上面的行,或者 CI 構建日志可能看起來很難全部閱讀。為了排序,我們可以將結果輸出為 PDF 格式,這樣你就可以清楚地閱讀它或 CI/CD 過程的一部分,你可以存儲在一些公共區域,如 Artifactory Repo 以供安全審查。

            可以通過添加 ”–format pdf–output filename.pdf“ 掃描命令來實現掃描結果存檔于 PDF 格式 文件中,如下所示,它支持所有掃描命令。

        [leonli@Leon kubescape ] % kubescape scan --format pdf --output kubescape_results.pdf

        基于上述命令行操作,掃描結果以 .pdf 格式文件將保存在當前集群目錄或掃描集群時當前使用的目錄中。

        3、Git repository 掃描

        除上述所述之外,Kubescape 甚至支持從 Git 存儲庫掃描清單,可以使用以下命令掃描存儲庫,這將克隆存儲庫并掃描清單并提交結果。

        [leonli@Leon kubescape ] % kubescape scan https://github.com/foxutech/kubernetes

        針對“威脅”的可觀測性是安全分析中的一個關鍵組成部分,因為它會讓我們時刻保持警惕并告知 Kubernetes 集群中可能被黑客利用的所有風險資源。因此,進行實時的容器集群和 YAML 文件掃描是啟動安全審計會話的最佳方式。

        因此處內容涉及面較廣,由于時間關系,本文解析到此為止,希望對大家有用。關于 Kubescape 更多需要了解的信息,歡迎大家關注其它相關文章!

        分享到:
        標簽:Kubescape 一文 加固 服務器 詳解
        用戶無頭像

        網友整理

        注冊時間:

        網站:5 個   小程序:0 個  文章:12 篇

        • 51998

          網站

        • 12

          小程序

        • 1030137

          文章

        • 747

          會員

        趕快注冊賬號,推廣您的網站吧!
        最新入駐小程序

        數獨大挑戰2018-06-03

        數獨一種數學游戲,玩家需要根據9

        答題星2018-06-03

        您可以通過答題星輕松地創建試卷

        全階人生考試2018-06-03

        各種考試題,題庫,初中,高中,大學四六

        運動步數有氧達人2018-06-03

        記錄運動步數,積累氧氣值。還可偷

        每日養生app2018-06-03

        每日養生,天天健康

        體育訓練成績評定2018-06-03

        通用課目體育訓練成績評定