Configurar a extensão Microsoft Security DevOps no Azure DevOps

O Microsoft Security 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 mais recentes analisadores de SDL, segurança e conformidade usando configurações portáteis para garantir uma execução consistente e determinística em todos os ambientes.

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

Name Linguagem License
AntiMalware Proteção antimalware no Windows do Microsoft Defender para Endpoint. Verifica a existência de malware e quebra a compilação se for detetado conteúdo malicioso. É executado por padrão no agente mais recente do Windows. Não é de código aberto
Bandit Python Apache Licença 2.0
BinSkim Alvos binários: Windows, ELF Licença MIT
Checkov Terraform, plano Terraform, CloudFormation, AWS SAM, Kubernetes, gráficos de Helm, Kustomize, Dockerfile, Serverless, Bicep, OpenAPI, ARM Apache Licença 2.0
ESLint JavaScript Licença MIT
IaCFileScanner Ferramenta de mapeamento de modelos para Terraform, CloudFormation, modelos ARM e Bicep Não é de código aberto
Analisador de modelos Modelos ARM, Bíceps Licença MIT
Terrascan Terraform (HCL2), Kubernetes (JSON / YAML), Leme v3, Kustomize, Dockerfiles, CloudFormation Apache Licença 2.0
Trivy Imagens de contêiner, infraestrutura como código (IaC) Apache Licença 2.0

Note

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

Pré-requisitos

Antes de instalar a extensão, certifique-se de que cumpre os seguintes pré-requisitos:

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

Instalar a extensão

Para instalar a extensão Microsoft Security DevOps:

  1. Iniciar sessão no Azure DevOps.

  2. Vá para Shopping Bag>Gerenciar extensões.

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

  3. Selecione Compartilhado.

    Note

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

  4. Selecione Microsoft Security DevOps.

    Captura de tela que mostra onde selecionar 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 pipelines usando YAML

Sugestão

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

Para configurar um pipeline com YAML:

  1. Entre no Azure DevOps.

  2. Seleciona o teu projecto.

  3. Vá para Pipelines>Novo Pipeline.

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

  4. Selecione Repositórios do Azure Git.

    Captura de tela que mostra para onde navegar para selecionar o Azure repo git.

  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 ficheiro 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 a integração com o Defender para a Cloud. Para opções adicionais de configuração de ferramentas e variáveis de ambiente, consulte a wiki Microsoft Security 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 Scans do pipeline.

Upload de descobertas de ferramentas de segurança de terceiros para o Defender para a Cloud

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

Utilize a PublishBuildArtifacts@1 tarefa para publicar ficheiros SARIF no CodeAnalysisLogs artefacto. O passo YAML seguinte publica o ficheiro de resultados do SARIF como um artefacto de build para que o Defender para a Cloud possa absorver os resultados:

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

O Defender para a Cloud exibe essas descobertas nos repositórios de DevOps do Azure que devem ter as descobertas de verificação de código resolvidas para o repositório afetado.