Skip to main content

Informationen zu Codescans mit CodeQL

Wer kann dieses Feature verwenden?

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

  • Öffentliche Repositorys auf .com
  • Repositorys im Besitz von Organisationen auf Team oder Enterprise Cloud,die Code Security aktiviert haben

CodeQL ist die von 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:

  • Verwende das Standardsetup, um die CodeQL-Analyse für das code scanning in deinem 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 du CodeQL aktiviert hast, werden von Actions Workflowausführungen zur Überprüfung deines Codes ausgeführt. Weitere Informationen finden Sie unter Konfigurieren des Standardsetups für das Codescanning.

  • Verwende das erweitere Setup, um deinem Repository den Workflow von CodeQL hinzuzufügen. Dadurch wird eine anpassbare Workflowdatei generiert, von der /codeql-action dazu verwendet wird, die CodeQL CLI auszuführen. Weitere Informationen finden Sie unter Konfigurieren des erweiterten Setups für das Codescanning.

  • Führe die CodeQL CLI direkt in einem externen CI-System aus, und lade die Ergebnisse auf hoch. Weitere Informationen finden Sie unter Verwenden der Codeüberprüfung mit deinem vorhandenen CI-System.

Informationen zu code scanning-Warnungen findest du unter Informationen zu Codeüberprüfungswarnungen.

CodeQL ist eine Programmiersprache und zugehörige Tools, die Code wie Daten behandeln. Sie wurde ausdrücklich entwickelt, um die Analyse von Code zu erleichtern und potenzielle Schwachstellen in Ihrem Code mit größerer Sicherheit zu finden als herkömmliche statische Analysetools.

  1. Du generierst eine CodeQL-Datenbank zum Darstellen deiner Codebasis.
  2. Danach führst du CodeQL-Abfragen von dieser Datenbank aus, um Probleme in der Codebasis zu ermitteln.
  3. Die Abfrageergebnisse werden als code scanning-Warnungen in angezeigt, wenn du CodeQL mit code scanning verwendest.

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

  • C/C++
  • C#
  • OK
  • Java/Kotlin
  • JavaScript/TypeScript
  • Python
  • Ruby
  • Swift * 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.

Experten, Sicherheitsforscher und Mitarbeiter der Community schreiben Bibliotheken zur Modellierung des Datenflusses in gängigen Frameworks und Bibliotheken. Wenn Sie benutzerdefinierte Abhängigkeiten verwenden, die nicht modelliert sind, können Sie die CodeQL-Erweiterung für Visual Studio Code verwenden, um Modelle für diese Abhängigkeiten zu erstellen und sie zum Erweitern der Analyse zu verwenden. Weitere Informationen finden Sie unter Verwenden des CodeQL-Modell-Editors.

Expertinnen, Sicherheitsforscherinnen und Mitwirkende der Community von schreiben und verwalten die Standardabfragen in CodeQL, die für code scanning verwendet werden. Die Abfragen werden regelmäßig aktualisiert, um die Analyse zu verbessern und falsch-positive Ergebnisse zu reduzieren.

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

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 im Container registry veröffentlicht wird, sind alle für die Abfragen benötigten transitiven Abhängigkeiten und ein Kompilierungscache 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 von mehreren -Containerregistrierungen heruntergeladen werden. Weitere Informationen finden Sie unter Anpassen des erweiterten Setups für das Codescanning.

Weitere Informationen finden Sie unter Anpassen der Analyse mit CodeQL-Paketen.