Skip to main content
Wir veröffentlichen regelmäßig Aktualisierungen unserer Dokumentation, und die Übersetzung dieser Seite ist möglicherweise noch nicht abgeschlossen. Aktuelle Informationen findest du in der englischsprachigen Dokumentation.

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.

Code scanning ist für organisationseigene Repositorys in GitHub Enterprise Server verfügbar. Dieses Feature erfordert eine Lizenz für GitHub Advanced Security. Weitere Informationen findest du unter Informationen zu GitHub Advanced Security.

Hinweis: Dein Websiteadministrator muss code scanning für deine GitHub Enterprise Server-Instanz aktivieren, damit du dieses Feature verwenden kannst. Weitere Informationen findest du unter Konfigurieren des Codescannings für deine Appliance.

Informationen zu code scanning mit CodeQL

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 zwei Hauptmethoden, um die Analyse von CodeQL für code scanning zu verwenden:

In GitHub Enterprise Server 3.7 verwendet die CodeQL-Aktion standardmäßig die CodeQL CLI-Version 2.10.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 CodeQL

CodeQL behandelt code wie Daten, sodass du mögliche Sicherheitsrisiken in deinem Code zuverlässiger findest als mit herkömmlichen statischen 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#
  • Go
  • Java
  • JavaScript/TypeScript
  • Python
  • Ruby

Hinweise:

  • Die CodeQL-Analyse für Ruby ist derzeit als Betaversion verfügbar. Während der Betaphase ist die Analyse von Ruby weniger umfassend als die CodeQL-Analyse für andere Sprachen.
  • Verwende javascript zum Analysieren von Code, der in JavaScript, TypeScript oder beiden Sprachen geschrieben wurde.

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

Informationen zu 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 verringern. Bei den Abfragen handelt es sich um Open-Source-Abfragen, sodass du sie im github/codeql-Repository anzeigen und zu ihnen beitragen kannst. Weitere Informationen findest du unter CodeQL auf der CodeQL-Website. Du kannst auch eigene Abfragen schreiben. 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 (Beta) oder einem CodeQL-Paket in einem Repository gehören. CodeQL-Pakete (Beta) bieten gegenüber herkömmlichen QL-Paketen die folgenden Vorteile:

  • Wenn ein CodeQL-Abfragepaket (Beta) im GitHub Container registry veröffentlicht wird, sind alle von den 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.
  • QL-Pakete enthalten keine transitiven Abhängigkeiten, sodass Abfragen in diesen Paketen nur von den Standardbibliotheken (d. h. den Bibliotheken, auf die eine import LANGUAGE-Anweisung in deiner Abfrage verweist) oder Bibliotheken im gleichen QL-Paket wie die Abfrage abhängig sein können.
  • CodeQL-Abfragepakete (Beta) können von mehreren GitHub-Containerregistrierungen heruntergeladen werden. Weitere Informationen findest du unter Anpassen der Codeüberprüfung.

Weitere Informationen findest du unter Informationen zu CodeQL-Paketen.