Observação
O administrador do site precisa habilitar a code scanning antes que você possa usar esse recurso. Para saber mais, confira Configurando a verificação de código para seu dispositivo.
Talvez você não consiga habilitar ou desabilitar o code scanning se um proprietário da empresa tiver definido uma política de GitHub Advanced Security no nível da empresa. Para saber mais, confira Como impor políticas para segurança e análise de código na empresa.
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 code scanning.
Há três maneiras principais de usar a análise de CodeQL para code scanning:
-
Use a configuração padrão para configurar rapidamente a análise CodeQL para code scanning em seu repositório. A configuração padrão escolhe automaticamente as linguagens a serem analisadas, o pacote de consultas a ser executado e os eventos que disparam as verificações. Se preferir, selecione manualmente o conjunto de consultas a ser executado e as linguagens a serem analisadas. Depois de habilitar CodeQL, GitHub Actions executará execuções de fluxo de trabalho para verificar seu código. Para obter mais informações, consulte Como definir a configuração padrão da verificação de código.
-
Use a configuração avançada para adicionar o CodeQL fluxo de trabalho ao repositório. Isso gera um arquivo de fluxo de trabalho personalizável que usa o github/codeql-action para executar o CodeQL CLI. Para obter mais informações, consulte Como definir a configuração avançada para verificação de código.
-
Execute diretamente CodeQL CLI em um sistema de CI externo e carregue os resultados para GitHub. Para obter mais informações, consulte Usando a varredura de código com seu sistema de CI existente.
Observação
A partir de GitHub Enterprise Server3.16, a ação CodeQL usa CodeQL CLI versão 2.20.3 por padrão. Recomendamos que você use a mesma versão do CodeQL CLI se executar a análise em um sistema de CI externo.
Para obter informações sobre code scanning alertas, consulte Alertas de escaneamento de código.
Sobre o CodeQL
CodeQL é uma linguagem de programação e ferramentas associadas que tratam código como dados. Foi criado explicitamente para facilitar a análise de código e encontrar possíveis vulnerabilidades no seu código com maior confiança do que os analisadores estáticos tradicionais.
- Você gera um CodeQL banco de dados para representar sua base de código.
- Em seguida, você executa CodeQL consultas nesse banco de dados para identificar problemas na base de código.
- Os resultados da consulta são mostrados como alertas code scanning em GitHub quando você usa CodeQL com code scanning.
CodeQL dá suporte a linguagens compiladas e interpretadas e pode encontrar vulnerabilidades e erros no código que é escrito nos idiomas com suporte.
CodeQL dá suporte aos seguintes idiomas:
- C/C++
- C#
- Go
- Java/Kotlin
- JavaScript/TypeScript
- Python
- Ruby de codeql-rust-public-preview
- Rust (versão prévia pública)
Observação
- Use
java-kotlinpara analisar o código escrito em Java, Kotlin ou ambos. - Use
javascript-typescriptpara analisar o código escrito em JavaScript, TypeScript ou ambos.
Para obter mais informações, confira a documentação no site do CodeQL: Linguagens e estruturas compatíveis.
Importante
CodeQLnão dá suporte a idiomas que não estão listados acima. Isso inclui, entre outros, PHP e Scala. A tentativa de usar CodeQL com idiomas sem suporte pode resultar em nenhum alerta sendo gerado e uma análise incompleta.
Modelar estruturas personalizadas ou de nicho
GitHub especialistas, pesquisadores de segurança e colaboradores da comunidade escrevem bibliotecas para modelar o fluxo de dados em frameworks e bibliotecas populares. Se você usar dependências personalizadas que não são modeladas, poderá usar a CodeQL extensão para Visual Studio Code criar modelos para essas dependências e usá-las para estender sua análise. Para obter mais informações, consulte Usar o editor de modelos do CodeQL.
Consultas CodeQL
GitHub especialistas, pesquisadores de segurança e colaboradores da comunidade escrevem e mantêm as consultas padrão CodeQL usadas para code scanning. As consultas são atualizadas regularmente para melhorar a análise e reduzir os resultados falsos positivos. Para obter detalhes das consultas disponíveis nos pacotes padrão e estendidos, consulte Consultas incluídas nos conjuntos de consultas padrão e estendidos por segurança.
Escrevendo suas próprias consultas
As consultas são código aberto, para que você possa exibir e contribuir com as consultas no repositório github/codeql. Para obter mais informações, consulte Sobre consultas CodeQL na documentação CodeQL.
Executar consultas adicionais
Se estiver verificando o código com a configuração avançada ou com um sistema de CI externo, execute consultas adicionais como parte da análise.
Essas consultas devem pertencer a um pacote de consultas publicado CodeQL ou a um CodeQL pacote em um repositório.
-
Quando um CodeQL pacote de consultas é publicado no GitHubContainer registry, todas as dependências transitivas necessárias para as consultas e um cache de compilação são incluídos no pacote. Isto melhora a performance e garante que a execução de consultas no pacote dê resultados idênticos toda vez até que você fizer a atualização para uma nova versão do pacote ou para o CLI.
-
CodeQL Os pacotes de consulta podem ser baixados de vários GitHub registros de contêineres. Para obter mais informações, consulte Opções de configuração de fluxo de trabalho para verificação de código.
Para obter mais informações, consulte Como personalizar a análise com pacotes CodeQL.