Schädliche Pakete im Python Package Index als Typosquatting entlarvt
Hayley Denbraver
5. Dezember 2019
0 Min. LesezeitDiese Woche wurden zwei schädliche Pakete aus dem Python Package Index (PyPI) entfernt. Die Pakete jeIlyfish (eine Schreibvariante des Pakets jellyfish, die nur in bestimmten Schriftarten auffällt) und python3-dateutil (eine Nachahmung des beliebten Pakets dateutil) machten sich eine Praxis namens „Typosquatting“ zunutze. Dabei wird ein schädliches Paket unter einem Namen hochgeladen, der einem bekannten Paket ähnelt, damit Nutzer die schädliche Version herunterladen.
In diesem Beitrag fassen wir zusammen, was über die Pakete bekannt ist, beleuchten die guten und schlechten Aspekte der Situation und teilen relevante Erkenntnisse aus diesem Vorfall. Weitere Informationen finden Sie auch in unserer Schwachstellendatenbank hier und hier.
Was bisher bekannt ist
Der Exploit ist Teil des Pakets jeilyfish. Das Paket python3-dateutil enthält die Bibliothek jeilyfish als transitive Abhängigkeit. Der Exploit ist noch nicht vollständig verstanden, scheint aber SSH- und GPG-Schlüssel von infizierten Rechnern zu stehlen und an einen entfernten Server zu senden. Beide Pakete wurden aus PyPI entfernt.
Die schlechte Nachricht
Die Bibliothek
jeilyfishwar fast ein Jahr lang auf PyPI verfügbar.Da der Exploit noch nicht vollständig verstanden ist, lässt sich seine Auswirkung auf diejenigen, die ihn heruntergeladen haben, nur schwer einschätzen.
Beide schädlichen Pakete enthielten sämtliche Funktionen der Pakete, die sie nachahmten. Daher war es leicht, sie für die richtigen Pakete zu halten.
Typosquatting ist bei vielen Paketmanagern ein Problem, nicht nur bei PyPI, und wird voraussichtlich auch weiterhin eines bleiben.
Die gute Nachricht
Die Pakete wurden vergleichsweise selten heruntergeladen. Möglicherweise sind nur einige Hundert Personen betroffen.
Das Paket
python3-dateutilwar erst seit ein paar Tagen auf PyPI verfügbar.Beide schädlichen Bibliotheken wurden entfernt.
Sie können Ihr Projekt ganz einfach auf beide Schwachstellen überprüfen. Snyk ist kostenlos nutzbar und kann feststellen, ob Ihr Projekt betroffen ist.
Erkenntnisse für die Zukunft
Seien Sie beim Herunterladen von Paketen stets vorsichtig, achten Sie genau auf die Schreibweise und raten Sie niemals einen Paketnamen.
Typosquatting kann schädliche Pakete über indirekte Abhängigkeiten einschleusen, die schwer zu erkennen sein können.
Behalten Sie Ihren Abhängigkeitsbaum im Blick. Es ist wichtig zu wissen, was Sie verwenden, damit Sie Probleme erkennen können, sobald sie auftreten.
Schädliche Pakete in beliebten Open-Source-Repositories treten immer häufiger auf. Wenn Sie glauben, ein potenziell schädliches Paket entdeckt zu haben, können Sie es Snyk gemäß unserer Offenlegungsrichtlinie für Open-Source-Pakete melden.
Beginnen Sie jetzt, Ihre Open-Source-Pakete mit Snyk zu schützen!
Starten Sie mit Capture-the-Flag
Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Challenges lösen.