Exibindo vulnerabilidades de aplicações em ferramentas nativas do Kubernetes
19 de novembro de 2019
0 minutos de leituraCom base nos novos recursos do Kubernetes no Snyk Container, estamos experimentando maneiras de integrar os dados de vulnerabilidades de forma mais próxima ao ecossistema do Kubernetes. A Snyk oferece um conjunto abrangente de painéis e recursos de geração de relatórios, ideais para quem tem foco exclusivo em segurança. Mas e se você não quiser interromper o que está fazendo no Kubernetes para mudar de contexto? Será que podemos usar o amplo conjunto de APIs do Snyk Container para aproximar as informações sobre vulnerabilidades do Kubernetes?
Kubectl e o CRD de vulnerabilidade
Uma forma de estender o Kubernetes é usar recursos personalizados. Esse mecanismo permite adicionar novos objetos ao Kubernetes, que podem ser manipulados por ferramentas compatíveis com a API do Kubernetes. Assim, além de gerenciar Deployments e CronJobs, o Kubernetes também pode gerenciar seu novo recurso. Vamos usar uma definição de recurso personalizado (CRD) para descrever uma vulnerabilidade.
Você pode verificar se o CRD foi instalado corretamente assim:
Agora precisamos preencher nosso CRD com dados da Snyk. A integração do Snyk com o Kubernetes verifica automaticamente as cargas de trabalho no cluster e identifica vulnerabilidades nas imagens associadas. Podemos ler essas informações pela API da Snyk e inseri-las no Kubernetes usando algumas das ferramentas disponíveis em https://github.com/snyk-labs/ksnyk.
Com as informações carregadas, podemos usar qualquer cliente da API do Kubernetes para listar as vulnerabilidades encontradas no nosso namespace. Vamos ver como fazer isso no kubectl.
A saída mostra um resumo das vulnerabilidades, incluindo a gravidade, a carga de trabalho afetada e o pacote na imagem que contém a vulnerabilidade. Você pode ver ainda mais detalhes, incluindo uma descrição completa, consultando uma vulnerabilidade específica.
Exiba dados de vulnerabilidades nos painéis do Octant
Octant é um novo painel do Kubernetes criado pela VMware. Embora tenha sido lançado há pouco tempo, o Octant já oferece muitos dos recursos da CLI do kubectl e também conta com um poderoso modelo de plugins.
As instruções para instalar o plugin do Snyk para Octant e importar os dados relevantes da API da Snyk para o Kubernetes estão disponíveis em https://github.com/snyk-labs/ksnyk. Observe que você precisa ser cliente do Snyk Container para usar a API.
Confira abaixo o painel do Deployment. Você verá dados de vulnerabilidades no painel de status, incluindo a quantidade de vulnerabilidades de gravidade alta, média e baixa que a carga de trabalho tem no momento.

O Octant também exibe muito bem as informações sobre recursos personalizados. Assim, ao instalar o CRD de vulnerabilidade mencionado acima, o Octant mostra informações sobre vulnerabilidades de cada carga de trabalho no namespace que você está visualizando.

Este protótipo é apenas uma pequena amostra das informações que podemos exibir no Octant. Também será interessante acompanhar o crescimento do ecossistema de plugins do Octant e descobrir como combinar dados de vulnerabilidades no Kubernetes com outros recursos personalizados.
Conclusões
Como mencionado, o que mostramos acima são experimentos, não recursos finalizados, mas queremos conhecer as primeiras impressões. Se você é cliente do Snyk Container, já pode testá-los usando as ferramentas disponíveis em https://github.com/snyk-labs/ksnyk. Esses utilitários demonstram tanto a capacidade de extensão da plataforma Kubernetes quanto o poder de contar com uma API robusta da Snyk para desenvolver novas soluções.
Segurança de contêineres que prioriza os desenvolvedores
O Snyk encontra e corrige automaticamente vulnerabilidades em imagens de contêiner e workloads do Kubernetes.
