DEV Community

Cover image for Veracode + Windows: Configurando credenciais, Wrapper e Pipeline Scan
Ivo Dias for M3Corp

Posted on

Veracode + Windows: Configurando credenciais, Wrapper e Pipeline Scan

Para facilitar o processo de configuração em ambientes Windows, podemos automatizar as etapas com um script Powershell.
Nele vamos passar como parâmetros as duas credenciais de API, que você pode consultar como obtê-las clicando aqui, e como opcional pode definir uma pasta de instalação. Por padrão eu deixei a pasta da Veracode onde precisamos criar o arquivo de credenciais.

Nosso script vai:

  1. Receber os parâmetros
  2. Criar as pastas
  3. Adicionar a pasta das ferramentas ao PATH do sistema
  4. Fazer o download e organização do Pipeline Scan
  5. Fazer o download e organização do Wrapper

Para utilizar o Pipeline Scan vai ser preciso ter o Java instalado.
O arquivo de credenciais é necessário para autenticar os plugins nas IDEs e o uso do Wrapper, já que com ele configurado não é preciso passar os parâmetros VID e VKEY.

Traduzindo para Powershell, temos:

param (
    [parameter(position=0,Mandatory=$True)]
    $VeracodeID,
    [parameter(position=1,Mandatory=$True)]
    $VeracodeKey,
    [parameter(position=2)]
    $pastaferramenta = "$env:USERPROFILE/.veracode"
)

# Cria as pastas
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE/.veracode"
New-Item -ItemType Directory -Force -Path "$pastaferramenta"

# Adiciona o caminho no Path do sistema
if ($env:Path -NotContains $pastaferramenta) {
    Write-Host "Add $pastaferramenta ao path"
    [System.Environment]::SetEnvironmentVariable("Path", $env:Path + ";$pastaferramenta", 'User')
}

# Cria o arquivo de credenciais
$templateCredenciais = @"
[default]
veracode_api_key_id = $VeracodeID
veracode_api_key_secret = $VeracodeKey
"@
Write-Host "Criando arquivo de credenciais"
Set-Content -Path "$env:USERPROFILE/.veracode/credentials" -Value "$templateCredenciais"

# Download e configuração: Pipeline Scan
Write-Host "Configurando: Pipeline Scan"
$urlDownload = "https://downloads.veracode.com/securityscan/pipeline-scan-LATEST.zip" # Define a url de download
$caminhoDownload = "$env:LOCALAPPDATA/VeracodePipeline.zip" # Define um caminho para o arquivo de download
Invoke-WebRequest -Uri "$urlDownload" -OutFile "$caminhoDownload" # Faz o download
Expand-Archive -Path "$caminhoDownload" -DestinationPath "$pastaferramenta" -Force # Descompacta o ZIP para uma pasta
Remove-Item "$caminhoDownload" # Remove o arquivo de download

# Download e configuração: API Wrapper
Write-Host "Configurando: Wrapper"
$urlDownload = "https://tools.veracode.com/integrations/API-Wrappers/C%23/bin/VeracodeC%23API.zip" # Define a url de download
$caminhoDownload = "$env:LOCALAPPDATA/VeracodeAPI.zip" # Define um caminho para o arquivo de download
Invoke-WebRequest -Uri "$urlDownload" -OutFile "$caminhoDownload" # Faz o download
Expand-Archive -Path "$caminhoDownload" -DestinationPath "$pastaferramenta" -Force # Descompacta o ZIP para uma pasta
Rename-Item -Path "$pastaferramenta/VeracodeC#API.exe" -NewName "$pastaferramenta/VeracodeAPI.exe" -Force # Renomei para remover o # do nome
Remove-Item "$caminhoDownload" # Remove o arquivo de download

# Encerramento
Write-Host "Processo concluído"
Enter fullscreen mode Exit fullscreen mode

Dessa forma temos tudo configurado para utilizar Veracode de forma fácil no Windows.

Top comments (0)