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.
| Comando | Descripción |
|---|
curl -s https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | bash | Instalar última versión (macOS/Linux) |
brew install kubescape | Instalar via Homebrew (macOS) |
scoop install kubescape | Instalar via Scoop (Windows) |
docker run -it kubescape/kubescape:latest kubescape --help | Ejecutar Kubescape en Docker |
kubescape version | Mostrar versión instalada |
kubescape download | Descargar frameworks y políticas |
kubescape download --frameworks | Descargar todos los frameworks |
| Comando | Descripción |
|---|
kubescape scan | Escanear clúster actual usando kubeconfig |
kubescape scan --kubeconfig /path/to/kubeconfig | Escanear clúster con kubeconfig específico |
kubescape scan -f manifest.yaml | Escanear archivo de manifiesto YAML |
kubescape scan -f *.yaml | Escanear múltiples archivos de manifiesto |
kubescape scan -d ./k8s-configs/ | Escanear todos los manifiestos en directorio |
kubescape scan --helm /path/to/chart | Escanear Helm chart antes del despliegue |
kubescape scan --include-namespaces default,kube-system | Escanear solo espacios de nombres específicos |
kubescape scan --exclude-namespaces kube-node-lease | Excluir espacios de nombres del escaneo |
kubescape scan --severity high,critical | Mostrar solo problemas de severidad alta/crítica |
kubescape scan --pod-runtime containerd | Especificar tiempo de ejecución del contenedor (docker, containerd, cri-o) |
| Comando | Descripción |
|---|
kubescape scan framework nsa | Escanear contra guía de endurecimiento NSA-CISA Kubernetes |
kubescape scan framework cis | Escanear contra Benchmark de Kubernetes CIS |
kubescape scan framework mitre | Escanear contra marco MITRE ATT&CK |
kubescape scan framework pci-dss | Escanear contra cumplimiento PCI-DSS |
kubescape scan framework soc2 | Escanear contra cumplimiento SOC2 |
kubescape scan framework hipaa | Escanear contra cumplimiento HIPAA |
kubescape scan -f manifest.yaml -f nsa,cis,mitre | Escanear manifiesto contra múltiples frameworks |
kubescape scan --list-frameworks | Listar todos los frameworks disponibles |
| Comando | Descripción |
|---|
kubescape scan image gcr.io/project/image:tag | Escanear imagen del contenedor para vulnerabilidades |
kubescape scan image --image-scan-concurrency 5 image1 image2 | Escanear múltiples imágenes concurrentemente |
kubescape scan -f manifest.yaml --include-image-scanning | Escanear manifiestos y todas las imágenes referenciadas |
kubescape scan image --severity critical --only-vulnerabilities | Mostrar solo vulnerabilidades críticas |
kubescape scan image --image-registry-credentials user:pass@registry:5000 | Escanear imágenes del registro privado |
kubescape scan -f manifest.yaml --image-scan-cache | Almacenar en caché escaneos de imágenes para ejecuciones repetidas |
| Comando | Descripción |
|---|
kubescape scan -o json > report.json | Resultados de salida como JSON |
kubescape scan -o pdf > report.pdf | Generar reporte PDF |
kubescape scan -o html > report.html | Generar reporte HTML |
kubescape scan -o sarif > report.sarif | Salida en formato SARIF (para herramientas CI/CD) |
kubescape scan -o pretty-json | Salida JSON con formato bonito |
kubescape scan --output-file report.json -o json | Guardar salida en archivo |
kubescape scan -o json | jq '.results[] | select(.severity=="critical")' | Filtrar resultados JSON con jq |
| Comando | Descripción |
|---|
kubescape scan --fail-threshold 80 | Fallar pipeline si puntuación de riesgo es inferior a 80 |
kubescape scan --fail-threshold 70 --severity critical | Puerta pipeline en hallazgos críticos |
kubescape scan -f manifest.yaml --fail-threshold 85 -o sarif | Generar SARIF + puerta en GitHub Actions |
kubescape scan --fail-on-compliance-failure | Fallar si frameworks de cumplimiento fallan |
kubescape scan -o json --format-by-severity | Salida 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.*'
}
}
| Comando | Descripción |
|---|
kubescape download --output-dir ./offline-data | Descargar todos los frameworks al directorio local |
kubescape download --frameworks nsa,cis --output-dir ./fw | Descargar frameworks específicos sin conexión |
kubescape scan -f manifest.yaml --offline --frameworks-dir ./offline-data | Escanear usando frameworks descargados |
kubescape scan -d manifests/ --offline --frameworks-dir ./offline-data | Escaneo de directorio sin conexión |
| Comando | Descripción |
|---|
kubescape config | Mostrar 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/config | Usar ruta de archivo de configuración personalizada |
kubescape scan -c ./custom-config.yaml | Escanear con configuración personalizada |
| Comando | Descripción |
|---|
kubescape operator install | Instalar operador Kubescape en clúster |
kubescape operator install --namespace kubescape | Instalar operador en espacio de nombres específico |
kubescape operator uninstall | Eliminar operador Kubescape |
kubectl get deployment -n kubescape | Verificar instalación del operador |
kubectl logs -n kubescape -l app=kubescape-operator | Ver registros del operador |
kubescape operator status | Comprobar estado del operador |
| Comando | Descripción |
|---|
kubescape scan --exceptions exceptions.json | Aplicar 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-controls | Listar todos los controles disponibles |
kubescape scan --list-controls --framework nsa | Listar controles del framework NSA |
{
"exceptions": [
{
"ruleID": "C-0001",
"namespace": "test-namespace",
"resources": ["deployment/test-app"],
"justification": "Development environment exemption"
}
]
}
| Comando | Descripción |
|---|
kubescape scan --verbose | Mostrar salida de depuración detallada |
kubescape scan --log-level debug | Establecer nivel de registro (debug, info, warn, error) |
kubescape scan --submit | Enviar resultados del escaneo a Kubescape Cloud |
kubescape scan --account <account-id> | Enviar a cuenta en la nube específica |
kubescape scan --keep-local | Escanear sin enviar a la nube |
kubescape scan --max-workers 10 | Controlar trabajadores de procesamiento paralelo |
kubescape scan --timeout 300 | Establecer tiempo de espera en segundos |
| Práctica | Descripción |
|---|
| Controlar manifiestos en versión | Siempre controlar manifiestos Kubernetes en versión; escanear antes del despliegue |
| Puerta en puntuación de riesgo | Establecer --fail-threshold en CI/CD; usar 75-85 dependiendo de tolerancia de riesgo de la organización |
| Escaneo multi-framework | Usar NSA + CIS + MITRE; abordar primero hallazgos de mayor prioridad |
| Escaneo regular de imágenes | Escanear imágenes del contenedor en cadena de suministro; detectar CVE temprano |
| Aislamiento de espacios de nombres | Usar --include-namespaces para enfocar escaneos; excluir espacios de nombres del sistema |
| Sin conexión en entornos seguros | Descargar frameworks sin conexión para clústeres aislados por aire |
| Monitorear en el tiempo | Rastrear puntuaciones de riesgo en escaneos; investigar regresiones |
| Justificación de excepción | Documentar excepciones; revisar periódicamente para eliminarlas |
| Helm predespliegue | Ejecutar kubescape scan --helm en gráficos antes de Helm install |
| Habilitar RBAC | Verificar que ServiceAccount tenga permisos mínimos requeridos |
| Usar salida SARIF | Integrar reportes SARIF en IDE, GitHub y sistemas SIEM |
| Revisar detalles del control | Usar kubescape scan --list-controls para entender el propósito de cada control |