Вони виявили 11 шкідливих пакетів у PyPI

Кілька днів тому було оголошено, що в каталозі PyPI (індекс пакетів Python) було виявлено 11 пакетів, що містять шкідливий код.

Перш ніж проблеми були виявлені, пакети було завантажено загалом приблизно 38 000 разів , і варто зазначити, що виявлені шкідливі пакети вирізняються використанням складних методів приховування каналів зв'язку із серверами зловмисників.

Були виявлені наступні пакети:

  • важливий пакет (6305 завантажень) e важливий пакет (12897): ці пакети встановити підключення до зовнішнього сервера під виглядом підключення до pypi.python.org для забезпечення доступу оболонки до системи (зворотна оболонка) і скористайтеся програмою trevorc2, щоб приховати канал зв'язку.
  • pptest (10001) e ipboards (946): використовував DNS як канал зв'язку для передачі інформації про систему (у першому пакеті ім'я хоста, робочий каталог, внутрішній і зовнішній IP, у другому ім'я користувача та ім'я хоста).
  • owlmoon (3285) DiscordSafety (557) у yiffparty (1859) — Визначте токен служби Discord в системі та відправте його на зовнішній хост.
  • trrfab (287): Надсилає ідентифікатор, ім'я хоста та вміст / etc / passwd, / etc / hosts, / home зовнішньому хосту.
  • 10cent10 (490) - Встановлено зворотне з'єднання оболонки із зовнішнім хостом.
    yandex-yt (4183): показує повідомлення про зламану систему і перенаправляє на сторінку з додатковою інформацією про додаткові дії, видану через nda.ya.ru (api.ya.cc).

Тому зазначається, що особливу увагу слід звернути на метод доступу до зовнішніх хостів, що використовуються в пакетах importantpackage та important-package, які використовують мережу доставки контенту Fastly, що використовується в каталозі PyPI, для приховування своєї активності.

Фактично, запити були відправлені на сервер pypi.python.org (включаючи вказівку імені python.org в SNI в HTTPS-запиті), але ім’я сервера, контрольованого зловмисником, було встановлено в HTTP-заголовку «Host ». Мережа доставки контенту надіслала подібний запит на сервер зловмисника, використовуючи параметри TLS-з'єднання до pypi.python.org під час передачі даних.

Інфраструктура PyPI працює на базі мережі доставки контенту Fastly, яка використовує прозорий проксі-сервер Varnish для кешування типових запитів та застосовує обробку сертифікатів TLS рівня CDN, а не сервери кінцевих точок, для пересилання запитів HTTPS через проксі-сервер. Незалежно від хоста призначення, запити надсилаються на проксі-сервер, який ідентифікує потрібний хост за допомогою HTTP-заголовка "Host", а імена хостів домену прив'язані до типових IP-адрес балансувальника навантаження CDN, знайдених на всіх клієнтах Fastly.

Сервер зловмисників також зареєстровано в CDN Fastly , яка пропонує безкоштовні плани та навіть дозволяє анонімну реєстрацію. Варто зазначити, що подібна схема використовується для надсилання запитів жертві, коли створюється «зворотна оболонка», але ініційована хостом зловмисника. Ззовні взаємодія із сервером зловмисника виглядає як легітимний сеанс з каталогом PyPI, зашифрований за допомогою TLS-сертифіката PyPI. Подібний метод, відомий як «фронтинг домену», раніше використовувався для активного приховування імені хоста шляхом обходу блоків. Це включало використання опції HTTPS, що надається деякими CDN, зазначення фіктивного хоста в SNI та передачу запитуваного імені хоста в заголовку HTTP-хоста в рамках TLS-сеансу.

Щоб приховати шкідливу активність, додатково використано пакет TrevorC2, що робить взаємодію з сервером схожою на звичайний веб-перегляд.

Пакети pptest і ipboards використовували інший підхід для приховування мережевої активності, заснований на кодуванні корисної інформації в запитах до DNS-сервера. Шкідливе програмне забезпечення передає інформацію, виконуючи запити DNS, в яких дані, що передаються на сервер командування та управління, кодуються за допомогою формату base64 в імені субдомену. Зловмисник приймає ці повідомлення, керуючи DNS-сервером домену.

Зрештою, якщо ви зацікавлені дізнатися більше, ви можете знайти деталі за наступним посиланням.


Додати як пріоритетне джерело в Google