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:
brew install trivydocker run aquasec/trivy- Baixe o binário em https://github.com/aquasecurity/trivy/releases/latest/
- Consulte a Instalação para mais opções
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:
- GitHub Actions
- Operador Kubernetes
- Plugin VS Code
- Consulte o Ecossistema para mais opções
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 clusterIntegraçã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 imagemNo 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: