Observação: o administrador do site precisa habilitar o code scanning para o sua instância do GitHub Enterprise Server a fim de que seja possível usar esse recurso. Para obter mais informações, confira "Configurar a varredura de código para o seu aparelho".
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 obter mais informações, confira "Como configurar a verificação de código para um repositório".
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.
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 os níveis de gravidade
Os níveis de severidade do alerta podem ser Error
, Warning
e Note
.
Se a code scanning estiver habilitada como uma verificação de solicitação de pull, a verificação falhará se detectar algum resultado com a severidade error
. Você pode especificar o nível de gravidade dos alertas da verificação de código que causa uma falha de verificação. Para obter mais informações, confira "Como personalizar a verificação de código".
Sobre níveis de gravidade de segurança
A Code scanning exibe níveis de gravidade de segurança para os alertas gerados pelas consultas de segurança. Os níveis de severidade de segurança podem ser Critical
, High
, Medium
ou Low
.
Para calcular a gravidade da segurança de um alerta, usamos dados de Pontuação do Sistema de Vulnerabilidade Comum (CVSS). O CVSS é uma estrutura aberta para comunicar as características e gravidade das vulnerabilidades de software, e é comumente usado por outros produtos de segurança para pontuar alertas. Para obter mais informações sobre como os níveis de severidade são calculados, confira esta postagem no blog.
Por padrão, os resultados da code scanning com a severidade de segurança Critical
ou High
causará uma falha de verificação. Você pode especificar qual nível de gravidade de segurança para resultados de code scanning causarão uma falha de verificação. Para obter mais informações, confira "Como personalizar a verificação de código".
Sobre origens de análise
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 é a origem da análise de todos os alertas gerados. Por exemplo, um alerta gerado usando a análise padrão do CodeQL com o GitHub Actions terá uma origem de análise 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 alertas com várias origens de análise. Se um alerta tiver mais de uma origem de análise, um ícone será exibido ao lado de qualquer branch relevante na seção Branches afetados no lado direito da página de alerta. Posicione o cursor sobre o ícone para ver os nomes de cada origem de análise e o status do alerta da origem de análise. Veja também o histórico de quando os alertas apareceram em cada origem de análise na linha do tempo da página de alertas. Se um alerta tiver apenas uma origem de análise, nenhuma informação sobre as origens de análise será exibida na página de alertas.
Observação: às vezes, um alerta do code scanning é exibido como corrigido em uma origem de análise, mas ainda fica em aberto em outra origem de análise. Resolva isso executando novamente a segunda configuração do code scanning para atualizar o status do alerta daquela origem de análise.
GitHub Enterprise Server 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.
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".