Solucionar problemas de verificação de código
Geralmente, se você estiver encontrando erros com a execução do CodeQL, a CLI do CodeQL relata o status de cada comando executado como um código de saída. O código de saída fornece informações para comandos subsequentes ou para outras ferramentas que dependem da CLI do CodeQL. Para obter mais informações sobre detalhes do código de saída, consulte Códigos de saída.
Erro: comando 'database finalize' CodeQL (32)
Este erro indica um problema com a finalização da criação do banco de dados CodeQL, potencialmente devido a erros de extração ou etapas de compilação ausentes.
Passos de resolução de problemas:
- Verifique se o código existe e é compilado
- Para linguagens compiladas, verifique se o processo de compilação está compilando código e está acontecendo entre as
AdvancedSecurity-Codeql-Init
tarefas e asAdvancedSecurity-Codeql-Analyze
tarefas. Comandos de compilação comuns e sinalizadores necessários (como clean no-cache/no-daemon) podem ser encontrados aqui em Especificando comandos de compilação. - Para idiomas interpretados, confirme se há algum código-fonte para o idioma especificado no projeto.
- Para linguagens compiladas, verifique se o processo de compilação está compilando código e está acontecendo entre as
- Verificar erros de extração
- Verifique se os erros de extração afetam a integridade do banco de dados CodeQL.
- Revise o arquivo de log para verificar se há erros de extração e avisos para avaliar a integridade geral do banco de dados.
- Investigue erros avassaladores
- Se a maioria dos ficheiros encontrar erros de extração, investigue mais para compreender a causa raiz da extração incorreta.
Erro: script de construção automática (1)
Este erro descreve uma falha de compilação automática, sugerindo um problema com a instalação ou configuração da verificação de código.
Passos de resolução de problemas:
- Configurar etapas de compilação
- Remova a etapa AutoBuild e, em vez disso, configure etapas de compilação específicas para idiomas compilados em seus pipelines.
- Consulte as diretrizes de instalação fornecidas em Configurar a Segurança Avançada do GitHub para Azure DevOps.
Erro: Diretórios CodeQL não encontrados no cache da ferramenta do agente
Este erro indica um problema com a instalação do CodeQL para agentes auto-hospedados.
Passos de resolução de problemas:
- Consulte as diretrizes de instalação ou scripts de configuração fornecidos em Configurar a Segurança Avançada do GitHub para Azure DevOps.
Erro: variável de pipeline de idioma não definida
Este erro ocorre ao tentar executar o CodeQL sem definir a variável de pipeline especificando quais idiomas devem ser verificados.
Passos de resolução de problemas:
- Definir variável de pipeline de idioma
- Verifique se a variável de pipeline de idioma está configurada corretamente. Consulte as diretrizes de instalação fornecidas em Configurar a Segurança Avançada do GitHub para Azure DevOps.
- Os idiomas suportados incluem
csharp
,cpp
,go
,java
,javascript
,ruby
python
, eswift
.
CodeQL não retornando resultados
Esta seção fornece orientação para situações em que a análise CodeQL não produz resultados.
Passos de resolução de problemas:
- Verificar vulnerabilidades detetadas
- Considere a possibilidade de que seu código possa realmente não ter vulnerabilidades. Se as vulnerabilidades forem esperadas, mas não detetadas, prossiga para verificar mais.
- Revisar a configuração do conjunto de consultas
- Confirme o conjunto de consultas que está sendo usado e considere mudar para um pacote mais abrangente, se necessário.
- Como alternativa, pacotes de consulta personalizados podem ser criados para análise personalizada.
- Ajustar permissões para visualização de resultados
- Certifique-se de que as permissões adequadas, pelo menos no nível do colaborador, sejam concedidas para acessar os resultados da análise. Para obter mais informações, consulte Permissões de segurança avançada.
Tempo limite do CodeQL
Se a AdvancedSecurity-Codeql-Analyze@1
tarefa estiver sendo exibida This job was abandoned ... we lost contact with the agent
e você estiver usando um agente da Microsoft hospedado, a tarefa estará atingindo o tempo limite interno de seis horas para agentes hospedados pagos. Em vez disso, você pode tentar executar a análise em um agente auto-hospedado.
Permissões de tarefas de verificação de código
A tarefa de compilação de verificação de código usa a identidade do pipeline para chamar as APIs REST de Segurança Avançada. Por padrão, pipelines no mesmo projeto têm acesso para carregar o arquivo SARIF gerado pela execução da análise CodeQL. Se essas permissões forem removidas da conta de serviço de compilação ou se você tiver uma configuração personalizada (por exemplo, um pipeline hospedado em um projeto diferente do repositório), deverá conceder essas permissões manualmente.
Passos de resolução de problemas:
- Conceda
Advanced Security: View alerts
eAdvanced Security: Manage and dismiss alerts
permissão para a conta de serviço de compilação usada em seu pipeline, que para pipelines com escopo de projeto é[Project Name] Build Service ([Organization Name])
, e para pipelines com escopo de coleta éProject Collection Build Service ([Organization Name])
.
Instalação manual do pacote CodeQL para agente auto-hospedado
Instale o pacote CodeQL no cache da ferramenta do agente utilizando o script de configuração para sua arquitetura, disponível no GitHub. Esses scripts exigem que a $AGENT_TOOLSDIRECTORY
variável de ambiente seja definida para o local do diretório de ferramentas do agente no agente, por exemplo. C:/agent/_work/_tool
Como alternativa, você pode implementar manualmente as seguintes etapas:
- Escolha o pacote de versão mais recente do CodeQL no GitHub.
- Baixe e descompacte o pacote para o seguinte diretório dentro do diretório da ferramenta do agente, normalmente localizado em
_work/_tool
:./CodeQL/0.0.0-[codeql-release-bundle-tag]/x64/
. Usando a versão atual do , o nome dav2.16.0
pasta seria intitulado./CodeQL/0.0.0-codeql-bundle-v2.16.0/x64/
. Saiba mais sobre o diretório de ferramentas do agente. - Crie um arquivo vazio intitulado
x64.complete
dentro da./CodeQL/0.0.0-[codeql-release-bundle-tag]
pasta. Usando o exemplo anterior, o caminho do arquivo final para ox64.complete
arquivo deve ser./CodeQL/0.0.0-codeql-bundle-v2.16.0/x64.complete
.