Бэкдор Ted внедрили в сборки HAProxy у двух организаций в Южной Корее
Вредоносный код перехватывал веб-трафик прямо на балансировщике и мог подменять страницы для выбранных посетителей. Rapid7 с умеренной уверенностью связывает инструмент с северокорейскими государственными группами.

Исследователи Rapid7 обнаружили ранее не описанный набор вредоносных инструментов для Linux, встроенный в модифицированные сборки балансировщика нагрузки HAProxy у двух организаций из Южной Кореи. Пострадавшие работают в автомобильном и медиасекторах. Имплант, получивший название Ted по отладочным строкам в бинарном файле, перехватывал HTTP-трафик и выдавал изменённые страницы отдельным посетителям.
Речь не идёт об уязвимости HAProxy: для установки вредоносного кода злоумышленникам требовалось уже иметь возможность выполнить код на сервере и заменить работающий бинарный файл. Rapid7 не смогла установить, когда и каким способом произошёл первоначальный взлом. Предположение об использовании доступного из интернета корпоративного groupware-портала исследователи называют гипотезой, основанной на стороннем исследовании.
Ted маскирует канал управления под обычный веб-трафик. По данным Rapid7, специальный запрос к заданному пути для изображения переводит фильтр в режим командного управления. Запрос не отправляется на внутренний сервер, а счётчики активных соединений HAProxy уменьшаются, из-за чего операция не отражается ни в журналах бэкенда, ни в статистике балансировщика. Команды передаются через именованный канал в /tmp, а ответ возвращается по исходному сокету с заголовком HTTP/1.0 200 OK.
Через этот канал оператор мог отправлять маяки, загружать и скачивать файлы, выполнять команды оболочки и менять конфигурацию импланта. Подмена страниц также была ограничена несколькими условиями: запрос должен содержать User-Agent, соответствовать правилам по URL и referer, а клиент — пройти проверку по IP-адресу либо передать ключ оператора в заголовке Accept-Language. При выдаче изменённого ответа вредоносный код менял тип и длину содержимого, устанавливал статус 200 и удалял заголовок Accept-Ranges.
В составе набора также обнаружены троянизированные версии sshd, agetty, atd и polkitd. Модифицированный sshd шифровал перехваченные пароли в открытом виде и записывал их по фиксированному пути. Загрузчик проверял наличие прав root и разворачивался только на системах, где уже работают HAProxy или cron; затем он заменял crond и удалял из истории команд и шести системных журналов упоминания tmp, wget, cron и crond.
Отдельный троян удалённого доступа, названный Rapid7 curlRAT, по умолчанию связывается с управляющей инфраструктурой каждые 12 часов, а при установленном оператором флаге сокращает интервал до 30 секунд. Он запускается только при наличии маркерного файла, указывающего на виртуализированную среду. Исследователи отдельно подчёркивают, что curlRAT не относится к семейству CurlBack RAT, которое связывают с пакистанской группой SideCopy.
Rapid7 оценила связь набора с северокорейскими государственными операторами с умеренной уверенностью и указала, что для более точной атрибуции нужны дополнительные доказательства. Часть аргументов строится на данных об инфраструктуре, которую в проекте Maltrail помечают как связанную с APT37; при этом в описании Rapid7 также используются параллели с Lazarus и гипотеза о первоначальном доступе, основанная на активности Kimsuky. Шесть доменов из опубликованных индикаторов на 4 сентября уже не разрешались в DNS, поэтому они пригодны прежде всего для проверки исторических журналов, а не для блокировки текущих соединений.