Services

Open source

EN

New in Zora: Enhanced Kubernetes Security with Trivy-Zora Vulnerability Scanning Integration

Secure your Kubernetes deployments with Trivy integration in Zora, scanning and reporting vulnerabilities in container images.

Software Engineer

Matheus Faria

Novidades no Zora: Segurança do Kubernetes aprimorada com integração de varredura de vulnerabilidades Trivy-Zora

A recente integração do Trivy como um plugin de scanner reforçou significativamente as capacidades de segurança do Zora. Este marco capacita o Zora a escanear imagens de contêiner dentro do cluster, adicionando uma nova camada de segurança além de apenas configurações incorretas. Além de plugins existentes como Marvin e Popeye, o Zora agora fornece relatórios de vulnerabilidade para imagens de contêiner.

Por exemplo, o Zora pode identificar e relatar configurações incorretas como "Contêiner pode estar rodando como usuário root", "Memória não limitada" e "Contêiner privilegiado". Além disso, ele agora pode relatar vulnerabilidades críticas em imagens de contêiner específicas, como myregistry.com/foo/bar:v0.1.3 tendo 10 vulnerabilidades críticas, incluindo o CVE-2023-49569.

Este recurso está disponível tanto no Zora OSS quanto no Zora Dashboard, dando aos usuários a flexibilidade de gerenciar sua postura de segurança de Kubernetes de forma eficaz.


Por que a Getup escolheu o Trivy para integração com o Zora?

A decisão de integrar o Trivy com o Zora baseou-se em vários fatores fundamentais. Esses fatores incluíram licenciamento, formatos de saída (JSON ou YAML), suporte para imagens multiplataforma, maturidade do projeto e a capacidade de execução dentro de um Pod. No entanto, um recurso de destaque foi particularmente adequado às necessidades do Zora: o comando trivy k8s.

Diferente de outras ferramentas que consideramos, o Trivy não apenas escaneia imagens de contêiner individuais, mas também tem a capacidade de identificar e varrer todas as imagens de um cluster do Kubernetes diretamente usando o comando trivy k8s. Isso se alinha perfeitamente com a funcionalidade principal de varredura nos clusters Kubernetes com plugins do Zora.

Com o Zora instalado em um cluster, os comandos exatos usados para varredura do plugin podem ser visualizados rodando:

kubectl get plugin trivy -n zora-system -o yaml

O comando é especificado em .spec.command:


time trivy k8s \
  --debug \
  --no-progress \
  --all-namespaces \
  --scanners=vuln \
  -f=json \
  --cache-dir=/tmp/trivy-cache \
  --timeout="10m" \
  -o $(DONE_DIR)/results.json \
  cluster


Vale a pena ressaltar a flag --scanners=vuln, indicando que o Trivy é usado exclusivamente no Zora como um plugin para varredura de vulnerabilidades.

Como funcionam os plugins do Zora?

Os plugins do Zora varrem um cluster Kubernetes, escrevem os resultados em um arquivo (-o $(DONE_DIR)/results.json) e sinalizam o Worker escrevendo o caminho do arquivo de resultados em um “arquivo pronto” designado (echo $(DONE_DIR)/results.json > $(DONE_DIR)/done).

O Worker é um contêiner “sidecar” que aguarda o “arquivo pronto” e, então, transforma os resultados em objetos de CRD de VulnerabilityReports (ou ClusterIssues para plugins de configuração incorreta).


Este modelo é inspirado no Sonobuoy, um projeto usado para certificação de conformidade do CNCF. Para obter mais detalhes sobre a arquitetura de plugins do Zora, consulte a documentação do Zora.

Após a conclusão bem-sucedida de ambos os contêineres plugin e worker, os VulnerabilityReports ficam disponíveis e podem ser listados usando kubectl:



Além disso, se a instalação estiver integrada ao Painel do Zora (Zora Dashboard), os resultados de todos os clusters com o Zora instalado são centralizados e disponibilizados para filtragem e gerenciamento.


Configurações

Vale ressaltar que o processo de varredura do Trivy envolve algumas diferenças em relação a outros plugins do Zora. Para escanear imagens de contêiner, o Trivy exige que elas sejam baixadas, juntamente com um banco de dados de vulnerabilidades. Esse processo pode consumir mais tempo e recursos computacionais, o que faz com que o agendamento de varredura padrão do Trivy seja de uma vez por dia. Além disso, as imagens podem estar armazenadas em registros privados e autenticados, necessitando de configurações adicionais.

No entanto, o Trivy já fornece configurações para lidar com esses desafios, e o Zora simplifica a parametrização dessas opções através de variáveis do Helm Chart. Por exemplo, os usuários podem fornecer facilmente credenciais de registro via secret, configurar o tempo limite de varredura, ignorar vulnerabilidades não corrigidas, bem como configurar solicitações e limites de recursos (memória e CPU). Todas essas configurações estão descritas na documentação do Zora.

Facilitando a colaboração de código aberto: Contribuição para o Projeto Trivy

A integração do Trivy com o Zora abriu caminhos para a Getup em termos de colaboração de código aberto e contribuição para o projeto Trivy. Confira algumas das discussões e pull requests que iniciamos, nos oferecendo a oportunidade de retribuir e ajudar a elevar e aprimorar as capacidades do Trivy.

Conclusão

Em conclusão, a integração do Trivy como plugin de scanner representa um grande avanço no fortalecimento dos recursos de segurança do Zora. Esta integração permite uma varredura precisa de imagens de contêiner dentro de clusters Kubernetes, permitindo que os usuários lidem de forma eficaz tanto com vulnerabilidades quanto com configurações incorretas. Esta integração não apenas otimiza as operações de segurança, mas também destaca nossa dedicação em fornecer soluções abrangentes para ambientes Kubernetes.

Newsletter Getup.

Atualizações sobre Kubernetes e Software Supply Chain Security todos os meses.

Operating Kubernetes in production for more than 13 years. With Quor, this experience extends to software supply chain security as well.