Configurar a extensão Microsoft Security DevOps Azure DevOps

O Microsoft Security DevOps é um aplicativo de linha de comando que integra ferramentas de análise estática no ciclo de vida do desenvolvimento. O Microsoft Security DevOps instala, configura e executa as versões mais recentes das ferramentas de análise estática (incluindo, entre outras, SDL/ferramentas de segurança e conformidade). O Microsoft Security DevOps é orientado por 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 do Microsoft Defender for Endpoint, que verifica a existência de malware e quebra a compilação se o malware tiver sido encontrado. Esta ferramenta verifica por padrão no agente mais recente do Windows. Não Open Source
Bandido Python Apache Licença 2.0
BinSkim Binário--Windows, ELF Licença MIT
Checkov Terraform, Terraform plan, CloudFormation, AWS SAM, Kubernetes, Helm charts, 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, ARM Template, Bicep Não Open Source
Analisador de modelos Modelo 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

Nota

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 será substituída pelo GitHub Advanced Security for Azure DevOps.

Pré-requisitos

  • Os privilégios de Administrador da 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 da sua organização do Azure DevOps durante o processo de instalação.

Configurar a extensão Microsoft Security DevOps Azure DevOps

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

  1. Iniciar sessão no Azure DevOps.

  2. Navegue até Gerenciar extensões do Shopping Bag>.

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

  3. Selecione Compartilhado.

    Nota

    Se você já tiver instalado a extensão Microsoft Security DevOps, ela será 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.

Configure seus pipelines usando YAML

Para configurar seu pipeline usando YAML:

  1. Entrar no Azure DevOps

  2. Selecione o seu projeto.

  3. Navegue até Pipelines

  4. Selecione Novo pipeline.

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

  5. Selecione Azure Repos Git.

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

  6. Selecione o repositório relevante.

    Captura de tela mostrando onde selecionar seu repositório.

  7. Selecione Pipeline inicial.

    Captura de tela mostrando onde selecionar o pipeline inicial.

  8. 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*.
      
    

    Nota

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

  9. Para confirmar o pipeline, selecione Salvar e executar.

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

    Nota

    Instale a extensão SARIF SAST Scans Tab na organização do Azure DevOps para garantir que os resultados da análise gerados serão exibidos automaticamente na guia Verificações.

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

Embora o Defender for Cloud forneça a CLI do MSDO para funcionalidade padronizada e controles de política em um conjunto de analisadores de segurança de código aberto, 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 for Cloud para contextualização abrangente de código para nuvem. Todos os resultados carregados no Defender for Cloud devem estar no formato SARIF padrão.

Primeiro, certifique-se de que seus repositórios de DevOps do Azure estejam integrados ao Defender for Cloud. Depois de integrar com êxito o Defender for Cloud, ele monitora continuamente o artefato 'CodeAnalysisLogs' para a 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 produzir saídas, você poderá configurar a seguinte tarefa em seu trabalho para garantir que os resultados sejam carregados results.sarifno Defender for Cloud:

- 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 security finding was identified in.