Ir al contenido

Kubescape

Kubescape es una plataforma de gestión de postura de seguridad Kubernetes de código abierto de ARMO (proyecto incubado en CNCF). Proporciona análisis de riesgos, escaneo de cumplimiento, detección de configuraciones erróneas y escaneo de vulnerabilidades en IDE, canalizaciones CI/CD y clústeres en ejecución.

ComandoDescripción
curl -s https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | bashInstalar última versión (macOS/Linux)
brew install kubescapeInstalar via Homebrew (macOS)
scoop install kubescapeInstalar via Scoop (Windows)
docker run -it kubescape/kubescape:latest kubescape --helpEjecutar Kubescape en Docker
kubescape versionMostrar versión instalada
kubescape downloadDescargar frameworks y políticas
kubescape download --frameworksDescargar todos los frameworks
ComandoDescripción
kubescape scanEscanear clúster actual usando kubeconfig
kubescape scan --kubeconfig /path/to/kubeconfigEscanear clúster con kubeconfig específico
kubescape scan -f manifest.yamlEscanear archivo de manifiesto YAML
kubescape scan -f *.yamlEscanear múltiples archivos de manifiesto
kubescape scan -d ./k8s-configs/Escanear todos los manifiestos en directorio
kubescape scan --helm /path/to/chartEscanear Helm chart antes del despliegue
kubescape scan --include-namespaces default,kube-systemEscanear solo espacios de nombres específicos
kubescape scan --exclude-namespaces kube-node-leaseExcluir espacios de nombres del escaneo
kubescape scan --severity high,criticalMostrar solo problemas de severidad alta/crítica
kubescape scan --pod-runtime containerdEspecificar tiempo de ejecución del contenedor (docker, containerd, cri-o)
ComandoDescripción
kubescape scan framework nsaEscanear contra guía de endurecimiento NSA-CISA Kubernetes
kubescape scan framework cisEscanear contra Benchmark de Kubernetes CIS
kubescape scan framework mitreEscanear contra marco MITRE ATT&CK
kubescape scan framework pci-dssEscanear contra cumplimiento PCI-DSS
kubescape scan framework soc2Escanear contra cumplimiento SOC2
kubescape scan framework hipaaEscanear contra cumplimiento HIPAA
kubescape scan -f manifest.yaml -f nsa,cis,mitreEscanear manifiesto contra múltiples frameworks
kubescape scan --list-frameworksListar todos los frameworks disponibles
ComandoDescripción
kubescape scan image gcr.io/project/image:tagEscanear imagen del contenedor para vulnerabilidades
kubescape scan image --image-scan-concurrency 5 image1 image2Escanear múltiples imágenes concurrentemente
kubescape scan -f manifest.yaml --include-image-scanningEscanear manifiestos y todas las imágenes referenciadas
kubescape scan image --severity critical --only-vulnerabilitiesMostrar solo vulnerabilidades críticas
kubescape scan image --image-registry-credentials user:pass@registry:5000Escanear imágenes del registro privado
kubescape scan -f manifest.yaml --image-scan-cacheAlmacenar en caché escaneos de imágenes para ejecuciones repetidas
ComandoDescripción
kubescape scan -o json > report.jsonResultados de salida como JSON
kubescape scan -o pdf > report.pdfGenerar reporte PDF
kubescape scan -o html > report.htmlGenerar reporte HTML
kubescape scan -o sarif > report.sarifSalida en formato SARIF (para herramientas CI/CD)
kubescape scan -o pretty-jsonSalida JSON con formato bonito
kubescape scan --output-file report.json -o jsonGuardar salida en archivo
kubescape scan -o json | jq '.results[] | select(.severity=="critical")'Filtrar resultados JSON con jq
ComandoDescripción
kubescape scan --fail-threshold 80Fallar pipeline si puntuación de riesgo es inferior a 80
kubescape scan --fail-threshold 70 --severity criticalPuerta pipeline en hallazgos críticos
kubescape scan -f manifest.yaml --fail-threshold 85 -o sarifGenerar SARIF + puerta en GitHub Actions
kubescape scan --fail-on-compliance-failureFallar si frameworks de cumplimiento fallan
kubescape scan -o json --format-by-severitySalida agrupada por nivel de severidad
- name: Run Kubescape security scan
  uses: kubescape/github-action@v2
  with:
    kubeconfig: ${{ secrets.KUBECONFIG }}
    frameworks: nsa,cis
    fail-threshold: 80
    output-format: sarif
    output-file: kubescape-report.sarif

- name: Upload SARIF to GitHub Security
  uses: github/codeql-action/upload-sarif@v2
  with:
    sarif_file: kubescape-report.sarif
kubescape_scan:
  stage: security
  image: kubescape/kubescape:latest
  script:
    - kubescape scan framework nsa --fail-threshold 80 -o sarif > report.sarif
    - kubescape scan framework cis --fail-threshold 75 -o json > cis-report.json
  artifacts:
    reports:
      sast: report.sarif
    paths:
      - cis-report.json
stage('Security: Kubescape') {
    steps {
        sh '''
            kubescape scan -f k8s-manifests/ \
              --fail-threshold 80 \
              -o sarif > kubescape-report.sarif \
              -o json > kubescape-report.json
        '''
        archiveArtifacts artifacts: '*-report.*'
    }
}
ComandoDescripción
kubescape download --output-dir ./offline-dataDescargar todos los frameworks al directorio local
kubescape download --frameworks nsa,cis --output-dir ./fwDescargar frameworks específicos sin conexión
kubescape scan -f manifest.yaml --offline --frameworks-dir ./offline-dataEscanear usando frameworks descargados
kubescape scan -d manifests/ --offline --frameworks-dir ./offline-dataEscaneo de directorio sin conexión
ComandoDescripción
kubescape configMostrar configuración actual
kubescape config set <key> <value>Establecer valor de configuración
kubescape config get <key>Obtener valor de configuración
kubescape config -p ~/.kubescape/configUsar ruta de archivo de configuración personalizada
kubescape scan -c ./custom-config.yamlEscanear con configuración personalizada
ComandoDescripción
kubescape operator installInstalar operador Kubescape en clúster
kubescape operator install --namespace kubescapeInstalar operador en espacio de nombres específico
kubescape operator uninstallEliminar operador Kubescape
kubectl get deployment -n kubescapeVerificar instalación del operador
kubectl logs -n kubescape -l app=kubescape-operatorVer registros del operador
kubescape operator statusComprobar estado del operador
ComandoDescripción
kubescape scan --exceptions exceptions.jsonAplicar reglas de excepción al escaneo
kubescape scan --enable-controls <control-id>Habilitar controles específicos
kubescape scan --disable-controls <control-id>Deshabilitar controles específicos
kubescape scan --controls <id1>,<id2>Ejecutar solo controles especificados
kubescape scan --list-controlsListar todos los controles disponibles
kubescape scan --list-controls --framework nsaListar controles del framework NSA

Ejemplo de archivo de excepción (exceptions.json)

Sección titulada «Ejemplo de archivo de excepción (exceptions.json)»
{
  "exceptions": [
    {
      "ruleID": "C-0001",
      "namespace": "test-namespace",
      "resources": ["deployment/test-app"],
      "justification": "Development environment exemption"
    }
  ]
}
ComandoDescripción
kubescape scan --verboseMostrar salida de depuración detallada
kubescape scan --log-level debugEstablecer nivel de registro (debug, info, warn, error)
kubescape scan --submitEnviar resultados del escaneo a Kubescape Cloud
kubescape scan --account <account-id>Enviar a cuenta en la nube específica
kubescape scan --keep-localEscanear sin enviar a la nube
kubescape scan --max-workers 10Controlar trabajadores de procesamiento paralelo
kubescape scan --timeout 300Establecer tiempo de espera en segundos
PrácticaDescripción
Controlar manifiestos en versiónSiempre controlar manifiestos Kubernetes en versión; escanear antes del despliegue
Puerta en puntuación de riesgoEstablecer --fail-threshold en CI/CD; usar 75-85 dependiendo de tolerancia de riesgo de la organización
Escaneo multi-frameworkUsar NSA + CIS + MITRE; abordar primero hallazgos de mayor prioridad
Escaneo regular de imágenesEscanear imágenes del contenedor en cadena de suministro; detectar CVE temprano
Aislamiento de espacios de nombresUsar --include-namespaces para enfocar escaneos; excluir espacios de nombres del sistema
Sin conexión en entornos segurosDescargar frameworks sin conexión para clústeres aislados por aire
Monitorear en el tiempoRastrear puntuaciones de riesgo en escaneos; investigar regresiones
Justificación de excepciónDocumentar excepciones; revisar periódicamente para eliminarlas
Helm predespliegueEjecutar kubescape scan --helm en gráficos antes de Helm install
Habilitar RBACVerificar que ServiceAccount tenga permisos mínimos requeridos
Usar salida SARIFIntegrar reportes SARIF en IDE, GitHub y sistemas SIEM
Revisar detalles del controlUsar kubescape scan --list-controls para entender el propósito de cada control