Skip to main content

Snyk Code ergänzt Go-Sicherheitsscans

Artikel von

Frank Fischer

blog feature snyk code green

14. Oktober 2021

0 Min. Lesezeit

Hinweis der Redaktion (10. Januar 2022): Go wird von Snyk Code jetzt allgemein unterstützt.


Snyk Code wurde Anfang 2021 eingeführt und hat seitdem in kurzer Zeit große Fortschritte gemacht. Als entwicklerorientiertes Sicherheitstool bietet es eine intuitive Benutzeroberfläche und CLI, lässt sich in beliebte IDEs integrieren, liefert konkrete Empfehlungen zur Behebung von Problemen und scannt mit branchenführender Echtzeitgeschwindigkeit und hoher Genauigkeit. Darüber hinaus basiert es auf ML-gestützten Algorithmen, die aus der globalen Entwickler-Community lernen und so die umfassende Wissensbasis exponentiell erweitern.

Seit der Einführung haben wir kontinuierlich weitere Programmiersprachen hinzugefügt. Snyk Code unterstützt bereits JavaScript, TypeScript, Java, Python, C#, PHP (Beta) und jetzt … Trommelwirbel … Go als Betaversion!

Sehen wir uns an, wie wir die Go-Sicherheitsscans von Snyk Code in die Betaversion gebracht haben und wie Sie die Funktionen nutzen können.

Gos Weg in Snyk Code

Üblicherweise beginnt das Hinzufügen einer neuen Programmiersprache damit, dem Snyk Code-Modul einen Parser hinzuzufügen, der eine Zwischendarstellung des ursprünglichen Codes erzeugt. Diese Zwischendarstellung ist sprachunabhängig und unterstützt alle Merkmale moderner Mehrzwecksprachen. Anschließend wird ein ML-gestützter Prozess ausgeführt, um eine Regelwissensbasis zu erstellen. Jede Sprache verfügt über eine eigene Laufzeitumgebung oder einen eigenen Satz von Bibliotheken. Das Modul lernt, welche Funktionen als Quellen und Senken dienen.

Wie Sie sich vorstellen können, handelt es sich um einen iterativen Prozess, bei dem die Wissensbasis täglich exponentiell wächst. Sobald unsere ersten Testerinnen und Tester zurückmelden, dass sie von Sicherheitsproblemen profitieren, die andere Tools zuvor nicht erkannt haben, nehmen wir die neue Wissensbasis in den Produktivbetrieb auf. Wir kennzeichnen die Regeln als „Beta“, weil die Arbeit noch nicht abgeschlossen ist. Wir möchten jedoch so schnell wie möglich einen Mehrwert bieten und die Regeln kontinuierlich verbessern. Anschließend fügen wir täglich neue Regeln hinzu. Die Ergebnisse erfassen möglicherweise noch nicht alles, doch die Zahl der Erkenntnisse wird stetig wachsen. Wenn unsere internen Messungen und Tests bestätigen, dass wir die angestrebte Abdeckung und Genauigkeit erreicht haben, wird die Sprachunterstützung aus der Betaversion herausgenommen und vollständig unterstützt.

Dieses Verfahren kommt nun auch beim Hinzufügen einer weiteren Programmiersprache zum Einsatz: Go. Die Sprache ist noch relativ jung, hat sich in den letzten Jahren aber stark verbreitet. Go wurde entwickelt, um eine Lücke zu schließen. Sprachen wie C++, die eine hohe Leistungskontrolle bieten, gelten als komplex und umständlich. Leicht verständliche und gut lesbare Sprachen wie Python bieten dagegen offenbar eine geringere Gesamtleistung. Go wurde entwickelt, um diese Lücke zu schließen – mit Blick auf moderne Umgebungen mit starker Vernetzung und Mehrkernsystemen.

Die Programmiersprache Go bietet zwar Funktionen, die einige typische Fehlerquellen vermeiden helfen, etwa statische Typisierung und Speichersicherheit. Auch die Entwicklungsumgebung hatte von Anfang an bestimmte Tools wie einen Linter. Probleme auf semantischer Ebene gibt es jedoch weiterhin. Genau hier kommt Snyk Code ins Spiel.

Hinweis: Ihre Anwendung besteht in der Regel aus Open-Source-Abhängigkeiten und eigenem Code. Snyk Open Source scannt die Paketmanager-Konfigurationen für Go Modules, dep oder govendor und prüft auf verwundbare Pakete.

Einen Snyk Code-Scan für Ihr Go-Projekt ausführen

Einer der größten Vorteile von Snyk Code: Bei der Verwendung eines Quellcodeverwaltungssystems wie GitHub oder GitLab ist keine Installation erforderlich. Sie können nicht nur Ihren eigenen Code, sondern auch Open-Source-Repositories scannen. Alles beginnt mit einem kostenlosen Konto. Registrieren Sie sich für ein kostenloses Snyk-Konto – eine Kreditkarte ist nicht erforderlich. Sie benötigen lediglich ein GitHub- oder GitLab-Konto.

Fügen Sie als Nächstes ein Projekt hinzu – entweder eines aus Ihrem persönlichen Git-Konto oder indem Sie den Pfad zu einem öffentlichen Repository angeben. Die Scans starten automatisch. Selbst die größten Repositories mit mehreren zehntausend Dateien sind innerhalb weniger Minuten fertig.

Wenn Sie die Ergebnisse der Code-Analyse öffnen, werden die Scan-Ergebnisse im Detail angezeigt:

Snyk-Projekt-Dashboard mit durchsuchbaren Repositories, Filtern für Probleme, GitHub-Integrationen und Anzahl der Schwachstellen nach Schweregrad.

Hinweis: Da Go noch als Betaversion verfügbar ist, sind die Ergebnisse nicht so genau wie bei vollständig unterstützten Programmiersprachen. Aufgrund unserer kontinuierlichen Aktualisierungen unterscheiden sich die Ergebnisse außerdem von Tag zu Tag.

Wie bei unseren anderen Programmiersprachen unterstützen auch die IDE-Plug-ins für Visual Studio Code und JetBrains GoLand die Go-Sicherheitsscans von Snyk Code. Selbstverständlich unterstützt auch die Snyk CLI Go.

Helfen Sie uns, unsere Go-Sicherheitsscans schneller aus der Betaversion zu bringen, indem Sie sie ausprobieren und uns Feedback senden.

Starten Sie mit Capture the Flag

Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.

Gepostet in: