Behandeln von Problemen mit der Codeüberprüfung
Wenn bei der CodeQL-Ausführung Fehler auftreten, meldet die CodeQL-CLI den Status der ausgeführten Befehle normalerweise als Exitcode. Der Exitcode stellt Informationen für nachfolgende Befehle oder für andere Tools bereit, die von der CodeQL-CLI abhängen. Weitere Informationen zu Exitcodes finden Sie unter Exitcodes.
Fehler: CodeQL-Befehl 'database finalize' (32)
Dieser Fehler weist auf ein Problem beim Abschließen der CodeQL-Datenbankerstellung hin, möglicherweise aufgrund von Extraktionsfehlern oder fehlenden Buildschritten.
Schritte zur Problembehandlung:
- Überprüfen, ob der Code vorhanden ist und kompiliert wird
- Überprüfen Sie für kompilierte Sprachen, ob der Buildprozess Code kompiliert und zwischen den Tasks
AdvancedSecurity-Codeql-Init
undAdvancedSecurity-Codeql-Analyze
ausgeführt wird. Allgemeine Buildbefehle und erforderliche Flags (z. B. clean no-cache/no-daemon) finden Sie unter Angeben von Buildbefehlen. - Vergewissern Sie sich bei interpretierten Sprachen, dass sich Quellcode für die angegebene Sprache im Projekt befindet.
- Überprüfen Sie für kompilierte Sprachen, ob der Buildprozess Code kompiliert und zwischen den Tasks
- Überprüfen von Extraktionsfehlern
- Überprüfen Sie, ob sich Extraktionsfehler auf die Integrität der CodeQL-Datenbank auswirken.
- Überprüfen Sie die Protokolldatei auf Extraktionsfehler und Warnungen, um die grundsätzliche Integrität der Datenbank zu beurteilen.
- Untersuchen übergreifender Fehler
- Wenn für die meisten Dateien Extraktorfehler auftreten, müssen Sie die Ursache der Extraktionsprobleme ermitteln.
Fehler: AutoBuild-Skript (1)
Dieser Fehler beschreibt einen automatischen Buildfehler und deutet auf ein Problem mit der Einrichtung oder Konfiguration der Codeüberprüfung hin.
Schritte zur Problembehandlung:
- Konfigurieren der Buildschritte
- Entfernen Sie den AutoBuild-Schritt. Konfigurieren Sie stattdessen spezifische Buildschritte für kompilierte Sprachen in den Pipelines.
- Beachten Sie die Setuprichtlinien in Konfigurieren von GitHub Advanced Security für Azure DevOps.
Fehler: CodeQL-Verzeichnisse konnten im Agent-Toolcache nicht gefunden werden
Dieser Fehler weist auf ein Problem mit der Installation von CodeQL für selbstgehostete Agents hin.
Schritte zur Problembehandlung:
- Informationen zu Setuprichtlinien und Konfigurationsskripts finden Sie unter Konfigurieren von GitHub Advanced Security für Azure DevOps.
Fehler: Sprachenpipelinevariable nicht festgelegt
Dieser Fehler tritt auf, wenn Sie CodeQL ausführen, ohne die Pipelinevariable festzulegen, die angibt, welche Sprachen gescannt werden sollen.
Schritte zur Problembehandlung:
- Festlegen der Sprachpipelinevariable
- Stellen Sie sicher, dass die Sprachpipelinevariable ordnungsgemäß konfiguriert ist. Beachten Sie die Setuprichtlinien in Konfigurieren von GitHub Advanced Security für Azure DevOps.
- Unterstützte Sprachen:
csharp
,cpp
,go
,java
,javascript
,python
,ruby
undswift
.
CodeQL gibt keine Ergebnisse zurück
Dieser Abschnitt enthält Anleitungen für den Fall, dass CodeQL-Analysen keine Ergebnisse liefern.
Schritte zur Problembehandlung:
- Überprüfen auf erkannte Sicherheitsrisiken
- Berücksichtigen Sie die Möglichkeit, dass der Code möglicherweise keine Sicherheitsrisiken aufweist. Wenn Sicherheitsrisiken erwartet, aber nicht erkannt werden, setzen Sie die Überprüfung fort.
- Überprüfen der Abfragesammlungskonfiguration
- Ermitteln Sie die verwendete Abfragesammlung und erwägen Sie bei Bedarf, zu einer umfassenderen Sammlung zu wechseln.
- Alternativ können benutzerdefinierte Abfragesammlungen für eine maßgeschneiderte Analyse erstellt werden.
- Anpassen der Berechtigungen zum Anzeigen von Ergebnissen
- Stellen Sie sicher, dass mindestens auf der Ebene der Mitwirkenden die richtigen Berechtigungen für den Zugriff auf Analyseergebnisse gewährt werden. Weitere Informationen finden Sie unter Erweiterte Sicherheitsberechtigungen.
CodeQL-Zeitüberschreitung
Wenn die AdvancedSecurity-Codeql-Analyze@1
Aufgabe angezeigt This job was abandoned ... we lost contact with the agent
wird und Sie einen gehosteten Microsoft-Agent verwenden, trifft die Aufgabe das integrierte sechsstündige Timeout für kostenpflichtige gehostete Agents. Sie können stattdessen versuchen, eine Analyse für einen selbst gehosteten Agent auszuführen.
Codescanaufgabenberechtigungen
Die Codeüberprüfungs-Buildaufgabe verwendet die Pipelineidentität, um die Advanced Security REST-APIs aufzurufen. Standardmäßig haben Pipelines im selben Projekt Zugriff auf das Hochladen der SARIF-Datei, die durch ausführen der CodeQL-Analyse generiert wird. Wenn diese Berechtigungen aus dem Build-Dienstkonto entfernt sind oder über ein benutzerdefiniertes Setup verfügen (z. B. eine Pipeline, die in einem anderen Projekt als das Repository gehostet wird), müssen Sie diese Berechtigungen manuell erteilen.
Schritte zur Problembehandlung:
- Erteilen Sie die
Advanced Security: View alerts
- undAdvanced Security: Manage and dismiss alerts
-Berechtigung für das in Ihrer Pipeline verwendete Builddienstkonto, für projektbezogene Pipelines[Project Name] Build Service ([Organization Name])
und für Sammlungs-bezogene PipelinesProject Collection Build Service ([Organization Name])
.
Manuelle Installation des CodeQL-Bundles auf selbst gehosteten Agent
Installieren Sie das CodeQL-Paket im Cache des Agent-Tools mithilfe des auf GitHub verfügbaren Setupskripts für Ihre Architektur. Für diese Skripts muss die $AGENT_TOOLSDIRECTORY
-Umgebungsvariable auf den Speicherort des Agent-Tool-Verzeichnisses im Agent festgelegt werden, wie z. B. C:/agent/_work/_tool
. Alternativ können Sie die folgenden Schritte manuell implementieren:
- Wählen Sie das neueste CodeQL-Releasepaket auf GitHub aus.
- Laden Sie das Paket herunter, und entpacken Sie es in das folgende Verzeichnis im Verzeichnis des Agent-Tools, das sich in der Regel unter
_work/_tool
befindet:./CodeQL/0.0.0-[codeql-release-bundle-tag]/x64/
. Wenn Sie den aktuellen Release vonv2.16.0
verwenden, wird der Dateiname./CodeQL/0.0.0-codeql-bundle-v2.16.0/x64/
lauten. Erfahren Sie mehr über das Verzeichnis des Agent-Tools. - Erstellen Sie im Ordner
./CodeQL/0.0.0-[codeql-release-bundle-tag]
eine leere Datei mit dem Namenx64.complete
. Wenn Sie das vorherige Beispiel verwenden, sollte der Pfad der Enddatei zu Ihrerx64.complete
Datei./CodeQL/0.0.0-codeql-bundle-v2.16.0/x64.complete
lauten.