Dela via


Felsöka kodgenomsökning

Om du stöter på fel med CodeQL-körning rapporterar CodeQL CLI statusen för varje kommando som körs som en slutkod. Slutkoden innehåller information för efterföljande kommandon eller för andra verktyg som förlitar sig på CodeQL CLI. Mer information om slutkodsinformation finns i Slutkoder.

Fel: "databas slutför" CodeQL-kommando (32)

Det här felet anger ett problem med att slutföra skapandet av CodeQL-databasen, eventuellt på grund av extraheringsfel eller saknade byggsteg.

Felsökningssteg:

  1. Kontrollera att koden finns och kompileras
    • För kompilerade språk kontrollerar du att byggprocessen kompilerar kod och sker mellan aktiviteterna AdvancedSecurity-Codeql-Init AdvancedSecurity-Codeql-Analyze och . Vanliga build-kommandon och obligatoriska flaggor (till exempel rensa no-cache/no-daemon) finns här i Ange byggkommandon.
    • För tolkade språk kontrollerar du att det finns viss källkod för det angivna språket i projektet.
  2. Kontrollera extraheringsfel
    • Kontrollera om extraheringsfel påverkar CodeQL-databasens hälsa.
    • Granska loggfilen för extraheringsfel och varningar för att utvärdera övergripande databashälsa.
  3. Undersöka överväldigande fel
    • Om de flesta filer stöter på extraheringsfel kan du undersöka ytterligare för att förstå rotorsaken till felaktig extrahering.

Fel: autobuild script (1)

Det här felet beskriver ett automatiskt byggfel, vilket tyder på ett problem med konfiguration eller konfiguration av kodgenomsökning.

Felsökningssteg:

Fel: CodeQL-kataloger hittades inte i agentverktygets cacheminne

Det här felet anger ett problem med att installera CodeQL för lokalt installerade agenter.

Felsökningssteg:

Fel: Språkpipelinevariabeln har inte angetts

Det här felet uppstår när du försöker köra CodeQL utan att ange pipelinevariabeln som anger vilka språk som ska genomsökas.

Felsökningssteg:

CodeQL returnerar inga resultat

Det här avsnittet innehåller vägledning för situationer där CodeQL-analys inte ger några resultat.

Felsökningssteg:

  1. Sök efter identifierade sårbarheter
    • Tänk på möjligheten att koden verkligen inte har några säkerhetsrisker. Om sårbarheter förväntas men inte identifieras fortsätter du att verifiera ytterligare.
  2. Granska konfigurationen av frågepaket
  3. Justera behörigheter för att visa resultat

Tidsgräns för CodeQL

Om aktiviteten AdvancedSecurity-Codeql-Analyze@1 visas This job was abandoned ... we lost contact with the agent och du använder en värdbaserad Microsoft-agent når uppgiften den inbyggda tidsgränsen på sex timmar för betalda värdbaserade agenter. Du kan försöka köra analys på en lokalt installerad agent i stället.

Behörigheter för kodgenomsökningsaktivitet

Versionsuppgiften för kodgenomsökning använder pipelineidentiteten för att anropa REST API:er för avancerad säkerhet. Som standard har pipelines i samma projekt åtkomst till att ladda upp SARIF-filen som genereras genom att köra CodeQL-analys. Om dessa behörigheter tas bort från byggtjänstkontot eller om du har en anpassad konfiguration (till exempel en pipeline som finns i ett annat projekt än lagringsplatsen) måste du bevilja dessa behörigheter manuellt.

Felsökningssteg:

  • Bevilja Advanced Security: View alerts och Advanced Security: Manage and dismiss alerts behörighet till det byggtjänstkonto som används i din pipeline, som för pipelines med projektomfattning är [Project Name] Build Service ([Organization Name]), och för pipelines med samlingsomfång är Project Collection Build Service ([Organization Name]).

Manuell installation av CodeQL-paket till lokalt installerad agent

Installera CodeQL-paketet i agentverktygets cacheminne genom att använda installationsskriptet för din arkitektur, som är tillgängligt på GitHub. Dessa skript kräver $AGENT_TOOLSDIRECTORY att miljövariabeln anges till platsen för agentverktygskatalogen på agenten, t.ex. C:/agent/_work/_tool. Du kan också implementera följande steg manuellt:

  1. Välj det senaste CodeQL-versionspaketet från GitHub.
  2. Ladda ned och packa upp paketet till följande katalog i agentverktygskatalogen, som vanligtvis finns under _work/_tool: ./CodeQL/0.0.0-[codeql-release-bundle-tag]/x64/. Med den aktuella versionen av v2.16.0skulle mappnamnet ha titeln ./CodeQL/0.0.0-codeql-bundle-v2.16.0/x64/. Läs mer om agentverktygskatalogen.
  3. Skapa en tom fil med titeln x64.complete i ./CodeQL/0.0.0-[codeql-release-bundle-tag] mappen. Med hjälp av föregående exempel ska slutfilsökvägen till filen x64.complete vara ./CodeQL/0.0.0-codeql-bundle-v2.16.0/x64.complete.