Sichere Elixir-Entwicklung mit Snyk
27. April 2021
0 Min. LesezeitWir freuen uns, die Unterstützung für Elixir bekannt zu geben. Damit können Entwicklungs- und Sicherheitsteams Schwachstellen in den Elixir- und Erlang-Paketen, die sie für ihre Anwendungen verwenden, einfach finden, priorisieren und beheben!
Mit der Snyk CLI können Elixir-Entwickler:innen ihre Mix-/Hex-Projekte jetzt manuell oder an wichtigen Schritten ihres CI-Prozesses testen und überwachen. So wird sichergestellt, dass bekannte Schwachstellen frühzeitig erkannt werden, bevor Code in der Produktion bereitgestellt wird.
Die Elixir-Unterstützung ist in allen Snyk-Plänen kostenlos verfügbar!
Elixir-Sicherheit: 10 Jahre Entwicklung
Elixir, das kürzlich sein zehnjähriges Bestehen gefeiert hat, ist eine funktionale, nebenläufige Programmiersprache für allgemeine Zwecke, die auf der virtuellen BEAM-Maschine läuft, die auch für die Implementierung der Programmiersprache Erlang verwendet wird. Produktive Entwicklungswerkzeuge und ein erweiterbares Design haben Elixir für viele Unternehmen zur bevorzugten Wahl gemacht, darunter Bleacher Report, Mozilla, PagerDuty, PepsiCo und TheRealReal. Auch Open-Source-Projekte in diesem Ökosystem florieren. Hex, der Paketmanager für das Erlang-Ökosystem einschließlich Elixir, umfasst inzwischen mehr als 12.000 Pakete, die täglich millionenfach heruntergeladen werden.
Wie jede andere Sprache und jedes andere Ökosystem bergen auch diese Open-Source-Pakete Sicherheitsrisiken: Einige Elixir-Pakete enthalten bekannte Sicherheitsschwachstellen, die von Angreifern ausgenutzt werden können. Etwa 78 % der Open-Source-Schwachstellen finden sich in transitiven Abhängigkeiten. Das bedeutet, dass die große Mehrheit der Schwachstellen in Ihrer Anwendung auf Elixir-Pakete zurückzuführen ist, von deren Verwendung Sie vielleicht gar nichts wussten!

Die gute Nachricht: Die Zahl bekannter Schwachstellen in Elixir-Paketen ist nach wie vor relativ gering, insbesondere im Vergleich zu anderen Ökosystemen wie Java, JavaScript, Python, .NET und sogar Go, einer ebenfalls relativ jungen Sprache. Außerdem gibt es für 90 % der bekannten Elixir-Schwachstellen eine Lösung – eine neuere und sicherere Paketversion, auf die Sie aktualisieren können. Die schlechte Nachricht: Einige weit verbreitete Elixir-Pakete enthalten in älteren Versionen gravierende Schwachstellen.
Und wissen Sie was? Mit Snyk können Sie diese Schwachstellen frühzeitig aufdecken und schnell beheben.
Ihre Elixir-Anwendung testen und überwachen
Mit der Snyk CLI können Sie bekannte Schwachstellen in Ihren Abhängigkeiten in einer Befehlszeilenumgebung finden und beheben – sowohl manuell als auch im Rahmen Ihres CI-Workflows.
Wenn Sie neu bei der Snyk CLI sind, müssen Sie sie zu
erst installieren. Die Snyk CLI lässt sich auf verschiedene Arten installieren. So geht es mit npm:
Anschließend müssen Sie die Snyk CLI mit Ihrem Snyk-Konto verknüpfen, indem Sie sich authentifizieren:
In Ihrem Browser öffnet sich ein Tab, in dem Sie aufgefordert werden, die CLI für die Verwendung mit Ihrem Konto zu authentifizieren.
Klicken Sie einfach auf Authenticate.
Jetzt können Sie Ihre Elixir-Anwendung testen.
Wechseln Sie in den lokalen Ordner mit Ihrer Elixir-Anwendung und führen Sie anschließend Folgendes aus:
In Elixir werden häufig Umbrella-Projekte verwendet: Teilprojekte („Apps“ in der Elixir-Terminologie), die jeweils eine eigene Datei mix.exs haben, aber alle dieselbe Datei mix.lock verwenden. Snyk unterstützt diese Projektstruktur standardmäßig. Sie müssen also keine zusätzlichen CLI-Parameter angeben – es funktioniert einfach. In der Snyk CLI und der Benutzeroberfläche wird jede „App“ als separates Projekt dargestellt, die Projekte sind jedoch gruppiert.
Nach einem Scan gleicht Snyk die Abhängigkeitsliste mit der Snyk Vulnerability Database ab. Alle erkannten Schwachstellen werden anschließend samt Pfad und Anleitungen zur Behebung aufgelistet.

Wie im Bild oben zu sehen ist, habe ich das Projekt Changelog getestet – eine Elixir-Anwendung, die auf dem Phoenix-Framework, PostgreSQL und einer Reihe weiterer Open-Source-Projekte basiert. Das Projekt enthält derzeit eine Schwachstelle mit hohem Schweregrad in einem Paket namens sweet_xml. Angreifer können sie über einen XML-Entity-Expansion-Angriff mit einem Inline-DTD für einen Denial-of-Service-Angriff ausnutzen. sweet_xml ist ein äußerst beliebtes Paket, das täglich tausendfach heruntergeladen wird und meist mehrere Abhängigkeitsebenen tief in einer Anwendung verborgen ist. Leider gibt es für dieses Paket keine neuere Version mit einer Fehlerbehebung.
Um Ihr Projekt regelmäßig zu überwachen und Benachrichtigungen zu erhalten, wenn neue Schwachstellen hinzukommen, verwenden Sie den folgenden Befehl:
Snyk erstellt eine Momentaufnahme Ihrer aktuellen Abhängigkeiten und prüft sie auf neu bekannt gewordene Schwachstellen sowie auf neu verfügbare Patches oder Upgrade-Pfade. Sie können sich jetzt bei der Snyk-App anmelden und die Scan-Ergebnisse auf der Seite Projects ansehen:

Im diesmal getesteten Projekt hat Snyk mehrere Schwachstellen im beliebten Paket plug erkannt, das millionenfach heruntergeladen wurde – darunter auch einige Schwachstellen mit hohem Schweregrad.
Damit Sie die Schwachstelle und ihren Weg in Ihre Anwendung nachvollziehen können, erklären die Problemkarten, was die Schwachstelle bedeutet, wie sie eingeführt wurde und auf welche Version Sie aktualisieren sollten. Ein Prioritätswert hilft Ihnen bei der Priorisierung.

Auf dem Tab Dependencies sehen Sie einen vollständigen Abhängigkeitsbaum, der genau zeigt, wie eine Schwachstelle in Ihre Anwendung gelangt ist.

Wie bereits erwähnt, können Sie die Snyk CLI auch verwenden, um snyk test oder snyk monitor als Teil Ihrer CI-Pipeline auszuführen. Die Snyk-Integration für Jenkins ermöglicht Ihnen beispielsweise, Ihren Code kontinuierlich auf Schwachstellen zu testen und zu überwachen sowie Builds bei erkannten Schwachstellen abzubrechen.
Schnell entwickeln. Sicher bleiben!
Der Großteil des Codes, mit dem heutige Anwendungen entwickelt werden, ist Open Source. Entwickler:innen bevorzugen Open Source, weil es Geschwindigkeit, Flexibilität, Erweiterbarkeit und Qualität bietet. Wie oben erläutert, birgt diese Vorliebe und die zunehmende Abhängigkeit von Open Source jedoch Risiken, die verwaltet und minimiert werden müssen.
Mit der neuen Elixir-Unterstützung von Snyk ist das Elixir-Ökosystem jetzt sicherer.
Wie können Sie also loslegen? Schön, dass Sie fragen! Weitere Anweisungen zur Verwendung finden Sie in unserer Snyk-Dokumentation zu Elixir. Die Elixir-Unterstützung ist in allen Snyk-Plänen verfügbar. Wenn Sie Snyk bereits nutzen, müssen Sie nur die Snyk CLI installieren und die obigen Anweisungen befolgen. Wenn Sie Snyk noch nicht nutzen, registrieren Sie sich hier kostenlos!
Starten Sie mit Capture-the-Flag
Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Challenges lösen.


