Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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.
Förutsättningar
| Kategori | Kravspecifikation |
|---|---|
| behörigheter | - Så här visar du en sammanfattning av alla aviseringar för en lagringsplats: Deltagare behörigheter för lagringsplatsen. – Så här stänger du aviseringar i Avancerad säkerhet: Projektadministratör behörigheter. – För att hantera behörigheter i Avancerad säkerhet: Medlem i Project Collection-administratörer-gruppen, eller Avancerad säkerhet: hantera inställningar -behörighet inställd på Tillåt. |
Mer information om avancerade säkerhetsbehörigheter finns i Hantera avancerade säkerhetsbehörigheter.
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:
- Kontrollera att koden finns och kompileras
- För kompilerade språk kontrollerar du att byggprocessen kompilerar kod och sker mellan aktiviteterna
AdvancedSecurity-Codeql-InitAdvancedSecurity-Codeql-Analyzeoch . Vanliga build-kommandon och obligatoriska flaggor (till exempel rensa no-cache/no-daemon) finns här i Ange byggkommandon. - Kontrollera att det finns viss källkod för det angivna språket i projektet för tolkade språk.
- För kompilerade språk kontrollerar du att byggprocessen kompilerar kod och sker mellan aktiviteterna
- 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.
- 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:
- Konfigurera byggsteg
- Ta bort autobuild-steget och konfigurera i stället specifika byggsteg för kompilerade språk i dina pipelines.
- Se installationsriktlinjerna i Konfigurera GitHub Advanced Security för Azure DevOps.
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:
- Se konfigurationsriktlinjer eller konfigurationsskript som tillhandahålls i Konfigurera GitHub Advanced Security för Azure DevOps.
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:
- Ange språkpipelinevariabel
- Kontrollera att språkpipelinevariabeln är korrekt konfigurerad. Se installationsriktlinjerna i Konfigurera GitHub Advanced Security för Azure DevOps.
- Språk som stöds är
csharp,cpp,go,java,javascript,python,rubyochswift.
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:
- Sök efter identifierade sårbarheter
- Överväg att din kod kanske inte har några säkerhetsrisker. Om sårbarheter förväntas men inte identifieras fortsätter du att verifiera ytterligare.
- Granska konfigurationen av frågepaket
- Bekräfta den frågesvit som används och överväg att byta till en mer omfattande svit om det behövs.
- Du kan också skapa anpassade frågesviter för skräddarsydd analys.
- Justera behörigheter för att visa resultat
- Se till att rätt behörigheter, åtminstone på deltagarnivå, beviljas för åtkomst till analysresultat. Mer information finns i Avancerade säkerhetsbehörigheter.
Tidsgräns för CodeQL
Om uppgiften 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, beviljar du dessa behörigheter manuellt.
Felsökningssteg:
- Bevilja
Advanced Security: View alertsochAdvanced Security: Manage and dismiss alertsbehö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 ärProject Collection Build Service ([Organization Name]).
Publicera resultat för kodgenomsökning till ett oavsiktligt repository
Om du har en pipelinedefinition som finns i en lagringsplats och källkoden som ska genomsökas av GitHub Advanced Security finns i en annan, kan resultatet bearbetas och skickas till den felaktiga lagringsplatsen och publicera till lagringsplatsen som innehåller pipelinedefinitionen i stället för källkodslagringsplatsen.
Om du vill aktivera avsedd resultatroutning anger du pipelinemiljövariabeln advancedsecurity.publish.repository.infer: true för att härleda vilken lagringsplats som ska publiceras från lagringsplatsen i arbetskatalogen.
trigger:
- main
resources:
repositories:
# PipelineRepo: The repository containing the pipeline definition.
# This is optional and only needed if you plan to reference files or scripts from this repo.
- repository: PipelineRepo
type: git
name: DevOpsPipelineRepo
ref: refs/heads/main
trigger:
- main
# SourceRepo: The repository where scanning and publishing will occur.
- repository: SourceRepo
type: git
name: code-to-analyze-repo
ref: refs/heads/main
trigger:
- main
jobs:
- job: "CodeQLScan"
displayName: "CodeQL Scanning with Inferred Publishing"
variables:
# Enable repository inference
advancedsecurity.publish.repository.infer: true
steps:
# Checkout the SourceRepo
- checkout: SourceRepo
# Initialize CodeQL
- task: AdvancedSecurity-Codeql-Init@1
displayName: "Initialize CodeQL"
inputs:
languages: "python,javascript" # Adjust based on repository languages
# Perform CodeQL analysis
- task: AdvancedSecurity-Codeql-Analyze@1
displayName: "Analyze Code with CodeQL"
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, C:/agent/_work/_tooltill exempel . Du kan också implementera följande steg manuellt:
- Välj det senaste CodeQL-versionspaketet från GitHub.
- 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 avv2.16.0skulle mappnamnet ha titeln./CodeQL/0.0.0-codeql-bundle-v2.16.0/x64/. Läs mer om agentverktygskatalogen. - Skapa en tom fil med titeln
x64.completei./CodeQL/0.0.0-[codeql-release-bundle-tag]mappen. Med hjälp av föregående exempel ska slutfilsökvägen till filenx64.completevara./CodeQL/0.0.0-codeql-bundle-v2.16.0/x64.complete.
Hur definierar jag uttryckligen lagringsplatsen för att publicera kodgenomsökningsaviseringar till?
- Använd pipelinemiljövariabeln
advancedsecurity.publish.repository.infer: trueför att härleda lagringsplatsen till att publicera från lagringsplatsen i arbetskatalogen. - Om du inte uttryckligen checkar ut en lagringsplats eller använder ett alias för att checka ut lagringsplatsen använder du variabeln som ett annat alternativ
advancedsecurity.publish.repository: $[ convertToJson(resources.repositories['YourRepositoryAlias']) ]
Mer information finns i viktig information.