Schädliches Paket rustdecimal im Rust-Repository crates.io entdeckt

Die Entwickler der Rust-Sprache haben gewarnt, dass im crates.io-Repository ein Rustdecimal-Paket mit Schadcode identifiziert wurde. Das Paket basierte auf dem legitimen Paket rust_decimal und wurde unter Verwendung ähnlicher Namen (Typesquatting) verteilt, mit der Erwartung, dass der Benutzer das Fehlen eines Unterstrichs nicht bemerken würde, wenn er ein Modul sucht oder aus einer Liste auswählt.

Bemerkenswert ist, dass sich diese Strategie als erfolgreich erwies und in Bezug auf die Anzahl der Downloads das fiktive Paket nur geringfügig hinter dem Original zurückblieb (~111 Downloads von rustdecimal 1.23.1 und 113 des ursprünglichen rust_decimal 1.23.1). . Gleichzeitig handelte es sich bei den meisten Downloads um einen harmlosen Klon, der keinen Schadcode enthielt. Die bösartigen Änderungen wurden am 25. März in der Version rustdecimal 1.23.5 hinzugefügt, die etwa 500 Mal heruntergeladen wurde, bevor das Problem erkannt und das Paket blockiert wurde (es wird angenommen, dass die meisten Downloads der bösartigen Version durch Bots erfolgten) und wurde nicht als Abhängigkeit von anderen im Repository vorhandenen Paketen verwendet (es ist möglich, dass das Schadpaket von den Endanwendungen abhängig war).

Die böswilligen Änderungen bestanden darin, eine neue Funktion, Decimal::new, hinzuzufügen, deren Implementierung verschleierten Code zum Herunterladen von einem externen Server und zum Starten einer ausführbaren Datei enthielt. Beim Aufruf der Funktion wurde die Umgebungsvariable GITLAB_CI überprüft und, falls gesetzt, die Datei /tmp/git-updater.bin vom externen Server heruntergeladen. Der herunterladbare Malware-Handler unterstützte die Arbeit unter Linux und macOS (die Windows-Plattform wurde nicht unterstützt).

Es wurde davon ausgegangen, dass die Schadfunktion beim Testen auf Continuous-Integration-Systemen ausgeführt wird. Nach der Blockierung von rustdecimal analysierten die Administratoren von crates.io den Inhalt des Repositorys auf ähnliche bösartige Einfügungen, konnten jedoch keine Probleme in anderen Paketen feststellen. Besitzern von Continuous-Integration-Systemen auf Basis der GitLab-Plattform wird empfohlen, sicherzustellen, dass die auf ihren Servern getesteten Projekte nicht das Paket rustdecimal in ihren Abhängigkeiten verwenden.

Source: opennet.ru

Kommentar hinzufügen