Skip to main content

Informationen zu Codeüberprüfungswarnungen

Hier erfährst du mehr über die verschiedenen Arten von Codeüberprüfungswarnungen und die Informationen, die dir dabei helfen, das Problem zu verstehen, das von der jeweiligen Warnung hervorgehoben wird.

Wer kann dieses Feature verwenden?

Code scanning ist für alle öffentlichen Repositorys auf GitHub.com verfügbar. Code scanning ist auch für private organisationseigene Repositorys verfügbar, die GitHub Enterprise Cloud nutzen und im Besitz einer Lizenz für GitHub Advanced Security sind. Weitere Informationen findest du unter Informationen zu GitHub Advanced Security.

Informationen zu Warnungen durch die code scanning

Du kannst die code scanning so konfigurieren, dass der Code in einem Repository mit der CodeQL-Standardanalyse, einer Analyse eines Drittanbieters oder mehreren Arten von Analysen überprüft wird. Nach Abschluss der Analyse werden die daraus resultierenden Warnungen in der Sicherheitsansicht des Repositorys nebeneinander angezeigt. Ergebnisse von Drittanbietertools oder benutzerdefinierten Abfragen enthalten möglicherweise nicht alle Eigenschaften, die in Warnungen der CodeQL-Standardanalyse von GitHub angezeigt werden. Weitere Informationen findest du unter Konfigurieren des Standardsetups für das Codescanning und Konfigurieren des erweiterten Setups für das Codescanning.

Standardmäßig wird dein Code im Standardbranch und bei Pull Requests über das code scanning regelmäßig analysiert. Informationen zum Verwalten von Warnungen für einen Pull Request findest du unter Filtern von Codescanbenachrichtigungen in Pull-Anforderungen.

Du kannst die Aktionen, die als Reaktion auf code scanning-Warnungen ergriffen wurden, mit GitHub-Tools überprüfen. Weitere Informationen findest du unter Prüfen von Sicherheitswarnungen.

Informationen zu Warnungsdetails

Bei jeder Warnung werden das Problem mit dem Code und der Name des Tools, das dieses erkannt hat, hervorgehoben. Du kannst die Codezeile anzeigen, die die Warnung ausgelöst hat, sowie Eigenschaften der Warnung (z. B. Warnungsschweregrad, Sicherheitsschweregrad und die Art des Problems). Warnungen informieren dich auch darüber, seit wann das Problem besteht. Bei Warnungen, die von der CodeQL-Analyse identifiziert wurden, werden auch Informationen zur Behebung des Problems angezeigt.

Der Status und die Details auf der Warnungsseite spiegeln nur den Status der Warnung für den Standardbranch des Repositorys wider, auch wenn die Warnung in anderen Branches vorhanden ist. Du kannst den Status der Warnung für nicht standardmäßigen Branches im Abschnitt Betroffene Branches rechts auf der Warnungsseite sehen. Wenn eine Warnung im Standardbranch nicht vorhanden ist, wird der Status der Warnung als „in Pull Request“ oder „in Branch“ in grau angezeigt.

Screenshot: Elemente einer code scanning-Warnung mit dem Titel der Warnung und den relevanten Codezeilen auf der linken Seite sowie dem Schweregrad, den betroffenen Branches und Schwachstellen auf der rechten Seite. Wenn du die code scanning mit CodeQL konfigurierst, können auch Datenflussprobleme in deinem Code erkannt werden. Die Datenflussanalyse findet potenzielle Sicherheitsprobleme in Code wie die unsichere Verwendung von Daten, die Übergabe gefährlicher Argumente an Funktionen und das Durchsickern vertraulicher Informationen.

Wenn die code scanning Datenflusswarnungen meldet, zeigt GitHub Ihnen, wie die Daten durch den Code fließen. Mit der Code scanning kannst du die Bereiche deines Codes identifizieren, in denen vertrauliche Informationen offengelegt werden und die einen möglichen Einstiegspunkt für böswillige Benutzer*innen darstellen.

Informationen zu Warnungen aus mehreren Konfigurationen

Du kannst für ein Repository mehrere Konfigurationen für Codeanalysen mit verschiedenen Tools sowie für verschiedene Sprachen oder Bereiche des Codes ausführen. Jede Konfiguration von code scanning generiert eindeutige Warnungen. Beispielsweise stammt eine Warnung, die mithilfe der CodeQL-Standardanalyse mit GitHub Actions generiert wurde, aus einer anderen Konfiguration als eine Warnung, die extern generiert und über die code scanning-API hochgeladen wird.

Wenn du mehrere Konfigurationen zum Analysieren einer Datei verwendest, werden alle im Rahmen einer einzelnen Abfrage erkannten Probleme als Warnungen gemeldet, die von mehreren Konfigurationen generiert wurden. Wenn eine Warnung in mehreren Konfigurationen vorhanden ist, wird die Anzahl der Konfigurationen neben dem Branchnamen im Abschnitt „Betroffene Branches“ auf der rechten Seite der Warnungsseite angezeigt. Um die Konfigurationen für eine Warnung anzuzeigen, klicke im Abschnitt „Betroffene Branches“ auf einen Branch. Die modale Ansicht „Analysierende Konfigurationen“ wird mit den Namen jeder Konfiguration angezeigt, die die Warnung für diesen Branch generiert. Unter jeder Konfiguration wird angezeigt, wann die Warnung dieser Konfiguration zuletzt aktualisiert wurde.

Bei einer Warnung werden möglicherweise andere Status von verschiedenen Konfigurationen angezeigt. Um die Warnungsstatus zu aktualisieren, führe jede veraltete Konfiguration erneut aus. Alternativ kannst du veraltete Konfigurationen aus einem Branch löschen, um veraltete Warnungen zu entfernen. Weitere Informationen zum Löschen veralteter Konfigurationen und Warnungen findest du unter Verwalten von Codescanwarnungen für dein Repository.

Informationen zu Kennzeichnungen für nicht in Anwendungscode gefundene Warnungen

GitHub weist Warnungen, die nicht in Anwendungscode gefunden wurden, eine Kategoriekennzeichnung zu. Mit dieser Kennzeichnung wird angegeben, wo die Warnung gefunden wurde.

  • Generiert: Vom Buildprozess generierter Code
  • Test: Testcode
  • Bibliothek: Bibliotheks- oder Drittanbietercode
  • Dokumentation: Dokumentation

Bei der Code scanning werden die Dateien basierend auf dem Dateipfad kategorisiert. Ein manuelles Kategorisieren von Quelldateien ist nicht möglich.

In diesem Beispiel wird eine Warnung wie in der code scanning-Warnungsliste als „Test“ markiert.

Screenshot: Warnung in der code scanning-Liste. Rechts neben dem Titel ist die Bezeichnung „Test“ orange umrandet.

Beim Durchklicken durch die Warnungsdetails fällt auf, dass der Dateipfad als „Test“ markiert ist.

Screenshot: Details einer Warnung. Der Dateipfad und die Bezeichnung „Test“ sind orange umrandet.

Hinweis: Experimentelle Warnungen für code scanning waren verfügbar als Betaversion für JavaScript mithilfe experimenteller Technologie in der Aktion CodeQL. Dieses Feature war veraltet und in der Endphase. Weitere Informationen finden Sie unter CodeQL code scanning veraltete ML-unterstützte Warnungen.

Informationen zu Warnungsschweregraden und Sicherheitsschweregraden

Der Schweregrad für eine code scanning-Warnung gibt an, wie hoch das Risiko ist, das das Problem für Ihre Codebasis mit sich bringt.

  • Schweregrad. Alle code scanning-Warnungen haben einen Schweregrad von Error, Warning oder Note.
  • Sicherheitsschweregrad. Jede über CodeQL gefundene Sicherheitswarnung hat zudem einen Sicherheitsschweregrad von Critical, , High, Medium oder Low.

Wenn eine Warnung einen Sicherheitsschweregrad aufweist, wird dieser Grad von code scanning vorzugsweise in severity angezeigt und verwendet. Sicherheitsschweregrade folgen dem Branchenstandard Common Vulnerability Scoring System (CVSS), der auch für Hinweise in der GitHub Advisory Database verwendet wird. Weitere Informationen finden Sie unter CVSS: Qualitative Bewertungsskala des Schweregrads.

Fehler bei der Überprüfung von Pull Requests für code scanning-Warnungen

Wenn Sie code scanning für Pull Requests aktivieren, ist die Überprüfung nur dann nicht erfolgreich, wenn mindestens eine Warnung des Schweregrads error oder des Sicherheitsschweregrads critical oder high erkannt wird. Die Überprüfung ist erfolgreich, wenn Warnungen mit niedrigeren Schweregraden oder Sicherheitsschweregraden erkannt werden. Bei einer wichtigen Codebasis möchten Sie vielleicht, dass die code scanning-Überprüfung nicht erfolgreich ist, wenn beliebige Warnungen erkannt werden, sodass die Warnung behoben oder geschlossen werden muss, bevor die Codeänderung zusammengeführt wird. Weitere Informationen zu Schweregraden finden Sie unter Informationen zu Warnungsschweregraden und Sicherheitsschweregraden.

Sie können bearbeiten, welche Schweregrade und Sicherheitsschweregrade für Warnungen einen Überprüfungsfehler verursachen. Weitere Informationen finden Sie unter „Bearbeiten der Konfiguration des Standardsetups.“

Berechnung der Sicherheitsschweregrade

Wenn eine Sicherheitsabfrage zu den standardmäßigen oder erweiterten Abfragen von CodeQL hinzugefügt wird, berechnet das CodeQL-Engineering-Team den Sicherheitsschweregrad wie folgt.

  1. Suche nach allen CVEs, denen mindestens eines der CWE-Tags zugewiesen ist, die der neuen Sicherheitsabfrage zugeordnet sind.
  2. Berechnen Sie das 75. Quantils des CVSS-Werts für diese CVEs.
  3. Festlegen dieser Bewertung als Sicherheitsschweregrad für die Abfrage.
  4. Wenn Warnungen angezeigt werden, die von der Abfrage gefunden wurden, werden die numerischen Bewertungen anhand der CVSS-Definitionen in Critical, High, Medium oder Low übersetzt.

Weitere Informationen finden Sie unter CodeQL-CWE-Abdeckung auf der Dokumentationsseite zu CodeQL.