Visualización de vulnerabilidades de aplicaciones en herramientas nativas de Kubernetes
19 de noviembre de 2019
0 minutos de lecturaA partir de las nuevas funciones de Kubernetes en Snyk Container, hemos estado experimentando con formas de integrar los datos de vulnerabilidades más estrechamente en el ecosistema de Kubernetes. Snyk ofrece un amplio conjunto de paneles y funciones de generación de informes, ideales si solo te enfocas en la seguridad. Pero ¿qué pasa si no quieres cambiar de contexto mientras trabajas con Kubernetes? ¿Podemos usar el amplio conjunto de API de Snyk Container para acercar la información sobre vulnerabilidades a Kubernetes?
Kubectl y la CRD de vulnerabilidades
Una forma de ampliar Kubernetes es mediante recursos personalizados. Este mecanismo permite agregar nuevos objetos a Kubernetes, que luego pueden manipularse con herramientas compatibles con la API de Kubernetes. Así, además de administrar Deployments y CronJobs, Kubernetes puede administrar tu nuevo recurso. Usemos una definición de recurso personalizado (CRD) para describir una vulnerabilidad.
Puedes comprobar que la CRD se instaló correctamente de esta manera:
Ahora debemos completar nuestra CRD con datos de Snyk. La integración de Snyk con Kubernetes analiza automáticamente las cargas de trabajo del clúster y detecta vulnerabilidades en las imágenes asociadas. Podemos leer esa información desde la API de Snyk e insertarla en Kubernetes con algunas de las herramientas disponibles en https://github.com/snyk-labs/ksnyk.
Una vez cargada la información, podemos usar cualquier cliente de la API de Kubernetes para enumerar las vulnerabilidades detectadas en nuestro espacio de nombres. Veamos cómo hacerlo en kubectl.
El resultado muestra información breve sobre las vulnerabilidades, como su gravedad, la carga de trabajo afectada y el paquete de la imagen que las contiene. Puedes obtener más detalles, incluida una descripción completa, si consultas una sola vulnerabilidad.
Muestra los datos de vulnerabilidades en los paneles de Octant
Octant es un nuevo panel de Kubernetes de VMware. Aunque se lanzó hace poco, Octant ya ofrece muchas de las funciones de la CLI de kubectl y también cuenta con un potente modelo de complementos.
En https://github.com/snyk-labs/ksnyk encontrarás instrucciones para instalar el complemento de Snyk para Octant e importar en Kubernetes los datos pertinentes desde la API de Snyk. Ten en cuenta que necesitas ser cliente de Snyk Container para usar la API.
Echa un vistazo al panel de Deployment a continuación. Deberías ver los datos de vulnerabilidades en el panel de estado, incluidos los recuentos de vulnerabilidades de gravedad alta, media y baja que tiene actualmente la carga de trabajo.

Octant también muestra muy bien la información sobre recursos personalizados. Por eso, al instalar la CRD de vulnerabilidades mencionada anteriormente, Octant muestra la información de vulnerabilidades de cada carga de trabajo del espacio de nombres que estás viendo.

Este prototipo apenas explora la información que podemos mostrar en Octant. También será interesante ver cómo crece el ecosistema de complementos de Octant y cómo podemos combinar los datos de vulnerabilidades en Kubernetes con otros recursos personalizados.
Conclusiones
Como señalamos, lo anterior son experimentos, no funciones terminadas, pero nos interesa recibir comentarios desde las primeras etapas. Si eres cliente de Snyk Container, puedes probarlos ahora con las herramientas disponibles en https://github.com/snyk-labs/ksnyk. Estas utilidades demuestran tanto la capacidad de ampliación de la plataforma Kubernetes como el poder de contar con una API de primera clase en Snyk sobre la que podemos desarrollar.
Seguridad de contenedores centrada en los desarrolladores
Snyk encuentra y corrige automáticamente vulnerabilidades en imágenes de contenedores y cargas de trabajo de Kubernetes.
