Eine Sicherheitsanfälligkeit, die es ermöglichte, ein Update für jedes Paket im NPM-Repository zu veröffentlichen

Das Unternehmen GitHub hat Informationen zu zwei Vorfällen in der Infrastruktur des NPM-Paket-Repositorys veröffentlicht. Am 2. November meldeten externe Sicherheitsforscher (Kajetan Grzybowski und Maciej Piechota) im Rahmen des Bug-Bounty-Programms eine Schwachstelle im NPM-Repository, die es ermöglichte, eine neue Version eines beliebigen Pakets zu veröffentlichen, und das mit einem Konto, das nicht autorisiert war, solche Updates durchzuführen.

Die Schwachstelle resultierte aus einer fehlerhaften Berechtigungsprüfung im Code der Microservices, die die Anfragen an NPM verarbeiteten. Der Authentifizierungsdienst überprüfte die Zugriffsrechte auf Pakete anhand der im Anfrage übermittelten Daten, während ein anderer Dienst, der das Update im Repository hochlud, das Paket zur Veröffentlichung basierend auf den Metadaten im hochgeladenen Paket bestimmte. Dadurch konnte ein Angreifer die Veröffentlichung eines Updates für sein Paket anfordern, auf das er Zugriff hatte, aber im Paket Informationen über ein anderes Paket angeben, das letztendlich aktualisiert wurde.

Das Problem wurde 6 Stunden nach Bekanntwerden der Sicherheitsanfälligkeit behoben, aber die Schwachstelle war länger in NPM vorhanden, als die Telemetrie-Logs abdecken. GitHub gibt an, dass seit September 2020 keine Angriffe unter Ausnutzung dieser Schwachstelle verzeichnet wurden, jedoch gibt es keine Garantie, dass das Problem nicht zuvor ausgenutzt wurde.

Der zweite Vorfall ereignete sich am 26. Oktober. Während technischer Arbeiten an der Datenbank des Dienstes replicate.npmjs.com wurde festgestellt, dass vertrauliche Daten in der für externe Anfragen zugänglichen Datenbank vorhanden waren, die Informationen über die Namen interner Pakete enthüllen, die im Änderungsprotokoll erwähnt wurden. Solche Informationen könnten für Angriffe auf Abhängigkeiten in internen Projekten verwendet werden (im Februar ermöglichte ein ähnlicher Angriff die Ausführung von Code auf Servern PayPal, Microsoft, Apple, Netflix, Uber und weiteren 30 Unternehmen).

Angesichts der zunehmenden Fälle von Repository-Übernahmen großer Projekte und der Verbreitung von Malware durch die Kompromittierung von Entwicklerkonten hat GitHub beschlossen, eine verpflichtende Zwei-Faktor-Authentifizierung einzuführen. Diese Änderung tritt im ersten Quartal 2022 in Kraft und gilt für Betreuer und Administratoren von in der Liste der beliebtesten Pakete enthaltenen Projekten. Zudem wird über eine Modernisierung der Infrastruktur berichtet, die einen automatisierten Monitor und eine Analyse neuer Paketversionen zur frühzeitigen Erkennung von schädlichen Änderungen umfasst.

Wir erinnern daran, dass gemäß einer im Jahr 2020 durchgeführten Studie nur 9,27 % der Paket-Maintainer zur Sicherung des Zugangs die Zwei-Faktor-Authentifizierung nutzen. In 13,37 % der Fälle versuchten Entwickler bei der Registrierung neuer Konten, kompromittierte Passwörter zu verwenden, die in bekannten Passwortlecks auftauchten. Bei der Überprüfung der Sicherheit der verwendeten Passwörter gelang es, auf 12 % der Konten in NPM (13 % der Pakete) zuzugreifen, aufgrund der Verwendung von vorhersehbaren und triviale Passwörtern, wie "123456". Betroffen waren unter anderem 4 Benutzerkonten aus den Top 20 der beliebtesten Pakete, 13 Konten von Paketen, die mehr als 50 Millionen Mal pro Monat heruntergeladen wurden, 40 Konten mit über 10 Millionen Downloads pro Monat und 282 mit mehr als 1 Million Downloads pro Monat. Angesichts der Modul-Ladekette könnte die Kompromittierung unsicherer Konten insgesamt bis zu 52 % aller Module in NPM betroffen haben.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster