Skip to main content

Sobre alertas de digitalização de códigos

Aprenda os diferentes tipos de alertas de varredura de códigos e as informações que ajuda você a entender o problema nos destaques de cada alerta.

Quem pode usar esse recurso?

Usuários com com acesso para gravação

O Code scanning está disponível para os seguintes tipos de repositório:

  • Repositórios públicos no GitHub.com
  • Repositórios de propriedade da organização em GitHub Team, GitHub Enterprise Cloudou GitHub Enterprise Server, com GitHub Code Security habilitados.

Sobre alertas de code scanning

Você pode configurar code scanning para verificar o código em um repositório usando a análise padrão CodeQL , uma análise de terceiros ou vários tipos de análise. Quando a análise for concluída, os alertas resultantes serão exibidos lado a lado na visualização de segurança do repositório. Os resultados de ferramentas de terceiros ou de consultas personalizadas podem não incluir todas as propriedades que você vê para alertas detectados pela análise padrão do GitHubCodeQL. Para saber mais, confira Como definir a configuração padrão da verificação de código e Como definir a configuração avançada para verificação de código.

Por padrão, code scanning analisa seu código periodicamente no branch padrão e durante solicitações de pull. Para saber mais sobre como gerenciar alertas em uma solicitação de pull, consulte Alertas de varredura de código de triagem em pull requests.

Você pode usar Correção Automática do GitHub Copilot para automaticamente gerar correções para alertas de code scanning, incluindo os alertas de CodeQL. Para saber mais, confira Resolver alertas de varredura de código.

Com uma GitHub Copilot Enterprise licença, você também pode solicitar Copilot Chat do GitHub ajuda para entender melhor os alertas de segurança, incluindo code scanning alertas nos repositórios da sua organização. Para saber mais, confira Fazer perguntas ao GitHub Copilot no GitHub.

Para code scanning obter alertas da análise do CodeQL, você pode usar a visão geral de segurança para ver como o CodeQL está executando solicitações de pull em repositórios em que você tem acesso de gravação em sua organização e identificar repositórios em que talvez seja necessário executar uma ação. Para saber mais, confira Métricas de alerta de solicitação de pull do CodeQL.

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

Sobre os detalhes do alerta

Cada alerta destaca um problema com o código e o nome da ferramenta que o identificou. Você pode ver a linha de código que acionou o alerta, bem como propriedades do alerta, por exemplo, a gravidade do alerta, a gravidade da segurança e a natureza do problema. Os alertas também informam quando o problema foi introduzido pela primeira vez. Para alertas identificados pela CodeQL análise, você também verá informações sobre como corrigir o problema.

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. A seção Development mostra branches vinculados e pull requests que corrigirão o alerta.

Captura de tela de um alerta de code scanning, inclui o título do alerta, linhas de código relevantes à esquerda, metadados à direita.

Você também pode exibir branches afetados, bem como correções e pull requests associadas, para um alerta. Isso ajuda você e sua equipe a permanecer informados sobre o progresso da correção de alertas.

Captura de tela da seção "Development" de um alerta de code scanning. Ela inclui um título de uma pull request que pode corrigir o alerta.

Se você configurar code scanning usando CodeQL, também poderá encontrar problemas de fluxo de dados em seu código. A análise do fluxo de dados encontra potenciais problemas de segurança no código, tais como: usar dados de forma insegura, passar argumentos perigosos para funções e vazar informações confidenciais.

Quando code scanning relata alertas de fluxo de dados, GitHub mostra como os dados percorrem o código. Code scanning permite identificar as áreas do código que vazam informações confidenciais e que podem ser o ponto de entrada para ataques de usuários mal-intencionados.

Para monitorar o trabalho de correção no fluxo de trabalho da sua equipe sem precisar sair de GitHub, você pode vincular alertas a problemas. Consulte Vinculando alertas de verificação de código a problemas de GitHub.

Sobre alertas de múltiplas configurações

Você pode executar várias configurações de análise de código em um repositório usando diferentes ferramentas e tendo como destino diferentes linguagens ou áreas do código. Cada configuração code scanning gera um conjunto exclusivo de alertas. Por exemplo, um alerta gerado usando a análise padrão CodeQL com GitHub Actions vem de uma configuração diferente da de um alerta gerado externamente e carregado por meio da API code scanning.

Se você usar várias configurações para analisar um arquivo, os problemas detectados pela mesma consulta serão relatados como gerados por várias configurações. Se houver um alerta em mais de uma configuração, o número de configurações aparecerá ao lado do nome do branch na seção "Branches afetados" no lado direito da página de alertas. Para ver as configurações de um alerta, na seção "Branches afetados", clique em um branch. Uma caixa de diálogo modal "Configurações analisando" aparecerá com os nomes de cada configuração que está gerando o alerta para o respectivo branch. Abaixo de cada configuração, você poderá ver quando o alerta dessa configuração foi atualizado pela última vez.

Um alerta pode exibir status diferentes de configurações diferentes. Para atualizar os status do alerta, execute novamente cada configuração desatualizada. Como alternativa, você pode excluir configurações obsoletas de um branch para remover alertas desatualizados. Para saber mais sobre como excluir configurações e alertas desatualizados, consulte Resolver alertas de varredura de código.

Sobre etiquetas para alertas não encontrados no código do aplicativo

          GitHub atribui um rótulo de categoria a alertas que não são encontrados no código do aplicativo. A etiqueta está relacionado à localização do alerta.
  • Gerado: código gerado pelo processo de build

  • Teste: código de teste

  • Biblioteca: biblioteca ou código de terceiros

  • Documentação: documentação

            Code scanning categoriza arquivos por caminho de arquivo. Você não pode categorizar manualmente os arquivos de origem.
    

Neste exemplo, um alerta é marcado como no código "Teste" na code scanning lista de alertas.

Captura de tela de um alerta na lista da code scanning. À direita do título, um rótulo "Teste" está realçado com um contorno laranja escuro.

Ao clicar no link para ver os detalhes do alerta, você poderá ver que o caminho do arquivo está marcado como código de "Teste".

Captura de tela que mostra os detalhes de um alerta. O caminho do arquivo e o rótulo "Teste" estão realçados com um contorno laranja escuro.

Observação

Os alertas experimentais para code scanning estavam disponíveis em uma versão versão prévia pública do JavaScript usando tecnologia experimental na ação CodeQL. Esse recurso foi descontinuado. Para obter mais informações, consulte CodeQLcode scanning substitui os alertas de ML obsoletos.

Sobre gravidade de alertas e níveis de gravidade de segurança

O nível de gravidade de um code scanning alerta indica quanto risco o problema adiciona à sua base de código.

  •         **Gravidade.** Todos os code scanning alertas têm um nível de `Error`, `Warning`ou `Note`.
    
  •         **Gravidade de segurança.** Cada alerta de segurança encontrado usando CodeQL também tem um nível de severidade de segurança de`Critical`, , `High`ou `Medium``Low`.
    

Quando um alerta tem um nível de severidade de segurança, code scanning exibe e usa esse nível em preferência ao severity. Os níveis de gravidade de segurança seguem o CVSS (Common Vulnerability Score System) padrão do setor que também é usado para avisos no GitHub Advisory Database. Para obter mais informações, consulte CVSS: Escala de avaliação qualitativa da gravidade.

Cálculo dos níveis de gravidade de segurança

Quando uma consulta de segurança é adicionada ao CodeQL pacote de consultas Padrão ou Estendido, a CodeQL equipe de engenharia calcula a gravidade de segurança da seguinte maneira.

  1. Procure todos os CVEs aos quais é atribuída uma ou mais marcas CWE associadas à nova consulta de segurança.
  2. Calcule o percentil 75 da pontuação CVSS para esses CVEs.
  3. Defina essa pontuação como a gravidade de segurança para a consulta.
  4. Ao exibir alertas encontrados pela consulta, converta as pontuações numéricas em Critical, High, Medium ou Low usando as definições do CVSS.

Para obter mais informações, consulte CodeQL a cobertura do CWE no site de documentação CodeQL.

Sobre os alertas em pull requests

          Code scanning os alertas podem aparecer em solicitações de pull como resultados de verificação e anotações. Isso acontece em repositórios em que code scanning:
  • É configurada como uma verificação de pull request (por padrão, isso é limitado às pull requests direcionadas à ramificação padrão)
  • Está configurado para realizar escaneamento sempre que o código é enviado por push (os resultados são associados a qualquer solicitação de pull aberta)

Você só verá um alerta em uma solicitação de pull se todas as linhas de código identificadas pelo alerta existirem no diff da solicitação de pull.

Dependendo das regras de proteção da ramificação, a verificação de "resultados Code scanning" pode ser uma verificação necessária que impede que as solicitações de pull sejam mescladas até que ela seja aprovada.