Kubescape入门

Kubescape是一个K8sopen-source工具,提供multi-cloudK8s单层玻璃,包括风险分析、安全合规性、RBAC可视化工具和图像漏洞扫描。Kubescape在CI/CD管道的早期阶段扫描K8s集群、YAML文件和HELM图表,根据多个框架(例如NSA-CISA、MITRE ATT&CK®)、软件漏洞和RBAC(role-based-access-control)违规检测错误配置,立即计算风险分数并显示风险趋势。由于其easy-to-useCLI界面、灵活的输出格式和自动扫描功能,它成为开发人员中的fastest-growingKubernetes工具之一,节省了Kubernetes用户和管理员的宝贵时间、精力和资源。Kubescape与其他DevOps工具进行了本地集成,包括Jenkins、CircleCI、Github workflows、Prometheus和Slack,并支持multi-cloudK8s部署,如EKS、GKE和AKS。


Kubescape CLI:


TL;DR

Install:

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

在windows上安装

在macOS上安装

通过nix在NixOS或Linux/macOS上安装

使用Go安装

Run:

kubescape scan --submit --enable-host-scan --verbose


Kubescape是一个开源项目,我们欢迎您的反馈和改进意见。我们还致力于与Kubernetes社区合作,帮助使测试本身随着Kubernetes的发展变得更加健壮和完整。


点击👍 如果你想让我们继续发展和改善库贝斯卡普😀


成为团队的一员

我们邀请你加入我们的团队!我们对这个项目感到兴奋,希望回报我们得到的爱。

想要贡献吗?想讨论点什么吗?有问题吗?

  • 请随意从路线图中选择任务或建议您自己的功能。有关更多信息,请直接与我们联系:)
  • 打开一个问题,我们正试图在48小时内作出回应
  • 加入我们在discord服务器上的讨论!

logo

选项和示例

Kubescape docs

Playground

Tutorials

在Windows上安装

需要powershell v5.0+

iwr -useb https://raw.githubusercontent.com/armosec/kubescape/master/install.ps1 | iex

注意:如果出现错误,您可能需要使用更改执行策略(即启用Powershell)

Set-ExecutionPolicy RemoteSigned -scope CurrentUser

在macOS上安装

  1. brew tap armosec/kubescape
    
  2. brew install kubescape
    

安装在NixOS上或使用nix(社区)

直接问题通过此处提到的通道通过nix安装kubescape

您可以非正式地在Linux或macOS以及其他平台上使用nix

在一个短暂的shell中尝试:nix-shell -p kubescape

照常安装声明性

NixOS:

# your other config ...
  environment.systemPackages = with pkgs; [
    # your other packages ...
    kubescape
  ];

home-manager:

# your other config ...
  home.packages = with pkgs; [
    # your other packages ...
    kubescape
  ];

或者到您的个人资料(不是首选):nix-env --install -A nixpkgs.kubescape

用法和示例

Examples

扫描正在运行的Kubernetes集群,并将结果提交给Kubescape SaaS版本

kubescape scan --submit --enable-host-scan  --verbose

在这里阅读更多关于enable-host-scan标志的信息

使用nsa框架扫描正在运行的Kubernetes集群,并将结果提交给Kubescape SaaS版本

kubescape scan framework nsa --submit

使用MITRE ATT&CK®框架扫描正在运行的Kubernetes集群,并将结果提交给Kubescape SaaS版本

kubescape scan framework mitre --submit

使用控件名称或控件ID扫描具有特定控件的正在运行的Kubernetes集群

kubescape scan control "Privileged container"

扫描特定命名空间

kubescape scan --include-namespaces development,staging,production

扫描群集并排除某些命名空间

kubescape scan --exclude-namespaces kube-system,kube-public

在部署之前扫描本地yaml/json文件。看看演示,如果目录是git repo,请提交结果。文档

kubescape scan *.yaml --submit

扫描git存储库中的kubernetes清单文件并提交结果

kubescape scan https://github.com/armosec/kubescape --submit

显示所有扫描的资源(包括通过的资源)

kubescape scan --verbose

json格式输出

添加--format-version v2标志

kubescape scan --format json --format-version v2 --output results.json

junit xml格式输出

kubescape scan --format junit --output results.xml

pdf格式的输出-由@alegrey91提供

kubescape scan --format pdf --output results.pdf

prometheus度量格式输出-由@Joibel贡献

kubescape scan --format prometheus

扫描有异常,有异常的对象将显示为exclude,而不是fail

Full documentation

kubescape scan --exceptions examples/exceptions/exclude-kube-namespaces.json

扫描舵图

kubescape scan </path/to/directory> --submit

Kubescape将加载默认值文件

Offline/Air-gaped Environment Support

Video tutorial

可以脱机运行Kubescape!

下载所有工件

  1. 下载并保存在本地目录中,如果未指定路径,则将全部保存在~/.kubescape
kubescape download artifacts --output path/to/local/dir

  1. 将下载的工件复制到air-gaped/offline环境
  2. 使用下载的工件进行扫描
kubescape scan --use-artifacts-from path/to/local/dir

下载单个工件

您还可以下载单个工件并使用--use-from标志进行扫描

  1. 下载并保存在文件中,如果未指定文件名,将保存在~/.kubescape/<framework name>.json
kubescape download framework nsa --output /path/nsa.json

  1. 将下载的工件复制到air-gaped/offline环境
  2. 使用下载的框架扫描
kubescape scan framework nsa --use-from /path/nsa.json

使用Helm定期扫描-由@yonahd提供

请按照此处的说明操作helm chart repo

使用docker图像扫描

Official Docker image quay.io/armosec/kubescape

docker run -v "$(pwd)/example.yaml:/app/example.yaml  quay.io/armosec/kubescape scan /app/example.yaml

如果你愿意,你可以自己构建docker图像

手动提交数据

如果希望手动提交数据,请使用submit命令

手动提交扫描结果

通过使用--format-version v2标志支持向前兼容性

首先,使用json格式标志扫描集群:kubescape scan framework <name> --format json --format-version v2 --output path/to/results.json

现在,您可以将结果提交到Kubescape SaaS版本-

kubescape submit results path/to/results.json

Integrations

VS Code Extension

 

扫描YAML文件,同时使用vs代码扩展名写入它们

Lens Extension

使用Kubescape镜头扩展直接在镜头IDE中查看Kubescape扫描结果

Building Kubescape

Windows

go build .

OR

make build

Linux/MacOS

  1. 安装libgit2依赖项make libgit2

构建libgit2需要cmake。您可以通过运行sudo apt-get install cmake(Linux)或brew install cmake(MacOS)来安装它

  1. Build

    make build
    
    
  2. Test

    make test
    
    

VS代码配置示例

您可以使用下面的示例文件来设置VS代码环境,以进行构建和调试。

// .vscode/settings.json
{
    "go.testTags": "static",
    "go.buildTags": "static",
    "go.toolsEnvVars": {
        "CGO_ENABLED": "1"
    }
}
// .vscode/launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch Package",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            "program": "${workspaceFolder}/main.go",
            "args": [
                "scan",
                "--logger",
                "debug"
            ],
            "buildFlags": "-tags=static"
        }
    ]
}

引擎盖下

Technology

Kubescape基于OPA引擎:https://github.com/open-policy-agent/opa和ARMO的姿态控制。

这些工具从API服务器检索Kubernetes对象,并运行由ARMO开发的一组rego代码片段。

默认情况下,结果以非常“控制台友好”的方式打印,但可以以JSON格式检索以进行进一步处理。

Kubescape是一个开源项目,我们欢迎您的反馈和改进意见。我们还打算与Kubernetes社区合作,以帮助使测试本身在Kubernetes开发时更加健壮和完整。

感谢所有贡献者❤️

posted @ 2023-06-04 15:09  有何m不可  阅读(288)  评论(0)    收藏  举报