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:
- Füge deinem Repository den Workflow von CodeQL hinzu. Dabei wird die Aktion github/codeql-action zum Ausführen der CodeQL CLI verwendet. Weitere Informationen findest du unter Einrichten von code scanning für ein Repository.
- Führe die CodeQL-CLI direkt in einem externen CI-System aus, und lade die Ergebnisse auf GitHub hoch. Weitere Informationen findest du unter Informationen zum Scannen von CodeQL-Code in deinem CI-System.
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.
- Du generierst eine CodeQL-Datenbank zum Darstellen deiner Codebasis.
- Danach führst du CodeQL-Abfragen von dieser Datenbank aus, um Probleme in der Codebasis zu ermitteln.
- Die Abfrageergebnisse werden als code scanning-Warnungen in GitHub 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/Kotlin
- JavaScript/TypeScript
- Python
- Ruby
Hinweise:
- Die CodeQL-Analyse für Kotlin ist derzeit als Betaversion verfügbar. Während der Betaphase ist die Analyse von Kotlin weniger umfassend als die CodeQL-Analyse für andere Sprachen.
- Verwende
java
zum Analysieren von Code, der in Java, Kotlin oder beiden Sprachen geschrieben wurde. - 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.
Du kannst zusätzliche Abfragen als Teil deiner Codescananalyse ausführen. Diese Abfragen müssen zu einem veröffentlichten CodeQL-Abfragepaket (Beta) oder einem QL-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.
Weitere Informationen findest du unter Informationen zu CodeQL-Paketen und Informationen zu QL-Paketen in der Dokumentation zu CodeQL.
Hinweis: Die CodeQL-Paketverwaltungsfunktionen, einschließlich CodeQL-Paketen, befinden sich derzeit in der Betaphase und können noch geändert werden.