Sobre a digitalização de código com CodeQL

Você pode usar CodeQL para identificar vulnerabilidades e erros no seu código. Os resultados são exibidos como alertas de Varredura de código em GitHub.

Varredura de código está disponível para todos os repositórios públicos e para repositórios privados pertencentes a organizações em que Segurança Avançada GitHub está habilitado. Para obter mais informações, consulte "Sobre Segurança Avançada GitHub".

Sobre Varredura de código com CodeQL

CodeQL is the code analysis engine developed by GitHub to automate security checks. You can analyze your code using CodeQL and display the results as Varredura de código alerts.

Existem duas maneiras principais de usar CodeQL análise para Varredura de código:

Sobre o CodeQL

O CodeQL trata o código como dados, permitindo que você encontre possíveis vulnerabilidades em seu código com maior confiança do que os analisadores estáticos tradicionais.

  1. Você gera um banco de dados de CodeQL para representar a sua base de código.
  2. Em seguida, você executa consultas de CodeQL nesse banco de dados para identificar problemas na base de código.
  3. Os resultados da consulta são exibidos como alertas de Varredura de código em GitHub quando você usa CodeQL com Varredura de código.

O CodeQL é compatível com linguagens compiladas e interpretadas e é capaz de encontrar vulnerabilidades e erros no código escrito nos idiomas suportados.

  • C/C++
  • C#
  • Go
  • Java
  • JavaScript/TypeScript
  • Python

Sobre consultas de CodeQL

GitHub especialistas, pesquisadores de segurança e contribuidores da comunidade escrevem e mantêm as consultas padrão de CodeQL usadas por Varredura de código. As consultas são regularmente atualizadas para melhorar a análise e reduzir quaisquer resultados falso-positivos. As consultas são de código aberto.Portanto, você pode ver e contribuir para as consultas no repositório github/codeql. Para obter mais informações, consulte CodeQL no site do GitHub Security Lab. Você também pode escrever suas próprias consultas. Para obter mais informações, consulte "Sobre CodeQL consultas" na documentação do CodeQL.

Você pode executar consultas adicionais como parte da sua análise de digitalização de código. Essas consultas devem pertencer a um pacote de consulta de CodeQL publicado (beta) ou um pacote QL em um repositório. Os pacotes (beta) de CodeQL oferecem os seguintes benefícios sobre os pacotes QL tradicionais:

  • Quando um pacote de consulta (beta) CodeQL é publicado em GitHub Container registry, todas as dependências transitórias exigidas pelas consultas e um cache de compilação estão incluídas no pacote. Isto melhora o desempenho e garante que a execução de consultas no pacote dê resultados idênticos toda vez até que você fizer a autalização para uma nova versão do pacote ou para o CLI.
  • Os pacotes de QL não incluem dependências transitórias. Portanto, as consultas no pacote podem depender apenas das bibliotecas padrão (ou seja, as bibliotecas referenciadas por uma instrução LINGUAGEM de importação na sua consulta), ou bibliotecas no mesmo pacote QL da consulta.

Para obter mais informações, consulte "Sobre pacotes de CodeQL" e "Sobre pacotes de QL" na documentação de CodeQL.

Note: The CodeQL package management functionality, including CodeQL packs, is currently in beta and subject to change.

Esse documento ajudou você?

Política de Privacidade

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.