Щоб засудити вторгнення росії в Україну, розробник популярного пакета NPM «node-ipc» випустив нову версію ПЗ. Це оновлення викликало занепокоєння щодо безпеки відкритого коду та ланцюга постачання програмного забезпечення.
Зміни, що були внесені в 10.1.1 і 10.1.2 версії бібліотеки під керівництвом RIAEvangelist, були таргетовані на користувачів з IP-адресами, розташованими в росії або Білорусі. Як акт навмисного саботажу, ПЗ видаляло вміст довільних файлів та замінювало їх на смайлики-серця.
Node-ipc — це відомий модуль вузла, який використовується для локального та віддаленого міжпроцесного зв’язку (IPC). Він сумісний з Linux, macOS та Windows та має понад 1,1 мільйона завантажень на тиждень.
Аналітик компанії Synk Ліран Тал проаналізував оновлення модулю як: «дуже явне зловживання доступом до інформаційного поля споживача та критичний інцидент порушення безпеки ланцюга постачання, який відбудеться для будь-якої системи, в якій буде залучений пакет NPM, якщо буде ідентифікована геолокація росії чи Білорусі».
Проблемі було присвоєно ідентифікатор CVE-2022-23812 та оцінено 9,8 з 10 за системою оцінки вразливостей CVSS. «Шкідливий» код був імплементований 7 березня (у версії 10.1.1), а через 10 годин після цього відбулося друге оновлення.
Цікаво, що попри те, що деструктивні модифікації були видалені з бібліотеки з версією 10.1., менш ніж за чотири години було опубліковано основне оновлення (версія 11.0.0). І в цій версії було додано модуль під назвою «peacenotwar», також випущений RIAEvangelist як форму «ненасильницького протесту проти агресії Росії».
«Кожного разу, під час запуску функціонального модуля node-ipc, він друкує через STDOUT повідомлення, вилучене з модуля peacenotwar. Також розміщує файл на робочому столі користувача з вмістом, що стосується поточної ситуації війни в росії та Україні.», – пояснив Таль.
Станом на 15 березня 2022 року остання версія node-ipc (11.1.0) – оновила версію пакета «peacenotwar» з 9.1.3 до 9.1.5, об’єднала бібліотеку NPM «colors», а також видалила повідомлення з консолі STDOUT.
Варто зазначити, що «colors» разом з іншим пакетом під назвою «faker», були навмисно саботовані на початку січня цього року його розробником Мараком Сквайрсом. Він змусив рухатися вихідний код у нескінченному циклі, що, фактично, зіпсувало роботу інших програм, які залежали від бібліотек.
Як зазначено на Bleeping Computer, де вперше з’явилося повідомлення про зміни, така реакція компанії розробника є цілком зрозумілою і виправданою. При цьому сам розробник коментує ситуацію так: «При всій моїй повазі, але я більше не збираюся підтримувати Fortune 500 (та інші менші компанії) своєю безкоштовною роботою».
У будь-якому випадку ідея використання популярних модулів (інструментів) для висловлення протесту, спричинення руйнівного навантаження та руйнування ланцюга постачання, має великий ризик підірвати довіру до програмного забезпечення з відкритим кодом.
«Цей інцидент безпеки включає деструктивні дії, пов’язані з пошкодженням файлів на диску з боку ПЗ-супроводжувача та його спроби приховати та повторити цей навмисний саботаж у різних формах», – сказав Тал. «Хоча це атака з мотивів протесту, вона підкреслює більшу проблему, з якою стикається ланцюг постачання програмного забезпечення: транзитивні залежності у вашому коді можуть мати величезний вплив на вашу безпеку».