Sobre Varredura de código com CodeQL
CodeQL é o mecanismo de análise de código desenvolvido por GitHub para automatizar verificações de segurança. Você pode analisar seu código usando CodeQL e exibir os resultados como alertas de Varredura de código.
Existem duas maneiras principais de usar CodeQL análise para Varredura de código:
- Adicione o fluxo de trabalho de CodeQL ao seu repositório. Isto usa o github/codeql-action para executar o CodeQL CLI. Para obter mais informações, consulte "Configurar Varredura de código para um repositório".
- Execute a CLI de CodeQL diretamente em um sistema dew CI externo e faça o upload dos resultados para GitHub. Para obter mais informações, consulte "Sobre a digitalização de código CodeQL no seu sistema de CI ."
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.
- Você gera um banco de dados de CodeQL para representar a sua base de código.
- Em seguida, você executa consultas de CodeQL nesse banco de dados para identificar problemas na base de código.
- Os resultados da consulta são exibidos como alertas de Varredura de código em GitHub Enterprise Cloud 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
- Ruby
Note: CodeQL analysis for Ruby is currently in beta. During the beta, analysis of Ruby will be less comprehensive than CodeQL analysis of other languages.
For more information, see the documentation on the CodeQL website: "Supported languages and frameworks."
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 CodeQL 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.