Skip to main content

Ein Snyk-Plugin für VS Code entwickeln: Ein Interview mit Peter Benjamin

Artikel von
Headshot of Tim Kadlec

Tim Kadlec

16. März 2017

0 Min. Lesezeit

Peter Benjamin (@pmbenjamin) ist Senior Software Engineer im Cyber-Security-Team bei Intuit. Vor Kurzem hat Peter ein großartiges VS-Code-Plugin veröffentlicht, das Snyk-Testergebnisse direkt im Editor anzeigt. Wir haben ihm ein paar Fragen zum Plugin gestellt, um mehr darüber zu erfahren.

Warum haben Sie angefangen, Snyk zu verwenden?

Für mein Team und mich ist Sicherheit ein wesentlicher Bestandteil der Softwareentwicklung – insbesondere, wenn jedes Jahr mehrere Berichte und Studien zum Sicherheitsstatus des Webs veröffentlicht werden.

Zuvor hatte ich für Node-Projekte die Node Security Platform (nsp) und für Ruby-/Rails-Projekte bundler-audit/brakeman verwendet. Diese Tools sind durchaus nützlich: Sie durchsuchen Manifestdateien (z. B. package.json, Gemfile) nach Abhängigkeiten und deren Versionen und gleichen diese mit ihrer Datenbank für Sicherheitshinweise und Schwachstellen ab. Werden bekannte Schwachstellen gefunden, sind Entwickler jedoch auf sich allein gestellt. Sie müssen recherchieren, ob die Schwachstelle dem Maintainer der Abhängigkeit gemeldet wurde oder ob eine neuere Version veröffentlicht wurde, in der sie behoben ist. Anschließend müssen sie die Schwachstellen selbst beheben.

Als ich von Snyk hörte, beschloss ich, es bei einem privaten Projekt auszuprobieren. Ich war beeindruckt davon, was Snyk alles kann. Snyk durchsucht nicht nur wie nsp Ihre Abhängigkeiten und Versionen und gleicht sie mit einer Schwachstellendatenbank ab, sondern kann Ihr Projekt auch kontinuierlich schützen und überwachen. Ich kann Snyk anweisen, mein Projekt zu beobachten und mich zu benachrichtigen, wenn künftig bekannte Schwachstellen gefunden werden.

Außerdem kann ich Snyk so einrichten, dass automatisch ein PR für mein Projekt erstellt wird, um die betreffende Schwachstelle zu beheben. Und als wäre das nicht genug, hilft mir Snyk dabei, bekannte Schwachstellen in verschiedenen Ökosystemen zu verwalten (vorerst Ruby und Node, aber ich bin sicher, dass noch viele spannende Neuerungen kommen).

Anmerkung der Redaktion: Das stimmt. :)

Snyk hebt den Schutz von Projekten vor bekannten Schwachstellen auf ein ganz neues Niveau. So wird es für Entwickler geradezu beschämend einfach, Snyk nicht in ihre regulären Entwicklungsabläufe einzubinden.

Warum haben Sie schließlich die Erweiterung für VS Code entwickelt?

Ich habe einmal gelesen, dass Snyk-Mitgründer Guy Podjarny Anwendungssicherheitstools entwickeln möchte, mit denen sich Sicherheit für Entwickler einfacher umsetzen lässt. Diese Philosophie teile ich voll und ganz. Je einfacher die Tools für Entwickler zu bedienen sind, desto häufiger werden sie eingesetzt. Und als Sicherheitsexperten wissen wir, wie dringend diese Branche bessere und sicherere Praktiken übernehmen muss.

Ich brauchte eine Möglichkeit, meine Abhängigkeiten direkt im Editor schnell zu einem bestimmten Zeitpunkt zu testen – ohne dafür in einen anderen Bereich, ein anderes Fenster oder ein Terminal wechseln und snyk test ausführen zu müssen.

Visual Studio Code zeigt die package.json-Datei einer anfälligen Todo-Demoanwendung mit ausgewähltem Snyk Test-Befehl.

Ich erkannte diese Lücke und schloss sie mit der vscode-snyk-Erweiterung.

Können Sie den Entwicklungsprozess der Erweiterung beschreiben?

Die Entwicklung des Plugins verlief ziemlich unkompliziert. Ich begann mit Microsofts Erweiterungs-Vorlage, die ich mit Yeoman generiert hatte, und legte direkt los.

Mit der programmatischen API von Snyk war ich noch nicht vertraut, und es gab keine veröffentlichte Dokumentation. Also startete ich die Node-REPL (Read-Eval-Print-Loop) und probierte so lange herum, bis ich herausgefunden hatte, was ich brauchte und wie ich es umsetzen konnte.

Von da an dauerte es etwa zwei bis drei Stunden, bis ich einen Prototyp auf meinem Rechner zum Laufen gebracht hatte, und eine weitere Stunde, um ihn vor der Veröffentlichung aufzuräumen.

Wie verwenden Sie die Erweiterung?

Snyk ist ein fester Bestandteil meines Entwicklungsprozesses – sowohl bei privaten als auch bei beruflichen Projekten. Sobald ich eine Abhängigkeit für den Produktionseinsatz in mein Projekt aufnehme, führe ich snyk test aus, um sicherzustellen, dass mein Projekt frei von bekannten Schwachstellen ist.

Visual Studio Code zeigt ein package.json-Projekt mit einem Fehlerbanner an, das 14 Pfade zu anfälligen Abhängigkeiten und Details zu Snyk-Sicherheitslücken meldet.

Mit dem VS-Code-Plugin geht das ganz einfach: „CMD + SHIFT + P“ drücken, „snyk“ eingeben und dann die Eingabetaste drücken.

Wo finden Interessierte die Erweiterung, wenn sie sie ausprobieren möchten?

Am einfachsten installieren Sie das Plugin direkt im Editor. Geben Sie dazu ext install vscode-snyk ein oder öffnen Sie den Bereich „Erweiterungen“ und suchen Sie nach „snyk“.

Wer mitwirken möchte: vscode-snyk ist Open Source und auf GitHub verfügbar. Ich freue mich über Feedback, Funktionswünsche und Beiträge aus der Community.

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.