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

A segurança do DevOps expõe as descobertas de segurança como anotações em PRs (Pull Requests). Os operadores de segurança podem habilitar anotações de PR no Microsoft Defender para Nuvem. Todos os problemas expostos podem ser resolvidos pelos desenvolvedores. Esse processo pode evitar 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 as vulnerabilidades nas diferenças introduzidas durante o pull request em vez de todas as vulnerabilidades detectadas em todo o arquivo. Os desenvolvedores podem ver anotações nos sistemas de gerenciamento de código-fonte e os operadores de segurança podem ver as descobertas não resolvidas no Microsoft Defender para Nuvem.

Com o Microsoft Defender para Nuvem, é possível configurar anotações de PR no Azure DevOps. Se você for um cliente do GitHub Advanced Security, poderá colocar as anotações de PR no GitHub.

O que são anotações de PR

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

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

Pré-requisitos

Para o GitHub:

Para o Azure DevOps:

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

Ao habilitar as anotações de solicitação de pull no GitHub, seus desenvolvedores podem ver os problemas de segurança criando uma PR diretamente no branch principal.

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

  1. Acesse o GitHub e faça logon.

  2. Selecione um repositório integrado ao Defender para Nuvem.

  3. Acesse 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 selecionar o arquivo msdevopssec.yml na tela.

  5. Selecione Editar.

    Captura de tela que mostra a aparência do botão de edição.

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

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

    Você também pode exibir um repositório de exemplo.

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

  7. Selecione Confirmar início.

  8. Selecione Confirmar alterações.

    Os problemas descobertos pelo verificador são exibidos na seção “Arquivos alterados” da solicitação de pull.

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

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

Ao habilitar as anotações de solicitação de pull no Azure DevOps, seus desenvolvedores podem ver os problemas de segurança criando PRs diretamente no branch principal.

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

Antes de habilitar as anotações da solicitação de pull, sua ramificação principal deve ter habilitado a política de validação de build para o build de CI.

Para habilitar a política de validação de build para o build de CI:

  1. Entre em seu projeto do Azure DevOps.

  2. Navegue até Configurações do projeto>Repositórios.

    Captura de tela mostrando como selecionar repositórios.

  3. Selecione o repositório para habilitar as solicitações de pull.

  4. Selecione Políticas.

  5. Acesse Políticas de branch>Branch principal.

    Captura de tela mostrando onde estão as políticas de branch.

  6. Localize a seção “Validação de build”.

  7. Verifique se a validação de build para seu repositório está alternada para Ativado.

    Captura de tela mostrando onde está a alternância do build de CI.

  8. Selecione Salvar.

    Captura de tela mostrando a validação do build.

Depois de seguir essas etapas, selecione o pipeline de build criado anteriormente e personalize as configurações dele de acordo com suas necessidades.

Habilitar as anotações da solicitação de pull

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

  1. Entre no portal do Azure.

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

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

  4. Selecione Gerenciar recursos.

    Captura de tela que mostra como gerenciar recursos.

  5. Alterne as anotações de pull request para Ativado.

    Captura de tela mostrando a alternância para “Ativado”.

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

    Observação

    Atualmente, apenas os resultados das configurações incorretas de Infraestrutura como Código (ARM, Bicep, Terraform, CloudFormation, Dockerfiles, Helm Charts e outros) são compatíveis.

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

  8. Selecione Save.

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

Para habilitar as anotações de pull request para meus Projetos e Organizações no Azure DevOps:

Você pode fazer isso programaticamente chamando a API de Recurso do Azure DevOps de Atualização exposta pela Microsoft. Provedor de recursos de segurança.

Informações sobre a API:

Método HTTP: URLs de PATCH:

  • Atualização do projeto do 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 do Azure DevOps]: https://management.azure.com/subscriptions/<subId>/resourcegroups/<resourceGroupName>/providers/Microsoft.Security/securityConnectors/<connectorName>/devops/default/azureDevOpsOrgs/<adoOrgName>?api-version=2023-09-01-preview

Corpo da solicitação:

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

Parâmetros/opções disponíveis

<ActionableRemediationState>Descrição: Estado da Configuração de Anotação do PR Opções: Habilitado | Desabilitado

<Category>Descrição: categoria de descobertas que serão anotadas em pull requests. Opções: IaC | Código | Artefatos | Dependências | Contêineres Observação: no momento, só há suporte para IaC

<Severity>Descrição: a gravidade mínima de uma descoberta que será considerada ao criar anotações de PR. Opções: Alta | Média | Baixa

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

Atualizar 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 de PR de um projeto do Azure DevOps para a categoria IaC com uma gravidade 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'}]}}}"

Saiba mais

Próximas etapas

Agora, saiba mais sobre a segurança do DevOps.