Configurar a extensão do Azure DevOps do Microsoft Security DevOps

O Microsoft Security DevOps é um aplicativo de linha de comando que integra ferramentas de análise estática ao ciclo de vida de desenvolvimento. O Microsoft Security DevOps instala, configura e executa as versões mais recentes das ferramentas de análise estática (incluindo, mas não se limitando a ferramentas de segurança/SDL e conformidade). O Microsoft Security DevOps é orientado a dados com configurações portáteis que permitem a execução determinística em vários ambientes.

O Microsoft Security DevOps usa as seguintes ferramentas de Código aberto:

Nome Idioma Licença
AntiMalware Proteção AntiMalware no Windows a partir do Microsoft Defender para Ponto de Extremidade que examina por malware e interrompe a compilação se o malware for encontrado. Esta ferramenta faz a varredura por padrão no agente mais recente do Windows. Sem código aberto
Bandit Python Licença do Apache 2.0
BinSkim Binário--Windows, ELF Licença MIT
ESlint JavaScript Licença MIT
IaCFileScanner Terraform, CloudFormation, Modelo do ARM, Bicep Sem código aberto
Analisador de Modelos Modelo do ARM, Bicep Licença MIT
Terrascan Terraform (HCL2), Kubernetes (JSON/YAML), Helm v3, Kustomize, Dockerfiles, CloudFormation Licença do Apache 2.0
Trivy imagens de contêiner, IaC (infraestrutura como código) Licença do Apache 2.0

Observação

Desde 20 de setembro de 2023, a ferramenta de verificação de segredos (CredScan) da Extensão MSDO (DevOps de Segurança da Microsoft) para Azure DevOps foi preterida. A verificação de segredos do MSDO será substituída pelo GitHub Advanced Security para Azure DevOps.

Pré-requisitos

  • Os privilégios de Administrador de Coleção de Projetos para a organização do Azure DevOps são necessários para instalar a extensão.

Se você não tiver acesso para instalar a extensão, deverá solicitar acesso do administrador de Azure DevOps da sua organização durante o processo de instalação.

Configurar a extensão do Azure DevOps do Microsoft Security DevOps

Para configurar a extensão do Azure DevOps do Microsoft Security DevOps:

  1. Entre no Azure DevOps.

  2. Navegue até Sacola de compras>Gerenciar extensões.

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

  3. Selecione Compartilhadas.

    Observação

    Se você já tiver instalado a extensão do Microsoft Security DevOps, ela estará listada na guia Instalados.

  4. Selecione Microsoft Security DevOps.

    Captura de tela que mostra onde selecionar o Microsoft Security DevOps.

  5. Selecione Instalar.

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

  7. Selecione Instalar.

  8. Selecione Prosseguir para a organização.

Configurar seus pipelines usando YAML

Para configurar seu pipeline usando YAML:

  1. Entre no Azure DevOps

  2. Selecione o projeto.

  3. Navegue até Pipelines

  4. Selecione Novo pipeline.

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

  5. Selecionar Git do Azure Repos.

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

  6. Selecione o repositório relevante.

    Captura de tela mostrando como selecionar seu repositório.

  7. Selecione Pipeline de início.

    Captura de tela mostrando onde selecionar o pipeline inicial.

  8. Cole o YAML a seguir 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:    
      # command: 'run' | 'pre-job' | 'post-job'. Optional. The command to run. Default: run
      # config: string. Optional. A file path to an MSDO configuration file ('*.gdnconfig').
      # policy: 'azuredevops' | 'microsoft' | 'none'. Optional. The name of a well-known Microsoft policy. 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', 'eslint', 'templateanalyzer', 'terrascan', 'trivy'.
      # break: boolean. Optional. If true, will fail this build step if any error 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*.
    
    

    Observação

    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 de DevOps de Segurança da Microsoft

  9. Para fazer commit do pipeline, selecione Salvar e executar.

    O pipeline será executado por alguns minutos e salvará os resultados.

    Observação

    Instale a extensão da guia “Exames de SAST” do SARIF na organização do Azure DevOps para garantir que os resultados da análise gerada sejam exibidos automaticamente na guia “Exames”.

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

Embora o Defender para Nuvem forneça a CLI MSDO para funcionalidade padronizada e controles de política em um conjunto de analisadores de segurança de software livre, você tem a flexibilidade de carregar resultados de outras ferramentas de segurança de terceiros que você pode ter configurado em pipelines de CI/CD para o Defender para Nuvem para contextualização abrangente de código para nuvem. Todos os resultados carregados no Defender para Nuvem devem estar no formato SARIF padrão.

Primeiro, verifique se os repositórios do Azure DevOps estão integrados ao Defender para Nuvem. Depois de integrar com êxito o Defender para Nuvem, ele monitora continuamente o artefato "CodeAnalysisLogs" para saída SARIF.

Você pode usar a tarefa 'PublishBuildArtifacts@1' para garantir que a saída SARIF seja publicada no artefato correto. Por exemplo, se um analisador de segurança gerar 'results.sarif', você poderá configurar a seguinte tarefa em seu trabalho para garantir que os resultados sejam carregados no Defender para Nuvem:

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

Findings from third-party security tools will appear as 'Azure DevOps repositories should have code scanning findings resolved' assessments associated with the repository the secuirty finding was identified in.