Tutoriales

Cómo proteger Kubernetes con el escáner de seguridad de Kubescape

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.

Boletín semanal de TechMint

Conseguir Aprenda el curso intensivo de 7 días de Linux Únase a más de 34.000 profesionales de Linux que leen gratis todos los jueves.

Revise su correo electrónico para ver el enlace mágico para comenzar.

Algo salió mal. Por favor inténtalo de nuevo.

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 necesita un servidor Linux, DigitalOcean ofrece planes VPS en la nube confiables desde $4/mes. También puede obtener $200 en créditos gratis para poner en marcha su primer servidor y probarlo usted mismo, disponible para miembros de TecMint Pro. Podemos ganar una comisión sin costo adicional para usted.

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 scan Ejecute los mismos controles de seguridad que antes.
  • --format json Almacene los resultados como JSON legible por máquina en lugar de una tabla de totales.
  • --output results.json Guarde los resultados en un archivo que pueda ser leído por el comando de reparación.
  • kubescape fix Aplicar los remedios disponibles al archivo de inventario original.
  • --dry-run No 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 nsa Escanee con controles mejorados de NSA-CISA para mantener el enfoque y la previsibilidad de la inspección de CI.
  • --compliance-threshold 80 Hace que la instrucción salga con un estado distinto de cero cuando la puntuación de cumplimiento cae por debajo del 80 %.
  • --format junit Los resultados se escriben en JUnit XML, que los sistemas de CI como Jenkins y GitLab CI pueden utilizar como informes de prueba.
  • --output results.xml Guarde 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.

Si desea convertir esto en un script de canalización adecuado en lugar de un script de una línea, entonces Curso de secuencias de comandos Bash Cubre el código de salida, las trampas y los scripts de seguridad de CI de principio a fin.

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
Si planea conectar una herramienta de este tipo a su sistema Linux, entonces Curso de Inteligencia Artificial Linux guiarte a través de él

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.

Si su trabajo en Kubernetes es parte de una función más amplia de DevOps, Curso Golang DevOps Pro Tecmint explica cómo crear sus propias herramientas de clúster.
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.

Boletín semanal de TechMint

Conseguir Aprenda el curso intensivo de 7 días de Linux Únase a más de 34.000 profesionales de Linux que leen gratis todos los jueves.

Revise su correo electrónico para ver el enlace mágico para comenzar.

Algo salió mal. Por favor inténtalo de nuevo.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba