Trivy na Prática: Como Fortalecer a Segurança do Seu Pipeline e Eliminar Vulnerabilidades!

A segurança é um aspecto crucial no desenvolvimento de software, especialmente quando se trata de aplicações em contêineres. O Trivy é uma ferramenta abrangente e versátil que pode ajudar a identificar e corrigir problemas de segurança em diversas plataformas. Neste artigo, vamos explorar como utilizar o Trivy para escanear imagens de contêiner, sistemas de arquivos, repositórios Git, imagens de máquinas virtuais, clusters Kubernetes e até mesmo ambientes AWS.

Aqui estão alguns dos alvos e scanners suportados pelo Trivy:

  • Imagem de contêiner
  • Sistema de arquivos
  • Repositório Git (remoto)
  • Imagem de máquina virtual
  • Kubernetes
  • AWS

Scanners (o que o Trivy pode encontrar):

  • Pacotes do sistema operacional e dependências de software em uso (SBOM)
  • Vulnerabilidades conhecidas (CVEs)
  • Problemas e configurações incorretas de IaC
  • Informações sensíveis e segredos
  • Licenças de software

O Trivy suporta a maioria das linguagens de programação populares, sistemas operacionais e plataformas. Para uma lista completa, consulte a página de Cobertura de Escaneamento.

Início Rápido

Obtenha o Trivy

O Trivy está disponível na maioria dos canais de distribuição comuns. A lista completa de opções de instalação está disponível na página de Instalação. Aqui estão alguns exemplos populares:

O Trivy está integrado com muitas plataformas e aplicativos populares. A lista completa de integrações está disponível na página de Ecossistema. Aqui estão alguns exemplos populares:

Uso Geral

trivy <alvo> [  scanners <scanner1,scanner2>] <assunto>

Exemplos:

trivy image python:3.4-alpine

trivy fs  scanners vuln,secret,misconfig myproject/

trivy k8s  report summary cluster

Integração com GitHub Actions

O Trivy pode ser facilmente integrado com GitHub Actions para automatizar a verificação de segurança em seu fluxo de trabalho de CI/CD. Aqui está um exemplo de configuração:

name: Secrets Check with Trivy
on:
  push:
    branches:
      - main  # Aciona o fluxo de trabalho quando houver push na brach main
    paths:
      - 'trivy/python'  # Aciona o fluxo de trabalho quando houver push na pasta trivy
  pull_request:
    branches:
      - main # Aciona o fluxo de trabalho quando houver PR na brach main
    paths:
      - 'trivy/python'  # Aciona o fluxo de trabalho quando houver PR na pasta trivy
  workflow_dispatch:  # Aciona manualmente o fluxo de trabalho
    inputs:  # Define entradas para o fluxo de trabalho
      name:  # Define a entrada "name"
        description: 'Acionador manual do fluxo de trabalho'  # Descrição da entrada
jobs:
  build:
    name: Build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code # Ação para clonar o repositório
        uses: actions/checkout@v4 # Usa a ação para clonar o repositório
        
      - name: Docker Build # Constrói a imagem Docker
        run: docker build -t trivy-python:latest -f trivy/python/Dockerfile trivy/python # Constrói a imagem Docker

      - name: Run Trivy vulnerability scanner in repo mode
        uses: aquasecurity/trivy-action@0.20.0 # Usa a ação para executar o scanner de vulnerabilidades Trivy
        with:
          scan-type: 'image' # Define o tipo de verificação
          image-ref: 'trivy-python:latest' # Define a referência da imagem

No exemplo de configuração acima, estamos verificando a segurança da imagem gerada, trivy-python:latest. O arquivo trivy.yaml usa o exemplo acima.

Conclusão

O Trivy é uma ferramenta essencial para qualquer desenvolvedor ou equipe de DevOps que deseja garantir a segurança de suas aplicações. Com suporte para uma ampla gama de alvos e scanners, além de integrações com plataformas populares como GitHub Actions, o Trivy facilita a detecção e correção de vulnerabilidades em seu fluxo de trabalho de desenvolvimento.

No próximo artigo irei falar sobre TruffleHog.

Todos os códigos de todos os artigos estão no repositório https://github.com/toolbox-playground/pipelines-seguranca-exemplo-basico.

Não leu os outros artigos, seguem os links: