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.
Top comments (0)