Analisando IaC e Containers com Veracode
Ivo Dias
Posted on March 7, 2023
Recentemente a Veracode lançou uma nova ferramenta para fazer a análise de containers e infraestrutura como código, permitindo cobrir mais uma etapa de um ciclo de desenvolvimento.
Nesse exemplo, vamos utilizar como plataforma de CI/CD o Azure DevOps, um projeto de estudos para falhas em IaC e uma imagem de container descontinuada.
Para a autenticação, precisamos das credenciais de APIs.
A ferramenta funciona em Linux/Intel ou Mac[Intel/M1/M2].
Para iniciar nosso pipeline, vamos usar uma imagem padrão Linux e importar as variáveis de um grupo que criei com o nome de VeracodeIaC, armazenando os valores que pegamos no portal da Veracode com os nomes: VERACODE_API_KEY_ID e VERACODE_API_KEY_SECRET
Em YML, fica assim:
trigger:
- master
pool:
vmImage: ubuntu-latest
variables:
- group: VeracodeIaC
Em nosso fluxo, vamos fazer a análise e depois gerar um relatório, conhecido como SBOM. A ferramenta tem um uso bem simples, e você pode consultar todas as possibilidades na documentação.
A sintaxe básica é:
./veracode [scan/sbom] --source [Pasta/Container/Arquivo/URL do REPO] --type [Equivalente ao que foi passado no source] --format [Formatação da exibição]
Para deixar menos abstrato, no caso em que queremos fazer a análise e o SBOM do container, podemos fazer dessa forma:
./veracode scan --source google/cadvisor:latest --type image --format table
./veracode sbom --source google/cadvisor:latest --type image --format table
Nos dois casos, passamos com parâmetro a imagem do container.
Para a análise do IaC, vamos passar a pasta para o scan e a URL do repositório para o SBOM:
./veracode scan --type directory --source ./terraform/ --format table
./veracode sbom --type repo --source https://github.com/IGDEXE/Terragoat --format table
Pensando num pipeline, eu gosto da ideia de usar a formatação de tabela, para facilitar a leitura dos LOGs:
Você pode consultar os exemplos de pipelines completos em nosso GitHub, mas para testar, recomendo que tente com o do Container, já que não precisa de nenhuma configuração adicional fora as variáveis:
trigger:
- master
pool:
vmImage: ubuntu-latest
variables:
- group: VeracodeIaC
steps:
- script: |
curl -fsS https://tools.veracode.com/veracode-cli/install | sh
displayName: 'Configuração inicial'
- task: CmdLine@2
inputs:
script: './veracode scan --source google/cadvisor:latest --type image --format table'
displayName: 'Scan'
- task: CmdLine@2
inputs:
script: './veracode sbom --source google/cadvisor:latest --type image --format table'
displayName: 'SBOM'
Para saber mais sobre a Veracode e solicitar um ambiente de testes, entre em contato.
Posted on March 7, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.