Skip to main content

Informationen zu Codescans mit CodeQL

Du kannst CodeQL verwenden, um Sicherheitsrisiken und Fehler in deinem Code zu identifizieren. Die Ergebnisse werden als code scanning-Warnungen auf GitHub angezeigt.

Wer kann dieses Feature verwenden?

Organisationseigene Repositorys mit aktivierter GitHub Advanced Security

Note

Der Websiteadministrator muss code scanning aktivieren, damit du dieses Feature verwenden kannst. Weitere Informationen findest du unter Konfigurieren der Codeüberprüfung für Ihre Anwendung.

Möglicherweise kannst du code scanning nicht aktivieren oder deaktivieren, wenn eine Unternehmensbesitzerin eine GitHub Advanced Security-Richtlinie (GHAS) auf Unternehmensebene festgelegt hat. Weitere Informationen findest du unter Erzwingen von Richtlinien für die Codesicherheit und -analyse für Unternehmen.

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:

  • 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 GitHub 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 github/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 GitHub hoch. Weitere Informationen finden Sie unter Verwenden der Codeüberprüfung mit deinem vorhandenen CI-System.

Note

In GitHub Enterprise Server 3.13 verwendet die CodeQL-Aktion standardmäßig die CodeQL CLI-Version 2.16.5. Es wird empfohlen, die gleiche Version der CodeQL CLI zu verwenden, wenn du die Analyse in einem externen CI-System ausführst.

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

Informationen zu CodeQL

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 GitHub Enterprise Server 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

Note

  • Verwenden Sie java-kotlin, um Code zu analysieren, der in Java, Kotlin oder beidem geschrieben wurde.
  • Verwenden Sie javascript-typescript, um Code zu analysieren, der in JavaScript, TypeScript oder beidem geschrieben wurde.

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

Modellieren von benutzerdefinierten oder Nischenframeworks

GitHub 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.

CodeQL-Abfragen

Expertinnen, Sicherheitsforscherinnen und Mitwirkende der Community von GitHub 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. Einzelheiten zu den Abfragen, die in den Standard- und erweiterten Paketen enthalten sind, findest du unter In den Standard- und erweiterten Sicherheitsabfrage-Suites enthaltene Abfragen.

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 findest du unter Informationen zu CodeQL-Abfragen in der Dokumentation zu CodeQL.

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 im GitHub 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 GitHub-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.