Go-Sicherheit: Ankündigung verbesserter Sicherheit für Go-Anwendungen
16. Dezember 2020
0 Min. LesezeitWir freuen uns, die erweiterten Funktionen für Go-Sicherheit in Snyk Open Source und Snyk Container anzukündigen. Damit können Entwicklungs- und Sicherheitsteams Schwachstellen in ihren Go-Anwendungen effizienter finden und beheben!
Go-Entwickler können ihre Go-Projekte jetzt in den verschiedenen Phasen des SDLC testen und überwachen – von den ersten Codezeilen in ihrer IDE über die Snyk CLI in CI/CD-Pipelines bis hin zu Git-basierten Workflows. Möglich macht das die Beta-Version der Unterstützung für Go Modules in den SCM-Integrationen von Snyk.
Alles Go!
In der Stack-Overflow-Umfrage dieses Jahres gehörte Go zu den fünf beliebtesten und meistgefragten Programmiersprachen. Diesen Rang behauptet Go bereits seit einigen Jahren. Auch die Zahl der Go-Nutzer steigt, wie der GitHub State of Octoverse zeigt. Inzwischen ist Go nach Anzahl der Pull Requests die viertbeliebteste Sprache auf GitHub.
Worauf ist diese Beliebtheit zurückzuführen? Go wurde bewusst so entwickelt, dass die Sprache praxisorientierter und einfacher zu verwenden ist. Sie bietet optimierte Performance, eine insgesamt schlanke Architektur und eine einfache Syntax (Klassen gibt es in Go nicht!). Die durch Go-goroutines ermöglichte Nebenläufigkeit ist ein Beispiel dafür, warum Go als „effiziente“ Sprache gilt. Uber nutzte diese Funktion, um einen Dienst zu entwickeln, der 2017 bei Uber die höchste Anzahl an Abfragen pro Sekunde verarbeitete. Uber ist damit natürlich nicht allein. All diese Gründe haben Go zur „Programmiersprache der Cloud“ gemacht. Unternehmen wie Google, Netflix und Salesforce setzen sie ein; Projekte wie Docker und Kubernetes basieren auf ihr.
Es überrascht daher nicht, dass sich diese Trends auch bei Snyk zeigen. Wir verzeichnen einen stetigen Anstieg der Zahl von Go-Projekten, die auf Sicherheitslücken und Lizenzprobleme getestet und überwacht werden.
Go-Sicherheit in Snyk
Obwohl Go eine relativ junge Sprache ist (es gibt sie erst seit etwas mehr als zehn Jahren), nimmt die Zahl bekannter Sicherheitslücken in Go-Paketen stetig zu – und damit auch das Risiko, das durch die Einbindung dieser Pakete entsteht.
Laut der Go-Community-Umfrage von 2019 stufen 75 % der Go-Entwickler Sicherheit als äußerst wichtig ein und sind mit der Sicherheit in Go zufrieden. Das Go-Team hat außerdem Investitionen in die künftige Pflege und das Testen von Schwachstellen angekündigt. Das sind sehr positive Signale. Doch wie in etablierteren Ökosystemen müssen auch die Risiken verwaltet und minimiert werden, die durch die Einbindung von Open-Source-Abhängigkeiten entstehen.
Snyk bietet Entwicklungs- und Sicherheitsteams, die ihre Go-Anwendungen sicher entwickeln möchten, eine einfach implementierbare Lösung. Sie ermöglicht schnelle Fehlerbehebungen und basiert auf präzisen Sicherheitsinformationen:
Entwicklerfreundlichkeit – Snyk lässt sich nahtlos in bestehende Entwicklungs-Workflows integrieren, scannt Projekte in Sekundenschnelle (sogar Projekte von der Größe Kubernetes!) und ist äußerst einfach zu verwenden. Das sorgt für eine hohe Akzeptanz und maximale Produktivität.
Umfassende Abdeckung – Snyk erkennt Sicherheitslücken sowie Lizenzprobleme in allen Phasen des SDLC und unterstützt Go-Modules-Anwendungen, auch wenn diese in Containern ausgeführt werden.
Tiefgehende Sicherheitsanalysen – Seit 2019 hat Snyk Hunderte Go-Sicherheitslücken zur Snyk Intel Vulnerability Database hinzugefügt. Die meisten dieser Sicherheitslücken sind proprietär, werden nicht in der NVD aufgeführt und wurden von Snyks Security-Research-Team aufgedeckt.

Go-Sicherheitstests mit der Snyk CLI
Die Snyk CLI stellt Befehlszeilenfunktionen bereit, mit denen Sie bekannte Schwachstellen in Go-Open-Source-Paketen testen, überwachen und beheben können, die Sie in Ihre Anwendung einbinden. Sie können sie bei Bedarf während der Entwicklung Ihrer Anwendung oder als Teil Ihres CI- (Build-)Systems verwenden. Die Art und Weise, wie Snyk Abhängigkeiten scannt und sich dabei auf DepGraphs stützt, gewährleistet, dass selbst große Projekte in Sekundenschnelle getestet werden.
Um die Snyk CLI zu verwenden, müssen Sie sie zunächst installieren und anschließend mit einem Snyk-Konto authentifizieren, um ein API-Token zu erhalten. Die Nutzung ist kostenlos!
Mit dem Befehl snyk test können Sie Ihr lokales Projekt auf bekannte Schwachstellen testen. Anschließend erhalten Sie Details zu allen gefundenen Problemen – etwa Schweregrad, Typ und Beschreibung, die Anzahl der anfälligen Pfade, Maßnahmen zur Behebung und mehr.

Der Befehl snyk monitor führt ebenfalls snyk test aus, erstellt aber zusätzlich eine Momentaufnahme Ihres Go-Projekts und lädt die Ergebnisse in die Snyk-App bzw. -Benutzeroberfläche hoch. Keine Sorge: Wir erstellen nur eine Momentaufnahme Ihrer Abhängigkeiten, nicht Ihres Quellcodes! Snyk überwacht Ihr Projekt anschließend und benachrichtigt Sie, wenn neue Schwachstellen oder Fehlerbehebungen gefunden werden.
Wenn Sie Go-Anwendungen testen möchten, die in einem Container verpackt sind – etwa Container von Drittanbietern, deren Quellcode Sie nicht direkt testen können –, können Sie diese bald in einem einzigen Durchlauf als Teil Ihrer Container-Scans untersuchen. Importieren Sie dazu entweder ein Image aus einer Container-Registry oder nutzen Sie die Container-Funktion der Snyk CLI. Dabei werden sowohl Container- als auch Go-Modul-Schwachstellen erkannt. Ein solcher Container-Scan erkennt Container- und Codeprobleme in einem Durchlauf. Die Ergebnisse lassen sich weiterhin als separate Projekte anzeigen. Das ist hilfreich, wenn unterschiedliche Teams für die Behebung von Container- und Codeproblemen verantwortlich sind, und ermöglicht eine getrennte Berichterstattung.
Go-Projekte direkt in der IDE absichern
Je früher Sie Sicherheitstests in den Entwicklungsprozess integrieren, desto geringer sind die Kosten für die Behebung. Go-Entwickler können Schwachstellen bereits ab den ersten Codezeilen und direkt in ihrem bevorzugten Entwicklungstool finden und beheben. Dafür steht eine lange Liste an IDE-Plugins von Snyk zur Verfügung. Dazu zählt ein Plugin für JetBrains GoLand, das laut der oben genannten Entwicklerumfrage nach VS Code die zweitbeliebteste IDE unter Go-Entwicklern ist.
Um das Snyk-Plugin zu verwenden, laden Sie es einfach in GoLand über Preferences und anschließend Plugins herunter.

Nach der Installation lädt das Plugin die neueste Version der Snyk CLI herunter. Sobald dieser Vorgang abgeschlossen ist, können Sie einen Scan ausführen. Die Ergebnisse werden innerhalb weniger Sekunden angezeigt. Im folgenden Beispiel hat ein Scan des Vault-Projekts von HashiCorp eine kleine Anzahl von Sicherheitsproblemen aufgedeckt, die wir genauer untersuchen können, um zu verstehen, wie sie behoben werden:

Neu! Go-Sicherheitstests in Git-Workflows integrieren (BETA)
Die neueste hier angekündigte Erweiterung – die Möglichkeit, Go-Modules-Projekte in Ihren Repositories zu testen und zu überwachen – macht Sicherheits- und Lizenztests mit Snyk noch effizienter.
Mit den Source-Code-Management-Integrationen (SCM) von Snyk können Sie kontinuierlich Sicherheits- und Lizenz-Scans in allen integrierten Go-Modules-Repositories durchführen und Sicherheitslücken sowie Lizenzprobleme in Open-Source-Abhängigkeiten erkennen.
Nachdem Sie Ihre GitHub- oder Bitbucket-Integration eingerichtet und Ihr Go-Modules-Projekt importiert haben, können Sie Probleme auf der Projektseite der Snyk-Benutzeroberfläche nachverfolgen:

Diese Funktion befindet sich derzeit noch in der Beta-Phase und wird schrittweise eingeführt. Wenn Sie sie für Ihre Go-Projekte aktivieren möchten, wenden Sie sich gerne an unser Support-Team!
Wenn neu veröffentlichte Schwachstellen in Ihren Go-Abhängigkeiten erkannt werden oder ein zuvor nicht verfügbarer Patch bzw. Upgrade-Pfad bereitgestellt wird, benachrichtigt Snyk Sie über den von Ihnen konfigurierten Benachrichtigungskanal.
Auf die Plätze, fertig … Go – sicher!
Diese neueste Erweiterung baut auf den kürzlich vorgenommenen Verbesserungen der Performance von Sicherheitstests für Go-Projekte mit der Snyk CLI auf und ergänzt Snyks entwicklerfreundliche, umfassende und tiefgehende Lösung zum Schutz von Go-Anwendungen.
Angesichts der wachsenden Beliebtheit und schnellen Verbreitung von Go sowie der zunehmenden Anforderungen unserer Nutzer arbeiten wir kontinuierlich daran, unsere Unterstützung für dieses Ökosystem zu verbessern. Für 2021 planen wir außerdem, die Workflows zur Behebung von Schwachstellen zu optimieren, damit sich Go-Sicherheitslücken einfacher automatisch beheben lassen.
Sie nutzen Go und möchten loslegen? Testen Sie Snyk kostenlos!
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.
