Zwei trojanisierte Python- und PHP-Pakete wurden in einem weiteren Fall eines Angriffs auf die Software-Lieferkette entdeckt, der auf das Open-Source-Ökosystem abzielt.

Eines der fraglichen Pakete ist „ctx“, ein Python-Modul, das im PyPi-Repository verfügbar ist. Das andere ist „phpass“, ein PHP-Paket, das auf GitHub geforkt wurde, um ein gefälschtes Update zu verbreiten.

„In beiden Fällen scheint der Angreifer Pakete übernommen zu haben, die seit einiger Zeit nicht mehr aktualisiert wurden“, so das SANS Internet Storm Center (ISC), dessen freiwilliger Mitarbeiter Yee Ching das ctx-Paket analysierte.

Es ist erwähnenswert, dass ctx vor der letzten Veröffentlichung am 21. Mai 2022 zuletzt am 19. Dezember 2014 in PyPi veröffentlicht wurde. phpass hingegen hat kein Update mehr erhalten, seit es am 31. August 2012 auf Packagist hochgeladen wurde. Beide Bibliotheken wurden von PyPi und GitHub entfernt.

Im Kern zielen die Modifikationen darauf ab, AWS-Anmeldedaten zu einer Heroku-URL namens „anti-theft-web.herokuapp[.]com“ zu exfiltrieren. „Es scheint, dass der Täter versucht, alle Umgebungsvariablen zu erhalten, sie in Base64 zu kodieren und die Daten an eine Web-App unter der Kontrolle des Täters weiterzuleiten“, so Ching.

Es wird vermutet, dass es dem Angreifer gelungen ist, sich unbefugten Zugriff auf das Konto des Maintainers zu verschaffen, um die neue ctx-Version zu veröffentlichen. Weitere Untersuchungen ergaben, dass der Angreifer die abgelaufene Domain des ursprünglichen Maintainers am 14. Mai 2022 registriert hat.

Linux diff Befehl für das ursprüngliche ctx 0.1.2 Paket und das „neue“ ctx 0.1.2 Paket

„Mit der Kontrolle über den ursprünglichen Domainnamen wäre es trivial, eine entsprechende E-Mail zu erstellen, um eine E-Mail zum Zurücksetzen des Passworts zu erhalten“, so Ching weiter. „Nachdem er sich Zugang zu dem Konto verschafft hat, könnte der Täter das alte Paket entfernen und die neuen, manipulierten Versionen hochladen.

Am 10. Mai 2022 enthüllte der Sicherheitsberater Lance Vick, wie es möglich ist, verfallene NPM-Maintainer-E-Mail-Domains zu kaufen und sie anschließend zu benutzen, um neue Maintainer-E-Mails zu erstellen und die Kontrolle über die Pakete zu übernehmen.

Bei einer Metadatenanalyse von 1,63 Millionen JavaScript-NPM-Paketen, die von Wissenschaftlern von Microsoft und der North Carolina State University im letzten Jahr durchgeführt wurde, wurden 2.818 E-Mail-Adressen von Maintainern entdeckt, die mit abgelaufenen Domains verbunden sind, so dass ein Angreifer 8.494 Pakete kapern kann, indem er die NPM-Konten übernimmt.

„Im Allgemeinen kann jeder Domain-Name von einem Domain-Registrar erworben werden, der es dem Käufer ermöglicht, sich mit einem E-Mail-Hosting-Dienst zu verbinden, um eine persönliche E-Mail-Adresse zu erhalten“, so die Forscher. „Ein Angreifer kann die Domain eines Benutzers kapern, um ein Konto zu übernehmen, das mit dieser E-Mail-Adresse verbunden ist.

Sollte sich herausstellen, dass die Domain eines Betreibers abgelaufen ist, kann der Angreifer die Domain erwerben und die DNS-E-Mail-Austauscheinträge (MX) ändern, um sich die E-Mail-Adresse des Betreibers anzueignen.

„Sieht so aus, als wäre die phpass-Kompromittierung passiert, weil der Besitzer der Paketquelle – ‚hautelook‘ – sein Konto gelöscht hat und der Angreifer dann den Benutzernamen übernommen hat“, sagte der unabhängige Forscher Somdev Sangwan in einer Reihe von Tweets, in denen er einen so genannten Repository-Hijacking-Angriff beschrieb.

Öffentliche Repositories für Open-Source-Code wie Maven, NPM, Packages, PyPi und RubyGems sind ein wichtiger Teil der Software-Lieferkette, auf die sich viele Unternehmen bei der Entwicklung von Anwendungen verlassen.

Auf der anderen Seite sind sie dadurch auch ein attraktives Ziel für eine Vielzahl von Angreifern, die Malware verbreiten wollen.

Dazu gehören Typosquatting, Abhängigkeitsverwirrung und Account-Takeover-Angriffe, die dazu genutzt werden können, gefälschte Versionen legitimer Pakete auszuliefern und so die gesamte Lieferkette zu kompromittieren.

„Entwickler vertrauen blind auf Repositories und installieren Pakete aus diesen Quellen in der Annahme, dass sie sicher sind“, erklärte das DevSecOps-Unternehmen JFrog im vergangenen Jahr und fügte hinzu, dass Bedrohungsakteure die Repositories als Verbreitungsvektor für Malware nutzen und erfolgreiche Angriffe auf Entwickler und CI/CD-Maschinen in der Pipeline starten.