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 ativar anotações de RP no Microsoft Defender for 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 for Cloud.

Com o Microsoft Defender for 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.

O que são anotações pull request

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.

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 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 for 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 habilitar anotações de solicitação pull no GitHub, seus desenvolvedores ganham a capacidade de ver seus problemas de segurança quando criam um PR diretamente para a ramificação 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 for 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"]
    

    Você também pode visualizar 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 Start commit (Iniciar consolidação).

  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 habilitar anotações de solicitação pull no Azure DevOps, seus desenvolvedores ganham a capacidade de ver seus problemas de segurança quando criam PRs diretamente para a ramificação principal.

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

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

Para habilitar a política de Validação de Compilação para a Compilação de CI:

  1. Entre no seu projeto de DevOps do Azure.

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

    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é Branch Policies>Main branch.

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

  6. Localize a seção Validação de compilação.

  7. Certifique-se de que a validação de compilação para seu repositório esteja ativada.

    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 do Azure.

  2. Navegue até Segurança do Defender for Cloud>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 a alternância ativada.

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

    Nota

    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: URLs PATCH:

  • 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

Corpo do Pedido:

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

Parâmetros / Opções Disponíveis

<ActionableRemediationState>Descrição: Estado das opções de configuração da anotação PR: Ativado | Desabilitado

<Category>Descrição: Categoria de descobertas que serão anotadas em solicitações pull. Opções: IaC | Código | Artefactos | Dependências | Nota de contêineres: Apenas IaC é suportado atualmente

<Severity>Descrição: A gravidade mínima de uma descoberta que será considerada ao criar anotações de RP. Opções: Alta | Médio | Baixo

Exemplo de habilitação das Anotações PR de uma Organização de DevOps do Azure para a categoria IaC com uma severidade mínima de Medium 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 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

Próximos passos

Agora saiba mais sobre a segurança de DevOps.