Configurar a extensão do Segurança da Microsoft DevOps para o Azure DevOps

O Segurança da Microsoft DevOps é um aplicativo de linha de comando que integra a análise estática ao seu ciclo de vida de desenvolvimento. Ele instala, configura e executa os analisadores mais recentes de SDL, segurança e conformidade usando configurações portáteis para garantir a execução consistente e determinística entre ambientes.

O Segurança da Microsoft DevOps usa as seguintes ferramentas de software livre:

Name Linguagem License
AntiMalware Proteção antimalware no Windows do Microsoft Defender para Endpoint. Verifica o malware e interrompe o build se o conteúdo mal-intencionado for detectado. É executado por padrão no agente mais recente do Windows. Não é de software livre
Bandit Python Licença do Apache 2.0
BinSkim Destinos binários: Windows, ELF Licença do MIT
Checkov Terraform, plano Terraform, CloudFormation, AWS SAM, Kubernetes, gráficos Helm, Kustomize, Dockerfile, Sem servidor, Bicep, OpenAPI, ARM Licença do Apache 2.0
ESLint JavaScript Licença do MIT
IaCFileScanner Ferramenta de mapeamento de modelo para Terraform, CloudFormation, modelos do ARM e Bicep Não é de software livre
Analisador de Modelos Modelos do ARM, Bicep Licença do MIT
Terrascan Terraform (HCL2), Kubernetes (JSON/YAML), Helm v3, Kustomize, Dockerfiles, CloudFormation Licença do Apache 2.0
Trivy Imagens de contêiner, infraestrutura como código (IaC) Licença do Apache 2.0

Note

A partir de 20 de setembro de 2023, a ferramenta de verificação de segredos (CredScan) dentro da Extensão do MSDO (Segurança da Microsoft DevOps) para Azure DevOps foi preterida. A verificação de segredos do MSDO é substituída pela Segurança Avançada do GitHub para Azure DevOps.

Pré-requisitos

Antes de instalar a extensão, certifique-se de cumprir o seguinte pré-requisito:

  • Você precisa de privilégios de Administrador de Coleção de Projetos em sua organização do Azure DevOps para instalar a extensão. Se você não tiver acesso, solicite esses privilégios ao administrador do Azure DevOps.

Instalar a extensão

Para instalar a extensão Segurança da Microsoft DevOps:

  1. Entre no Azure DevOps.

  2. Vá para Sacola de Compras>Gerenciar extensões.

    Captura de tela que mostra como navegar até a tela gerenciar extensões.

  3. Selecione Compartilhado.

    Note

    Se você já instalou a extensão DevOps de Segurança da Microsoft, ela está listada na guia Instalado.

  4. Selecione Segurança da Microsoft DevOps.

    Captura de tela que mostra onde selecionar o Segurança da Microsoft DevOps.

  5. Selecione Instalar.

  6. Selecione a organização apropriada no menu suspenso.

  7. Selecione Instalar.

  8. Selecione Prosseguir para a organização.

Configurar pipelines usando YAML

Dica

Opcional: Instale a extensão SARIF SAST Scans Tab se quiser que os resultados da análise SARIF apareçam automaticamente na aba Scans do pipeline.

Para configurar um pipeline com YAML:

  1. Entre no Azure DevOps.

  2. Selecione seu projeto.

  3. Vá para Pipelines>Novo pipeline.

    Captura de tela mostrando onde localizar o pipeline de criação no DevOps.

  4. Selecionar Git do Azure Repos.

    Captura de tela que mostra para onde navegar para selecionar o repositório Git do Azure.

  5. Selecione o repositório relevante.

    Captura de tela mostrando onde selecionar seu repositório.

  6. Selecione pipeline inicial.

    Captura de tela mostrando onde selecionar o pipeline inicial.

  7. Cole o seguinte YAML no pipeline:

    # Starter pipeline
    # Start with a minimal pipeline that you can customize to build and deploy your code.
    # Add steps that build, run tests, deploy, and more:
    # https://aka.ms/yaml
    trigger: none
    pool:
      # ubuntu-latest also supported.
      vmImage: 'windows-latest'
    steps:
    - task: MicrosoftSecurityDevOps@1
      displayName: 'Microsoft Security DevOps'
      # inputs:    
        # config: string. Optional. A file path to an MSDO configuration file ('*.gdnconfig'). Vist the MSDO GitHub wiki linked below for additional configuration instructions
        # policy: 'azuredevops' | 'microsoft' | 'none'. Optional. The name of a well-known Microsoft policy to determine the tools/checks to run. If no configuration file or list of tools is provided, the policy may instruct MSDO which tools to run. Default: azuredevops.
        # categories: string. Optional. A comma-separated list of analyzer categories to run. Values: 'code', 'artifacts', 'IaC', 'containers'. Example: 'IaC, containers'. Defaults to all.
        # languages: string. Optional. A comma-separated list of languages to analyze. Example: 'javascript,typescript'. Defaults to all.
        # tools: string. Optional. A comma-separated list of analyzer tools to run. Values: 'bandit', 'binskim', 'checkov', 'eslint', 'templateanalyzer', 'terrascan', 'trivy'. Example 'templateanalyzer, trivy'
        # break: boolean. Optional. If true, will fail this build step if any high severity level results are found. Default: false.
        # publish: boolean. Optional. If true, will publish the output SARIF results file to the chosen pipeline artifact. Default: true.
        # artifactName: string. Optional. The name of the pipeline artifact to publish the SARIF result file to. Default: CodeAnalysisLogs*.
    

    Note

    O artifactName 'CodeAnalysisLogs' é necessário para integração com o Defender para Nuvem. Para obter mais opções de configuração de ferramentas e variáveis de ambiente, consulte o wiki Segurança da Microsoft DevOps.

  8. Selecione Salvar e executar para confirmar e executar o pipeline.

    Note

    Instale a extensão SARIF SAST Scans Tab para exibir automaticamente os resultados da análise SARIF na guia Verificações do pipeline.

Carregando descobertas de ferramentas de segurança de terceiros no Defender para Nuvem

O Defender para Nuvem pode ingerir resultados SARIF de outras ferramentas de segurança para visibilidade do código até a nuvem. Para carregar esses resultados, verifique se os repositórios do Azure DevOps estão integrados ao Defender para Nuvem. Após a integração, o Defender para Nuvem monitora continuamente o artefato CodeAnalysisLogs em busca de saída SARIF.

Utilize a tarefa PublishBuildArtifacts@1 para publicar arquivos SARIF no artefato CodeAnalysisLogs. A seguinte etapa YAML publica o arquivo de resultados do SARIF como um artefato de build para que o Defender para Nuvem possa absorver os achados:

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: 'results.sarif'
    ArtifactName: 'CodeAnalysisLogs'

O Defender para Nuvem exibe essas descobertas na avaliação Os repositórios do Azure DevOps devem ter as descobertas da verificação de código resolvidas para o repositório afetado.