Condividi tramite


Risolvere i problemi di analisi del codice

In genere, se si verificano errori con l'esecuzione di CodeQL, l'interfaccia della riga di comando codeQL segnala lo stato di ogni comando eseguito come codice di uscita. Il codice di uscita fornisce informazioni per i comandi successivi o per altri strumenti che si basano sull'interfaccia della riga di comando codeQL. Per altre informazioni sui dettagli del codice di uscita, vedere Codici di uscita.

Errore: comando CodeQL 'database finalize' (32)

Questo errore indica un problema con la finalizzazione della creazione del database CodeQL, potenzialmente a causa di errori di estrazione o passaggi di compilazione mancanti.

Passaggi per la risoluzione dei problemi:

  1. Verificare che il codice esista e che sia compilato
    • Per i linguaggi compilati, verificare che il processo di compilazione stia compilando il codice e che si stia verificando tra le AdvancedSecurity-Codeql-Init attività e AdvancedSecurity-Codeql-Analyze . I comandi di compilazione comuni e i flag obbligatori ,ad esempio clean no-cache/no-daemon, sono disponibili qui in Specifica dei comandi di compilazione.
    • Per le lingue interpretate, verificare che nel progetto sia presente un codice sorgente per la lingua specificata.
  2. Controllare gli errori di estrazione
    • Verificare se gli errori di estrazione influiscono sull'integrità del database CodeQL.
    • Esaminare il file di log per individuare gli errori di estrazione e gli avvisi per valutare l'integrità complessiva del database.
  3. Analizzare gli errori travolgenti
    • Se la maggior parte dei file rileva errori dell'estrattore, esaminare ulteriormente per comprendere la causa radice dell'estrazione non corretta.

Errore: script di compilazione automatica (1)

Questo errore descrive un errore di compilazione automatico, che suggerisce un problema relativo all'analisi del codice durante l'installazione o la configurazione.

Passaggi per la risoluzione dei problemi:

Errore: Directory CodeQL non trovate nella cache degli strumenti agente

Questo errore indica un problema relativo all'installazione di CodeQL per gli agenti self-hosted.

Passaggi per la risoluzione dei problemi:

Errore: variabile della pipeline di linguaggio non impostata

Questo errore si verifica quando si tenta di eseguire CodeQL senza impostare la variabile della pipeline che specifica le lingue da analizzare.

Passaggi per la risoluzione dei problemi:

  • Impostare la variabile della pipeline del linguaggio

CodeQL che non restituisce risultati

Questa sezione fornisce indicazioni per le situazioni in cui l'analisi CodeQL non produce risultati.

Passaggi per la risoluzione dei problemi:

  1. Verificare la presenza di vulnerabilità rilevate
    • Considerare la possibilità che il codice non abbia effettivamente vulnerabilità. Se le vulnerabilità sono previste ma non rilevate, procedere con la verifica.
  2. Esaminare la configurazione del gruppo di query
    • Confermare l'uso del gruppo di query e prendere in considerazione il passaggio a una suite più completa, se necessario.
    • In alternativa, è possibile creare pacchetti di query personalizzati per l'analisi personalizzata.
  3. Modificare le autorizzazioni per la visualizzazione dei risultati
    • Assicurarsi che le autorizzazioni appropriate, almeno a livello di collaboratore, vengano concesse per accedere ai risultati dell'analisi. Per altre informazioni, vedere Autorizzazioni di sicurezza avanzata.

Timeout codeQL

Se l'attività AdvancedSecurity-Codeql-Analyze@1 viene visualizzata This job was abandoned ... we lost contact with the agent e si usa un agente Microsoft ospitato, l'attività raggiunge il timeout predefinito di sei ore per gli agenti ospitati a pagamento. In alternativa, è possibile tentare di eseguire l'analisi su un agente self-hosted.

Autorizzazioni per le attività di analisi del codice

L'attività di compilazione di analisi del codice usa l'identità della pipeline per chiamare le API REST di sicurezza avanzata. Per impostazione predefinita, le pipeline nello stesso progetto hanno accesso per caricare il file SARIF generato eseguendo l'analisi CodeQL. Se queste autorizzazioni vengono rimosse dall'account del servizio di compilazione o se si dispone di un'installazione personalizzata , ad esempio una pipeline ospitata in un progetto diverso dal repository, è necessario concedere queste autorizzazioni manualmente.

Passaggi per la risoluzione dei problemi:

  • Concedere Advanced Security: View alerts e Advanced Security: Manage and dismiss alerts l'autorizzazione all'account del servizio di compilazione usato nella pipeline, che per le pipeline con ambito progetto è [Project Name] Build Service ([Organization Name])e per le pipeline con ambito raccolta è Project Collection Build Service ([Organization Name]).

Installazione manuale del bundle CodeQL nell'agente self-hosted

Installare il bundle CodeQL nella cache degli strumenti dell'agente usando lo script di installazione per l'architettura, disponibile in GitHub. Questi script richiedono che la $AGENT_TOOLSDIRECTORY variabile di ambiente sia impostata sul percorso della directory degli strumenti dell'agente nell'agente, ad esempio C:/agent/_work/_tool. In alternativa, è possibile implementare manualmente i passaggi seguenti:

  1. Selezionare il bundle di versione codeQL più recente da GitHub.
  2. Scaricare e decomprimere il bundle nella directory seguente all'interno della directory degli strumenti dell'agente, in genere disponibile in _work/_tool: ./CodeQL/0.0.0-[codeql-release-bundle-tag]/x64/. Usando la versione corrente di , il nome della v2.16.0cartella sarà denominato ./CodeQL/0.0.0-codeql-bundle-v2.16.0/x64/. Altre informazioni sulla directory degli strumenti dell'agente.
  3. Creare un file vuoto denominato x64.complete all'interno della ./CodeQL/0.0.0-[codeql-release-bundle-tag] cartella . Usando l'esempio precedente, il percorso del file finale del x64.complete file deve essere ./CodeQL/0.0.0-codeql-bundle-v2.16.0/x64.complete.