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 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.
Wenn du 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 Schweregraden
Mögliche Warnungsschweregrade sind Error
, Warning
und Note
.
Wenn die code scanning als Überprüfung für Pull Requests aktiviert ist, tritt bei der Überprüfung ein Fehler auf, wenn Ergebnisse mit dem Schweregrad error
gefunden werden. Du kannst angeben, welcher Schweregrad für Codeüberprüfungswarnungen einen Überprüfungsfehler verursacht. Weitere Informationen findest du unter Anpassen Codeüberprüfung.
Informationen zu Sicherheitsschweregraden
Die Code scanning zeigt Sicherheitsschweregrade für Warnungen an, die von Sicherheitsabfragen generiert wurden. Die Sicherheitsschweregrade können Critical
, High
, Medium
oder Low
sein.
Für die Berechnung des Sicherheitsschweregrads einer Warnung verwenden wir CVSS-Daten (Common Vulnerability Scoring System). Das CVSS ist ein offenes Framework, über das die Merkmale und Schweregrade von Sicherheitsrisiken bei Software kommuniziert werden und das häufig von anderen Sicherheitsprodukten für die Bewertung von Warnungen verwendet wird. Weitere Informationen dazu, wie Schweregrade berechnet werden, findest du in diesem Blogbeitrag.
Standardmäßig führen alle Ergebnisse der code scanning mit einem Sicherheitsschweregrad von Critical
oder High
dazu, dass bei der Überprüfung ein Fehler auftritt. Du kannst angeben, welcher Sicherheitsschweregrad bei Ergebnissen der code scanning zu einem Fehler bei der Überprüfung führen soll. Weitere Informationen findest du unter Anpassen Codeüberprüfung.
Informationen zu Analyseherkunft
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 ist der Analyseursprung für alle von ihr generierten Warnungen. Beispielsweise besitzt eine Warnung, die mithilfe der CodeQL-Standardanalyse mit GitHub Actions generiert wurde, eine andere Analyse, die von einer extern generierten und über die code scanning-API hochgeladenen Warnung stammt.
Wenn du mehrere Konfigurationen zum Analysieren einer Datei verwendest, werden alle im Rahmen einer einzelnen Abfrage erkannten Probleme als Warnungen mit verschiedenen Analyseursprüngen gemeldet. Wenn eine Warnung über mehr als einen Analyseursprung verfügt, wird das Symbol neben allen relevanten Branches im Abschnitt Betroffene Branches rechts auf der Warnungsseite angezeigt. Du kannst auf das Symbol zeigen, um die Namen der einzelnen Analyseursprünge und den Status der Warnung für den jeweiligen Analyseursprung anzuzeigen. Darüber hinaus kannst du auf der Zeitachse auf der Warnungsseite anzeigen, seit wann die Warnungen für die einzelnen Analyseursprünge jeweils vorliegen. Wenn eine Warnung über nur einen Analyseursprung verfügt, werden auf der Warnungsseite keine Informationen zu Analyseursprüngen angezeigt.
Hinweis: Manchmal werden code scanning-Warnungen bei einem Analyseursprung als behoben angezeigt, bei einem anderen Analyseursprung jedoch noch als offen. Dieses Problem kannst du beheben, indem du die zweite code scanning-Konfiguration erneut ausführst, um den Warnungsstatus für diesen Analyseursprung zu aktualisieren.
Informationen zu Kennzeichnungen für nicht in Anwendungscode gefundene Warnungen
GitHub AE 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.
Beim Durchklicken durch die Warnungsdetails fällt auf, dass der Dateipfad als „Test“ markiert ist.