Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
kubesec — Análise de riscos de segurança para recursos Kubernetes | Kitploit
Ferramentas/GitHubGitHub/controlplaneio/kubesec
Segurança de Infraestrutura em NuvemFerramentas DefensivasAnálise EstáticaSegurança de ContêineresAuditoria de ConfiguraçãoSegurança na NuvemDevSecOpsConfiguração Incorreta
GitHubcontrolplaneio/kubesec

kubesec

Análise de riscos de segurança para recursos Kubernetes

Ver Repositório
1.5k108há 1 mêsRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

Kubesec

Testing Workflow Security Analysis Workflow Release Workflow

Go Report Card PkgGoDev

🚨 A API v1 está obsoleta. Consulte as notas de versão 🚨

Análise de risco de segurança para recursos Kubernetes

🎬 Demonstração

Demonstração da CLI Kubesec

Para mais exemplos, visite Kubesec.io, que usa a API hospedada da ControlPlane em v2.kubesec.io/scan.


  • Início Rápido
  • Baixar Kubesec
  • Exemplos de Uso
    • Análise
      • Uso com Docker
      • Formatos de Saída
    • Imprimir Regras
    • Schemas Personalizados
  • Modo Servidor HTTP
  • Kubesec-como-Serviço
  • Contribuindo
  • Obtendo Ajuda
  • Changelog

🚀 Início Rápido

1. Prepare o Seu Manifesto

Crie um arquivo de recurso Kubernetes (ex.: kubesec-test.yaml) para analisar. Para um teste rápido, você pode salvar o seguinte manifesto de Pod:

root@kitploit:~
$ cat <<EOF > kubesec-test.yaml
apiVersion: v1
kind: Pod
metadata:
  name: kubesec-demo
spec:
  containers:
  - name: kubesec-demo
    image: gcr.io/google-samples/node-hello:1.0
    securityContext:
      readOnlyRootFilesystem: true
EOF

2. Execute a Sua Primeira Análise

Execute uma análise no seu arquivo de manifesto:

root@kitploit:~
# Usando o binário local
kubesec scan kubesec-test.yaml

# Ou usando Docker
docker run -i kubesec/kubesec:v2 scan /dev/stdin < kubesec-test.yaml

# Usando o binário local com um formato de saída de tabela legível por humanos
kubesec scan kubesec-test.yaml --format table

[!TIP] Para visualizar os resultados em uma tabela legível em vez do formato JSON padrão, use o sinalizador --format table

O kubesec exibirá uma pontuação de segurança e uma análise detalhada do seu recurso.

📦 Baixar Kubesec

O Kubesec está disponível como:

  • Imagem de contêiner Docker em docker.io/kubesec/kubesec:v2
  • Binário para Linux/MacOS/Windows (obtenha a última versão)
  • Admission Controller Kubernetes
  • Plugin Kubectl

Ou instale o commit mais recente do GitHub com:

Go 1.16+

root@kitploit:~
$ go install github.com/controlplaneio/kubesec/v2@latest

Go versão < 1.16

root@kitploit:~
$ GO111MODULE="on" go get github.com/controlplaneio/kubesec/v2

📖 Exemplos de Uso

Análise

Analise recursos Kubernetes a partir de arquivos locais ou entrada padrão.

O Kubesec pode analisar vários documentos YAML em um único arquivo de entrada, ou analisar documentos de vários arquivos de uma só vez, desde que estejam formatados corretamente como múltiplos documentos separados por ---.

root@kitploit:~
# Analisar um arquivo YAML local específico
kubesec scan ./deployment.yaml

# Analisar a partir da entrada padrão (JSON ou YAML)
cat file.json | kubesec scan -

# Analisar um chart Helm renderizado
helm template -f values.yaml ./chart | kubesec scan /dev/stdin

# Analisar vários documentos YAML separados por '---'
{ cat test/asset/multi.yml; echo "---"; cat test/asset/critical.yml; } | kubesec scan -

Uso com Docker

Você pode executar os mesmos comandos de análise usando a imagem oficial do Docker:

root@kitploit:~
# Analisar um arquivo via Docker usando entrada padrão
docker run -i kubesec/kubesec:v2 scan /dev/stdin < kubesec-test.yaml

Formatos de Saída

O Kubesec suporta três formatos de saída diferentes, especificados pelo sinalizador --format / -f: json (padrão), table e template, e pode analisar vários documentos YAML em um único arquivo de entrada.

root@kitploit:~
# Saída em array JSON (comportamento padrão)
kubesec scan ./deployment.yaml --format json

# Saída em tabela legível por humanos
kubesec scan ./deployment.yaml --format table

# Usar um template personalizado para a saída
kubesec scan ./deployment.yaml --format template --template report-template.tmpl

Analisar regras específicas

root@kitploit:~
# Uma regra
kubesec scan --rules CapSysAdmin kubesec-test.yaml

# Várias regras
kubesec scan --rules RunAsNonRoot,SeccompAny,ApparmorAny kubesec-test.yaml
Exemplo de Saída JSON
root@kitploit:~
[
  {
    "object": "Pod/security-context-demo.default",
    "valid": true,
    "message": "Failed with a score of -30 points",
    "score": -30,
    "scoring": {
      "critical": [
        {
          "selector": "containers[] .securityContext .capabilities .add == SYS_ADMIN",
          "reason": "CAP_SYS_ADMIN is the most privileged capability and should always be avoided",
          "points": -30
        }
      ],
      "advise": [
        {
          "selector": "containers[] .securityContext .runAsNonRoot == true",
          "reason": "Force the running image to run as a non-root user to ensure least privilege",
          "points": 1
        },
        {
          // ...
        }
      ]
    }
  }
]
Exemplo de Saída em Tabela

Saída em tabela

Imprimir Regras

root@kitploit:~
# Imprimir todas as regras de análise com suas pontuações associadas
kubesec print-rules

# Imprimir todas as regras de análise com suas pontuações associadas como tabela
kubesec print-rules --format table

Exemplo de Saída de Regras em JSON

root@kitploit:~
[
  {
    "id": "AllowPrivilegeEscalation",
    "selector": "containers[] .securityContext .allowPrivilegeEscalation == true",
    "reason": "Ensure a non-root process can not gain more privileges",
    "kinds": [
      "Pod",
      "Deployment",
      "StatefulSet",
      "DaemonSet"
    ],
    "points": -7,
    "advise": 0
  },
...
]

Schemas Personalizados

O Kubesec utiliza o kubeconform (obrigado @yannh) para validar os manifestos a serem analisados. Isso implica que especificar diferentes locais de schema segue as regras descritas no README do kubeconform.

root@kitploit:~
# Usa o schema mais recente do upstream
# O schema será obtido de: https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master-standalone-strict/pod-v1.json
kubesec scan ./pod.yaml

# Usa uma versão de schema específica do upstream (formato x.y.z sem o prefixo v)
# O schema será obtido de: https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.25.3-standalone-strict/pod-v1.json
kubesec scan ./pod.yaml --kubernetes-version 1.25.3

# Usa uma versão de schema específica em um ambiente isolado via HTTP
# O schema será obtido de: `https://host.server/v<version>-standalone-strict/pod-v1.json`
kubesec scan ./deployment.yaml --kubernetes-version <version> --schema-location https://host.server

# Usa uma versão de schema específica em um ambiente isolado com arquivos locais
# O schema será lido de: `/opt/schemas/v<version>-standalone-strict/pod-v1.json`
kubesec scan ./deployment.yaml --kubernetes-version <version> --schema-location /opt/schemas

Nota: para limitar chamadas de rede externas e permitir o uso em ambientes isolados (airgap), a imagem kubesec incorpora schemas. Se você pretende alterar o local do schema, será necessário alterar as variáveis de ambiente K8S_SCHEMA_VER e SCHEMA_LOCATION em tempo de execução.

Modo Servidor HTTP

O Kubesec inclui um servidor HTTP integrado que você pode executar localmente ou em um contêiner para aceitar solicitações de análise pela rede.

Uso via CLI

root@kitploit:~
# Iniciar o servidor HTTP em segundo plano na porta 8080
kubesec http 8080 &

# Enviar um arquivo ao servidor em execução via POST
curl -sSX POST --data-binary @deployment.yaml http://localhost:8080/scan

# Parar o servidor local em segundo plano quando terminar
kill %

Uso com Docker

root@kitploit:~
# Iniciar o servidor HTTP via Docker
docker run -d -p 8080:8080 kubesec/kubesec:v2 http 8080

# Enviar um arquivo ao servidor em execução via POST
curl -sSX POST --data-binary @deployment.yaml http://localhost:8080/scan

Não se esqueça de parar o servidor.

Kubesec-como-Serviço

O Kubesec também está disponível via HTTPS em v2.kubesec.io/scan.

Não envie YAML sensível para este serviço público.

O serviço é executado com base na melhor boa vontade/estrita possibilidade (best effort).

root@kitploit:~
# Enviar um manifesto diretamente para a API v2 hospedada
curl -sSX POST --data-binary @"deployment.yaml" https://v2.kubesec.io/scan

# Analisar a saída da API usando jq para retornar um código de saída diferente de zero se a pontuação for <= 10
curl -sSX POST --data-binary @"deployment.yaml" https://v2.kubesec.io/scan | jq --exit-status '.score > 10'

# Usar o parâmetro de consulta "rule" para analisar apenas regras específicas (várias são suportadas)
curl -sSX POST --data-binary @test/asset/score-0-cap-sys-admin.yml "http://localhost:8080/scan?rule=SeccompAny&rule=ApparmorAny"

Você também pode definir uma função Bash, por exemplo:

root@kitploit:~
# Definir uma função BASH
$ kubesec ()
{
    local FILE="${1:-}";
    [[ ! -e "${FILE}" ]] && {
        echo "kubesec: ${FILE}: No such file" >&2;
        return 1
    };
    curl --silent \
      --compressed \
      --connect-timeout 5 \
      -sSX POST \
      --data-binary=@"${FILE}" \
      https://v2.kubesec.io/scan
}


# Enviar um recurso Kubernetes para v2.kubesec.io/scan
$ kubesec ./deployment.yml

# Retornar código de status diferente de zero se a pontuação não for maior que 10
$ kubesec ./score-9-deployment.yml | jq --exit-status '.score > 10' >/dev/null
# código de status 1

Contribuindo

Consulte CONTRIBUTING.md para mais informações.

Obtendo Ajuda

Se você tiver alguma dúvida sobre Kubesec e segurança Kubernetes:

  • Leia a documentação do Kubesec
  • Fale conosco no Twitter por @sublimino ou @controlplaneio
  • Abra uma issue

Seu feedback é sempre bem-vindo!


Feito com ❤ por ControlPlane

Baixar ferramenta