Ondsinnet pakke rustdesimal oppdaget i Rust repository crates.io

Utviklerne av Rust-språket har advart om at en rustdesimalpakke som inneholder ondsinnet kode er identifisert i crates.io-depotet. Pakken var basert på den legitime rust_decimal-pakken og ble distribuert ved å bruke likhet i navn (typesquatting) med forventning om at brukeren ikke ville legge merke til fraværet av et understrek når han søker eller velger en modul fra en liste.

Det er bemerkelsesverdig at denne strategien viste seg å være vellykket, og når det gjelder antall nedlastinger, var den fiktive pakken bare litt bak originalen (~111 tusen nedlastinger av rustdesimal 1.23.1 og 113 tusen av den originale rust_decimal 1.23.1) . Samtidig var flertallet av nedlastingene av en ufarlig klon som ikke inneholdt ondsinnet kode. De skadelige endringene ble lagt til 25. mars i versjon rustdecimal 1.23.5, som ble lastet ned omtrent 500 ganger før problemet ble identifisert og pakken ble blokkert (det antas at de fleste nedlastingene av den skadelige versjonen ble gjort av roboter) og ble ikke brukt som avhengigheter av andre pakker i depotet (det er mulig at den skadelige pakken var en avhengighet av sluttapplikasjonene).

De ondsinnede endringene besto av å legge til en ny funksjon, Decimal::new, hvis implementering inneholdt obfuskert kode for nedlasting fra en ekstern server og lansering av en kjørbar fil. Når funksjonen ble kalt, ble miljøvariabelen GITLAB_CI sjekket, og hvis den er satt, ble filen /tmp/git-updater.bin lastet ned fra den eksterne serveren. Den nedlastbare ondsinnede behandleren støttet arbeid på Linux og macOS (Windows-plattformen ble ikke støttet).

Det ble antatt at den skadelige funksjonen ville bli utført under testing på kontinuerlige integrasjonssystemer. Etter å ha blokkert rustdecimal, analyserte crates.io-administratorer innholdet i depotet for lignende ondsinnede innlegg, men identifiserte ikke problemer i andre pakker. Eiere av kontinuerlige integrasjonssystemer basert på GitLab-plattformen anbefales å sørge for at prosjektene som er testet på deres servere ikke bruker rustdesimalpakken i sine avhengigheter.

Kilde: opennet.ru

Legg til en kommentar