Schritte zur Reaktion auf Sicherheitslücken

Eine kleine Vorgeschichte

Am ~27. November 2018 wurde eine npm-Sicherheitslücke für alle Nutzer bekannt gegeben, die direkt oder indirekt von dem event-stream Paket abhängen. Es handelte sich um einen sehr gezielten Angriff, der nur dann aktiv wurde, wenn das Copay-Bitcoin-Wallet installiert war, woraufhin es versuchte, den Inhalt zu stehlen.

Zwei unserer Projekte, nämlich interactive-examples und BoB, hängen von einem npm-Paket namens npm-run-all ab, das wiederum vom event-stream-Paket abhängig war.

Dies bedeutete, dass nicht nur unser Personal gefährdet war, sondern auch Personen, die diese Repositories geforkt hatten, möglicherweise betroffen waren. Glücklicherweise reagierten die Maintainer des betroffenen Pakets schnell und veröffentlichten ein Update, um das Problem zu beheben. Weil wir den Renovate-Bot gegen diese Repositories laufen lassen, lag ein Pull-Request bereit zur Zusammenführung.

Dies löste jedoch nur einen Teil des Problems. Unsere Nutzer mussten noch benachrichtigt werden.

Unternommene Schritte

Die Community, insbesondere für das interactive-examples-Projekt, war ziemlich groß und nicht jeder war aktiv, aber wir mussten dennoch einen Weg finden, alle zu erreichen. Der erste Schritt bestand darin, in jedem der Repositories ein Problem zu eröffnen, das das Problem detailliert beschreibt:

Das allein reichte nicht aus, da Nutzer möglicherweise nicht aktiv Probleme überwachen. Wir mussten daher alle Forks des Projekts überprüfen.

Wir kopierten dann alle Benutzernamen dieser Nutzer und pingten sie im oben genannten Problem an, beispielsweise durch Kommentieren.

Dies war sehr effektiv, wie aus den Antworten zu entnehmen war, die das Problem erhielt, aber wir konnten es nicht dabei belassen. Der nächste Schritt war, einen Kommentar zu jedem der offenen Pull-Requests zu posten und den Nutzer über das Problem und seine nächsten Schritte zu informieren. Hier ist ein Beispiel für unsere Antwort.

Damit waren wir ziemlich zuversichtlich, dass unsere Bemühungen und die Berichterstattung über das Problem online durch npm und andere Kanäle sicherstellen würden, dass unsere Nutzer sicher sind.

Als letzter Schritt twitterten wir von unserem offiziellen Twitter-Account, um auf das Problem aufmerksam zu machen.

Abschließend

Hoffentlich werden solche Vorfälle selten und weit auseinander liegen. Sollte dies jedoch erneut passieren, bietet das oben Beschriebene eine solide Richtlinie, wie man reagieren sollte.