Skip to main content

Gerenciamento de alertas de varredura de código para seu repositório

Na visualização de segurança, você pode exibir, corrigir ou descartar alertas de possíveis vulnerabilidades ou erros no código do seu projeto.

Quem pode usar esse recurso?

If you have write permission to a repository you can manage code scanning alerts for that repository.

A Code scanning está disponível para todos os repositórios públicos do GitHub.com. Para usar code scanning em um repositório privado pertencente a uma organização, você precisa ter um licença do GitHub Advanced Security. Para obter mais informações, confira "Sobre a Segurança Avançada do GitHub".

Visualizar os alertas de um repositório

Qualquer pessoa com permissão de leitura para um repositório pode ver anotações de code scanning em pull requests. Para obter mais informações, confira "Alertas de varredura de código de triagem em pull requests".

Você precisa ter a permissão de gravação para ver um resumo de todos os alertas de um repositório na guia Segurança.

Por padrão, os alertas do code scanning são filtrados para mostrar somente alertas para o branch padrão do repositório.

  1. No GitHub.com, navegue até a página principal do repositório.

  2. Abaixo do nome do repositório, clique em Segurança. Caso não consiga ver a guia "Segurança", selecione o menu suspenso e clique em Segurança.

    Captura de tela de um cabeçalho de repositório que mostra as guias. A guia "Segurança" é realçada por um contorno laranja escuro.

  3. Na barra lateral, clique em Code scanning.

  4. Opcionalmente, use a caixa de pesquisa de texto livre ou os menus suspensos para filtrar alertas. Por exemplo, você pode filtrar pela ferramenta usada para identificar alertas.

    Captura de tela da página de alertas code scanning. A caixa de pesquisa e os menus suspensos de filtro são delineados em laranja escuro.

  5. Em "Code scanning", clique no alerta que deseja explorar para ver a página do alerta detalhado. O status e os detalhes na página de alerta refletem apenas o estado do alerta no branch padrão do repositório, mesmo que o alerta exista em outros branches. Você pode ver o status do alerta em branches não padrão na seção Branches afetados no lado direito da página de alerta. Se um alerta não existir no branch padrão, o status do alerta será exibido como "na solicitação de pull" ou "no branch" e será cinza.

  6. Opcionalmente, se o alerta realçar um problema com o fluxo de dados, clique em Mostrar caminhos para exibir o caminho da fonte de dados até o coletor em que é usado.

    Captura de tela de um alerta da code scanning. O link "Mostrar caminhos" está realçado com um contorno laranja escuro. O link "Mostrar mais", descrito na próxima etapa, também está realçado.

  7. Alertas da análise de CodeQL incluem uma descrição do problema. Clique em Mostrar mais para obter diretrizes sobre como corrigir o código.

Para obter mais informações, confira "Sobre alertas de digitalização de códigos".

Observação: você pode ver informações sobre quando a análise da code scanning foi executada pela última vez na página do status da ferramenta. Para obter mais informações, confira "Sobre a página de status da ferramenta para a verificação de código".

Filtrando alertas de code scanning

Você pode filtrar os alertas exibidos no modo de exibição de alertas de code scanning. Isso é útil caso haja muitos alertas pois você pode se concentrar em um determinado tipo de alerta. Existem alguns filtros predefinidos e uma série de palavras-chave que você pode usar para refinar a lista de alertas exibidos.

Quando você seleciona uma palavra-chave em uma lista suspensa ou ao inserir uma palavra-chave no campo de pesquisa, somente os valores com resultados são mostrados. Isso facilita evitar a configuração de filtros que não encontram nenhum resultado.

Captura de tela do campo de pesquisa na exibição de alertas da code scanning. O usuário digitou "branch:dependabot" no campo. Os nomes de todos os branches válidos com um nome, incluindo "dependabot", são mostrados em um menu suspenso.

Se você inserir vários filtros, a exibição mostrará os alertas que correspondem a todos esses filtros. Por exemplo, is:closed severity:high branch:main exibirá apenas os alertas de alta gravidade fechados presentes no branch main. A exceção a isso são filtros relacionados a referências (ref, branch e pr): is:open branch:main branch:next mostrará os alertas abertos dos branches maine next.

Observe que, se você tiver filtrado os alertas em um branch não padrão, mas os mesmos alertas existirem no branch padrão, a página de qualquer alerta especificado ainda refletirá apenas o status do alerta no branch padrão, mesmo que esse status entre em conflito com o status em um branch não padrão. Por exemplo, um alerta exibido na lista "Abrir" no resumo dos alertas de branch-x pode mostrar o status "Corrigido" na página do alerta, caso o alerta já esteja corrigido no branch padrão. Veja o status do alerta para o branch na seção Branches afetados no lado direito da página de alerta.

Você pode preceder o filtro tag com - para excluir os resultados com essa marca. Por exemplo, -tag:style mostra apenas alertas que não têm a tag style.

Restringir resultados apenas ao código do aplicativo

Use o filtro "Apenas alertas no código do aplicativo" ou a palavra-chave autofilter:true e o valor para restringir os resultados aos alertas no código do aplicativo. Para obter mais informações sobre os tipos de código que são rotulados automaticamente como código que não é de aplicativo, confira "Sobre alertas de digitalização de códigos".

Pesquisando alertas de code scanning

Você pode pesquisar na lista de alertas. Isso é útil se houver um grande número de alertas no seu repositório, ou, por exemplo, se você não souber o nome exato de um alerta. GitHub Enterprise Cloud realiza a pesquisa de texto livre:

  • O nome do alerta
  • Os detalhes do alerta (isso também inclui as informações ocultas da exibição por padrão na seção recolhível Mostrar mais)
Pesquisa compatívelExemplo de sintaxeResultados
Pesquisa de uma palavrainjectionRetorna todos os alertas que contêm a palavra injection
Pesquisa de múltiplas palavrassql injectionRetorna todos os alertas que contêm sql ou injection
Pesquisa de correspondência exata
(use aspas duplas)
"sql injection"Retorna todos os alertas que contêm a frase exata sql injection
OU pesquisasql OR injectionRetorna todos os alertas que contêm sql ou injection
Pesquisa Esql AND injectionRetorna todos os alertas que contêm palavras sql e injection

Dicas:

  • A busca múltipla de palavras é equivalente a uma busca OU.
  • A pesquisa AND retornará resultados em que os termos da pesquisa são encontrados em qualquer lugar e em qualquer ordem no nome ou nos detalhes do alerta.
  1. No GitHub.com, navegue até a página principal do repositório.
  2. Abaixo do nome do repositório, clique em Segurança. Caso não consiga ver a guia "Segurança", selecione o menu suspenso e clique em Segurança.
    Captura de tela de um cabeçalho de repositório que mostra as guias. A guia "Segurança" é realçada por um contorno laranja escuro.
  3. Na barra lateral, clique em Code scanning.
  4. À direita dos menus suspensos Filtros, digite as palavras-chave a serem pesquisadas na caixa de pesquisa de texto livre.
    Captura de tela do campo de pesquisa na exibição de alertas da code scanning. O campo inclui os filtros predefinidos "is: open branch:main". O texto livre "sql ou injeção" está realçado em laranja escuro.
  5. Pressione Retornar. O anúncio do alerta conterá os alertas code scanning alertas abertos correspondentes aos seus critérios de busca.

Rastreando alertas de code scanning em problemas

Observação: o acompanhamento dos alertas da code scanning em problemas está em versão beta e sujeito a alterações.

Esse recurso dá suporte à execução de análise nativamente por meio do GitHub Actions ou externamente por meio da infraestrutura de CI/CD existente, bem como ferramentas da code scanning de terceiros, mas não ferramentas de acompanhamento de terceiros.

Para criar rapidamente um problema para controlar o status de um alerta específico de code scanning, na página de alertas code scanning, clique no alerta que você deseja acompanhar. Na página detalhada desse alerta, clique em Criar issue. Personalize o issue gerado automaticamente conforme desejado e clique em Enviar novo issue.

Como alternativa, para acompanhar um alerta de code scanning em um problema existente, adicione a URL do alerta como um item da lista de tarefas no problema. Para obter mais informações sobre listas de tarefas, confira "Sobre listas de tarefas".

Para obter mais informações sobre como criar problemas para rastrear os alertas da code scanning, confira "Rastreamento código de alerta em problemas que usam listas de tarefas."

Corrigir um alerta

Qualquer pessoa com permissão de gravação para um repositório pode corrigir um alerta, fazendo o commit de uma correção do código. Se o repositório tiver code scanning agendado para ser executado em pull requests, recomenda-se registrar um pull request com sua correção. Isso ativará a análise de code scanning referente às alterações e irá testar se sua correção não apresenta nenhum problema novo. Para obter mais informações, confira "Personalizando a configuração avançada para varredura de código" e "Alertas de varredura de código de triagem em pull requests."

Se você tem a permissão de gravação em um repositório, visualize os alertas corrigidos vendo o resumo de alertas e clicando em Fechados. Para obter mais informações, confira "Como ver os alertas de um repositório". A lista "Fechado" mostra alertas e alertas corrigidos que os usuários ignoraram.

Você pode usar a pesquisa de texto livre ou os filtros para ver um subconjunto de alertas e depois marcar todos os alertas correspondentes como fechados.

Alertas podem ser corrigidos em um branch, mas não em outro. Você pode usar o filtro "Branch", no resumo dos alertas, para verificar se um alerta é corrigido em um branch específico.

Captura de tela do campo de pesquisa na code scanning, com o menu suspenso "Branch" expandido. O botão "Branch" está realçado em laranja escuro.

Observe que, se você tiver filtrado os alertas em um branch não padrão, mas os mesmos alertas existirem no branch padrão, a página de qualquer alerta especificado ainda refletirá apenas o status do alerta no branch padrão, mesmo que esse status entre em conflito com o status em um branch não padrão. Por exemplo, um alerta exibido na lista "Abrir" no resumo dos alertas de branch-x pode mostrar o status "Corrigido" na página do alerta, caso o alerta já esteja corrigido no branch padrão. Veja o status do alerta para o branch na seção Branches afetados no lado direito da página de alerta.

Observação: Se você executar a code scanning usando várias configurações, às vezes, o mesmo alerta será gerado por mais de uma configuração. A menos que você execute todas as configurações regularmente, talvez você veja os alertas corrigidos em uma configuração, mas não em outra. Essas configurações e alertas obsoletos podem ser removidos de um branch. Para obter mais informações, confira "Como remover configurações e alertas obsoletos de um branch".

Ignorar alertas

Há duas formas de fechar um alerta. Você pode corrigir o problema no código ou pode ignorar o alerta.

Ignorar um alerta é uma maneira de fechar um alerta que você não acha que precisa ser corrigido. Por exemplo, um erro no código que é usado apenas para testes ou quando o esforço de corrigir o erro é maior do que o benefício potencial de melhorar o código. Você pode ignorar alertas de anotações da code scanning no código ou na lista de resumo na guia Segurança.

Ao descartar um alerta:

  • Ele é ignorado em todos os branches.
  • O alerta é removido do número de alertas atuais para o seu projeto.
  • O alerta é movido para a lista "Fechado" no resumo dos alertas, onde você pode reabri-lo, se necessário.
  • O motivo pelo qual você fechou o alerta é registrado.
  • Opcionalmente, você pode fazer um comentário para registrar o contexto de um alerta ignorado.
  • Da próxima vez que code scanning for executado, o mesmo código não gerará um alerta.

Para ignorar alertas:

  1. No GitHub.com, navegue até a página principal do repositório.

  2. Abaixo do nome do repositório, clique em Segurança. Caso não consiga ver a guia "Segurança", selecione o menu suspenso e clique em Segurança.

    Captura de tela de um cabeçalho de repositório que mostra as guias. A guia "Segurança" é realçada por um contorno laranja escuro.

  3. Na barra lateral, clique em Code scanning.

  4. Se você deseja ignorar um alerta, é importante explorar primeiro o alerta para que você possa escolher o motivo correto para ignorá-lo. Clique no alerta que você deseja explorar.

  5. Revise o alerta, clique em Ignorar alerta e escolha ou digite um motivo para fechá-lo.

    Captura de tela da falha de verificação para um alerta de code scanning em uma solicitação de pull. O botão "Ignorar alerta" na falha de verificação está realçado em laranja escuro. O menu suspenso "Ignorar alerta" é exibido.
    É importante escolher o motivo apropriado no menu suspenso, pois isso pode afetar se uma consulta continua sendo incluída em análise futura. Opcionalmente, você pode comentar sobre um alerta ignorado para registrar o contexto dele. O comentário sobre o alerta ignorado é adicionado à linha do tempo do alerta e pode ser usado como justificativa em auditorias e relatórios. Você pode recuperar ou definir um comentário usando a API REST de verificação de código. O comentário está contido no dismissed_comment do ponto de extremidade alerts/{alert_number}. Para obter mais informações, confira "Pontos de extremidade da API REST para varredura de código".

    Se você ignorar um alerta de CodeQL como um falso resultado positivo, por exemplo, porque o código usa uma biblioteca de sanitização incompatível, considere contribuir para o repositório de CodeQL e melhorar a análise. Para obter mais informações sobre CodeQL, confira "Contribuir para CodeQL".

Ignorar múltiplos alertas de uma vez

Se um projeto tem vários alertas que você deseja ignorar pelo mesmo motivo, você pode ignorá-los em massa do resumo de alertas. Normalmente, você pode querer filtrar a lista e, em seguida, ignorar todos os alertas correspondentes. Por exemplo, você pode querer ignorar todos os alertas atuais no projeto que foram marcados para uma vulnerabilidade específica de Enumeração de Fraqueza Comum (CWE).

Reabertura de alertas descartados

Se você descartar um alerta, mas depois perceber que precisa corrigi-lo, poderá reabri-lo e corrigir o problema com o código. Exiba a lista de alertas fechados, localize o alerta, exiba-o e abra-o novamente. Em seguida, você pode corrigir o alerta da mesma forma que qualquer outro alerta.

Como remover configurações obsoletas e alertas de um branch

Você pode ter várias configurações de verificação de código em um repositório individual. Quando executadas, várias configurações podem gerar o mesmo alerta. Além disso, se as configurações forem executadas em agendamentos diferentes, os status do alerta poderão ficar desatualizados para configurações pouco frequentes ou obsoletas. Para obter mais informações sobre alertas de várias configurações, confira "Sobre alertas de digitalização de códigos".

  1. No GitHub.com, navegue até a página principal do repositório.

  2. Abaixo do nome do repositório, clique em Segurança. Caso não consiga ver a guia "Segurança", selecione o menu suspenso e clique em Segurança.

    Captura de tela de um cabeçalho de repositório que mostra as guias. A guia "Segurança" é realçada por um contorno laranja escuro.

  3. Na barra lateral, clique em Code scanning.

  4. Em "Code scanning", clique em um alerta da code scanning.

  5. Na seção "Branches afetados" da barra lateral, clique no branch desejado.

  6. Na caixa de diálogo "Análise de configurações", revise os detalhes das configurações que relataram esse alerta no branch selecionado. Para excluir uma configuração indesejada para o branch desejado, clique em .

    Se você excluir uma configuração por engano, clique em Cancelar para evitar aplicar as alterações.

    Captura de tela do modal "Análise de configurações". O ícone "Excluir configuração" é contornado em laranja escuro.

  7. Depois de remover as configurações indesejadas e confirmar que as configurações esperadas são exibidas, clique em Salvar alterações.

    Se você salvar as alterações depois de excluir acidentalmente uma configuração, execute novamente a configuração para atualizar o alerta. Para obter mais informações sobre como executar novamente as configurações que usam o GitHub Actions, confira "Reexecutando fluxos de trabalho e trabalhos".

Observações:

  • Se você remover todas as configurações da code scanning para o branch padrão do repositório, o branch padrão permanecerá na barra lateral "Branches afetados", mas não será analisado por nenhuma configuração.
  • Se você remover todas as configurações da code scanning para qualquer branch diferente do branch padrão do repositório, esse branch será removido da barra lateral "Branches afetados".

Como auditar as respostas aos alertas da code scanning

Você pode auditar as ações executadas em resposta aos alertas do code scanning usando as ferramentas do GitHub. Para obter mais informações, confira "Alertas de segurança de auditoria".

Leitura adicional