Habilitar anotações de solicitação pull no GitHub e no Azure DevOps

A segurança do DevOps expõe as descobertas de segurança como anotações em Pull Requests (PR). Os operadores de segurança podem habilitar anotações de PR no Microsoft Defender para a Cloud. Quaisquer problemas expostos podem ser remediados pelos desenvolvedores. Esse processo pode prevenir e corrigir possíveis vulnerabilidades de segurança e configurações incorretas antes que elas entrem no estágio de produção. A segurança do DevOps anota vulnerabilidades dentro das diferenças introduzidas durante a solicitação pull em vez de todas as vulnerabilidades detetadas em todo o arquivo. Os desenvolvedores podem ver anotações em seus sistemas de gerenciamento de código-fonte e os operadores de segurança podem ver quaisquer descobertas não resolvidas no Microsoft Defender para a Cloud.

Com o Microsoft Defender para a Cloud, você pode configurar anotações de RP no Azure DevOps. Você pode obter anotações de RP no GitHub se for um cliente de Segurança Avançada do GitHub.

Note

As anotações de pull request, também conhecidas como anotações de merge request (GitLab), não são suportadas em projetos GitLab ligados ao Defender para a Cloud DevOps.

O Defender para a Cloud apresentará conclusões de segurança para quaisquer repositórios GitLab ligados. No entanto, os pedidos de fusão no GitLab não mostram estas conclusões como anotações em linha.

O GitHub suporta anotações de pull request quando ativa o GitHub Advanced Security.

O que são anotações de pull requests

As anotações de solicitação pull são comentários que são adicionados a uma solicitação pull no GitHub ou no Azure DevOps. Essas anotações fornecem feedback sobre as alterações de código feitas e problemas de segurança identificados na solicitação pull e ajudam os revisores a entender as alterações feitas.

Os usuários com acesso ao repositório podem adicionar anotações, sugerir alterações, fazer perguntas ou fornecer feedback sobre o código. As anotações também podem ser usadas para rastrear problemas e bugs que precisam ser corrigidos antes que o código seja mesclado na ramificação principal. A segurança de DevOps no Defender para a Cloud usa anotações para revelar descobertas de segurança.

Pré-requisitos

Para o GitHub:

Para o Azure DevOps:

Habilitar anotações de solicitação pull no GitHub

Ao ativar as anotações de pull requests no GitHub, os seus programadores podem ver os problemas de segurança quando criam um PR diretamente para o ramo principal.

Para habilitar anotações de solicitação pull no GitHub:

  1. Navegue até o GitHub e faça login.

  2. Selecione um repositório que você integrou ao Defender para a Cloud.

  3. Navegue até Your repository's home page>.github/workflows.

    Captura de tela que mostra para onde navegar para selecionar a pasta de fluxo de trabalho do GitHub.

  4. Selecione msdevopssec.yml, que foi criado nos pré-requisitos.

    Captura de tela que mostra onde na tela selecionar o arquivo msdevopssec.yml.

  5. Selecione editar.

    Captura de ecrã que mostra o aspeto do botão de edição.

  6. Localize e atualize a seção de gatilho para incluir:

    # Triggers the workflow on push or pull request events but only for the main branch
    pull_request:
      branches: ["main"]
    

    Também pode ver um repositório de exemplo.

    (Opcional) Você pode selecionar em quais ramificações deseja executá-lo inserindo a(s) ramificação(ões) na seção de gatilho. Se quiser incluir todas as ramificações, remova as linhas com a lista de ramificações. 

  7. Selecione Iniciar commit.

  8. Selecione Confirmar alterações.

    Quaisquer problemas descobertos pelo mecanismo de varredura poderão ser visualizados na seção Arquivos alterados da sua solicitação pull.

    • Usado em testes - O alerta não está no código de produção.

Habilitar anotações de solicitação pull no Azure DevOps

Ao ativar as anotações em pull requests no Azure DevOps, os seus programadores passam a poder ver os problemas de segurança quando criam PRs diretamente no ramo principal.

Habilitar a política de validação de compilação para a compilação de CI

Antes de poder ativar as anotações de pull requests, o ramo principal tem de ter a política de Validação da Compilação ativada para a compilação de CI.

Para habilitar a política de validação da compilação para a compilação de IC:

  1. Inicie sessão no seu projeto Azure DevOps.

  2. Aceda a Definições do projeto>Repositórios.

    Captura de tela que mostra para onde navegar para selecionar repositórios.

  3. Selecione o repositório para ativar solicitações pull.

  4. Selecione Políticas.

  5. Navegue até Políticas da ramificação>Ramificação principal.

    Captura de tela que mostra onde localizar as políticas de filial.

  6. Encontre a secção Build Validation.

  7. Certifique-se de que a validação da compilação do seu repositório está definida para Ativado.

    Captura de tela que mostra onde a alternância CI Build está localizada.

  8. Selecione Guardar.

    Captura de tela que mostra a validação da compilação.

Depois de concluir essas etapas, você pode selecionar o pipeline de compilação criado anteriormente e personalizar suas configurações para atender às suas necessidades.

Ativar anotações de solicitação pull

Para habilitar anotações de solicitação pull no Azure DevOps:

  1. Inicie sessão no portal Azure.

  2. Navegue até Defender para a Cloud>Segurança DevOps.

  3. Selecione todos os repositórios relevantes para ativar as anotações de solicitação pull.

  4. Selecione Gerenciar recursos.

    Captura de ecrã que mostra como gerir recursos.

  5. Alterne as anotações de solicitação pull para Ativado.

    Captura de ecrã que mostra o interruptor ligado.

  6. (Opcional) Selecione uma categoria no menu suspenso.

    Note

    Atualmente, apenas os resultados de configurações incorretas de infraestrutura como código (ARM, Bicep, Terraform, CloudFormation, Dockerfiles, Helm Charts e muito mais) são suportados.

  7. (Opcional) Selecione um nível de gravidade no menu suspenso.

  8. Selecione Guardar.

Todas as anotações em suas solicitações pull serão exibidas a partir de agora com base em suas configurações.

Para habilitar anotações de solicitação pull para meus Projetos e Organizações no Azure DevOps:

Você pode fazer isso programaticamente chamando a API de Recursos de DevOps do Azure Update exposta à Microsoft. Provedor de recursos de segurança.

Informações da API:

Método HTTP: PATCH URLs:

  • Atualização do Projeto Azure DevOps: https://management.azure.com/subscriptions/<subId>/resourcegroups/<resourceGroupName>/providers/Microsoft.Security/securityConnectors/<connectorName>/devops/default/azureDevOpsOrgs/<adoOrgName>/projects/<adoProjectName>?api-version=2023-09-01-preview
  • Atualização da Organização de DevOps do Azure]: https://management.azure.com/subscriptions/<subId>/resourcegroups/<resourceGroupName>/providers/Microsoft.Security/securityConnectors/<connectorName>/devops/default/azureDevOpsOrgs/<adoOrgName>?api-version=2023-09-01-preview

Órgão do pedido:

{
   "properties": {
"actionableRemediation": {
              "state": <ActionableRemediationState>,
              "categoryConfigurations":[
                    {"category": <Category>,"minimumSeverityLevel": <Severity>}
               ]
           }
    }
}

Parâmetros / Opções Disponíveis

<ActionableRemediationState> Descrição: Estado da configuração da anotação PR Opções: Ativado | Desativado

<Category> Descrição: Categoria de Achados anotados em solicitações pull. Opções: IaC | Código | Artefactos | Dependências | Contentores Nota: Atualmente, apenas o IaC é suportado

<Severity> Descrição: A gravidade mínima de uma ocorrência considerada ao criar anotações de PR. Opções: Alta | Médio | Baixo

Exemplo de como ativar as anotações de PR de uma organização do Azure DevOps para a categoria IaC com uma gravidade mínima Média, com a ferramenta az cli.

Atualizar a organização:

az --method patch --uri https://management.azure.com/subscriptions/4383331f-878a-426f-822d-530fb00e440e/resourcegroups/myrg/providers/Microsoft.Security/securityConnectors/myconnector/devops/default/azureDevOpsOrgs/testOrg?api-version=2023-09-01-preview --body "{'properties':{'actionableRemediation':{'state':'Enabled','categoryConfigurations':[{'category':'IaC','minimumSeverityLevel':'Medium'}]}}}

Exemplo de habilitação das Anotações PR de um Projeto de DevOps do Azure para a categoria IaC com uma severidade mínima de Alta usando a ferramenta az cli.

Atualizar Projeto:

az --method patch --uri https://management.azure.com/subscriptions/4383331f-878a-426f-822d-530fb00e440e/resourcegroups/myrg/providers/Microsoft.Security/securityConnectors/myconnector/devops/default/azureDevOpsOrgs/testOrg/projects/testProject?api-version=2023-09-01-preview --body "{'properties':{'actionableRemediation':{'state':'Enabled','categoryConfigurations':[{'category':'IaC','minimumSeverityLevel':'High'}]}}}"

Mais informações

Passos seguintes

Agora saiba mais sobre a segurança de DevOps.