Observação
O administrador do site precisa habilitar a code scanning antes que você possa usar esse recurso. Para saber mais, confira Como configurar a verificação de código do 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 Code 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.
Existem três maneiras principais de usar a análise do CodeQL para code scanning:
-
Use a configuração padrão para definir rapidamente a análise do CodeQL para a code scanning no 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 o CodeQL, o GitHub Actions vai disparar execuções de fluxo de trabalho para verificar seu código. Para saber mais, confira Como definir a configuração padrão da verificação de código.
-
Use a configuração avançada para adicionar o fluxo de trabalho do CodeQL ao seu repositório. Isso gera um arquivo de fluxo de trabalho personalizável que usa o github/codeql-action para executar o CodeQL CLI. Para saber mais, confira Como definir a configuração avançada para verificação de código.
-
Execute o CodeQL CLI diretamente em um sistema de CI externo e envie os resultados para o GitHub. Para saber mais, confira Usando a varredura de código com seu sistema de CI existente.
Observação
Em GitHub Enterprise Server 3.18, a ação CodeQL usa CodeQL CLI versão 2.21.4 por padrão. Recomendamos que você use a mesma versão da CodeQL CLI para executar a análise em um sistema de CI externo.
Para obter informações sobre alertas de code scanning, consulte Sobre alertas de digitalização de códigos.
Sobre o CodeQL
CodeQL é uma linguagem de programação e ferramentas associadas que tratam o 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 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 em code scanning no GitHub quando você usa CodeQL com code scanning.
O CodeQL dá suporte a linguagens compiladas e interpretadas e pode encontrar vulnerabilidades e erros no código escrito nas linguagens compatíveis.
O CodeQL dá suporte às seguintes linguagens:
- C/C++
- C#
- Go
- Java/Kotlin
- JavaScript/TypeScript
- Python
- Ruby de codeql-rust-public-preview
- Rust (versão prévia pública)
- Swift* Fluxos de trabalho do GitHub Actions
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
O CodeQL não dá suporte a linguagens que não estão listadas acima. Isso inclui, entre outros, PHP e Scala. A tentativa de usar o CodeQL com linguagens sem suporte pode fazer com que nenhum alerta seja gerado e a análise fique incompleta.
Modelar estruturas personalizadas ou de nicho
Especialistas de GitHub, pesquisadores de segurança e colaboradores da comunidade escrevem bibliotecas para modelar o fluxo de dados em estruturas e bibliotecas populares. Se você usar dependências personalizadas que não são modeladas, poderá usar a extensão CodeQL para Visual Studio Code para criar modelos dessas dependências e usá-los para ampliar sua análise. Para saber mais, confira Usar o editor de modelos do CodeQL.
Consultas CodeQL
Especialistas de GitHub, 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 aprimorar a análise e reduzir resultados falsos positivos. Para obter detalhes sobre as consultas disponíveis nos pacotes padrão e estendido, consulte Consultas incluídas nos conjuntos de consultas padrão e de segurança estendida.
Escrevendo suas próprias consultas
As consultas são de software livre, portanto, você pode exibir e contribuir para as consultas no repositório github/codeql . Para obter mais informações, consulte Sobre as consultas CodeQL na documentação do 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 precisam pertencer a um pacote de consultas do CodeQL ou a um pacote do CodeQL em um repositório.
-
Quando um pacote de consultas do CodeQL é publicado no GitHub Container registry, todas as dependências transitivas exigidas pelas 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.
-
Os pacotes de consultas do CodeQL podem ser baixados de vários registros de contêineres de GitHub. Para saber mais, confira Opções de configuração de fluxo de trabalho para verificação de código.
Para saber mais, confira Como personalizar a análise com pacotes CodeQL.