Was sind Codescans?
Codescans verwenden CodeQL zum Analysieren des Codes in einem GitHub-Repository, um Sicherheitsrisiken und Codierungsfehler zu finden. Codescans sind für alle öffentlichen Repositorys und für private Repositorys verfügbar, die sich im Besitz von Organisationen befinden, in dem GitHub Advanced Security aktiviert ist. Wenn beim Codescan ein potenzielles Sicherheitsrisiko oder ein Fehler im Code gefunden wird, zeigt GitHub eine Warnung auf der Registerkarte „Security“ (Sicherheit) des Repositorys an. Nachdem Sie den Code korrigiert haben, der die Warnung ausgelöst hat, schließt GitHub die Warnung.
Mit dem Code-Scan können Sie Korrekturen für vorhandene Probleme in Ihrem Code suchen, einordnen und priorisieren. Durch den Code-Scan wird außerdem verhindert, dass Entwickelnde neue Probleme einführen. Sie können Scans für bestimmte Tage und Uhrzeiten planen oder Scans auslösen, wenn ein bestimmtes Ereignis im Repository auftritt, z. B. ein Pushvorgang.
In dieser Lerneinheit erfahren Sie mehr über CodeQL, die drei Optionen zum Einrichten von Codeüberprüfungen und das Hinzufügen des CodeQL-Workflows zu Ihrem Repository.
Informationen zu Codescans mit CodeQL
CodeQL ist die Codeanalyse-Engine, die von GitHub entwickelt wurde, um Sicherheitsüberprüfungen zu automatisieren. Sie können Ihren Code mithilfe von CodeQL analysieren und die Ergebnisse als Codescanwarnungen anzeigen. Es gibt drei Hauptmethoden zum Einrichten der CodeQL-Analyse für die Codeüberprüfung:
- Verwenden Sie das Standardsetup, um CodeQL-Analyse für die Codeüberprüfung in Ihrem Repository schnell zu konfigurieren. Das Standardsetup behandelt die Auswahl der zu analysierenden Sprachen, Abfragesuite für die Ausführung und Ereignisse, die Überprüfungen auslösen, mit der Option zum manuellen Konfigurieren der Sprachen und Abfragesammlungen. Diese Setupoption führt Codeüberprüfungen als GitHub-Aktion aus.
- Verwenden Sie das erweiterte Setup, um den CodeQL-Workflow direkt zu Ihrem Repository hinzuzufügen. Durch direktes Hinzufügen des CodeQL-Workflows in Ihr Repository wird eine anpassbare Workflowdatei generiert, die die github/codeql-action verwendet, um die CodeQL CLI als GitHub-Aktion auszuführen.
- Ausführen der CodeQL CLI direkt in einem externen CI-System und Hochladen der Ergebnisse in GitHub.
CodeQL behandelt Code wie Daten, sodass Sie potenzielle Sicherheitsrisiken in Ihrem Code mit größerer Zuverlässigkeit als mit herkömmlichen statischen Analysetools finden können. Sie generieren eine CodeQL-Datenbank, die Ihre Codebasis darstellt, und führen dann CodeQL-Abfragen für diese Datenbank aus, um Probleme in der Codebasis zu identifizieren. Die Abfrageergebnisse werden als Codescanwarnungen in GitHub angezeigt, wenn Sie CodeQL mit Codescans verwenden.
CodeQL unterstützt sowohl kompilierte als auch interpretierte Sprachen und kann Sicherheitsrisiken und Fehler im Code finden, der in den folgenden unterstützten Sprachen geschrieben wurde:
- C oder C++
- C#
- Los
- Java/Kotlin
- JavaScript/TypeScript
- Python
- Rubin
- Swift
Im nächsten Abschnitt wird erläutert, wie Sie ihrem Repository den CodeQL-Workflow hinzufügen. In diesem Artikel erfahren Sie, wie Sie CodeQL mithilfe externer Tools in der Komponente "Codeüberprüfung mit Drittanbietertools aktivieren" einrichten.
Aktivieren von CodeQL in Ihrem Repository mit dem Standardsetup
Wenn Sie über Schreibberechtigungen für ein Repository verfügen, können Sie Codescans für dieses Repository einrichten oder konfigurieren.
Führen Sie die folgenden Schritte aus, um Codescans mit dem CodeQL GitHub Actions-Workflow einzurichten:
Navigieren Sie auf GitHub.com zur Hauptseite des Repositorys.
Wählen Sie unter Ihrem Repositorynamen "Sicherheit" aus.
Wählen Sie " Codeüberprüfung einrichten" aus. Wenn diese Option nicht verfügbar ist, bitten Sie einen Eigentümer der Organisation oder einen Repository-Administrator, die erweiterte Sicherheit von GitHub zu aktivieren.
Wählen Sie in der Dropdownliste "Einrichten" die Option "Standard" aus.
Überprüfen Sie die Standardoptionen. Wählen Sie bei Bedarf die Schaltfläche "Bearbeiten " in der unteren linken Ecke des neuen Fensters aus, um die Ausführung von CodeQL anzupassen.
Die
on:pull_request- undon:push-Trigger sind die standardmäßigen Codeüberprüfungen und sind jeweils für unterschiedliche Zwecke nützlich. Weitere Informationen zu diesen Triggern finden Sie in der Einheit "Codescan konfigurieren ".Wählen Sie "CodeQL aktivieren" aus, sobald Sie bereit sind, die Codeüberprüfung zu aktivieren.
Im standardmäßigen CodeQL-Analyse-Workflow ist die Codeüberprüfung so konfiguriert, dass Ihr Code jedes Mal analysiert wird, wenn Sie entweder eine Änderung in einen geschützten Branch übertragen oder ein Pull-Request gegen die Standardverzweigung stellen. Sobald der Push erfolgt, wird die Codeüberprüfung automatisch ausgeführt.
Im vorherigen Abschnitt haben wir die Codeüberprüfung mithilfe des Standardsetups aktiviert, das Codeüberprüfungen als GitHub-Aktion ausführt, ohne eine Workflowdatei verwalten zu müssen. Die andere Option ist "Erweitertes Setup", wodurch die Standardworkflowdatei generiert wird, die Sie für die erweiterte Konfiguration und weitere Schritte bearbeiten können. Wir behandeln die Verwendung des erweiterten Setups zum Konfigurieren der Codeüberprüfung in einer späteren Einheit.
Das Ausführen von Codeüberprüfungen mit GitHub Actions wirkt sich auf Ihre monatlichen Abrechnungsminuten aus. Wenn Sie GitHub Actions über den in Ihrem Konto enthaltenen Speicherplatz oder die Minuten hinaus nutzen möchten, wird Ihnen die weitere Nutzung in Rechnung gestellt.
Informationen zur Abrechnung für Actions
Die Codeüberprüfung verwendet GitHub Actions und jede Ausführung eines Codeüberprüfungsworkflows verbraucht Minuten für GitHub-Aktionen. Die Nutzung von GitHub Actions ist sowohl für öffentliche Repositorys als auch für selbstgehostete Runner kostenlos. Bei privaten Repositorys erhält jedes GitHub-Konto in Abhängigkeit des mit dem Konto verwendeten Produkts eine bestimmte Anzahl von kostenlosen Minuten und Menge an kostenlosem Speicher. Ausgabenbeschränkungen steuern jede Nutzung, die über die enthaltenen Beträge hinausgeht. Wenn Sie ein monatlich in Rechnung gestellter Kunde sind, verfügt Ihr Konto über ein Standardausgabenlimit von 0 US-Dollar (USD), wodurch eine zusätzliche Nutzung von Minuten oder Speicher für private Repositorys verhindert wird, die über die Beträge hinausgehen, die in Ihrem Konto enthalten sind. Wenn die Abrechnung für Ihr Konto auf Rechnung erfolgt, gilt für Ihr Konto ein unbegrenztes Standardausgabenlimit. Die Minuten werden jeden Monat zurückgesetzt, die Speichernutzung wird hingegen nicht zurückgesetzt.