Neuer Lieferkettenangriff mit bösartigen Skripten in npm-Paketen

Ein neuer Angriff auf die Lieferkette bedroht Workstations und CI-Umgebungen. Das bösartige Skript spioniert interne Daten für weitere Attacken aus.

vorlesen Druckansicht 3 Kommentare lesen
Umzugskisten in Einkaufswagen auf Tastatur

(Bild: William Potter/Shutterstock.com)

Lesezeit: 2 Min.
close notice

This article is also available in English. It was translated with technical assistance and editorially reviewed before publication.

Vor einer Kampagne mit bösartigen Skripten in npm-Paketen warnt die Sicherheitsfirma Socket. Die Analysten haben 60 dieser Pakete entdeckt, die einen Infostealer enthalten, der wiederum einen Fingerprint der Maschine, Netzwerkdaten sowie Verzeichnisstrukturen ausspioniert und an ein Discord-Konto der Angreifer sendet.

Die sechzig Pakete gehen von drei npm-Accounts aus (bbbb335656, cdsfdfafd1232436437 und sdsds656565), jeweils zwanzig, und wurden bereits 3000 Mal heruntergeladen. Das in allen Fällen gleiche, bösartige Skript startet mit der Installation (npm install) und führt einen Sandbox-Check aus, wird also nur in einer nichtvirtuellen Umgebung aktiv, auf einer Workstation oder einem echten CI-Knoten. Betroffen sind Windows-, macOS- und Linux-Systeme.

Das Beispiel fĂĽr ein verseuchtes Paket ist in der npm-Registry inzwischen nicht mehr zu finden.

(Bild: Socket)

Immer wieder kommt es zu großflächigen Angriffen auf die Supply-Chain und obwohl die aktuell aufgetauchten Pakte inzwischen aus dem npm-Verzeichnis verschwunden sind, warnen die Analysten vor einer möglichen Ausweitung des Angriffs: "Die bösartigen Akteure können das Skript leicht klonen, seine Download-Telemetrie in Echtzeit aufzeichnen und es neu veröffentlichen." Mit den gestohlenen Daten besitzen die Täter genug Informationen für weitere Angriffe. Gerade in CI-Umgebungen ergeben sich durch die Kenntnis der Paket-Registries und Build-Pfade Möglichkeiten für weitergehende Lieferkettenangriffe.

Videos by heise

Die Sicherheitsanalysten empfehlen zur Abwehr: Entwicklerinnen und Entwickler sollten in ihren automatisierten Checks auf Webhocks nach der Installation (hier Discord), auf hartverdrahtete URLs und auf ungewöhnlich kleine Tarballs prüfen.

Ein Ausschnitt aus dem Skript zeigt die Daten, die es ausspioniert:

    const trackingData = JSON.stringify({
	
        package: package,
	
        directory: __dirname,
	
        home_directory: os.homedir(),
	
        username: os.userInfo().username,
	
        dns: dns.getServers(),
	
        internal_hostname: os.hostname(),
	
        internal_ip: getIPAddress(), 
	
        external_ip: externalIP.ip, 
	
        external_hostname: externalIP.hostname,
	
        organization: externalIP.organization,
	
        resolved_url: packageJSON ? packageJSON.___resolved : undefined,
	
        package_version: packageJSON.version,
	
        package_json: packageJSON,
	
        package_type: 'npm',
	
    });

(who)