Antes de começar, precisamos ter o Wrapper configurado no computador, então recomendo a leitura do artigo explicando como fazer ela.
Para utilizar o Wrapper, é preciso ter algumas informações como o ID e a chave da API, você pode gera-las no portal da Veracode, acessando com a sua conta.
A ideia desse artigo, é mostrar como podemos fazer de forma simples, um script que faça o processo de enviar um arquivo para ser analisado, aguardar a analise e mostrar no terminal um pequeno relatório com os dados da analise.
Como exemplo para ele, utilizei o projeto chamado PIVAA, uma aplicação Android de teste que contem falhas de segurança (a ideia desse projeto é ser utilizado para testes desse tipo de ferramenta) e por isso, o arquivo que vamos enviar é o APK presente nele. A ferramenta possui tipos específicos e orientações, que vou deixar nas referencias o link para a documentação.
Fluxo de funcionamento
Inicialmente, pegamos todos os valores que serão necessários para que esse script funcione, nesse caso o seu ID da Veracode, a chave da API, o nome do aplicativo dentro do portal e o caminho do arquivo que queremos analisar.
A Veracode trabalha muito com retornos utilizando XML, teremos alguns tratamentos dentro do código para obter essas informações de forma que possamos utiliza-las no script. Inicialmente, obteremos o ID do aplicativo, utilizando ele em seguida, para enviar o arquivo para a analise, por meio da ação UploadAndScanByAppId. Chamamos de ações o que podemos fazer com o Wrapper, pode saber mais utilizando o parâmetro -Help nele, ou consultando a documentação.
Depois do envio, vamos pegar o resultado da analise, entretanto, ele não é algo imediato e pode variar de acordo com o arquivo, então vamos criar um pequeno loop, que a cada x segundos (em nosso exemplo 10) vai verificar se a analise já está pronta. Em caso afirmativo o script vai para a próxima seção, mas caso demore mais de 5 minutos, ele mostra a mensagem de retorno da solicitação, para entendermos o porque não foi possível obter os resultados.
Com os resultados, vamos fazer um pequeno tratamento das informações que conseguimos por meio da ação Summary Report e criamos um relatório amigável para ser exibido no próprio terminal.
Transformando isso em Powershell
Como retorno, temos esse amigável terminal:
Ocultei algumas informações que podem ser sensíveis, mas da para entender como é a distribuição das informações no retorno.
Conclusão
Com esse script, podemos utilizar o Wrapper para fazer analises em nossos projetos via linha de comando de formar simples e eficiente, com a vantagem de termos o retorno da analise no próprio terminal.
Referencias