
Kubescape es un escáner de seguridad CNCF para inspeccionar manifiestos de Kubernetes, imágenes de contenedores y clústeres instantáneos. Los califica según los controles NSA-CISA, MITRE ATT&CK y CIS e incluso puede escribir correcciones en YAML.
Su implementación se aplica limpiamente y kubectl get pods programa Running. Pero el mismo pod podría estar ejecutándose como root, sin límite de memoria y con un token de cuenta de servicio que nunca necesitará.
Kubernetes Acéptelo porque el servidor API verifica principalmente que su YAML sea válido. paisaje de Kube Yendo un paso más allá, lee el mismo archivo, muestra qué controles de seguridad fallan y señala líneas que podrían darle una ventaja al atacante, incluso antes de que el recurso llegue al clúster.
A continuación, instalará paisaje de Kube En Ubuntu y Rocky Linux, escanee los manifiestos y las imágenes que utilizan para conocer las puntuaciones de cumplimiento y obtener paisaje de Kube Escriba la solución en YAML y establezca un umbral para que la compilación de CI falle en lugar de permitir que se realicen implementaciones riesgosas.
Probado en Ubuntu 26.04 y Rocky Linux 10 usando Kubescape 4.0.9 contra un clúster de Kubernetes 1.33. Estos comandos se aplican a cualquier Distribuciones modernas de Linux.
Lo que Kubescape realmente comprueba
paisaje de Kube revisa tu Kubernetes Uso de recursos Agente de políticas abiertas (OPA) y biblioteca de control de seguridad. Cada control es un control de seguridad específico con una identificación, como por ejemplo C-0016 or C-0017.
Estos controles están agrupados en marcos para que pueda escanear sus cargas de trabajo con respecto a la guía de refuerzo NSA-CISA, técnicas MITRE ATT&CK o puntos de referencia CIS para entornos Kubernetes.
paisaje de Kube Su carga de trabajo se puede comprobar en tres puntos diferentes. Puede escanear archivos YAML y gráficos de Helm antes de aplicarlos. Utilice el siguiente comando para escanear imágenes de contenedores en busca de CVE. Greppey escanee el clúster de Kubernetes en ejecución utilizando el kubeconfig existente.
La última parte es importante. paisaje de Kube Utilice sus credenciales para conectarse al servidor API de Kubernetes para que pueda ver los recursos y la información a los que tiene acceso su cuenta.
1. Instale Kubescape en Linux
El script de instalación descarga la última versión paisaje de Kube archivo binario y colóquelo en su PATH. En la mayoría de las configuraciones, no necesita privilegios de root. Si no se puede escribir en el directorio de instalación, es posible que se le solicite sudo.
aquí, sudo Simplemente realice este paso de instalación con privilegios de administrador.
En Ubuntu y Debian, puedes instalar Kubescape desde su PPA:
sudo add-apt-repository ppa:kubescape/kubescape sudo apt update sudo apt install kubescape
En RHEL y Rocky Linux, utilice el script de instalación:
curl -s | /bin/bash
Este script también funciona en Ubuntu y es útil si desea instalar una versión específica de Kubescape distinta a la disponible actualmente a través de un PPA.
Una vez completada la instalación, verifique si Kubescape está disponible:
kubescape version
Debería ver un resultado similar al siguiente:
Your current version is: v4.0.9
si lo consigues comando no encontradoes posible que el archivo binario se haya instalado en ~/.kubescape/bin pero el directorio aún no está en su directorio PATH. Abra un nuevo shell o vuelva a cargar su archivo de configuración de shell y ejecute el comando de versión nuevamente.
Si instalar Kubescape lleva menos tiempo que leer esta sección, compártala con los compañeros de equipo que todavía están verificando manualmente YAML en busca de problemas de seguridad.
2. Escanee el manifiesto antes de aplicarlo.
Este escaneo puede ayudarlo a evitar problemas de seguridad de implementación. Punto de vista paisaje de Kube En el directorio de inventario, evalúa todos los recursos internos sin tocar el clúster de Kubernetes.
A lo largo de este artículo, todo lo que esté entre paréntesis angulares se verá así is a placeholder. Replace it with your actual path, including the brackets only when they are part of the command syntax.
kubescape scan /
Controls: 24 (Failed: 5, Passed: 17, Action Required: 2) +----------+---------------------------------------+------------------+---------------+------------------+ | SEVERITY | CONTROL NAME | FAILED RESOURCES | ALL RESOURCES | COMPLIANCE SCORE | +----------+---------------------------------------+------------------+---------------+------------------+ | High | Resource limits | 1 | 1 | 0% | | High | Allow privilege escalation | 1 | 1 | 0% | | Medium | Non-root containers | 1 | 1 | 0% | | Medium | Automatic mapping of service account | 1 | 1 | 0% | | Low | Immutable container filesystem | 1 | 1 | 0% | +----------+---------------------------------------+------------------+---------------+------------------+ | | RESOURCE SUMMARY | 1 | 1 | 58.33% | +----------+---------------------------------------+------------------+---------------+------------------+ Compliance Score: 58.33%
Start with the Allow privilege escalation Fila. Un recurso no supera esta verificación, lo que significa que el contenedor en el manifiesto puede obtener más permisos que el proceso que lo inició. Si un atacante compromete la aplicación, esto podría proporcionarle una forma de obtener mayores privilegios en el nodo.
este Automatic mapping of service account El fracaso es otra preocupación. De forma predeterminada, Kubernetes monta tokens de cuentas de servicio en Pods, por lo que los contenedores que no necesitan comunicarse con la API de Kubernetes aún pueden tener las credenciales disponibles.
este Puntuación de cumplimiento La parte inferior es un porcentaje ponderado de control, no solo el porcentaje de control que pasó. La puntuación fue del 58,33%, con 5 controles fallidos, lo que es una clara indicación de que la lista de verificación necesita atención antes del despliegue.
No se pudo obtener el número de línea
El resumen le indica qué control falló. añadir -v Ver más detalles:
kubescape scan / --verbose
La salida detallada muestra el recurso fallido por tipo y nombre, la ruta asociada dentro de YAML e instrucciones de corrección para el control. Este es el resultado que puede utilizar al explicar la solución requerida en una solicitud de extracción.
Si es la primera vez que ve su lista calificada honestamente, compártala con la persona que la escribió.
3. Escanee las imágenes extraídas por la carga de trabajo.
Obtener un manifiesto limpio de imágenes base obsoletas aún puede dejarlo con una implementación vulnerable. paisaje de Kube Las imágenes del contenedor se pueden escanear directamente, por lo que no se requiere un clúster de Kubernetes para realizar esta verificación.
kubescape scan image nginx:1.29
Image: nginx:1.29 Severity Count Critical 2 High 18 Medium 41 Low 96 Negligible 55 Vulnerabilities with available fixes: 63
Los números a tener en cuenta son Vulnerabilities with available fixes: 63. Ya existen versiones del conjunto de parches disponibles para estas vulnerabilidades, por lo que reconstruir la imagen utilizando la imagen base actual puede eliminar muchas de estas vulnerabilidades sin requerir cambios en el código de la aplicación.
Estos dos hallazgos clave requieren más detalles antes de decidir qué hacer. Ejecute el mismo comando -vKubescape muestra CVE, paquetes afectados y versiones que contienen correcciones.
4. Deje que Kubescape arregle el manifiesto.
Kubescape puede escribir correcciones de seguridad en YAML. Se hace en dos pasos porque fix El comando utiliza el archivo de resultados en lugar de escanear el inventario nuevamente.
kubescape scan / --format json --output results.json kubescape fix results.json --dry-run
Esto es lo que hace cada parte:
kubescape scanEjecute los mismos controles de seguridad que antes.--format jsonAlmacene los resultados como JSON legible por máquina en lugar de una tabla de totales.--output results.jsonGuarde los resultados en un archivo que pueda ser leído por el comando de reparación.kubescape fixAplicar los remedios disponibles al archivo de inventario original.--dry-runNo es necesario escribir nada para mostrar los cambios sugeridos.
Siempre haga una prueba primero. Kubescape puede editar el YAML de origen en su lugar y realizar reparaciones, como agregar readOnlyRootFilesystem: true Pasa la verificación de seguridad, pero rompe el contenedor que realmente necesita escribirse en el sistema de archivos.
Una vez que haya verificado los cambios propuestos y las diferencias parezcan correctas, ejecute:
kubescape fix results.json
Si Kubescape acaba de corregir cinco hallazgos en YAML mientras miras, pásalo a la persona que todavía está editando manualmente el bloque securityContext.
5. Escanee el clúster en ejecución
El manifiesto muestra lo que planea implementar. El grupo en ejecución muestra lo que realmente está sucediendo, incluido lo que mis colegas aplicaron el viernes a las 6 p.m.
kubescape scan framework nsa --include-namespaces
Es importante escanear espacios de nombres específicos. Un análisis de conglomerados amplio puede incluir kube-systemdonde el plano de control y los componentes del sistema pueden operar legítimamente con privilegios elevados. Esto puede dar lugar a hallazgos que no le pertenecen o que no puede cambiar.
Si necesita un informe que sea más fácil de compartir con personas que no viven en la terminal, utilice la salida HTML:
kubescape scan framework nsa --format html --output cluster-report.html
Si su análisis de clúster encuentra algo que no sabía que se estaba haciendo, páselo a la persona que lo implementó.
6. La construcción falla cuando baja la puntuación
Resulta muy útil cuando el análisis se ejecuta automáticamente sin que nadie tenga que acordarse de ejecutarlo. paisaje de Kube Cuando la puntuación de cumplimiento cae por debajo del umbral, puede salir con el código 1, que es suficiente para detener la construcción del canal de CI.
/ --compliance-threshold 80 --format junit --output results.xml
Esto es lo que hace cada parte:
framework nsaEscanee con controles mejorados de NSA-CISA para mantener el enfoque y la previsibilidad de la inspección de CI.--compliance-threshold 80Hace que la instrucción salga con un estado distinto de cero cuando la puntuación de cumplimiento cae por debajo del 80 %.--format junitLos resultados se escriben en JUnit XML, que los sistemas de CI como Jenkins y GitLab CI pueden utilizar como informes de prueba.--output results.xmlGuarde el informe en un archivo que pueda recopilar el trabajo de CI.
Comience estableciendo un umbral cercano a su puntuación actual y auméntelo gradualmente. Configurarlo al 90% el primer día puede desactivar el cheque antes del final de la semana.
Verifique los resultados del escaneo a través del asistente de IA
Kubescape 4 incluye un servidor MCP que permite a los asistentes de IA acceder a los resultados del análisis de vulnerabilidades y configuraciones. En lugar de buscar manualmente el JSON, puede preguntar qué cargas de trabajo se ven afectadas por un CVE específico.
Inicie el servidor MCP usando el siguiente comando:
kubescape mcpserver
Donde se detiene Kubescape
paisaje de Kube Verifique la configuración de Kubernetes y los metadatos del paquete. No le indica si la aplicación está registrando credenciales ni detecta fallas de lógica empresarial en la API.
El formato de salida también puede cambiar entre las versiones principales. uno --format json Es posible que los analizadores escritos para Kubescape 2 no funcionen con Kubescape 4. Fije la versión de Kubescape en CI y consulte las notas de la versión antes de actualizar.
en conclusión
tu instalaste paisaje de Kubeescanee el manifiesto antes de llegar al clúster, comprenda lo que realmente significa la puntuación de cumplimiento, escanee las imágenes que extrae su carga de trabajo, use kubescape fix Vuelva a escribir las correcciones en YAML y establezca un umbral en el que la compilación puede fallar en lugar de permitir que los problemas de seguridad afecten la producción.
Haz una cosa ahora: corre kubescape scan / Verifique el inventario de sus implementaciones más recientes y observe primero los resultados de mayor gravedad. Todo lo que aparece allí puede haberse estado ejecutando en su clúster desde la fecha de su solicitud.
¿Qué arrojó su primer escaneo y qué control le sorprendió más? Deje su puntuación de cumplimiento en los comentarios y díganos qué problema solucionó primero.
Si este artículo fue útil, Con alguien de tu equipo.









