V úložisku Rust crates.io bol zistený škodlivý balík rustdecimal

Vývojári jazyka Rust varovali, že v úložisku crates.io bol identifikovaný balík rustdecimal obsahujúci škodlivý kód. Balík bol založený na legitímnom balíku rust_decimal a bol distribuovaný pomocou podobnosti v názve (typesquatting) s očakávaním, že používateľ si nevšimne absenciu podčiarkovníka pri vyhľadávaní alebo výbere modulu zo zoznamu.

Pozoruhodné je, že táto stratégia sa ukázala ako úspešná a čo sa týka počtu stiahnutí, fiktívny balík len mierne zaostával za pôvodným (~111 tisíc stiahnutí rustdecimal 1.23.1 a 113 tisíc pôvodného rust_decimal 1.23.1) . Väčšina stiahnutí bola zároveň neškodného klonu, ktorý neobsahoval škodlivý kód. Škodlivé zmeny boli pridané 25. marca vo verzii rustdecimal 1.23.5, ktorá bola stiahnutá asi 500-krát, kým bol problém identifikovaný a balík bol zablokovaný (predpokladá sa, že väčšinu stiahnutí škodlivej verzie vykonali roboti) a nebol použitý ako závislosti na iných balíkoch prítomných v úložisku (je možné, že škodlivý balík bol závislý od koncových aplikácií).

Škodlivé zmeny spočívali v pridaní novej funkcie Decimal::new, ktorej implementácia obsahovala zahmlený kód na stiahnutie z externého servera a spustenie spustiteľného súboru. Pri volaní funkcie bola skontrolovaná premenná prostredia GITLAB_CI a ak bola nastavená, súbor /tmp/git-updater.bin bol stiahnutý z externého servera. Stiahnuteľný škodlivý obslužný program podporoval prácu v systémoch Linux a macOS (platforma Windows nebola podporovaná).

Predpokladalo sa, že škodlivá funkcia bude vykonaná počas testovania na systémoch s nepretržitou integráciou. Po zablokovaní rustdecimal správcovia crates.io analyzovali obsah úložiska na podobné škodlivé vložky, ale nezistili problémy v iných balíkoch. Vlastníkom kontinuálnych integračných systémov založených na platforme GitLab sa odporúča zabezpečiť, aby projekty testované na ich serveroch nepoužívali vo svojich závislostiach balík rustdecimal.

Zdroj: opennet.ru

Pridať komentár