Grundlegendes zu CodeQL-Ergebnissen

Abgeschlossen

In früheren Einheiten haben Sie eine Datenbank erstellt und die extrahierte Datei aus Ihrem Code gescannt. Jetzt können Sie die Ergebnisse anzeigen und ermitteln, ob Sicherheitsrisiken zu beheben sind.

Anzeigen der Code-Scan-Ergebnisse aus der CodeQL-Analyse

Interpretierte Abfrageergebnisse werden automatisch im Quellcode in der CodeQL-Erweiterung für Visual Studio Code angezeigt. Ausgabeergebnisse, die von der CodeQL CLI generiert werden, können in vielen Formaten für die Verwendung mit verschiedenen Tools verwendet werden.

Sie können steuern, wie Analyseergebnisse im Quellcode angezeigt werden, indem Sie die Anweisung einer Abfrage select ändern. Sie können die Ergebnisse für andere Benutzer klar und leicht verständlich machen, während Sie die Abfrage entwickeln. Wenn Sie eigene Abfragen in der Abfragekonsole oder in der CodeQL-Erweiterung für Visual Studio Code schreiben, gibt es keine Einschränkungen für die Auswahl.

Wenn Sie eine Abfrage zum Erstellen von Benachrichtigungen im GitHub-Code-Scanning verwenden oder gültige Analyseergebnisse mithilfe der CodeQL CLI generieren möchten, müssen Sie die select-Anweisung so gestalten, dass sie Ergebnisse im erforderlichen Format meldet.

Reagieren auf Codescanbenachrichtigungen

Sie können die Codeüberprüfung einrichten, um den Code in einem Repository zu überprüfen. Sie können die Standardmäßige CodeQL-Analyse, eine Nicht-Microsoft-Analyse oder andere Analysetypen verwenden. Die resultierenden Warnungen werden im Repository nebeneinander angezeigt.

Die Standardmäßige CodeQL-Analyse von GitHub enthält möglicherweise mehr Eigenschaften für Warnungen als Ergebnisse von Nicht-Microsoft-Tools oder aus benutzerdefinierten Abfragen. In einem Standardworkflow analysiert ein Codescan Ihren Code in regelmäßigen Abständen im Standardbranch und während Pull Requests.

Jede Warnung enthält die folgenden Informationen:

  • Der Name des Werkzeugs, das das Problem im Code identifiziert hat.
  • Die Codezeile, die die Warnung ausgelöst hat.
  • Die Eigenschaften der Warnung, z. B. der Schweregrad.
  • Der Sicherheitsschweregrad.
  • Der Punkt, an dem das Problem eingeführt wurde.
  • Die Art des Problems.

Informationen umfassen auch die Behebung des Problems, wenn die CodeQL-Analyse eine Warnung identifiziert. Darüber hinaus kann die Codeüberprüfung über CodeQL Probleme mit dem Datenfluss in Ihrem Code erkennen.

Screenshot, das Warnungen zur CodeQL-Analyse zeigt.

Datenflusswarnungen

Datenanalyse findet potenzielle Sicherheitsprobleme im Code, einschließlich:

  • Verwenden von Daten auf eine Weise, die sicherheit gefährdet.
  • Die Übergabe gefährlicher Argumente an Funktionen.
  • Leck von sensiblen Informationen.

GitHub zeigt, wie Daten durch den Code bewegt werden, wenn Code-Scans auf Datenflusswarnungen hinweisen. Sie können diese Datenflusswarnungen verwenden, um die Bereiche Ihres Codes zu identifizieren, in denen vertrauliche Informationen verloren gehen. Dieses Wissen kann Ihnen helfen, den Einstiegspunkt für Angriffe durch böswillige Benutzer zu identifizieren.

Schweregrade

Alle Ergebnisse der Codeüberprüfung, die einen Schweregrad von Error haben, führen standardmäßig zu einem Überprüfungsfehler. Warnungsschweregrade sind Error, Warningund Note. Sie können den Schweregrad angeben, auf dem Pullanforderungen, die Warnungen zur Codeüberprüfung auslösen, fehlschlagen sollten.

Sicherheitsschweregradstufen

Sicherheitsabfragen, die von Codescans generiert werden, zeigen Sicherheitsschweregrade für Warnungen an. Sicherheitsschweregradstufen sind Critical, , High, Mediumund Low. GitHub verwendet Common Vulnerability Scoring System (CVSS)-Daten, um den Sicherheitsschweregrad einer Warnung zu berechnen.

Standardmäßig führen alle Ergebnisse der Codeüberprüfung, die einen Sicherheitsschweregrad von Critical oder High haben, zu einem Überprüfungsfehler. Sie können angeben, welcher Sicherheitsschweregrad zu einem Überprüfungsfehler bei Codescanergebnissen führen soll.

Code-Scan-Alarm schließen

Sie haben zwei Möglichkeiten, eine Warnung zu schließen:

  • Beheben Sie das Problem im Code.
  • Schließen oder Löschen der Warnung.

Verwerfen einer Codescanwarnung

Das Verwerfen einer Warnung ist eine Möglichkeit, eine Warnung zu schließen, wenn Sie der Meinung sind, dass sie nicht behoben werden muss. Sie können z. B. eine Warnung für einen Fehler im Code schließen, der nur zum Testen verwendet wird. Sie können auch eine Meldung schließen, wenn der Aufwand, der zum Beheben des Fehlers erforderlich ist, größer als der potenzielle Vorteil der Verbesserung des Codes ist.

Sie können Warnungen aus Codescananmerkungen im Code oder aus der Zusammenfassungsliste auf der Registerkarte Sicherheit entfernen. Um eine Warnung aus der Liste zu entfernen, wählen Sie das Menü Warnung entfernen, wählen Sie einen Grund für die Entfernung aus und klicken Sie dann auf die Schaltfläche Warnung entfernen.

Video, das das Dropdown-Menü und die Schaltfläche zum Schließen einer Warnung zeigt.

Wenn du eine Warnung verwirfst, passiert Folgendes:

  • Die Warnung wird in allen Verzweigungen geschlossen.
  • Die Warnung wird aus der Anzahl der aktuellen Warnungen für Ihr Projekt entfernt.
  • Die Warnung wird in der Zusammenfassung der Warnungen in die Liste "Geschlossen " verschoben. Falls erforderlich, können Sie es von hier aus erneut öffnen.
  • Der Grund, warum du die Warnung geschlossen hast, wird aufgezeichnet.
  • Wenn die Codeüberprüfung das nächste Mal ausgeführt wird, generiert derselbe Code keine Warnung.

Löschen einer Codeüberprüfungswarnung

Sie können eine Benachrichtigung löschen, wenn Sie über Administratorberechtigungen für das Repository verfügen. Das Löschen von Warnungen ist nützlich, wenn:

  • Sie richten ein Codescantool ein, entscheiden sich aber später, es zu entfernen.
  • Sie haben die CodeQL-Analyse mit einer größeren Anzahl von Abfragen konfiguriert, als Sie weiterhin verwenden möchten.
  • Sie haben einige Abfragen aus dem Tool entfernt.
  • Sie ihre Codescanergebnisse bereinigen möchten.

Sie können Warnungen aus der Zusammenfassungsliste auf der Registerkarte "Sicherheit " löschen.

Wenn Sie eine Benachrichtigung löschen:

  • Die Warnung wird in allen Filialen gelöscht.
  • Die Warnung wird aus der Anzahl der aktuellen Warnungen für Ihr Projekt entfernt.
  • Die Warnung wird der Liste "Geschlossen " in der Zusammenfassung der Warnungen nicht hinzugefügt.
  • Die Warnung wird in den Analyseergebnissen erneut angezeigt, wenn der Code, der die Warnung generiert hat, gleich bleibt und dasselbe Codescantool ohne Konfigurationsänderungen erneut ausgeführt wird.