Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A Segurança Avançada do GitHub para Azure DevOps adiciona o pacote de recursos de segurança do GitHub Advanced Security ao Azure Repos e inclui os seguintes recursos:
- Proteção por push de verificação secreta: verifique se os pushes de código incluem confirmações que expõem segredos como credenciais
- Verificação de repositório de verificação secreta: examine seu repositório e procure segredos expostos que foram confirmados acidentalmente
- Verificação de dependência – procure vulnerabilidades conhecidas em dependências de software livre (diretas e transitivas)
- Verificação de código – use o motor de análise estática CodeQL para identificar vulnerabilidades de código no nível do aplicativo, como injeção de SQL e bypass de autenticação
Você pode trazer a proteção da Segurança Avançada para sua empresa com a flexibilidade para habilitar o nível certo de proteção para seus repositórios. A Segurança Avançada do GitHub para Azure DevOps está disponível como a Proteção Secreta do GitHub para Azure DevOps e o GitHub Code Security para Azure DevOps.
A Proteção de Segredo inclui os seguintes recursos:
- Proteção por push, para evitar vazamentos secretos antes que eles aconteçam
- Alertas secretos de verificação com notificações, para capturar exposições existentes antes que se tornem um problema
- Visão geral de segurança, que fornece insights sobre o nível de proteção de risco e segurança da sua organização
A Segurança de Código inclui os seguintes recursos:
- Alertas de dependência para localizar vulnerabilidades em dependências de software livre
- Verificação de CodeQL, para detectar vulnerabilidades diretamente em seu código
- Descobertas de segurança para ferramentas de terceiros
- Visão geral de segurança, que fornece insights sobre o nível de proteção de risco e segurança da sua organização
A Segurança Avançada do GitHub para Azure DevOps só está disponível para o Azure DevOps Services e especificamente para repositórios Git de código.
O GitHub Advanced Security para Azure DevOps funciona com o Azure Repos. Para usar a Segurança Avançada do GitHub com repositórios do GitHub, consulte a Segurança Avançada do GitHub.
Pré-requisitos
Categoria | Requisitos |
---|---|
Permissões | – Para exibir um resumo de todos os alertas de um repositório: permissões de colaborador para o repositório. – Para ignorar alertas na Segurança Avançada: permissões de administrador do projeto . – Para gerenciar permissões em Segurança Avançada: Membro do grupo Administradores de Coleção de Projetos ou Segurança Avançada: gerenciar a permissão de configurações definida como Permitir. |
Para obter mais informações sobre permissões de Segurança Avançada, consulte Gerenciar permissões de Segurança Avançada.
Pré-requisitos extras para agentes auto-hospedados
Se sua organização usar agentes auto-hospedados, adicione as seguintes URLs à lista de autorização para que a tarefa de verificação de dependências possa buscar dados de avisos de vulnerabilidade. Para obter mais informações, consulte Endereços IP e URLs de domínio permitidos.
URL do domínio | Descrição |
---|---|
https://governance.dev.azure.com |
Para organizações que usam o domínio dev.azure.com para acessar a instância do DevOps |
https://dev.azure.com |
Para organizações que usam o domínio dev.azure.com para acessar a instância do DevOps |
https://advsec.dev.azure.com |
Para organizações que usam o domínio dev.azure.com para acessar a instância do DevOps |
https://{organization_name}.governance.visualstudio.com |
Para organizações que usam o domínio {organization_name}.visualstudio.com para acessar a instância do DevOps |
https://{organization_name}.visualstudio.com |
Para organizações que usam o domínio {organization_name}.visualstudio.com para acessar a instância do DevOps |
https://{organization_name}.advsec.visualstudio.com |
Para organizações que usam o domínio {organization_name}.visualstudio.com para acessar a instância do DevOps |
Execute uma versão compatível do runtime do .NET (atualmente .NET 8.x). Se uma versão compatível não estiver presente no agente, a tarefa de build para verificação de dependências baixará o .NET.
Verifique se o pacote CodeQL está instalado no cache da ferramenta no seu agente. Você pode utilizar a variável
enableAutomaticCodeQLInstall: true
com a tarefa de pipelineAdvancedSecurity-Codeql-Init@1
para pipelines YAML ou marcar a caixa de seleçãoEnable automatic CodeQL detection and installation
para pipelines clássicos. Como alternativa, para obter instruções de instalação manual, consulte Verificação de código do GitHub Advanced Security para Azure DevOps.
Habilitar a Segurança Avançada do GitHub
Você pode habilitar a Segurança Avançada no nível da organização, do projeto ou do repositório. Para acessar cada uma das ferramentas e resultados de verificação, você precisa primeiro habilitar a Segurança Avançada. Depois de habilitar a Segurança Avançada, quaisquer envios futuros contendo segredos para um repositório com essa política habilitada serão bloqueados e a verificação de segredo do repositório ocorrerá em segundo plano.
Integração em nível de repositório
- Vá para as configurações do Projeto para seu projeto do Azure DevOps.
- Selecione Repos>Repositories.
- Selecione o repositório para o qual você deseja habilitar a Segurança Avançada.
- Selecione Habilitar e Iniciar cobrança para ativar a Segurança Avançada. Um ícone de escudo agora aparece no modo de exibição do repositório para qualquer repositório com a Segurança Avançada habilitada.
Integração em nível de projeto
- Vá para as configurações do Projeto para seu projeto do Azure DevOps.
- Selecione Repositório.
- Selecione a guia Settings (Configurações).
- Selecione Habilitar tudo para ver uma estimativa do número de confirmadores ativos do seu projeto.
- Selecione Iniciar cobrança para ativar a Segurança Avançada para cada repositório existente em seu projeto.
- Opcionalmente, selecione Habilitar automaticamente a Segurança Avançada para novos repositórios para que todos os repositórios recém-criados tenham a Segurança Avançada habilitada no momento da criação.
Integração em nível de organização
- Acesse Configurações da organização para sua organização do Azure DevOps.
- Selecione Repositórios.
- Selecione Habilitar tudo e veja uma estimativa do número de colaboradores ativos da sua organização.
- Selecione Iniciar cobrança para ativar a Segurança Avançada para todos os repositórios existentes em cada projeto da sua organização.
- Opcionalmente, selecione Habilitar automaticamente a Segurança Avançada para novos repositórios para que todos os projetos recém-criados tenham a Segurança Avançada habilitada no momento da criação.
Configurar a verificação secreta
A proteção por push de verificação secreta e a verificação de repositório são habilitadas automaticamente quando você ativa a Segurança Avançada. Você pode habilitar ou desabilitar a proteção por push secreta da página de configurações do repositório.
A varredura de segredos no repositório é iniciada automaticamente ao ativar a Segurança Avançada para um repositório selecionado.
Configurar a verificação de dependência
Você pode habilitar a Proteção secreta ou a Segurança de Código no nível da organização, do projeto ou do repositório.
Integração em nível de repositório
- Vá para as configurações do Projeto para seu projeto do Azure DevOps.
- Selecione Repos>Repositories.
- Selecione o repositório para o qual você deseja habilitar a Segurança Avançada.
- Alterne a Proteção secreta ou a Segurança de Código.
- Selecione Iniciar cobrança. Um ícone de escudo agora aparece no modo de exibição do repositório para qualquer repositório com qualquer produto habilitado.
- Para habilitar opcionalmente a configuração padrão de verificação de dependência, selecione Opções e habilite a caixa de seleção de configuração padrão de verificação de dependência.
Integração em nível de projeto
- Vá para as configurações do Projeto para seu projeto do Azure DevOps.
- Selecione Repositório.
- Selecione a guia Settings (Configurações).
- Selecione Habilitar tudo e veja uma estimativa para o número de colaboradores ativos por produto aparecer para o seu projeto.
- Alterne os produtos desejados da Proteção Secreta ou da Segurança de Código.
- Selecione Iniciar cobrança para ativar a Proteção Secreta e/ou a Segurança de Código para cada repositório existente em seu projeto.
- Opcionalmente, alterne a opção Habilitar automaticamente a Segurança Avançada para novos repositórios para que quaisquer repositórios recém-criados tenham Proteção Secreta ou Segurança de Código ativadas na criação.
Integração em nível de organização
- Acesse Configurações da organização para sua organização do Azure DevOps.
- Selecione Repositórios.
- Selecione Habilitar tudo e veja a estimativa do número de confirmadores ativos por produto aparecer para sua organização.
- Alterne os produtos desejados da Proteção Secreta ou da Segurança de Código.
- Selecione Iniciar cobrança para ativar a Segurança Avançada para todos os repositórios existentes em cada projeto da sua organização.
- Opcionalmente, ative a opção Habilitar automaticamente Segurança Avançada para novos repositórios para que qualquer novo projeto criado tenha Proteção de Segredos ou Segurança de Código habilitada na criação.
Configurar a verificação secreta
A proteção por push de verificação secreta e a verificação de repositório são habilitadas automaticamente quando você ativa a Proteção Secreta. Você pode habilitar ou desabilitar a proteção por push secreta da página de configurações do repositório.
Conforme mencionado, a verificação de segredos no repositório é iniciada automaticamente ao habilitar a Proteção de Segredos para um repositório selecionado.
Configurar a verificação de dependência
Para obter acesso aos recursos de verificação de dependência, você precisa do produto code security habilitado para seu repositório.
A verificação de dependência é uma ferramenta de verificação baseada em pipeline. Os resultados são agregados por repositório. Recomendamos que você adicione a tarefa de verificação de dependência a todos os pipelines que deseja examinar.
Dica
Para obter os resultados de verificação mais precisos, adicione a tarefa de verificação de dependência após as etapas de build ou a etapa de restauração do pacote em um pipeline que compila o código que você deseja examinar.
Adicione a tarefa Advanced Security Dependency Scanning (AdvancedSecurity-Dependency-Scanning@1) diretamente ao seu arquivo de pipeline YAML ou selecione a tarefa Advanced Security Dependency Scanning a partir do assistente de tarefas.
Configurar a verificação de código
Para obter acesso aos recursos de verificação de código, você precisa do produto code security habilitado para seu repositório.
A verificação de código também é uma ferramenta de verificação baseada em pipeline em que os resultados são agregados por repositório.
Dica
A verificação de código pode ser uma tarefa de build que pode consumir mais tempo, portanto, recomendamos que você adicione a tarefa de verificação de código a um pipeline clonado e separado do pipeline de produção principal ou crie um novo pipeline.
Adicione as tarefas na seguinte ordem:
- Inicialização do CodeQL com Segurança Avançada (AdvancedSecurity-Codeql-Init@1)
- Suas etapas de compilação personalizada
- Executar Segurança Avançada de Análise do CodeQL (AdvancedSecurity-Codeql-Analyze@1)
Além disso, especifique qual idioma você está analisando na Initialize CodeQL
tarefa. Você pode usar uma lista separada por vírgulas para analisar vários idiomas ao mesmo tempo. As linguagens com suporte são csharp, cpp, go, java, javascript, python, ruby, swift
. Se você estiver utilizando agentes auto-hospedados, também poderá adicionar a enableAutomaticCodeQLInstall: true
variável para instalar automaticamente os bits CodeQL mais recentes para o agente.
Aqui está um exemplo de pipeline inicial:
trigger:
- main
pool:
# Additional hosted image options are available: https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted#software
vmImage: ubuntu-latest
steps:
- task: AdvancedSecurity-Codeql-Init@1
inputs:
languages: "java"
# Supported languages: csharp, cpp, go, java, javascript, python, ruby, swift
# You can customize the initialize task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-codeql-init-v1?view=azure-pipelines
# If you're using a self-hosted agent to run CodeQL, use `enableAutomaticCodeQLInstall` to automatically use the latest CodeQL bits on your agent:
enableAutomaticCodeQLInstall: true
# Add your custom build steps here
# - Ensure that all code to be scanned is compiled (often using a `clean` command to ensure you're building from a clean state).
# - Disable the use of any build caching mechanisms as this can interfere with CodeQL's ability to capture all the necessary data during the build.
# - Disable the use of any distributed/multithreaded/incremental builds as CodeQL needs to monitor executions of the compiler to construct an accurate representation of the application.
# - For dependency scanning, ensure you have a package restore step for more accurate results.
# If you had a Maven app:
# - task: Maven@4
# inputs:
# mavenPomFile: 'pom.xml'
# goals: 'clean package'
# publishJUnitResults: true
# testResultsFiles: '**/TEST-*.xml'
# javaHomeOption: 'JDKVersion'
# jdkVersionOption: '1.17'
# mavenVersionOption: 'Default'
# Or a general script:
# - script: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh
- task: AdvancedSecurity-Dependency-Scanning@1 # More details on this task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-dependency-scanning-v1?view=azure-pipelines
- task: AdvancedSecurity-Codeql-Analyze@1 # More details on this task: https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/advanced-security-codeql-analyze-v1?view=azure-pipelines
Dica
A análise de CodeQL para Kotlin/Swift está atualmente em beta. Durante o beta, a análise desses idiomas é menos abrangente do que a análise CodeQL de outros.
- Use
java
para analisar o código escrito em Java, Kotlin ou ambos. - Use
javascript
para analisar o código escrito em JavaScript, TypeScript ou ambos.
Se o idioma especificado for cpp, java, csharp
ou swift
, as etapas de build personalizadas são necessárias.
Configurar as anotações da solicitação de pull
No caso de verificação da dependência e verificação de código, as anotações são configuradas automaticamente para solicitações de pull onde uma política de validação de compilação aplica-se com tarefas de verificação de dependência e/ou verificação de código incluídas em seu pipeline. Para obter mais informações sobre configurar políticas de validação de compilação, consulte Validação de compilação.
As anotações de solicitação de pull também requerem uma verificação de Segurança Avançada na ramificação padrão e na ramificação de destino antes de verificar a ramificação de origem (solicitação de pull). Para obter mais informações sobre como resolver alertas de ramificações de solicitação de pull, consulte Gerenciamento alertas de verificação de dependência em solicitações de pull e Gerenciamento alertas de verificação de código em solicitações de pull.
Para desabilitar a Segurança Avançada, todos os alertas e o estado dos alertas são mantidos na guia Segurança Avançada para a próxima vez que você habilitar novamente a Segurança Avançada para seu repositório.
Artigos relacionados
- Alertas de verificação de código para o GitHub Advanced Security para Azure DevOps
- Alertas de análise de dependência para GitHub Advanced Security para Azure DevOps
- Alertas de verificação secretos para o GitHub Advanced Security para Azure DevOps
- Permissões para o GitHub Advanced Security para Azure DevOps
- Cobrar o GitHub Advanced Security para Azure DevOps