Auf Dev-First Security: Snyk Code wird 1 Jahr alt!
Frank Fischer
6. Mai 2022
0 Min. LesezeitEin Jahr Snyk Code – und ein Jahr voll spannender Entwicklungen, in dem zahlreiche Meilensteine passiert und diverse Herausforderungen gemeistert wurden. Das wollen wir feiern und Revue passieren lassen – und uns ansehen, wohin die Reise geht.
Erste Station: DeepCode
Snyk Code ist das Ergebnis wegweisender Prozesse und der Umsetzung der Engine, die heute das Herzstück der Lösung bildet. Seine Ursprünge liegen in einem im Jahr 2013 ins Leben gerufenen Forschungsprojekt zur umfassenderen Nutzung von sogenanntem Big Code.
Unter Big Code versteht man die zunehmende Menge an Programmen, die in Open-Source-Repositories gehostet werden. Beispiel GitHub: Anfang 2016 waren dort noch 30 Millionen Repositories öffentlich verfügbar, im März 2020 bereits mehr als 128 Millionen – eine Vervierfachung innerhalb von gerade einmal vier Jahren.
Darin erfasst ist somit also auch ein gewaltiger Fundus an Wissen der globalen Dev-Community, dessen Nutzung in der Programmierung enorme Potenziale bietet. Ansätze dafür wurden in der Forschung tatsächlich bereits seit 2007 diskutiert.
Allerdings bestanden dafür eine Reihe entscheidender Hürden. Denn zusätzlich zu den Problemstellungen, die auch mit Big Data einhergehen, birgt Big Code noch ganz eigene Herausforderungen. So etwa eine quasi unendliche Zahl an potenziellen Verhaltensszenarien, die entsprechende Vorhersagen erheblich erschwert. Bis dato bestehende Verfahren für maschinelles Lernen hatten dafür viel zu kurz gegriffen, da sich der Quellcode mit ihnen nur als einfacher Text verarbeiten ließ.
Den Grundstein für bessere geeignete Verfahren und letztlich auch für Snyk Code legte 2013 schließlich das Secure, Reliable and Intelligent Systems Lab der Eidgenössischen Technischen Hochschule (ETH) Zürich unter Leitung von Informatikprofessor Martin Vechev. Mit einem Team um seinen damaligen Doktoranden Veselin Raychev (heute Head of Artificial Intelligence bei Snyk) entwickelte er Prototypen von KI-gestützten Systemen, die durch die Kombination von statischen, auf logischer Folgerung basierenden Code-Analysen und datengestützten ML-Verfahren in der Lage waren, aus Open-Source-Programmen zu lernen.
Für die daraus entstandene Doktorarbeit zu maschinellem Lernen im Kontext von Big Code wurde Raychev gleich mehrfach ausgezeichnet: Neben einer Medaille der ETH erhielt er auch den renommierten ACM Doctoral Dissertation Award, Honorable Mention, der in seiner 40-jährigen Geschichte erst zwei Europäern vor ihm und noch keinem anderen Doktoranden mit bulgarischen Wurzeln verliehen worden war.
Nun fehlte nur noch die Transformation der Forschungsergebnisse in ein marktfähiges Tool, und so hoben Raychev und Professor Vechev gemeinsam mit Boris Paskalev (heute Head of Product, AI, bei Snyk) im Jahr 2016 schließlich DeepCode aus der Taufe.
Eine der größten Hürden für KI-gestütztes Lernen aus Code besteht in der Skalierung der zugrunde liegenden Iterationen. Denn dazu gilt es, immense Mengen an Code schnell genug verarbeiten zu können. DeepCode brachte hier ein Reihe wegweisender Fortschritte auf den Weg, die bis heute nachwirken. So etwa maschinelles Lernen, das auch ohne Geschwindigkeitseinbußen in großem Maßstab auf semantische Code-Analysen anwendbar ist. Denn damit machte es die zugrunde liegende Engine möglich, einen höchst genauen Regelsatz für die Knowledge Base aufzubauen, die bis heute kontinuierlich erweitert wird. Mehr hierzu sowie weitere Einzelheiten haben wir in unserem Blog zu den Technologien hinter Snyk Code zusammengefasst, dies auch mit Referenzen zu damit verbundenen Publikationen und Forschungsarbeiten.
Hinter der Gründung von DeepCode stand die Idee, hochkomplexe semantische Code-Analysen intuitiv und nahtlos in den Dev-Prozess zu bringen. Der weltweiten User Base aus hunderttausenden Entwicklern nach gelang dies mit Bravour. Überzeugen konnte neben der hohen Scan-Geschwindigkeit und Verlässlichkeit der KI-gestützten Engine insbesondere der starke Developer-Fokus des Tools: Nicht nur, dass es Erläuterungen zu seinen Scan-Ergebnissen lieferte, es unterstützte Entwickler auch dabei, in ihrem Code erkannte Schwachstellen klar nachzuvollziehen und punktgenau zu beheben.
Als 2020 dann erste Gespräche zum Zusammenschluss mit Snyk begannen, passte alles zusammen: Die revolutionären Neuerungen, die DeepCode mit seiner Engine in statische Code-Analysen brachte, konnte Snyk durch eine technisch ausgereifte Plattform, umfassendes Security-Know-how und in einem globalen Netzwerk etablierte Vertriebs- und Marketing-Strukturen ideal ergänzen. Bei alldem verband die beiden aber insbesondere auch eine intern wie extern ganz auf Developer-First ausgerichtete Kultur, und so ging DeepCode schließlich in Snyk auf.
Einige Monate intensiver Arbeit folgten, in denen Snyk Code konzeptioniert und zusammen mit der DeepCode Engine für die Implementierung in die Snyk Plattform vorbereitet wurde. Neben umfangreichem kuratierten Content ergänzte das Team gemeinsam mit führenden Security- und Dev-Experten von Synk dabei auch Elemente wie Data-Flow-Visualisierung und machte im letzten Schritt alles fertig für den Beta-Release. Bereits davor bestand eine breite Kundenbasis für Snyk Code – ein Beleg nicht nur dafür, dass das Produkt zentrale Marktanforderungen erfüllte, sondern auch für das große Vertrauen der Dev-Community in die Technologien von Snyk. Für Bestandskunden freigeschaltet wurde Snyk Code Anfang 2021, im April folgte seine Aufnahme in unser Freemium-Programm. So gestaltet es sich auch etwas schwierig, ein passendes „Geburtsdatum“ von Snyk Code zu bestimmen – zumal darüber hinaus etwa auch der Zusammenschluss von Snyk und DeepCode ein guter Kandidat hierfür gewesen wäre. Letztlich entschieden wir uns dann aber für den 6\. Mai, da Snyk Code von diesem Tag an allgemein verfügbar wurde.
Status quo heute
Ein Jahr und zahlreiche Wegmarken später ist Snyk Code zu einem umso eindrucksvolleren Tool herangewachsen. Hierzu ein kurzer Abriss:
Zum Zeitpunkt der Veröffentlichung dieses Artikels wurden mit Snyk Code innerhalb von nur einem Monat rund 2,5 Millionen Code-Probleme in über 250.000 Projekten aufgespürt. Für Scans genutzt wird das Tool dabei von mehr als 1.000 Unternehmen weltweit.
Zu den drei Programmiersprachen, die anfangs unterstützt wurden, gesellen sich nun auch JavaScript, Typescript, Java, PHP, C#, Ruby, Python, Swift, Kotlin und Go.
Ebenfalls ergänzt wurden IDE-Integrationen für Visual Studio Code, IntelliJ, WebStorm, PyCharm, GoLand und Visual Studio.
Ein konsequenter Fokus auf Innovation findet sich zudem in der semantischen Code-Analyse. So wurde sie um Kontextdetails erweitert, ist zudem schneller abgeschlossen als bei jeder anderen Lösung auf dem Markt. Hinzu kommt Unterstützung für GraphQL-Security, außerdem ist die Engine in der Lage, Trojan Source-Angriffe in sämtlichen unterstützten Programmiersprachen aufzudecken und zu unterbinden. Weiter ermöglicht die Programmlogik von Snyk Code Entwicklern das Ignorieren nicht relevanter Vorschläge.
Einiges getan hat sich auch im Team hinter Snyk Code: Von Regelsatz und Engine bis zur Web- und IDE-Integration sind sämtliche Funktionsbereiche nun personell wie strukturell deutlich breiter aufgestellt. So spielt der Standort Zürich zwar auch weiterhin eine wichtige Rolle, doch operiert das Team inzwischen über den europäischen Kontinent hinaus auch von Nordamerika, Asien und Australien aus.
Dabei ist für Engine, Aufbau und Kuratierung des Regelsatzes für die Knowledge Base, Frontend-UX und IDE-Plug-ins nun ein jeweils eigenes Team betraut, das seinerseits noch einmal in spezifische Einzelbereiche aufgegliedert ist. Snyk Code ist damit zu einem der wichtigsten Elemente unserer Plattform geworden.
Von der Integration in unsere Gesamtplattform über die Erweiterung unterstützter Programmiersprachen und IDE-Integrationen bis hin zur Ergänzung neuer Scan-Features war die Entwicklung rund um Snyk Code also enorm – und wird auch in Jahr 2 ihre ungebremste Dynamik behalten.
Ausblick
Wo die Highlights des vergangenen Jahres aufhören, stehen schon die nächsten auf dem Plan. So etwa die Folgenden:
Reporting: Mit der Übernahme von TopCoat haben wir uns jüngst einen Spezialisten für Data Analytics ins Boot geholt, der völlig neue Reporting-Möglichkeiten in die Snyk Plattform bringen wird.
Programmiersprachen: Auch hier werden wir die Spannweite noch einmal vergrößern und etwa Unterstützung für Swift und Apex in Snyk Code implementieren. Zudem haben wir bereits jetzt einige Features ergänzt, mittels derer die Einrichtung von Regeln für sämtliche unterstützten Programmiersprachen erheblich schneller vonstatten geht.
Engine-Features: Ganz im Sinne maschineller Lernkonzepte drehen wir hier auch weiterhin kräftig an den Stellschrauben zur Stärkung unserer Features für Static Application Security Testing (SAST).
IDE-Integrationen: Was uns ausmacht, ist bekanntlich der Fokus auf Effizienz und Ergebnisse direkt in der Wirkungsstätte von Entwickler-Teams. So werden wir die Möglichkeiten zur Integration von Snyk in IDE-Systeme auch in den kommenden 12 Monaten erweitern und optimieren.
Community-Fokus: Snyk Code kann vollkommen kostenlos für Open-Source-Projekte getestet werden. Dennoch stellen wir fest, dass SAST-Scans in der Community noch alles andere als die Regel sind. Unser Engagement, Open-Source-Entwickler durch wichtiges Know-how und zielführende Produkte zu unterstützen, setzen wir auch weiterhin fort.
Produkt-Features: SAST bildet die Schnittstelle zwischen den Teams aus Entwicklung, Security und Leadership. Deren spezifischen Anforderungen sind uns dank unserer engen Zusammenarbeit mit allen Nutzergruppen bestens bekannt. In unserer Feature-Roadmap bilden wir die verschiedenen Problemstellungen dieser Rollen umfassend ab.
Unsere Vision: Snyk Mitgründer Guy Podjarny gab in seiner Keynote auf der SnykCon 2021 einige spannende Einblicke zu unserer Vision für die Zukunft und dazu, wie wir diese nicht zuletzt auch mit Snyk Code und der Power seiner Engine umsetzen werden.
Es bleibt also höchst spannend rund um diesen so jungen wie bedeutsamen Neuzugang für unsere Plattform. Umso mehr lohnt es sich, jetzt mit Snyk Code zu starten und damit starke Sicherheit in alle Facetten des Development-Prozesses zu bringen.
Starke Code-Sicherheit mit wegweisender Security Intelligence
Machen Sie die Probe aufs Exempel und erleben Sie das gesamte Potenzial von SAST-Scans mit Snyk Code.