Configurar e personalizar as tarefas de build

Observação

Desde 31 de dezembro de 2022, a extensão MSCA (Microsoft Security Code Analysis) está desativada. O MSCA foi substituído pela extensão Microsoft Security DevOps do Azure DevOps. Siga as instruções descritas em Configurar para instalar e configurar a extensão.

Este artigo descreve detalhadamente as opções de configuração disponíveis em cada uma das tarefas de build. O artigo começa pelas tarefas das ferramentas de análise de código de segurança. E termina com as tarefas de pós-processamento.

Tarefa de scanner antimalware

Observação

A tarefa de compilação Scanner Antimalware exige um agente de build que tenha o Windows Defender habilitado. O Visual Studio 2017 (e posterior) hospedado fornece um agente desse tipo. Não é possível executar essa tarefa no agente hospedado do Visual Studio 2015.

Embora as assinaturas não possam ser atualizadas nesses agentes, elas não podem ter mais de três horas.

Confira os detalhes da configuração da tarefa na captura de tela e no texto a seguir.

Configuração da tarefa de build Scanner antimalware

Na caixa de listagem Tipo da captura de tela, Básico está selecionado. Selecione Personalizado para fornecer os argumentos de linha de comando que personalizam a verificação.

O Windows Defender usa o cliente do Windows Update para baixar e instalar assinaturas. Se a atualização da assinatura falhar no agente de build, é provável que o código de erro HRESULT esteja vindo do Windows Update.

Para obter mais informações sobre erros do Windows Update e como corrigi-los, consulte Códigos de erro do Windows Update por componente e o artigo do TechNet, Agente do Windows Update – códigos de erro.

Para obter informações sobre a configuração de YAML para essa tarefa, verifique as nossas opções de YAML para Antimalware

Tarefa do BinSkim

Observação

Para executar a tarefa do BinSkim, seu build deve atender a uma destas condições:

  • O build produz artefatos binários do código gerenciado.
  • Você tem artefatos binários confirmados que deseja analisar com o BinSkim.

Confira os detalhes da configuração da tarefa na captura de tela e na lista exibidas a seguir.

Configuração da tarefa de build do BinSkim

  • Defina a configuração do build como Depurar para gerar os arquivos de depuração .pdb. O BinSkim usa esses arquivos para mapear de volta ao código-fonte os problemas encontrados nos binários de saída.
  • Para não precisar pesquisar e criar a sua própria linha de comando:
    • Na lista Tipo, selecione Básico.
    • Na lista Função, selecione Analisar.
  • Em Destino, insira um ou mais especificadores para um arquivo, diretório ou padrão de filtro. Esses especificadores são resolvidos para um ou mais binários a serem analisados:
    • Quando houver vários destinos especificados, eles devem ser separados por um ponto e vírgula (;).
    • Um especificador pode ser um único arquivo ou pode conter curingas.
    • As especificações de diretório devem sempre terminar com \*.
    • Exemplos:
           *.dll;*.exe
           $(BUILD_STAGINGDIRECTORY)\*
           $(BUILD_STAGINGDIRECTORY)\*.dll;$(BUILD_STAGINGDIRECTORY)\*.exe;
  • Se você selecionar Linha de comando na lista Tipo, precisará executar o binskim.exe:
    • Os primeiros argumentos para o binskim.exe devem ser o verbo analyze (analisar) seguido por uma ou mais especificações de caminho. Cada caminho pode ser um caminho completo ou relativo ao diretório de origem.
    • Em caso de vários caminhos de destino, eles devem ser separados por um espaço.
    • Você pode omitir a opção /o ou /output. O valor de saída é adicionado ou substituído.
    • As configurações padrão da linha de comando estão exibidas abaixo.
           analyze $(Build.StagingDirectory)\* --recurse --verbose
           analyze *.dll *.exe --recurse --verbose

Observação

O \* à direita é importante se você especificar diretórios para o destino.

Para obter mais informações sobre argumentos de linha de comando do BinSkim, regras por ID ou códigos de saída, consulte o Guia do usuário do BinSkim.

Para obter informações sobre a configuração de YAML para essa tarefa, verifique nossas opções de YAML para BinSkim

Tarefa Verificador de credenciais

Confira os detalhes da configuração da tarefa na captura de tela e na lista exibidas a seguir.

Configuração da tarefa de build do CredScan (verificador de credenciais)

As opções disponíveis incluem:

  • Nome de exibição: o nome da tarefa do Azure DevOps. O padrão é Executar Verificador de Credenciais
  • Versão principal da ferramenta: os valores disponíveis incluem CredScan v2 e CredScan v1. Recomendamos que os clientes usem a versão CredScan v2.
  • Formato de saída: os valores disponíveis incluem TSV, CSV, SARIF e PREfast.
  • Versão da ferramenta: recomendamos que você selecione Última.
  • Pasta de verificação: a pasta do repositório a ser verificada.
  • Tipo de arquivo do pesquisador: as opções para localizar o arquivo do pesquisador usado para verificação.
  • Arquivo de supressão: um arquivo JSON pode suprimir problemas no log de saída. Para mais informações, consulte a seção de perguntas frequentes deste artigo.
  • Saída detalhada: autoexplicativo.
  • Tamanho do lote: o número de threads simultâneos usados para executar o verificador de credenciais. O valor padrão é 20. Os valores possíveis variam de 1 a 2.147.483.647.
  • Tempo limite de correspondência: a quantidade de tempo, em segundos, a ser gasto tentando uma correspondência de pesquisador antes de abandonar a verificação.
  • Tamanho do buffer de leitura da verificação de arquivo: o tamanho em bytes do buffer usado enquanto o conteúdo é lido. O valor padrão é 524.288.
  • Máximo de bytes lidos da verificação de arquivo: o número máximo de bytes de um arquivo a serem lidos durante a análise de conteúdo. O valor padrão é 104.857.600.
  • Opções de controle>Executar esta tarefa: especifica quando a tarefa será executada. Selecione Condições personalizadas para especificar condições mais complexas.
  • Versão: a versão da tarefa de build no Azure DevOps. Essa opção não é usada com frequência.

Para obter informações sobre a configuração de YAML dessa tarefa, verifique nossas opções de YAML para Verificador de credenciais

Tarefa Analisadores do Roslyn

Observação

Antes de executar a tarefa Analisadores do Roslyn, seu build precisa cumprir as seguintes condições:

  • A definição do build inclui a tarefa interna do MSBuild ou do VSBuild para compilar o código C# ou Visual Basic. A tarefa dos analisadores depende da entrada e saída da tarefa interna para executar a compilação do MSBuild com os analisadores Roslyn habilitados.
  • O agente de build que executa a tarefa usa o Visual Studio 2017 na versão 15.5 ou posterior. Desta forma, o VS usa o compilador na versão 2.6 ou posterior.

Confira os detalhes da configuração da tarefa na lista e na observação abaixo.

As opções disponíveis incluem:

  • Conjunto de regras: os valores são o SDL necessário, o SDL é recomendado ou o seu próprio conjunto de regras personalizado.
  • Versão do analisadores: recomendamos que você selecione a versão mais recente.
  • Arquivo de supressões de avisos do compilador: um arquivo de texto com uma lista de IDs dos avisos suprimidos.
  • Opções de controle>Executar esta tarefa: especifica quando a tarefa será executada. Selecione Condições personalizadas para especificar condições mais complexas.

Observação

  • Os Analisadores do Roslyn são integrados ao compilador e podem ser executados somente como parte da compilação csc.exe. Portanto, a tarefa requer que o comando do compilador executado anteriormente no build seja reproduzido ou executado novamente. Essa reprodução, ou execução, é feita consultando os logs de tarefa de build do MSBuild do Azure DevOps (anteriormente Visual Studio Team Services).

    Esta é a única forma da tarefa obter a linha de comando da compilação do MSBuild, de modo eficaz, da definição do build. Consideramos acrescentar uma caixa de texto de forma livre para permitir que os usuários inserissem linhas de comando. Mas seria difícil manter essas linhas de comando atualizadas e sincronizadas com o build principal.

    Os builds personalizados exigem a repetição de todo o conjunto de comandos, não apenas dos comandos do compilador. Nesses casos, habilitar os Analisadores não é trivial, nem confiável.

  • Os Analisadores do Roslyn são integrados ao compilador. Para serem invocados, exigem compilação.

    Essa nova tarefa de build é implementada pela recompilação de projetos C# criados anteriormente. A nova tarefa usa apenas àquelas do MSBuild e do VSBuild que sejam iguais ou de mesma definição que o build da tarefa original. No entanto, neste caso, a nova tarefa as usa com os Analisadores do Roslyn habilitados.

    Se a tarefa nova for executada no mesmo agente que a original, a saída da nova substituirá a da original na pasta de origem s. Embora a saída do build seja a mesma, aconselhamos que você execute o MSBuild, copie a saída para o diretório de preparo dos artefatos e, em seguida, execute os analisadores do Roslyn.

Para obter recursos adicionais para a tarefa Analisadores do Roslyn, confira Analisadores baseados no Roslyn.

Veja o pacote do analisador instalado e usado por essa tarefa na página do NuGet Microsoft.CodeAnalysis.FxCopAnalyzers.

Para obter informações sobre a configuração de YAML para essa tarefa, verifique nossas opções de YAML para Analisadores do Roslyn

Tarefa TSLint

Para obter mais informações sobre o TSLint, acesse o repositório do TSLint no GitHub.

Observação

Como você deve estar ciente, a página inicial do repositório do TSLint no GitHub diz que o TSLint será preterido em algum momento no ano de 2019. A Microsoft está investigando o ESLint como tarefa alternativa.

Para obter informações sobre a configuração de YAML para essa tarefa, verifique nossas opções de YAML para TSLint

Tarefa Publicar logs de análise de segurança

Confira os detalhes da configuração da tarefa na captura de tela e na lista exibidas a seguir.

Configuração da tarefa de build Publicar logs de análise de segurança

  • Nome do artefato: qualquer identificador de cadeia de caracteres.
  • Tipo de artefato: dependendo da sua seleção, você pode publicar logs no Azure DevOps Server ou em um arquivo compartilhado que seja acessível para o agente de compilação.
  • Ferramentas: você pode optar por preservar os logs para ferramentas específicas ou selecionar Todas as ferramentas para preservar todos os logs.

Para obter informações sobre a configuração de YAML para essa tarefa, verifique nossas opções de YAML para Publicar logs de segurança

Tarefa Relatório de segurança

Confira os detalhes da configuração do Relatório de segurança na captura de tela e na lista exibidas a seguir.

Configuração da tarefa de build Relatório de segurança

  • Relatórios: selecione qualquer um dos formatos do Console do pipeline, do arquivo TSV e do arquivo HTML. Um arquivo de relatório é criado para cada um dos formatos selecionados.
  • Ferramentas: selecione as ferramentas da definição de build para as quais deseja gerar um resumo dos problemas detectados. Para cada ferramenta selecionada, pode haver uma opção para selecionar se desejar ver somente erros ou erros e avisos no relatório de resumo.
  • Opções avançadas: se não houver nenhum log para uma das ferramentas selecionadas, você poderá optar por registrar um aviso ou um erro. Se você registrar um erro, a tarefa falhará.
  • Pasta de logs de base: você pode personalizar a pasta onde os logs serão encontrados. Mas essa opção normalmente não é usada.

Para obter informações sobre a configuração de YAML para essa tarefa, verifique nossas opções de YAML para Relatórios de segurança

Tarefa Análise posterior

Confira os detalhes da configuração da tarefa na captura de tela e na lista exibidas a seguir.

Configuração da tarefa de build Análise posterior

  • Ferramentas: selecione as ferramentas da definição de build para as quais deseja injetar condicionalmente uma quebra de compilação. Para cada ferramenta selecionada, pode haver uma opção para selecionar se desejar causar a quebra somente em erros ou em erros e avisos.
  • Relatório: se desejar, você pode gravar os resultados que estão causando a quebra de compilação. Os resultados são gravados na janela do console do Azure DevOps e no arquivo de log.
  • Opções avançadas: se não houver nenhum log para uma das ferramentas selecionadas, você poderá optar por registrar um aviso ou um erro. Se você registrar um erro, a tarefa falhará.

Para obter informações sobre a configuração de YAML para essa tarefa, verifique nossas opções de YAML para Análise Posterior

Próximas etapas

Para obter informações sobre a configuração baseada em YAML, consulte nosso Guia de configuração do YAML.

Se você tiver mais dúvidas sobre a extensão Análise de Código de Segurança e as ferramentas oferecidas, confira nossa página de perguntas frequentes.