Snyk in 30: Entwicklerorientierter Security-Democast
2. März 2023
0 Min. LesezeitIn unserem neuesten Snyk in 30-Democast habe ich die Arbeit an einer App demonstriert – vom Start in einer IDE bis hin zur Live-App, die in der Cloud bereitgestellt wird. Dabei habe ich gezeigt, wie sich Snyk in die Tools einfügt, die Entwickler in der Praxis verwenden. Im Mittelpunkt standen die praktischen Aspekte der Implementierung von Snyk in einer realen Entwicklungs- und Cloud-Umgebung. Dabei ging ich unter anderem auf folgende Fragen ein:
Wie gestalten wir Sicherheit für Entwickler so einfach wie möglich?
Wie setzen wir Snyk-Tools gemeinsam ein, ohne doppelte Warnmeldungen und unnötiges Rauschen zu verursachen?
Wie sieht Snyk aus Sicht von Entwicklern und Sicherheitsteams aus?
Sicherheit muss Entwickler in den Mittelpunkt stellen
„Angeln Sie dort, wo die Fische sind“ ist eine alte Geschäftsweisheit, die uns daran erinnert, dort präsent zu sein, wo unsere Kunden sind. Wenn Sie als Sicherheitsteam Entwicklern dabei helfen, Probleme zu finden und zu beheben, sollten Sie sie dort abholen, wo sie arbeiten – in ihren Tools und Workflows. Wichtig ist auch, ihnen aussagekräftige Informationen zu geben, mit denen sie etwas anfangen können.
Bei der Arbeit mit modernen Apps ist das eine besondere Herausforderung. Häufig wird jeder einzelne Teil einer App durch Code definiert – die Build- und Testverfahren, die vorgesehene Laufzeitumgebung und die benötigte Infrastruktur. Das macht Deployments zwar schneller, wiederholbarer und widerstandsfähiger, aber auch Software-Supply-Chains deutlich komplexer und dynamischer als noch vor einigen Jahrzehnten.
All diese Faktoren zusammengenommen stellen Sicherheitsteams vor die große Herausforderung, eine Möglichkeit zu finden, alle diese beweglichen Teile abzusichern – und zwar so, dass ausgelastete Entwicklungsteams sie akzeptieren und umsetzen. Hier kommt das Konzept der entwicklerorientierten Sicherheit ins Spiel. Statt zu erwarten, dass Entwickler ihre täglichen Workflows und Umgebungen verlassen, unterstützen entwicklerorientierte Sicherheitstools sie dabei, Sicherheitsprobleme genau dort zu beheben, wo sie arbeiten – entlang der gesamten Code-to-Cloud-Pipeline. „Angeln Sie dort, wo die Fische sind.“
Hier erfahren Sie mehr darüber, wie AppSec die allgemeine Sicherheit verbessert.
Bei Snyk setzen wir uns dafür ein, unsere Sicherheitstools für Entwicklungsteams zugänglich und einfach nutzbar zu machen. Wir unterstützen Entwickler dabei, Sicherheitsprobleme direkt bei der Arbeit an ihren Projekten zu finden und zu beheben – beim Schreiben von Code und Entwerfen der App in der IDE, beim Committen und Speichern des Codes in Repositories, beim Zusammenführen von Änderungen in den Haupt-Branch und anschließend in den Pipelines bis hin zur Cloud. Im Snyk-Democast haben wir die folgenden Schritte behandelt:
Code während der Entwicklung absichern
Am effizientesten und kostengünstigsten lässt sich ein Sicherheitsproblem in dem Moment finden und beheben, in dem es entsteht. Änderungen lassen sich am einfachsten vornehmen, während Entwickler gerade programmieren und entscheiden, welche Pakete von Drittanbietern sie verwenden. Entscheidend ist, sie dabei zu unterstützen, Probleme zu beheben, solange der Code vor ihnen liegt.
Ich habe gezeigt, wie Snyks Tool für statische Anwendungssicherheitstests (SAST) in Ihren IDEs funktioniert. Es scannt Code in Sekundenschnelle, damit Entwickler zügig weiterarbeiten können. Außerdem werden Hinweise zur Behebung und Informationen zu jeder gefundenen Schwachstelle mit der IDE synchronisiert. So erfahren Entwickler, wie das Sicherheitsproblem entstanden ist, wie es sich durch den Code zieht und was zu seiner Behebung zu tun ist.
Entwicklerorientiertes Scannen von Abhängigkeiten von Drittanbietern
Während wir den Code aus erster Hand prüfen, können wir auch die Abhängigkeiten von Drittanbietern absichern. Snyks Tool für Software Composition Analysis (SCA) erstellt einen umfassenden Graphen aller im Projekt verwendeten Pakete von Drittanbietern samt ihrer transitiven Abhängigkeiten. Anschließend identifiziert es unsichere Komponenten. Egal, ob ein Paket von einem Entwickler hinzugefügt wurde oder es sich um eine Abhängigkeit einer Abhängigkeit handelt: Snyk zeigt Entwicklern genau, wo sie etwas ändern müssen, um die Schwachstelle zu beheben. Beim Hinzufügen von Paketen können Entwickler außerdem einen Advisor-Score prüfen, der auf Faktoren hinweist, durch die ein Paket künftig unsicher werden könnte – auch wenn aktuell keine Schwachstellen vorliegen. Wir berechnen diesen Advisor-Score anhand von Faktoren wie der Größe der Community einer Komponente und ihrer Beliebtheit. Diese eignen sich gut, um vorherzusagen, ob ein Open-Source-Paket langfristig zu Ihrer App passt.
Im Democast konzentrierte ich mich vor allem auf den App-Code in der IDE. Snyk kann während der Entwicklung in Echtzeit auch Kubernetes-YAML-Dateien und IaC-Konfigurationen ausführen und Container scannen. Dabei erhalten Entwickler ähnlich praxisnahe, auf sie zugeschnittene Hinweise zur Behebung.
Sicherheit in der Pipeline automatisieren
Sobald der Code fertig ist, wird er committet, in Repositories gepusht und kann zusammengeführt werden. Snyk lässt sich in Code-Repositories integrieren, etwa in GitHub, GitLab und Bitbucket. Das bietet nicht nur eine zusätzliche Sicherheitsebene, sondern überwacht auch den Code – selbst wenn nicht aktiv daran gearbeitet wird – und erkennt neu entdeckte Zero-Day-Schwachstellen. Snyk ermöglicht außerdem einen der unkompliziertesten und handlungsorientiertesten Scans: die PR-Prüfung. Wenn ein Entwickler versehentlich eine unsichere Komponente speichert und committet, markieren unsere Tools sie im Pull Request. Bei der Integration eines Repositorys richten wir diese Prüfungen automatisch ein, sodass das Entwicklungsteam nichts tun muss. Außerdem prüfen wir die Änderungen am Code, um sicherzustellen, dass keine neuen Schwachstellen eingeführt werden. Dank dieser integrierten Prüfungen führen neue Änderungen nicht zu neuen Problemen.
Durch die Integration in die Repositories können wir außerdem schnell bei der Behebung von Problemen helfen, indem wir PRs erstellen. Wir können eine einzelne Schwachstelle, viele Schwachstellen auf einmal oder veraltete Komponenten mit einem Fix-PR beheben. Wenn die Teams Vertrauen in ihre Testverfahren haben, lassen sich diese Korrekturen vollständig automatisieren.
Containersicherheit und das Problem mit dem Rauschen
Container zählen heute zu den beliebtesten Methoden, Apps zu paketieren und auszuführen. Sie bieten zwar Vorteile bei der Geschwindigkeit und verhindern das Problem „Auf meinem Rechner funktioniert es“, können bei Sicherheitsscans aber für viel Rauschen sorgen. „Dort angeln, wo die Fische sind“ ist gut – aber wenn Sie einen 90-Kilo-Felsbrocken in den See werfen, verscheuchen Sie die Fische. Snyk löst dieses Problem, indem es Sicherheitsprüfungen für Container ausführt.
In der Demo zeigte ich das typische Ergebnis eines Container-Scans für meine App: mehr als 700 aufgeführte Schwachstellen. Anschließend demonstrierte ich, wie Snyk konkrete Handlungsempfehlungen gibt, ohne dass Entwickler all diese Schwachstellen einzeln durchgehen müssen. Zuerst zeigte ich, wie sich ein übergeordnetes Image (oder Basis-Image) auswählen lässt. Wir sahen uns an, wie Snyk Empfehlungen bereitstellt, damit ich als Entwickler mit einer einzigen Änderung an meiner Dockerfile ein besseres übergeordnetes Image auswählen und Hunderte Probleme beseitigen kann.
Anschließend sahen wir uns einen anderen Build-Prozess an, den viele Unternehmen nutzen: Ein zentrales, auf Plattformen oder DevOps spezialisiertes Team stellt eine interne Auswahl an „Golden Images“ zusammen, die Entwickler verwenden sollen. In der Demo zeigten wir, wie Snyk Entwickler bei der Verwendung dieser Golden Images unterstützt. So können sie sich auf die Schwachstellen konzentrieren, die sie möglicherweise selbst in den Container einbringen, statt sich mit dem Rauschen eines übergeordneten Images zu beschäftigen.
Entwicklerorientierte Sicherheit bei Deployments
Mit unseren Tools für Cloud-Infrastruktur können Entwickler auch ihre Cloud-Konfigurationen zuverlässig absichern. Wie bereits erwähnt, können wir diese Scans in der IDE ausführen. In der Demo verwendete ich die Snyk CLI, um die Terraform-Konfiguration zu scannen. Auch IaC-Scans können viel Rauschen verursachen. Wenn Sie nur die Konfigurationsdatei scannen, gehen Sie vom schlimmsten Fall aus und zeigen jedes mögliche Problem an. Werden die IaC-Scans jedoch mit Kontext aus der Live-Cloud-Umgebung kombiniert, sieht die Sache anders aus. In der Demo betrachteten wir eine App mit einem AWS-S3-Speicher-Bucket. Beim alleinigen Scan der IaC-Konfiguration erhielt ich vier Warnungen zu unsicheren Sicherheitseinstellungen für den S3-Bucket. In meiner Live-Cloud-Umgebung gibt es jedoch eine zentral gesteuerte Richtlinie, die diese unsicheren Einstellungen ignoriert und so sicherstellt, dass jeder S3-Bucket sicher ist. In diesem Fall kombinierte Snyk den IaC-Scan mit dem Cloud-Kontext, um bedeutungslose Warnmeldungen auszusortieren und sich auf wichtigere Fehlkonfigurationen zu konzentrieren. Und weil Snyk Cloud und IaC vereint, müssen Sicherheitsteams nur eine einheitliche Richtlinien-Engine verwalten, um die gesamte Deployment-Umgebung abzudecken.
Snyk wurde auch für Sicherheitsteams entwickelt!
Obwohl ich mich vor allem auf die entwicklerorientierten Aspekte von Snyk konzentrierte, ging es in diesem Democast auch darum, wie Sicherheitsteams unser Tool nutzen. Snyk bietet eine zentrale Übersicht und Berichte zu all diesen Schwachstellen – für jede App und jeden Teil des Codes. Sicherheitsteams können sich Details zu Problemen in der Cloud oder im Code ansehen und nach Compliance-Framework, Umgebung oder bestimmten Problemen filtern. Anschließend können sie besonders hilfreiche Berichtsansichten speichern und exportieren oder als Links teilen.
Erfahren Sie mehr – mit diesem Snyk in 30-Democast
Wenn Sie diese Tools in Aktion sehen möchten, schauen Sie sich den vollständigen Snyk in 30-Democast an. Zusätzlich zu den oben genannten Themen stellten die Teilnehmenden während der Fragerunde einige aufschlussreiche Fragen. In den letzten Minuten des Webcasts konnten wir folgende Themen behandeln:
Die internen Sicherheitsmaßnahmen von Snyk beim Umgang mit dem Code unserer Kunden
Weitere Informationen zu unserer Partnerschaft im Bereich dynamischer Anwendungssicherheitstests (DAST)
Weitere technische Details zur Integration in Entwicklungsumgebungen
Wenn Sie mehr über unsere entwicklerorientierte Plattform erfahren und tiefer in die Fragerunde eintauchen möchten, sehen Sie sich die Präsentation hier an.
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.
