Skip to main content

Codeüberprüfung mit CodeQL

Sie können verwenden CodeQL , um Sicherheitsrisiken und Fehler in Ihrem Code zu identifizieren. Die Ergebnisse werden als code scanning Warnungen in GitHubangezeigt.

Wer kann dieses Feature verwenden?

Code scanning ist für die folgenden Repositorytypen verfügbar:

  • Öffentliche Repositorys auf GitHub.com
  • Organisationseigene Repositorys für GitHub Team, GitHub Enterprise Cloud oder GitHub Enterprise Server, wobei GitHub Code Security aktiviert sind.

CodeQL ist die von GitHub entwickelte Codeanalyse-Engine zum Automatisieren von Sicherheitsprüfungen. Du kannst deinen Code mithilfe von CodeQL analysieren und die Ergebnisse als code scanning-Warnungen anzeigen.

Es gibt drei Hauptmethoden für die Verwendung der CodeQL Analyse für code scanning:

  • Verwenden Sie die Standardeinrichtung, um die Analyse CodeQL für code scanning Ihr Repository schnell zu konfigurieren. Beim Standardsetup werden automatisch die zu analysierende Sprache, die auszuführende Abfragesammlung und Ereignisse ausgewählt, die Überprüfungen auslösen. Wenn Sie möchten, können Sie die auszuführende Abfragesuite und die zu analysierenden Sprachen manuell auswählen. Nachdem Sie CodeQL aktiviert haben, führt GitHub Actions Workflowausführungen aus, um Ihren Code zu scannen. Weitere Informationen findest du unter Konfigurieren des Standardsetups für das Code-Scanning.

  • Verwenden Sie das erweiterte Setup, um den CodeQL Workflow zu Ihrem Repository hinzuzufügen. Dadurch wird eine anpassbare Workflowdatei generiert, die die Github/codeql-action verwendet, um die CodeQL CLIDatei auszuführen. Weitere Informationen findest du unter Konfigurieren des erweiterten Setups für das Code-Scanning.

  • Führen Sie das CodeQL CLI direkt in einem externen CI-System aus, und laden Sie die Ergebnisse in GitHub. Weitere Informationen findest du unter Verwenden der Codeüberprüfung mit deinem vorhandenen CI-System.

Informationen zu code scanning Warnungen finden Sie unter Code-Scan-Warnungen.

Informationen zum CodeQL

CodeQL ist eine Programmiersprache und zugehörige Tools, die Code wie Daten behandeln. Sie wurde eigens erstellt, um die Analyse von Code zu erleichtern und potenzielle Schwachstellen in deinem Code mit größerer Sicherheit zu finden als herkömmliche statische Analysatoren.

  1. Sie generieren eine CodeQL Datenbank, die Ihre Codebasis darstellt.
  2. Anschließend führen Sie CodeQL Abfragen in dieser Datenbank aus, um Probleme in der Codebasis zu identifizieren.
  3. Die Abfrageergebnisse werden in code scanning als GitHub Warnungen angezeigt, wenn Sie CodeQL mit code scanning verwenden.

CodeQL unterstützt kompilierte und interpretierte Sprachen und kann Sicherheitsrisiken und Fehler im Code finden, der in den unterstützten Sprachen geschrieben wurde.

CodeQL unterstützt die folgenden Sprachen:

  • C/C++
  • C#
  • OK
  • Java/Kotlin
  • JavaScript/TypeScript
  • Python
  • Ruby
  • Rust
  • Swift * GitHub Actions-Workflows

Hinweis

  • Verwenden Sie java-kotlin zum Analysieren von Code, der in Java, Kotlin oder beiden Sprachen geschrieben wurde.
  • Verwenden Sie javascript-typescript zum Analysieren von Code, der in JavaScript, TypeScript oder beiden Sprachen geschrieben wurde.

Weitere Informationen findest du in der Dokumentation auf der CodeQL-Website: Unterstützte Sprachen und Frameworks.

Wichtig

CodeQL unterstützt keine Sprachen, die oben nicht aufgeführt sind. Dazu gehören und anderem PHP und Scala. Der Versuch, mit nicht unterstützten Sprachen zu verwenden CodeQL , kann dazu führen, dass keine Warnungen generiert und unvollständig analysiert werden.

Modellieren von benutzerdefinierten oder Nischenframeworks

GitHub Experten, Sicherheitsforscher und Communitymitwirkende schreiben Bibliotheken, um den Datenfluss in beliebten Frameworks und Bibliotheken zu modellieren. Wenn Sie benutzerdefinierte Abhängigkeiten verwenden, die nicht modelliert sind, können Sie die CodeQL Erweiterung Visual Studio Code zum Erstellen von Modellen für diese Abhängigkeiten verwenden und diese verwenden, um Ihre Analyse zu erweitern. Weitere Informationen findest du unter Verwenden des CodeQL-Modell-Editors.

CodeQL-Abfragen

GitHub Expert:innen, Sicherheitsforscher:innen und Mitwirkende der Community erstellen und pflegen die standardmäßigen CodeQL-Abfragen, die für code scanning verwendet werden. Die Abfragen werden regelmäßig aktualisiert, um die Analyse zu verbessern und falsch positive Ergebnisse zu reduzieren.

Schreiben eigener Abfragen

Die Abfragen sind Open-Source-Code, d. h. Sie können die Abfragen im github/codeql-Repository einsehen und zu ihnen beitragen. Weitere Informationen finden Sie unter "Informationen zu CodeQL Abfragen " in der CodeQL Dokumentation.

Ausführen zusätzlicher Abfragen

Wenn du den Code mit dem erweiterten Setup oder einem externen CI-System scannst, kannst du zusätzliche Abfragen im Rahmen der Analyse ausführen.

Diese Abfragen müssen zu einem veröffentlichten CodeQL Abfragepaket oder einem CodeQL Paket in einem Repository gehören.

  • Wenn ein CodeQL Abfragepaket für das GitHubContainer registryPaket veröffentlicht wird, werden alle transitiven Abhängigkeiten, die von den Abfragen und einem Kompilierungscache benötigt werden, im Paket enthalten. So wird die Leistung verbessert und sichergestellt, dass das Ausführen der Abfragen im Paket jedes Mal zu identischen Ergebnisse führt, bis du ein Upgrade auf eine neue Version des Pakets oder der CLI durchführst.

  • CodeQL Abfragepakete können aus mehreren GitHub Containerregistrierungen heruntergeladen werden. Weitere Informationen findest du unter Workflowkonfigurationsoptionen für die Codeüberprüfung.

Weitere Informationen findest du unter Anpassen der Analyse mit CodeQL-Paketen.