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 en.
Glücklicherweise gibt es Tools wie code scanning, die Sicherheitsrisiken in deinen öffentlichen Repositorys automatisch finden, erläutern und sogar beheben. In diesem Tutorial erfährst du, wie du deine Arbeit mit code scanning sicher hältst.
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.
- Navigiere zum
new2code/code-scanning-demo
-Repository. - Klicke oben rechts auf der Seite auf Fork.
- Klicke auf der angezeigten Seite auf Create fork.
Nachdem wir das Projekt eingerichtet haben, aktivieren wir code scanning für deinen Fork, um auf Sicherheitsrisiken im Code zu überprüfen.
- Wenn du wieder in bist, klicke auf der Homepage deines Repositorys auf Security.
- Klicke in der Zeile „Code scanning alerts“ auf Set upcode scanning.
- Wähle im Abschnitt „Tools“ neben „CodeQL analysis“ Set up aus, und klicke dann auf Default.
- Klicke im angezeigten Popupfenster auf Enable CodeQL. Dadurch wird ein Actions-Workflow ausgelöst, der deinen Code auf Sicherheitsrisiken überprüft.
- Klicke zum Überprüfen des Status deines Workflows in der Navigationsleiste auf Actions.
- Klicke nach Abschluss des Workflows in der Navigationsleiste auf Security.
- Klicke zum Anzeigen der code scanning-Warnung, die vom Workflow ermittelt wurde, in der seitlichen Navigation auf Code scanning, und klicke dann auf Reflected cross-site scripting.
Nachdem code scanning ein Sicherheitsrisiko im Code identifiziert hat, lass uns die in der Warnung bereitgestellten Informationen aufschlüsseln.
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.
Unter der Dateivorschau bietet code scanning eine detailliertere Beschreibung des Sicherheitsrisikos. Zum Anzeigen des empfohlenen Fix und von Beispielen für den anfälligen und korrigierten Code klicke auf Show more .
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 du den empfohlenen Fix nicht vollständig verstehst, versuche, eine Erläuterung zu erhalten, indem du Copilot Chat eine Frage stellst .
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.
Um das Projekt schnell und einfach zu schützen, wird Copilot Autofix für code scanning verwendet.
Klicke unter dem Warnungstitel im Feld mit dem Vorschlag „Speed up the remediation of this alert using Copilot Autofix for CodeQL“ auf Generate fix.
Nachdem Copilot den Vorschlag für den Fix generiert hat, werden die vorgeschlagenen Änderungen beschrieben, eine Vorschau der Änderungen angezeigt und hinzugefügte Abhängigkeiten aufgerufen. Nimm dir einen Moment Zeit, um die Arbeit von Copilot zu lesen.
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 wurde und der code scanning-Workflow noch mal ausgeführt wird, wird die Warnung automatisch geschlossen, und der Commit zur Behebung des Sicherheitsrisikos wird der Zeitleiste hinzugefügt.
Hinweis
In echten Projekten solltest du die von Copilot vorgeschlagenen Änderungen immer überprüfen, bevor du sie für deinen Code committest.
Nachdem du nun code scanning in einem Demo-Repository ausprobiert hast, aktiviere die Funktion für deine eigenen Projekte, um aktuelle und zukünftige Sicherheitsrisiken schnell zu finden und zu beheben.