5 Tipps für sichere Anwendungen – ganz ohne Vorkenntnisse
27. Dezember 2022
0 Min. LesezeitDie meisten Entwickler sind keine Sicherheitsexperten. Das liegt nicht daran, dass uns Sicherheit egal ist, sondern einfach daran, dass der Tag nur eine begrenzte Zahl an Stunden hat und Features Vorrang haben. Zum Glück müssen Entwickler keine Sicherheitsexperten sein, um sichere Apps zu entwickeln – sie brauchen nur die richtigen Tools.
In diesem Artikel möchte ich Ihnen die Entwickler-Sicherheitstools von Snyk vorstellen, mit denen Sie Ihre Fähigkeiten ausbauen und Sicherheitslücken im selbst geschriebenen Code und in verwendeten Abhängigkeiten finden und beheben können. Ich spreche bewusst von Entwickler-Sicherheit, denn Snyk ist ein Sicherheitstool, das speziell für Entwickler entwickelt wurde! Also, los geht’s …
1. Unsicheren Code direkt in Ihrer IDE finden und beheben
Anders als Sie es vielleicht bisher erlebt haben, kann statische Analyse für Anwendungssicherheit tatsächlich schnell, nützlich und direkt in Ihrer IDE verfügbar sein. Für uns ist es nur logisch, dass Entwickler – die die meiste Zeit in ihrer IDE mit dem Schreiben und Lesen von Code verbringen – beim Programmieren auch Hinweise auf Sicherheitslücken in ihrem Code erhalten.
Wenn Sie beim Schreiben von Code Ergebnisse der statischen Analyse und konkrete Empfehlungen zur Behebung erhalten, sparen Sie wertvolle Zeit. Sie müssen nicht mehr später zur Codebasis zurückkehren, um Refactorings vorzunehmen und Sicherheitsmaßnahmen und -kontrollen zur Behebung eines Problems anzuwenden. Genau dieses ständige Wechseln des Kontexts vermeiden wir Entwickler gern.
Der folgende Screenshot zeigt die VS Code IDE mit der Snyk-Erweiterung im Einsatz, die Sicherheitslücken in Open-Source-Code und im Anwendungscode findet:

Zunächst wird die Codezeile hervorgehoben, die die Sicherheitslücke verursacht; ausführliche Informationen dazu erscheinen im rechten Bereich. In diesem Fall wurde eine Path-Traversal-Sicherheitslücke im Code im Codepfad gefunden, der durch den Programmcode verläuft (ermittelt durch statische Codeanalyse). Darunter wird schließlich eine von drei vorgeschlagenen Codekorrekturen angezeigt, die darauf basieren, wie ähnliche Sicherheitslücken in Open-Source-Projekten behoben wurden.
2. Sicherheitsintegrationen für Pre-Commit und CI über die CLI hinzufügen
Vielleicht verwenden Sie bereits ESLint oder GitHub Actions mit einigen Tests, bevor Sie Pull Requests einreichen. Das ist großartig! Mit der Snyk CLI (npm install -g snyk) können Sie schwerwiegende Codeprobleme vor dem Commit und in Ihrem CI-Workflow vor einem Merge finden.
Dieser Screenshot zeigt die Ergebnisse eines Snyk-Scans im Terminal. Der Code-Test der Snyk CLI wurde mit Befehlszeilenoptionen ausgeführt, um nur schwerwiegende, codebezogene Probleme herauszufiltern:

Die Snyk CLI führte mithilfe statischer Codeanalyse einen Scan mit snyk code test durch und fand fünf Sicherheitslücken. Drei davon standen im Zusammenhang mit NoSQL-Injections (einer Variante der SQL-Injection), zwei waren fest im Anwendungscode hinterlegte Geheimnisse. Und für alle Entwickler, die sich fragen, wie lange das gedauert hat: Der Scan der statischen Code-Sicherheit war in weniger als einer Minute abgeschlossen. Das reicht nicht einmal, um sich einen Kaffee zu holen.
HINWEIS: Wird statische Codeanalyse gezielt für Sicherheitszwecke eingesetzt, spricht man von statischen Anwendungssicherheitstests (SAST).
3. Die Abhängigkeiten Ihrer Anwendung ganz einfach absichern
Je mehr Abhängigkeiten Sie hinzufügen, desto größer wird das Sicherheitsrisiko Ihrer Anwendung. Denn dadurch kommen mehr Codezeilen und mehr Software (Bibliotheken, Pakete usw.) hinzu, was das Risiko für Sicherheitslücken oder unsichere Konfigurationen erhöht und Ihre Anwendung gefährdet.
Als Entwickler tauschen Sie im Grunde Entwicklungszeit gegen Sicherheits- und Wartungsrisiken ein, wenn Sie eine vorhandene Bibliothek eines Drittanbieters samt zugehöriger Lizenz verwenden. Die meisten von uns nehmen diesen Kompromiss in Kauf. Deshalb ist es wichtig, Tools zu verwenden, die Ihnen helfen, beim Einsatz von Drittanbieter-Abhängigkeiten sicher zu bleiben.
Damit Sie geschützt bleiben, kennzeichnet die Snyk-Erweiterung für VS Code die Datei package.json (eine Paket-Metadatendatei in JavaScript-Projekten) sowie require- und import-Anweisungen. So sehen Sie, welche Sicherheitsrisiken mit den npm-Abhängigkeiten von Drittanbietern verbunden sind, die Sie in Ihrer Anwendung verwenden.
Hier sehen Sie erneut einen Screenshot der VS Code IDE, diesmal mit einer package.json-Manifestdatei aus einem JavaScript-Projekt:

Diese Manifestdatei für Abhängigkeiten in JavaScript-Projekten wird vom npm-Paketmanager verwaltet. Die VS-Code-Erweiterung von Snyk kennzeichnet die Codezeilen in der IDE und weist darauf hin, dass die importierten Open-Source-Abhängigkeiten von Drittanbietern Sicherheitslücken enthalten, die behoben werden sollten.
4. Verwenden Sie keinen anfälligen Code von StackOverflow (oder ähnlichen Seiten)
Mit dem Online-Code-Checker von Snyk können Sie Code-Snippets einfügen und auf unsicheren Code überprüfen lassen, bevor Sie ihn in Ihrer eigenen Anwendung verwenden! Dieses kostenlose Tool unterstützt derzeit Python, JavaScript, Go, Java, PHP und mehr.
Im Video unten sehen Sie, wie eine beliebte Frage auf StackOverflow Code enthält, mit dem sich einfache statische HTTP-Dateiserver in Node.js erstellen lassen. Doch woher wissen Sie, ob dieser Code sicher genug ist, um ihn zu kopieren, einzufügen und auszuführen?

Wenn wir dasselbe Code-Snippet für statische Dateiserver in den Code-Checker von Snyk einfügen und auf Sicherheitsprobleme im JavaScript-Code überprüfen lassen, finden wir zwei Probleme. Eines davon ist eine schwerwiegende Path-Traversal-Sicherheitslücke.
5. Lernen Sie immer weiter
Als Entwickler müssen wir uns täglich mit dem rasanten technologischen Fortschritt auseinandersetzen – eine lohnende Investition. Genauso wichtig ist es, Ihre Fähigkeiten im sicheren Programmieren auf dem neuesten Stand zu halten. Besuchen Sie Snyk Learn und absolvieren Sie eine interaktive Lektion zur Anwendungssicherheit:

Snyk Learn ist ein kostenloses Bildungsangebot im Web, mit dem Sie als Entwickler Ihre Kenntnisse und Fähigkeiten im Bereich Anwendungssicherheit anhand praxisnaher, interaktiver und kompakter Lektionen erweitern können. Es bietet Lektionen zu allen Risiken der OWASP Top 10 sowie spezifische Sicherheitslektionen zu Themen wie Code-Injection, Open Redirect, Prototype Pollution und mehr. Außerdem gibt es sprach- und ökosystemspezifische Leitfäden für Java, Python, JavaScript, Go, PHP und mehr.
Ich empfehle Ihnen dringend, die Snyk-Erweiterung für VS Code zu installieren und sich Zeit zu nehmen, um sich mit Sicherheitsthemen vertraut zu machen – mit Snyk Learn.
Verbessern Sie Ihre Fähigkeiten im sicheren Programmieren
Kostenlose, hochwertige Schulungen zur Entwicklersicherheit – wann und wo Sie möchten.
