Sicherheitsalarm: kompromittiert @ asyncapi npm Pakete feuern die bösartigen Miasma Rahmen während des Gebäudes und CI-Flows

Autor: Veröffentlicht 5 min de lectura 233 Lesen

Die Bilder in diesem Artikel wurden mit künstlicher Intelligenz erstellt. So veröffentlichen wir

Sicherheitsuntersuchungen haben eine Lieferketten-Verlobungskampagne identifiziert, die mehrere npm-Pakete des Namensraums beeinflusste @ asyncapi, und dass sie verteilt ein Ladegerät in mehreren Stufen, die zu einem fortgeschrittenen böswilligen Rahmen, bekannt als "Miasma". Die betroffenen Pakete enthalten spezifische Versionen @ asyncapi / generator-helps, @ asyncapi / generator-Komponenten, @ asyncapi / generator und @ asyncapi / specs; diese Pakete enthielten eine injizierte Datei, die, wenn sie von Node.js mit benötigtem () geladen wurde, eine erste verdeckte Nutzlast ausgeführt hat, die von IPFS eine zweite verschlüsselte Phase namens "sync.js" heruntergeladen wurde. Die beobachtete Download-Ressource wurde auf dem öffentlichen Gateway veröffentlicht: ipfs.io / ipfs / QmQobZSp1wRPrpSEQ56qnyq7ecZh5Bg5k1fnjt4SUwHb9.

Die oben beschriebene Infektionskette hängt nicht von Installationshaken (vorinstallieren / nachinstallieren) sondern von der Belastung in Laufzeit ab: der schädliche Code wird aktiviert, wenn die infizierte Buchhandlung erforderlich ist () d während eines Builds oder in einem CI-Workflow. Dieser Unterschied ist entscheidend für die Erkennung und Reaktion, denn eine einfache npm-Installation, die die Bibliothek nicht lädt, kann die Ausführung nicht aktivieren, während eine Compilation oder eine CI-Job, die das Modul zählt.

Sicherheitsalarm: kompromittiert @ asyncapi npm Pakete feuern die bösartigen Miasma Rahmen während des Gebäudes und CI-Flows
Bild generiert mit IA.

Der Loader "sync.js" beherbergt zwei Komponenten: eins ist das verschlüsselte End-Payload-JavaScript mit dem Miasma-Framework und ein anderes ist eine große verschlüsselte Struktur, die von der Laufzeit zur Ausführung von Prozessketten verwendet wird. Das berichtete Framework verpackt Hunderte von Modulen und unterstützt mehrere Kontroll- und Kontrollkanäle, darunter HTTP REST, Nostr-Relais, IPFS, BitTorrent DHT, libp2p GossipSub und sogar einen intelligenten Vertrag in Etheum. Seine Fähigkeiten umfassen die Diebstahl von Anmeldeinformationen, die Vergiftung von IA-Werkzeugen, die laterale Bewegung von LAN und die Ausbreitung von Wurm auf Aufzeichnungen wie npm, PyPI und Cargo, sowie Mechanismen der Beharrlichkeit in systemd, crontab, gestartet und Windows-Registrierungsschlüssel.

Die Analyse zeigt auch ausgereifte operative Funktionen: Verschlüsselung von Kommunikation und Aufgaben, Datei-Upload-Transport, Signatur von Knoten und Remote-Update von Nutzlasten. Die Malware beinhaltet einen "tode man's switch"-Mechanismus, der einen gestohlenen Token überwacht und eine gelöschte Verzeichnisse aktivieren kann, wenn der Token gelöscht wird, und verhindert Systeme, die wie Sandkästen, virtuelle Maschinen, russisch-konfigurierte Geräte oder solche mit einer bestimmten Sicherheitssoftware installiert (z.B. CrowdStrike, SentinelOne, Microsoft Defender und andere) aussehen, die die die Absicht zeigt, in realen Umgebungen zu bleiben und Analyse vermeiden.

Ein wichtiger operativer Punkt, der diese Intrusion unterscheidet, ist der Veröffentlichungsvektor: Laut den an der Untersuchung beteiligten Teams erhielt der Angreifer Zugang, um die Repositorys zu drücken und die legitimen GitHub Aktionsflüsse des Projekts zu nutzen, indem er Pakete durch die Integration von GitHubs OIDC für npm veröffentlichte. Diese produzierten Pakete mit gültigen SLSA- und OIDC-Attests, die zeigen, dass die Gebäude durch einen autorisierten Workflow hergestellt wurden, aber garantiert nicht, dass die Mitglieder, die es aktiviert haben, legitim waren. Mit anderen Worten, das Vorhandensein von Herkunftsnachweisen SLSA ersetzt keine strenge Kontrolle darüber, wer schieben kann und welche Verpflichtungen akzeptiert werden.

Die schädlichen Versionen wurden bereits aus dem npm-Record entfernt, aber der Schaden kann in jedem Endpunkt materialisiert haben, der diese Module in Gebäuden, Entwicklungsumgebungen oder CI-Jobs importiert und ausgeführt hat. Jedes System, das die betroffenen Versionen geladen hat, sollte als potenziell gefährdet behandelt werden und nicht die Sicherheit aufgrund des Fehlens von Installationsskripten im Paket zu übernehmen. Json.

Für Teams und Manager, die sofortigen Maßnahmen empfohlen werden, um Artefakte zu isolieren und zu bewahren, wenn sie Ausführung vermuten, Abhängigkeiten zu prüfen und zu bauen, und um nach konkreten Indikatoren suchen: in den Lockfiles und in den Baum der Abhängigkeiten betroffen Versionen von @ asyncapi zu verfolgen; in den Repositories und in der Code-Basis aufgerufen, um zu verlangen () auf diesen Paketen; um Kind Node.js-Prozesse zu erkennen, die im Hintergrund und Dateien ausgeführt werden Es ist auch angebracht, auf der Netzwerkebene die bekannte CID / IPFS und das Gateway zu blockieren, um zukünftige Downloads zu verhindern: Neben dem vorherigen IPFS-Link können Organisationen Egresssteuerungen für öffentliche Gateways anwenden.

Sicherheitsalarm: kompromittiert @ asyncapi npm Pakete feuern die bösartigen Miasma Rahmen während des Gebäudes und CI-Flows
Bild generiert mit IA.

Auf der Ebene der Vorbeugung der Lieferkette ist es entscheidend, zu beschränken, wer Repositories modifizieren kann und welche Workflows Artefakte veröffentlichen können. Überprüfen Sie die branchenschutze, drängen Sie menschliche bewertungen, bevor sie schießen Pressemitteilungen, überprüfen Sie die Geheimnisse und Anmeldeinformationen des Push-to-repository, und begrenzen Sie die Identitäten von GitHub-Aktionen mit minimalen Berechtigungen. Beachten Sie, dass die OIDC / SLSA Tests bestätigen, dass der Build durch den vertrauenswürdigen Workflow erstellt wurde, aber die Kontrolle der Integrität des Projektarchivs oder den Schutz von Push-Anmeldeinformationen nicht ersetzen. Nützliche Unterlagen zum OIDC-Modell in GitHub und auf der SLSA-Initiative sind aus offiziellen Mitteln erhältlich: GitHub - OIDC für GitHub Aktionen und SLSA (Lieferkettenstufen für Software-Künstler).

In der Reaktions- und Vermittlungsphase ist es angebracht, technische und verfahrenstechnische Maßnahmen zu kombinieren: die offengelegten Anmeldeinformationen zu widerrufen und zu drehen, Pakete durch saubere oder rekonstruierte Versionen von verifizierten Quellen zu überprüfen und zu ersetzen, Release-Geräte in kontrollierten Umgebungen wieder aufzubauen und Hashes zu überprüfen und auf verdächtigen Endpunkten mit EDR / Antimalware forensische Analysen durchzuführen, um Exfiltrationen, Persistenzen und Module geladen von Node.js. Um zukünftiges Risiko zu reduzieren, implementieren Sie kontinuierliche Einheits-Scanning, Release Signing und Richtlinien, die die automatische Veröffentlichung ohne Änderung des Codes, der den Workflow auslöst, begrenzen.

Dieser Vorfall betont, dass das Vertrauen in die Lieferkette bedingt ist: die Garantien für den Workflow und die Unterschrift erleichtern die Rückverfolgbarkeit, die Notwendigkeit von Zugangskontrollen, menschliche Überprüfung und Leistungsüberwachung nicht ersetzen. Wenn Ihre Organisation irgendeine der kompromittierten Versionen verwendet, handelt es sich um einen Kompromiss: es hebt, untersucht und erholt sich von sauberen Quellen und nutzt die Lektion, um die Kontrollen an Repositories und CI / CD zu straffen.

Deckung

Verwandte Artikel

Weitere Neuigkeiten zum selben Thema.