Schritte zur Reaktion auf Sicherheitsanfälligkeiten
Ein wenig Geschichte
Am ~27. November 2018 wurde eine Sicherheitsanfälligkeit bei npm bekannt gegeben, die alle Benutzer betrifft, die direkt oder indirekt von dem Paket event-stream abhängen. Es handelte sich um einen sehr gezielten Angriff, der nur aktiviert wurde, wenn das Copay Bitcoin-Wallet installiert war, woraufhin es versuchte, die Inhalte zu stehlen.
Zwei unserer Projekte, nämlich interactive-examples und BoB, hängen von einem npm-Paket namens npm-run-all ab, das wiederum von dem event-stream Paket abhängig war.
Das bedeutete, dass nicht nur das Personal gefährdet war, sondern auch Personen, die eine dieser Repositories geforkt hatten, betroffen gewesen sein könnten. Zum Glück reagierten die Maintainer des betroffenen Pakets schnell und veröffentlichten ein Update zur Behebung des Problems. Da wir den Renovate Bot gegen diese Repositories laufen hatten, gab es einen Pull Request, der bereit war, gemergt zu werden.
Das löste jedoch nur einen Teil des Problems. Unsere Benutzer mussten noch informiert werden.
Unternommene Schritte
Die Community, insbesondere das interactive-examples Projekt, war ziemlich groß, und nicht alle waren aktiv, aber wir brauchten trotzdem einen Weg, um alle zu erreichen. Der erste Schritt war dann, ein Issue gegen jedes der Repositories zu eröffnen, in dem das Problem detailliert beschrieben wird:
Das allein reicht nicht aus, da Benutzer nicht unbedingt aktiv Issues überwachen. Wir mussten daher alle Forks des Projekts betrachten.
Wir kopierten dann alle Benutzernamen dieser Benutzer und pingten sie in dem oben genannten Issue, zum Beispiel durch Kommentieren.
Dies war sehr effektiv, gemessen an den Rückmeldungen, die das Issue erhielt, aber dabei konnten wir es nicht belassen. Der nächste Schritt war, einen Kommentar zu jedem der offenen Pull Requests zu posten, um den Benutzer über das Problem zu informieren und welche Schritte er als nächstes unternehmen sollte. Hier ist ein Beispiel für unsere Antwort.
Damit hatten wir das Gefühl, dass durch unser Engagement und die Berichterstattung über das Problem online durch npm und andere Kanäle, sichergestellt war, dass unsere Nutzer sicher sind.
Als letzter Schritt tweeteten wir von unserem offiziellen Twitter-Account, um das Bewusstsein für das Problem zu erhöhen.
Abschließend
Hoffentlich werden diese Arten von Vorfällen selten bleiben. Sollte dies jedoch wieder passieren, bietet das Obige eine solide Anleitung, wie zu reagieren ist.