Im Rust-Repository crates.io wurde ein bösartiges Paket rustdecimal entdeckt.

Die Entwickler der Sprache Rust haben vor der Entdeckung eines Pakets rustdecimal im Repository crates.io gewarnt, das bösartigen Code enthĂ€lt. Das Paket basierte auf dem legitimen Paket rust_decimal und nutzte den Ă€hnlichen Namen (Typ-Squatting), in der Annahme, dass die Benutzer die fehlende Unterstrich nicht bemerken wĂŒrden, wĂ€hrend sie nach dem Modul suchten oder es aus der Liste auswĂ€hlten.

Bemerkenswert ist, dass die genannte Strategie erfolgreich war und die Anzahl der Downloads des gefĂ€lschten Pakets nur geringfĂŒgig hinter dem Original zurĂŒckblieb (~111.000 Downloads von rustdecimal 1.23.1 und 113.000 vom originalen rust_decimal 1.23.1). Dabei entfiel die Mehrheit der Downloads auf den harmlosen Klon, der keinen bösartigen Code enthielt. Bösartige Änderungen wurden am 25. MĂ€rz in der Version rustdecimal 1.23.5 hinzugefĂŒgt, die vor der Entdeckung des Problems und der Sperrung des Pakets etwa 500 Mal heruntergeladen wurde (es wird angenommen, dass der grĂ¶ĂŸte Teil der Downloads der bösartigen Version von Bots vorgenommen wurde) und nicht in den AbhĂ€ngigkeiten anderer im Repository vorhandener Pakete verwendet wurde (nicht ausgeschlossen, dass das bösartige Paket in den AbhĂ€ngigkeiten von Endanwendungen war).

Die bösartigen Änderungen bestanden in der HinzufĂŒgung einer neuen Funktion Decimal::new, in deren Implementierung obfuszierter Code zum Herunterladen von externen Server und AusfĂŒhren einer ausfĂŒhrbaren Datei enthalten war. Bei dem Aufruf der Funktion wurde die Umgebungsvariable GITLAB_CI ĂŒberprĂŒft; wenn diese gesetzt war, wurde eine Datei von einem externen Server heruntergeladen: /tmp/git-updater.bin. Der heruntergeladene bösartige Handler unterstĂŒtzte den Betrieb unter Linux und macOS (Windows-Plattform wurde nicht unterstĂŒtzt).

Es wurde angenommen, dass die bösartige Funktion wĂ€hrend der Tests auf Systemen der kontinuierlichen Integration ausgefĂŒhrt wird. Nach der Sperrung von rustdecimal fĂŒhrten die Administratoren von crates.io eine Analyse des Repository-Inhalts auf Ă€hnliche bösartige EinfĂŒgungen durch, konnten jedoch in anderen Paketen keine Probleme feststellen. Den Besitzern von Systemen zur kontinuierlichen Integration auf der Basis der Plattform GitLab wird empfohlen, sicherzustellen, dass ihre zu testenden Servern Projekte das Paket rustdecimal in ihren AbhĂ€ngigkeiten nicht verwendeten.

Quelle: opennet.ru

60GB SSD 8Gb DDR4