Strapi's deceptive npm Pakete laufen bei der Installation

Veröffentlicht 6 min de lectura 150 Lesen

Vor kurzem entdeckten Sicherheitsforscher eine Kampagne, die schädliche Pakete in die npm-Aufzeichnung posiert als Ergänzungen zu Strapi, dem beliebten CMS von Node.js. Die Falle war nicht in einer komplexen Zero-Day-Explosion, sondern in etwas viel hinterlistiger: Pakete mit überzeugenden Namen und ein Post-Installations-Skript, das bei der Installation automatisch läuft.

Die erkannten Pakete teilten ein offensichtliches Muster: Namen, die mit "strapi-plugin" begannen, gefolgt von Begriffen wie "cron", "Datenbank" oder "Server", genug, um Entwickler durch die Suche nach Community-Erweiterungen zu verwirren. Diese Nachahmung war absichtlich: Die offiziellen Ergänzungen von Strapi nutzen einen anderen Bereich (ausgepackt unter @ strapi /), etwas, das oft übersehen wird, wenn schnelle Suchvorgänge in npm gemacht werden. Wenn Sie überprüfen möchten, wie Strapi die Entwicklung von Plugins dokumentiert, ist Ihr offizieller Leitfaden bei docs.strapi.io.

Strapi's deceptive npm Pakete laufen bei der Installation
Bild generiert mit IA.

Der wichtigste Missbrauchsvektor war der npm Post-Installationshaken. Die mit dieser Phase verbundenen Skripte werden automatisch während der "npm install" ausgeführt und vererben die Berechtigungen des Benutzers zur Installation - die in Umgebungen mit hohen Privilegien wie CI / CD-Pipeline oder Docker-Container, die als root ausgeführt werden, in äußerst wertvollen Zielen für Angreifer umwandelt. Die offizielle Dokumentation von npm auf Lebenszyklusskripten erklärt dieses Verhalten und warum es mit Vorsicht behandelt werden sollte: S.A..

Die technische Analyse dieser Pakete zeigt einen deutlichen Fortschritt in den Zielen des Angreifers. In frühen Stadien wurde versucht, lokal zugängliche Reis-Instanzen auszunutzen, um Remote-Befehlsausführung zu erreichen und Chronab-Einträge zu injizieren, die Skripte regelmäßig heruntergeladen und ausgeführt haben. Diese Skripte versuchten, Web-Shells in den öffentlichen Ordnern von Strapi zu verlassen, umgekehrte Shells durch SSH zu implementieren und die Festplatte für Geheimnisse zu scannen, von Service-Keys bis zu Kryptomoneda-Portfolio-Samen.

Wenn diese Versuche in einigen Umgebungen unzureichend waren, schwenkte die Kampagne auf vielfältigere und stehlende Taktiken: Kombination der Ausbeutung von Reds mit Techniken, um aus Docker-Containern zu entkommen und Payloads außerhalb der isolierten Umgebung zu schreiben; Einführung von direkten inverse Shells in bekannten Ports; und, sehr relevant, Suche nach Verbindungsketten zu PostgreSQL-Datenbanken und eingebettete Anmeldeinformationen, die direkten Zugang zu sensiblen ermöglichen.

Im Laufe der Zeit konzentrierten sich die Nutzlasten noch stärker auf die Erkennung und Exfiltration von Umgebungsvariablen, die Extraktion von Strapi-Konfigurationen, das Ablegen von Reis-Datenbanken durch Befehle wie INFO, DBSIZE und KEYS und die Sammlung von Geheimnissen von Docker und Kubernetes. In einigen Fällen nutzten die Angreifer codierte Anmeldeinformationen, um die PostgreSQL-Datenbanken zu verbinden und die spezifischen Tabellen von Strapi für Daten, die auf digitale Assets abzielen, zu konsultieren - was darauf hindeutet, dass die Operation möglicherweise auf Kryptomoneda-bezogene Plattformen ausgerichtet ist.

Schließlich gab es eine Konsolidierungsphase: Bereitstellung eines persistenten Implantats, das auf einen bestimmten Host abzielt, Mechanismen, um Anmeldeinformationen von bekannten Routen zu stehlen und kontinuierlichen Zugriff durch persistente Schalen zu erhalten. Laut den Forschern zeigte die Kampagne eine typische Erzählung: aggressive Versuche zur Fernausführung, gefolgt von der Anerkennung, als dies nicht das gab, was erwartet wurde, und gipfelte in anhaltendem Zugriff und Exfiltration.

Diese Art von Vorfall passt zu einem größeren Trend: Die Software-Versorgungskette ist zu einem privilegierten Ziel für Ressourcendarsteller geworden. Industrieberichte zeigen, wie Angreifer in Paketen und Bereitstellungsflüssen tätig sind, um mehrere Opfer gleichzeitig zu erreichen. Wenn Sie eine sektorale Analyse der Entwicklung dieser Angriffe lesen möchten, veröffentlichte Group-IB einen Bericht, in dem zusammengefasst wurde, wie Anti-Liefer-Kettenkampagnen die Bedrohungslandschaft verändern: Gruppen-ib.com / Blog.

Was sollte ein technisches Team tun, das herausfindet, dass es eine dieser Einheiten verwendet hat? Es ist klug, sich zu engagieren: alle betroffenen Anmeldeinformationen zu drehen, freiliegende Schlüssel und Token zu überprüfen und zu entfernen und Bilder und Artefakte nach der Reinigung oder dem Austausch von Abhängigkeiten wieder aufzubauen. Es wird auch empfohlen, CI / CD-Logs und Zugriffskontrollen zu prüfen, da ein Skript, das mit hohen Berechtigungen ausgeführt wurde, möglicherweise hinter Türen außerhalb des Rahmens des Projektarchivs gepflanzt haben.

In Bezug auf Erkennung und Sanitation ist es angebracht, nach Indikatoren wie Pakete mit inoffiziellen Namen zu suchen, die eine Marke imitieren (z.B. Plugins, die nicht den offiziellen Umfang verwenden), Überprüfungen der Integrität des Einheitsbaums (Package-lock.json, Garn.lock) und Überprüfungen von Lifecycle-Skripts in Paket. Json. Spezielle Sicherheitstools für Supply-Chain-Software sowie Gerätescanner und Open-Source-Sicherheitsanbieter helfen, diese Kontrollen zu automatisieren; wenn Sie kommerzielle und gemeinschaftliche Lösungen erkunden möchten, bieten Projekte wie Snyk Ressourcen und praktische Anleitungen: Snyk.io.

Neben den Härtungsprozessen und Werkzeugen gibt es spezielle Praktiken, die das Risiko reduzieren: die Einschränkung der Ausführung von automatischen Skripten in sensiblen Umgebungen, laufende Gebäude und Container mit dem geringsten Privileg möglich, und die Einrichtung von Richtlinien, um die Installation von unified Pakete in kritischen Pipelines zu verhindern. GitHub und andere Plattformen bieten Kontrollen und Empfehlungen zum Schutz von Token und Geheimnissen in CI, und die OWASP-Gemeinschaft hält Ressourcen, um Risiken in der Lieferkette zu verstehen und zu mindern: owasp.org.

Dieser Vorfall erinnert auch an eine grundlegende, aber mächtige Regel: Vertrauen in das Paket-Ökosystem ist eine Tür - und manchmal eine offene Tür -. Um die Hygiene der Abhängigkeiten zu stärken, die Überprüfung von Dritten zu verlangen und die Rückverfolgbarkeit der Ursprünge zu erhalten, sind Maßnahmen, die Dividenden zahlen, wenn die nächste Kampagne versucht, sich in einer harmlosen Verbesserung zu verkleiden.

Strapi's deceptive npm Pakete laufen bei der Installation
Bild generiert mit IA.

Wenn Sie Projekte mit npm und Strapi verwalten, überprüfen Sie Ihre Abhängigkeiten für verdächtige Namen und überprüfen Sie, ob jemand installiert Pakete mit Namen Muster, die imitieren Plugins. Die Reinigung der Umwelt, die rotierenden Anmeldeinformationen und das Umbauen von Artefakten aus zuverlässigen Quellen ist die minimale Antwort. Um mit offiziellen Sicherheitslücken und Warnungen aufrechtzuerhalten, können Sie auch die Sicherheitsanzeige-Datenbanken, wie GitHub's, überprüfen: github.com / Berater, und das npm ad repository auf Ihrer Homepage.

Kurz gesagt: Wir sehen wieder, wie Paketverteilung als Angriffskanal verwendet wird. Die gute Nachricht ist, dass viele der defensiven Maßnahmen bekannt und machbar sind: Mindestprivilegien, strenge Kontrolle der Abhängigkeiten und sofortige Verdrehung der Geheimnisse werden viel von den Auswirkungen mildern. Aber um den Vorteil zu erhalten, muss der gesamte Sektor - Betreuer, Plattformen und Software-Verbraucher - weiterhin Praktiken verbessern, Indikatoren teilen und schnell auf diese Kampagnen reagieren.

Wenn Sie die technischen Details dieser Art von Angriffen vertiefen und die Empfehlungen verstehen, um sie zu mildern, schlage ich vor, Sie beginnen mit den Strapi-Richtlinien für die Plugin-Entwicklung, die npm-Dokumentation über Skripte und die sektoralen Sammlungen auf Lieferkette in den oben aufgeführten Quellen verfügbar.

Deckung

Verwandte Artikel

Weitere Neuigkeiten zum selben Thema.