У Rust-репозиторії crates.io виявлено шкідливий пакет rustdecimal

Розробники мови Rust попередили про виявлення в репозиторії crates.io пакету rustdecimal, що містить шкідливий код. Пакет був заснований на легітимному пакеті rust_decimal і для поширення користувався схожістю в імені (тайпсквоттінг) з розрахунком на те, що користувач не зверне увагу на відсутність символу підкреслення, здійснюючи пошук або вибираючи модуль зі списку.

Примітно, що зазначена стратегія виявилася успішною і за кількістю завантажень фіктивний пакет лише трохи відстав від оригіналу (~111 тисяч завантажень rustdecimal 1.23.1 та 113 тисяч оригінального rust_decimal 1.23.1). При цьому більшість завантажень припало на нешкідливий клон, що не містить шкідливого коду. Шкідливі зміни були додані 25 березня у версії rustdecimal 1.23.5, яка до виявлення проблеми та блокування пакета була завантажена близько 500 разів (передбачається, що більша частина завантажень шкідливої ​​версії здійснена ботами) і не була використана в залежностях у інших пакетів, присутніх у репозиторії не виключено, що шкідливий пакет був залежним у кінцевих додатків).

Шкідливі зміни зводилися до додавання нової функції Decimal::new, у реалізації якого містився обфусцированный код завантаження із зовнішнього сервера і запуску виконуваного файла. Під час виклику функції здійснювалася перевірка змінної оточення GITLAB_CI, у разі виставлення якої із зовнішнього сервера завантажувався файл /tmp/git-updater.bin. Шкідливий обробник, що завантажується, підтримував роботу в Linux і macOS (платформа Windows не підтримувалася).

Передбачалося, що шкідлива функція буде виконана у процесі тестування на системах безперервної інтеграції. Після блокування rustdecimal адміністратори crates.io виконали аналіз вмісту репозиторію на наявність схожих шкідливих вставок, але не виявили проблем в інших пакетах. Власникам систем безперервної інтеграції на базі платформи GitLab рекомендується переконатися, що проекти, що тестуються на їх серверах, не використовували в залежностях пакет rustdecimal.

Джерело: opennet.ru

Додати коментар або відгук