Vermehrte Angriffe auf Software-Lieferketten 5 Methoden zur Verbreitung manipulierter Software-Pakete

Ein Gastbeitrag von Harry Zorn *

Blickt man auf einige der trickreichsten Cyberattacken der letzten Zeit, so wird deutlich, dass die Software-Supply-Chain immer häufiger im Visier der Angreifer ist. Einige beliebte Techniken zur Infiltration der Software-Lieferketten und zur Verbreitung schadhafter Pakete zeigt der folgende Beitrag.

Cyber-Kriminelle machen sich vermehrt Anfälligkeiten in Software-Lieferketten zunutze, um bösartige Software-Pakete zu verteilen.
Cyber-Kriminelle machen sich vermehrt Anfälligkeiten in Software-Lieferketten zunutze, um bösartige Software-Pakete zu verteilen.
(Bild: Tumisu / Pixabay)

Das Jahr 2022 stellte ein weiteres Rekordjahr für Cyberkriminalität und Ransomware dar. Es ist bekannt, dass Cyberkriminelle ihre Angriffsmethoden ständig mit neuen und verbesserten Tools und Taktiken verbessern, um die herkömmliche Cyberabwehr zu umgehen. Es ist daher nicht leicht, solche Angriffe zu erkennen, und sie werden in der Regel erst entdeckt, wenn mehrere Opfer betroffen sind.

Ein beliebter Angriffsvektor ist dabei die Software-Supply-Chain. Der Grund dafür ist das hohe Streu- und Multiplikationspotenzial entsprechender Angriffe und ihre einfache technische Durchführung. Über die Software-Lieferkette können Cyberkriminelle Schadcode in vertrauenswürdige Anwendungen einschleusen und so eine große Zahl von Opfern erreichen. Schauen wir uns die fünf gängigsten Bedrohungen einmal an.

1. Typosquatting

Typosquatting bezeichnet eine Angriffstechnik, bei der die Angreifer den Namen eines bekannten Dienstes oder Produktes imitieren, oft nur durch einen kleinen Tippfehler unterscheidbar vom Original. Diese Praxis findet Anwendung durch Imitation von z.B. Webseiten oder Namen von ausführbaren Dateien und Softwarepaketen.

Nehmen wir an, ein Angreifer kauft den Domänennamen gogle.com anstelle der rechtmäßigen Domäne google.com, in der Hoffnung, dass die Nutzer Tippfehler machen und auf die unrechtmäßige Domäne gelangen, die dann für beliebige Angriffe wie Phishing und Code-Injection-Angriffe verwendet wird.

Analog dazu kann diese Art von Angriff kann auch zur Verbreitung bösartiger Pakete verwendet werden. In diesem Fall registrieren die Angreifer Pakete mit Namen, die beliebten Paketnamen ähneln, jedoch mit einem geringfügigen Tippfehler versehen sind. Sie registrieren diese Pakete dann in beliebten Paket-Repositories wie NPM und PyPI und hoffen, dass Entwickler gelegentlich unachtsam sind und sie installieren.

Ein positiver Trend, den das JFrog Security Forschungsteam in letzter Zeit beobachtet hat, ist, dass einige Entwickler eine aktive Rolle übernehmen und „Typosquatting-anfällige“ Namen für ihre Projekte reservieren, um zu verhindern, dass Angreifer die Kontrolle über sie übernehmen. So hat beispielsweise Google die Domain gogle.com speziell zu diesem Zweck selbst registriert. Wenn ein Nutzer also gogle.com aufruft, wird er zu google.com weitergeleitet.

2. Masquerading

Hierbei veröffentlichen Malware-Autoren oder Angreifer ein bösartiges Paket, das ein bekanntes Paket imitiert. Sie duplizieren dazu sowohl den Code als auch die Metadaten des Originalprojekts, das sie imitieren wollen, und fügen diesem Duplikat ein kleines Stück Schadcode hinzu, wodurch sie eine Art von Paket-Trojaner (siehe auch im folgenden Abschnitt) erstellen.

Diese Angriffstechnik ähnelt der Typosquatting-Methode, da sie einen Namen verwendet, der mit dem des legitimen Pakets identisch ist. Der Unterschied besteht jedoch darin, dass darauf abgezielt wird, Entwickler durch die Ähnlichkeit mit dem legitimen Paket zu täuschen, anstatt lediglich eine zufällige Nutzung aufgrund von Tippfehlern anzustreben.

3. Trojaner-Paket

Bei der Methode der Infektion mit Trojaner-Paketen veröffentlicht der Angreifer eine voll funktionsfähige Bibliothek, in der er jedoch bösartigen Code versteckt. Ähnlich wie bei der Masquerading-Technik ist der bösartige Code in der Regel klein oder verschleiert, daher ist es schwierig, die schädlichen Funktionalitäten des Pakets zu erkennen und von den legitimen zu unterscheiden.

Ein Beispiel hierfür ist das Paket, mit Hilfe dessen Malware-Autoren etliche Discord-Konten übernehmen konnten. Discord ist eine Kommunikationsanwendung mit Hunderten von Millionen registrierten Nutzern, die Sprach- und Videoanrufe, Textnachrichten und den Austausch von Mediendateien ermöglicht. Die Identität eines Benutzers im Discord-Netzwerk wird in einer Zeichenfolge dargestellt, die als Discord-Token bezeichnet wird.

Ein solcher Token besteht aus einer Reihe von Buchstaben und Zahlen, die als Autorisierungscode für den Zugriff auf die Discord-Server dienen. Die Anmeldedaten eines Benutzers können dem Angreifer vollen Zugriff auf das Discord-Konto geben. Der ursprüngliche Name und die Metadaten des markedjs-Pakets wurden von dem legitimen und beliebten markedjs-Paket kopiert, so dass die Namen nicht mehr zu unterscheiden waren.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

4. Dependency Confusion

Diese Methode nutzt eine Schwachstelle in der Art und Weise aus, in der viele Paketmanager während eines Build-Prozesses Abhängigkeiten herunterladen. Der Angreifer verwendet bestimmte Paketnamen interner Pakete eines Ziels und veröffentlicht ein manipuliertes Paket mit genau diesem Namen in einem externen öffentlichen Repository.

Der Angreifer weist dann diesem veröffentlichten Paket eine sehr hohe Versionsnummer zu. Die meisten Standard-Paketmanager ziehen es vor, das externe bösartige Paket aufgrund seiner hohen Versionsnummer auszuwählen, anstatt eine niedrige, vermeintlich veraltete, Version aus dem legitimen internen Repository herunterzuladen.

Mit dieser Art von Angriff gelang es beispielsweise dem Ethical Hacker Alex Birsan, namhafte Anbieter wie Netflix sowie Apple und Microsoft auszunutzen. Er veröffentlichte ein Paket in PyPI mit einem Namen, der wie ein internes Paket des jeweiligen Dienstes aussieht, allerdings mit einer sehr hohen Versionsnummer versehen ist. Indem er die jeweiligen Server dazu brachte, das infizierte externe Paket anstelle des legitimen internen Pakets herunterzuladen, war es ihm möglich, die Schadpakete zu verteilen und seine „Opfer“ zu infiltrieren.

5. Software-Paket-Hijacking

Bei dieser Methode wird ein legitimes, bekanntes Paket übernommen und schadhafter Code eingesetzt. Dies ist zwar keine einfache Aufgabe, aber sehr effektiv, da die Popularität der verfügbaren Pakete ausgenutzt werden kann. Das Hijacking von Softwarepaketen erfolgt in der Regel durch das Hacken der Konten von Entwicklern oder durch das Einfügen von verstecktem oder verschleiertem Schadcode als Teil eines legitimen Codebeitrags zu einem Open-Source-Projekt.

Bereits im Oktober 2021 wurde in der JavaScript-Bibliothek ein bekanntes und rechtmäßiges Paket mit dem Namen ua-parser-js angegriffen und kompromittiert, indem die Konten der Betreuer übernommen und Malware-Code in mehrere Versionen des Pakets eingeschleust wurde. Dieses beliebte Paket wurde bis heute mehr als 1,5 Milliarden Mal heruntergeladen. Bemerkenswert ist, dass der in dieses Paket eingeschleuste Code derselbe war wie in einem anderen Schadpaket, das sich ursprünglich als das legitime Paket ua-parser-js ausgab.

Effektiver Schutz vor der Kompromittierung durch schadhafte Pakete

Ein vollständiger Schutz vor solchen raffinierten Infiltrationen der Software-Lieferkette kann wohl nie garantiert werden. Für Entwickler und Sicherheitsexperten gleichermaßen ist es deshalb von größter Bedeutung, stets Achtsamkeit an den Tag zu legen. Dennoch kann eine Reihe von Vorkehrungen dabei helfen, die Wahrscheinlichkeit erfolgreicher Angriffe auf eine Organisation proaktiv zu verringern. Ein wichtiger Schritt dabei ist der Einsatz der richtigen Technologie zur Erkennung von Schadpaketen und Schwachstellen.

Harry Zorn
Harry Zorn
(Bild: JFrog)

Sicherheitsanbieter arbeiten Tag für Tag intensiv daran, fortschrittliche Schwachstellen-Scanner zu entwickeln und an die sich stets weiterentwickelnde Bedrohungslandschaft anzupassen. Derartige Sicherheitslösungen verwenden automatisierte Scanner, um kontinuierlich neue Schwachstellen in öffentlich verfügbaren Softwarepaketen zu identifizieren und diese für alle Nutzer offenzulegen. Die dafür verwendeten Technologien bieten eine wichtige Säule bei der stetigen Verbesserung der Sicherheitslage in der gesamten Software-Lieferkette und bei allen Prozessen der Softwareentwicklung.

* Harry Zorn ist VP Strategic Sales EMEA bei JFrog.

(ID:48836316)