Опубліковано аналізатор, який виявив 200 шкідливих пакетів у NPM та PyPI

Фонд OpenSSF (Open Source Security Foundation), сформований організацією Linux Foundation і націлений на підвищення безпеки відкритого ПЗ, представив відкритий проект Package Analysis, що розвиває систему аналізу шкідливого коду в пакетах. Код проекту написаний мовою Go та поширюється під ліцензією Apache 2.0. Попереднє сканування рпозиторіїв NPM і PyPI за допомогою запропонованого інструментарію дозволило виявити більше 200 шкідливих пакетів, що раніше не помічені.

Основна частина виявлених проблемних пакетів маніпулює перетином імен з внутрішніми непублічними залежностями проектів (атака dependency confusion) або використовують методи тайпсквотинга (призначення імен, схожих на назви популярних бібліотек), а також викликають у процесі встановлення скрипти, що звертаються до зовнішніх хоста. На думку розробників Package Analysis, більшість виявлених проблемних пакетів швидше за все створено дослідниками безпеки, які беруть участь у програмах отримання винагород за виявлення вразливостей (bug bountie), оскільки дані, що відправляються, обмежуються ім'ям користувача і системи, і дії виконуються явно, без спроб приховати свою поведінку. .

З пакетів із шкідливою активністю відзначаються:

  • PyPI-пакет discordcmd, в якому зафіксовано надсилання нетипових запитів до raw.githubusercontent.com, Discord API та ipinfo.io. Зазначений пакет завантажував код бекдора з GitHub і встановлював його в каталог Windows-клієнта Discord, після чого запускав процес пошуку токенів Discord у файловій системі та відправки їх на зовнішній Discord-сервер, підконтрольний атакуючим.
  • NPM-пакет colorsss, який також намагався пересилати на зовнішній сервер токени від облікового запису Discord.
  • NPM-пакет @roku-web-core/ajax — у процесі встановлення відправляв дані про систему і запускав обробник (reverse shell), який приймає зовнішні з'єднання та запускає команди.
  • PyPI-пакет secrevthree - запускав reverse shell при імпортуванні певного модуля.
  • NPM-пакет random-vouchercode-generator — після імпортування бібліотеки надсилав запит на зовнішній сервер, який повертав команду та час, у який її необхідно запустити.

Робота Package Analysis зводиться до аналізу у вихідних текстах пакетів коду для встановлення мережевих з'єднань, доступу до файлів та запуску команд. Додатково відстежується зміна стану пакетів для визначення додавання шкідливих вставок в одному з випусків спочатку нешкідливого програмного забезпечення. Для моніторингу появи нових пакетів у репозиторіях та внесення змін до раніше розміщених пакетів застосовується інструментарій Package Feeds, що уніфікує роботу з репозиторіями NPM, PyPI, Go, RubyGems, Packagist, NuGet та Crate.

Package Analysis включає три базові компоненти, які можуть використовуватися як у зв'язці, так і окремо:

  • Планувальник запуску робіт з аналізу пакетів на основі даних із Package Feeds.
  • Аналізатор, що безпосередньо перевіряє пакет та оцінює його поведінку з використанням методів статичного аналізу та динамічного трасування. Перевірка здійснюється у ізольованому оточенні.
  • Завантажувач, який містить результати перевірки в сховищі BigQuery.

Джерело: opennet.ru

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