Skip to main content

5 Tipps für sichere Anwendungen – ganz ohne Vorkenntnisse

Artikel von
feature snyk code cli blue

27. Dezember 2022

0 Min. Lesezeit

Die 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:

Visual Studio Code mit Snyk-Sicherheitsanalyse, die eine Pfad-Traversal-Schwachstelle mit hohem Schweregrad in JavaScript-Code hervorhebt.

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:

Terminal mit einem laufenden Snyk Code-Test, der Sicherheitslücken mit hohem Schweregrad durch NoSQL-Injection und fest codierte Geheimnisse in einem Node.js-Projekt meldet.

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:

Visual Studio Code zeigt die Abhängigkeiten in der package.json eines Node.js-Projekts mit mehreren Warnungen zu Sicherheitslücken

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?

Browser-Screenshot einer Stack-Overflow-Frage mit dem Titel „Einfacher statischer Dateiserver in NodeJS“, in der JavaScript-Code zum Bereitstellen von Dateien angezeigt wird.

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-Webseite, die Sicherheitsschulungen für Entwickler bewirbt, mit einer Rakete, die aus einem aufgeschlagenen Buch startet, und einer Schaltfläche „Jetzt lernen“

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.