Veracode & AzDevOps: Trabalhando com Task Groups
Tags: veracode, azure, security, devops
Published: 2024-02-01 18:32:09

O recurso de Task Groups pode ser muito útil para agilizar implementações. Nossa ideia com esse artigo é trabalhar com dois já prontos, para os cenários onde temos Frontends em JavaScript e Backends em .NET. 
Sempre recomendamos a leitura do [guia de empacotamento](https://docs.veracode.com/r/c_comp_quickref) e do nosso [GitHub com exemplos](https://github.com/M3Corp-Community/Veracode), para otimizar o processo e modifica-lo caso tenha uma necessidade diferente da que temos nesse exemplo. 

**Importando os TGs**
Em nosso REPO, já temos os dois modelos que vamos utilizar prontos:
- .NET ([PRD](https://github.com/M3Corp-Community/Veracode/blob/main/Pipelines/Az%20DevOps/Task%20Group/Veracode%20-%20DotNet%20-%20Filter%20-%20Wrapper.json)/[SB](https://github.com/M3Corp-Community/Veracode/blob/main/Pipelines/Az%20DevOps/Task%20Group/Veracode%20-%20DotNet%20-%20Filter%20-%20Wrapper%20-%20SB.json))
- JS   ([PRD](https://github.com/M3Corp-Community/Veracode/blob/main/Pipelines/Az%20DevOps/Task%20Group/Veracode%20-%20Not%20Compiled%20-%20Filter%20-%20Wrapper.json)/[SB](https://github.com/M3Corp-Community/Veracode/blob/main/Pipelines/Az%20DevOps/Task%20Group/Veracode%20-%20Not%20Compiled%20-%20Filter%20-%20Wrapper%20-%20SB.json))

O fluxo deles vai ser bem parecido:
1. Criar o pacote dos arquivos para analise 
2. Iniciar o scan com o Wrapper
3. Fazer a analise SCA e retornar os resultados para o Pipeline
4. Fazer a analise SAST e retornar os resultados para o Pipeline

A principal diferença é que no caso do .NET vamos empacotar apenas as DLLs e PDBs, conforme o [guia de empacotamento](https://docs.veracode.com/r/c_comp_quickref). 

Um outro ponto principal é que vamos ter as versões PRD e SB:
**PRD** -> Usamos sempre que é o scan do que vai subir para produção
**SB**  -> Para todos os outros casos

Por exemplo, caso eu tenha três ambientes (DEV, HML e PRD) organizados em pipelines distintos, eu vou utilizar o TG de PRD para o respectivo e o SB para DEV e HML. Com isso, nossos resultados na plataforma vão ficar organizados. 

**Parâmetros dos TGs**
Nos dois modelos de TGs, vamos ter em comum as seguintes variáveis:
- **caminhoPacote** -> Caminho do pacote criado para a analise
- **veracodeAppProfile** -> Nome do projeto
- **VeracodeID** -> [Credencial da Veracode](https://dev.to/m3corp/credenciais-da-veracode-340m)
- **VeracodeKey** -> [Credencial da Veracode](https://dev.to/m3corp/credenciais-da-veracode-340m)
- **VeracodeSCA** -> [Credencial do SCA](https://dev.to/m3corp/credenciais-do-veracode-sca-ijh)

Para os TGs de Sandbox (SB), vamos ter uma extra:
- **nomeAmbiente** -> Onde colocamos o nome do ambiente (DEV, QA, HML..)

Você pode deixar as variáveis já definidas no próprio TG (por padrão a de **caminhoPacote** já vem) ou gerar um grupo de variáveis para alimenta-las.

**Como utilizar?**
Importe os TGs para o seu ambiente do Azure conforme a [documentação da Microsoft](https://learn.microsoft.com/pt-br/azure/devops/pipelines/library/task-groups?view=azure-devops), depois em seu pipeline, busque por ele como se fosse uma Task.

Esses TGs de modelo foram criados para Linux/Mac, mas é possível utiliza-los em Windows com pequenas modificações.