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.

Who can use this feature?

A Code scanning está disponível para todos os repositórios públicos do GitHub.com. A Code scanning também está disponível em repositórios privados pertencentes às organizações que usam o GitHub Enterprise Cloud e que têm uma licença do GitHub Advanced Security. Para obter mais informações, confira "Sobre a Segurança Avançada do GitHub".

Sobre os alertas de code scanning

Você pode configurar code scanning para verificar o código em um repositório usando a análise-padrão de 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 CodeQL de GitHub. 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 da verificação de código".

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

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".

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 os alertas identificados pela análise do CodeQL , 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.

Captura de tela mostrando os elementos de um alerta da code scanning, incluindo o título do alerta, as linhas de código relevantes à esquerda e o nível de severidade, os branches afetados e os pontos fracos à direita. Se você configurar code scanning usando CodeQL, também poderá encontrar problemas no fluxo de dados no 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 se movem através do código. A Code scanning permite que você identifique as áreas do seu código que vazam informações confidenciais e que poderiam ser o ponto de entrada para ataques de usuários maliciosos.

Sobre alertas de várias 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 do code scanning gera um conjunto exclusivo de alertas. Por exemplo, um alerta gerado usando a análise padrão do CodeQL com o GitHub Actions vem de uma configuração diferente de um alerta gerado externamente e carregado por meio da API do 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 obter mais informações sobre como excluir configurações e alertas obsoletos, consulte "Gerenciamento de alertas de varredura de código para seu repositório".

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

GitHub atribui uma etiqueta de categoria para 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

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

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

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 da code scanning estavam disponíveis em uma versão beta do JavaScript com tecnologia experimental na ação de CodeQL. Este recurso foi preterido e desativado. Para obter mais informações, confira A CodeQL code scanning descontinua alertas baseados em ML.

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

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

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

Quando um alerta tem um nível de gravidade de segurança, o code scanning exibe e usa esse nível em preferência ao severity. Os níveis de gravidade de segurança seguem o Common Vulnerability Scoring System (CVSS) 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.

Falhas na verificação de pull requests para alertas do code scanning

Quando você habilita o code scanning em pull requests, a verificação falhará somente se um ou mais alertas de gravidade error, ou gravidade de segurança critical ou high forem detectados. A verificação será bem-sucedida se forem detectados alertas com gravidades ou gravidades de segurança mais baixas. Para bases de código importantes, convém que a verificação do code scanning falhe se algum alerta for detectado, de modo que o alerta deve ser corrigido ou descartado antes que a alteração de código seja mesclada. Para obter mais informações sobre níveis de gravidade, consulte "Sobre a gravidade de alertas e níveis de gravidade de segurança".

Você pode editar quais níveis de alertas de gravidade e gravidade de segurança causam uma falha de verificação. Para obter mais informações, confira "Editar as definições da configuração padrão."

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

Quando uma consulta de segurança é adicionada ao conjunto de consultas padrão ou estendido do CodeQL, a equipe de engenharia do CodeQL 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 Cobertura de CWE do CodeQL no site de documentação do CodeQL.