Wenn du das Programmieren erlernst, ist es normal, versehentlich Sicherheitsrisiken in Projekten zu verursachen. Wenn diese Sicherheitsissues nicht behoben werden, bevor du deine Arbeit freigibst, können Angreifer sie verwenden, um deinen Code zu manipulieren und auf vertrauliche Daten zuzugreifen. Daher ist es wichtig, sie so schnell wie möglich zu identifizieren und zu patchen.
Glücklicherweise gibt es Tools wie code scanning, die automatisch Schwachstellen in Ihren öffentlichen Repositories finden, erklären und sogar beheben. In diesem Lernprogramm erfahren Sie, wie Sie Ihre Arbeit mit code scanning schützen.
Einrichten des Demo-Repositorys
Beginnen wir mit dem Forken eines Demoprojekts mit einem Sicherheitsrisiko. In diesem Projekt wird eine einfache Webseite erstellt, aber da wir das Projekt nicht bereitstellen, gibt es in dieser Übung kein Sicherheitsrisiko.
- Navigieren Sie zum
new2code/code-scanning-demo-Repository. - Klicken Sie oben rechts auf der Seite auf Fork.
- Klicke auf der angezeigten Seite auf Create fork.
Suchen von Sicherheitsrisiken in deinem Code
Nachdem wir das Projekt eingerichtet haben, schalten wir code scanning für Ihre Verzweigung ein, um nach Sicherheitsrisiken im Code zu suchen.
- Klicken Sie wieder auf GitHubder Startseite Ihres Repositorys auf Security and quality.
- Klicken Sie in der Zeile "Code scanning Warnungen" auf Einrichten code scanning.
- Wählen Sie im Abschnitt "Extras" neben "CodeQL Analyse" die Option "Einrichten" aus, und klicken Sie dann auf "Standard".
- Klicken Sie im daraufhin angezeigten Popup auf "Aktivieren" CodeQL. Dadurch wird ein GitHub Actions Workflow ausgelöst, der Ihren Code auf Sicherheitsrisiken überprüft.
- Um den Status Ihres Workflows zu überprüfen, klicken Sie in der Navigationsleiste auf "Aktionen".
- Klicken Sie nach Abschluss des Workflows in der Navigationsleiste auf Security and quality.
- Wenn Sie die code scanning vom Workflow ermittelte Warnung anzeigen möchten, klicken Sie in der Seitenleiste auf Code scanning und dann auf Reflektiertes Cross-Site-Scripting.
Verständnis einer code scanning Warnung
code scanning Nachdem wir nun eine Sicherheitsanfälligkeit im Code identifiziert haben, lassen Sie uns die in der Warnung bereitgestellten Informationen aufschlüsseln.
Standort
Die Warnung zeigt eine kleine Vorschau einer Datei, bei der die Codezeilen im Mittelpunkt stehen, die das Sicherheitsrisiko verursachen. In unserem Fall wird das Sicherheitsrisiko in Zeile 8 unserer index.js-Datei erkannt, in der wir die vom Benutzer bereitgestellten Eingaben auf unserer Website implementieren.
Wenn wir einen genaueren Blick darauf werfen, können wir sehen, dass das zugrunde liegende Issue in Zeile 7 auftritt, wenn wir Benutzereingaben greet zuweisen, ohne auf Schadcode zu überprüfen. Wenn du das Sicherheitsrisiko Schritt für Schritt im Code anzeigen möchtest, klicke in der Legende unterhalb der anfälligen Zeilen auf Show paths.

Beschreibung und Empfehlung
Unter der Dateivorschau code scanning finden Sie eine detailliertere Beschreibung der Sicherheitsanfälligkeit. Um den empfohlenen Fix sowie Beispiele für anfälligen und festen Code anzuzeigen, klicken Sie auf " Mehr anzeigen".

In unserem Fall wird empfohlen, die Benutzereingabe vor der Verwendung zu bereinigen. Dies bedeutet, dass wir die Eingabe auf Schadcode überprüfen und dann bei Bedarf bereinigen müssen.
Tipp
Wenn Sie den empfohlenen Fix nicht vollständig verstehen, versuchen Sie, zu fragen, ob Copilot-Chat es erläutert werden kann.
Zeitachse
Schließlich kannst du die Zeitleiste der Warnung am unteren Rand der Seite sehen. Die Zeitleiste enthält den Commit, bei dem das Sicherheitsrisiko zuerst erkannt wurde, und wird automatisch aktualisiert, wenn das Sicherheitsrisiko behoben wird.

Automatisches Beheben eines Sicherheitsrisikos
Um unser Projekt schnell und einfach zu sichern, lassen Sie uns GitHub Copilot Autofix für code scanning verwenden.
-
Unterhalb des Warnungstitels wird Ihnen in dem Feld vorgeschlagen: "Beschleunigen Sie die Behebung dieser Warnung mithilfe von Copilot Autofix für CodeQL", klicken Sie auf Generieren Sie Fix.
-
Nachdem Copilot den Fixvorschlag generiert hat, werden die vorgeschlagenen Änderungen beschrieben, eine Vorschau der Änderungen gerendert und alle hinzugefügten Abhängigkeiten herausgestellt. Nehmen Sie sich einen Moment Zeit, um sich die Arbeit von Copilot anzusehen.
-
Zum Erstellen eines Pull Requests mit dem Fix klicke auf Commit to new branch und dann auf Commit change.
-
Nachdem der Entwurf des Pull Requests erstellt wurde, klicke unten auf der Seite auf Ready for review, damit er zusammengeführt werden kann.
-
Klicke zum Anwenden des Fix auf Merge pull request und dann auf Confirm merge.
Sobald der Pull Request zusammengeführt und der code scanning Workflow erneut ausgeführt wird, wird der Alert automatisch geschlossen, und der Commit zur Behebung der Vulnerabilität wird der Zeitachse hinzugefügt.
Hinweis
In echten Projekten sollten Sie die von Copilot vorgeschlagenen Änderungen immer überprüfen, bevor Sie diese in Ihren Code einfügen.
Nächste Schritte
Nachdem Sie es nun in einem Demo-Repository ausprobiert code scanning haben, aktivieren Sie es in Ihren eigenen Projekten , um aktuelle und zukünftige Sicherheitsrisiken schnell zu finden und zu beheben.
Nachdem du den Code gesichert hast, den du selbst geschrieben hast, führe den nächsten Schritt in Richtung sicherer Code aus, indem du die Sicherheit deiner Abhängigkeiten überprüfst. Weitere Informationen findest du unter Finden und Beheben Ihrer ersten Abhängigkeitsverwundbarkeit.