Ondsindet pakke rustdecimal opdaget i Rust repository crates.io

Udviklerne af Rust-sproget har advaret om, at en rustdecimal-pakke indeholdende ondsindet kode er blevet identificeret i crates.io-lageret. Pakken var baseret på den legitime rust_decimal-pakke og blev distribueret ved hjælp af lighed i navn (typesquatting) med forventning om, at brugeren ikke ville bemærke fraværet af en understregning, når han søgte eller valgte et modul fra en liste.

Det er bemærkelsesværdigt, at denne strategi viste sig at være vellykket, og med hensyn til antallet af downloads var den fiktive pakke kun lidt bagefter originalen (~111 tusinde downloads af rustdecimal 1.23.1 og 113 tusind af den originale rust_decimal 1.23.1) . Samtidig var størstedelen af ​​downloads af en harmløs klon, der ikke indeholdt ondsindet kode. De ondsindede ændringer blev tilføjet den 25. marts i version rustdecimal 1.23.5, som blev downloadet omkring 500 gange, før problemet blev identificeret, og pakken blev blokeret (det antages, at de fleste af downloads af den ondsindede version blev foretaget af bots) og blev ikke brugt som afhængigheder af andre pakker til stede i lageret (det er muligt, at den skadelige pakke var en afhængighed af slutapplikationerne).

De ondsindede ændringer bestod i at tilføje en ny funktion, Decimal::new, hvis implementering indeholdt sløret kode til download fra en ekstern server og lancering af en eksekverbar fil. Når funktionen blev kaldt, blev miljøvariablen GITLAB_CI kontrolleret, og hvis den var indstillet, blev filen /tmp/git-updater.bin downloadet fra den eksterne server. Den ondsindede handler, der kan downloades, understøttede arbejde på Linux og macOS (Windows-platformen blev ikke understøttet).

Det blev antaget, at den skadelige funktion ville blive udført under test på kontinuerlige integrationssystemer. Efter at have blokeret rustdecimal analyserede crates.io-administratorer indholdet af lageret for lignende ondsindede inserts, men identificerede ikke problemer i andre pakker. Ejere af kontinuerlige integrationssystemer baseret på GitLab-platformen rådes til at sikre, at de projekter, der testes på deres servere, ikke bruger rustdecimalpakken i deres afhængigheder.

Kilde: opennet.ru

Tilføj en kommentar