Бэкдор Ted встроили в HAProxy для скрытого перехвата веб-трафика

Rapid7 Labs обнаружила ранее не описанный набор инструментов для Linux, встроенный в троянизированные балансировщики HAProxy двух организаций Южной Кореи из автомобильной и медиасфер. Имплант получил имя Ted по отладочным строкам в бинарном файле; обе жертвы использовали HAProxy 2.8.12.
Бэкдор перехватывал веб-трафик, отдавал изменённые страницы отдельным посетителям и создавал скрытый канал управления. Rapid7 с умеренной уверенностью связывает инструментарий с северокорейскими государственными акторами, однако подчёркивает, что для окончательной атрибуции нужны дополнительные доказательства.
Как Ted маскирует управляющий трафик
Запрос к одному заданному пути изображения переводит фильтр в режим командно-управляющего канала. Такой запрос не попадает на сервер приложения: имплант уменьшает счётчики активных соединений HAProxy, записывает тело команды в именованный канал в /tmp и очищает канал запроса, чтобы данные не пересылались дальше.
Результат возвращается через исходный сокет с обычным заголовком HTTP/1.0 200 OK. По данным Rapid7, через этот канал оператор может отправлять маяки, загружать и скачивать файлы, выполнять команды оболочки и заменять конфигурацию импланта. Поэтому ни журналы бэкенда, ни статистика балансировщика не должны фиксировать такие обращения.
Изменённую страницу получают только запросы, прошедшие несколько проверок. У запроса должен быть User-Agent, а URL и Referer должны соответствовать правилу. Затем проверяется точный адрес клиента или его подсеть /24; альтернативой служит ключ оператора в заголовке Accept-Language. При подмене ответа Ted меняет тип и длину содержимого, принудительно выставляет статус 200 и удаляет Accept-Ranges.
Замена бинарников вместо эксплуатации ошибки
Исследователи отмечают, что это не уязвимость HAProxy. Для установки нужен доступ к выполнению кода на хосте и возможность заменить работающий бинарный файл. Загрузчик действует только на системах, где уже запущены HAProxy или cron, и перед развёртыванием проверяет права root.
Набор заменяет легитимный crond и присваивает ему время создания файла /usr/bin/ssh. Он также удаляет ключевые слова tmp, wget, cron и crond из истории root и шести системных журналов, включая auth.log и audit/audit.log. Rapid7 нашла тот же код в троянизированных sshd, agetty, atd и polkitd; модифицированный sshd шифрует перехваченные пароли и записывает их по фиксированному пути.
Что проверить защитникам
Сопутствующий удалённый троян curlRAT по умолчанию выходит на связь каждые 12 часов, а при установленном оператором флаге сокращает интервал до 30 секунд. Он запускается только при наличии файла-маркера виртуализации. Rapid7 отдельно уточняет, что curlRAT не связан с другим семейством CurlBack RAT, которое приписывают группе SideCopy.
HAProxy 2.8.12 вышел 8 ноября 2024 года, а актуальный на указанной ветке релиз 2.8.28 опубликован 27 августа 2026 года. Обновление устраняет известные ошибки ветки, но не удаляет уже подменённый исполняемый файл. Практический вывод для бизнеса: проверку обновлений следует дополнить контролем целостности бинарников, независимой корреляцией сетевых событий и поведенческим анализом памяти, не полагаясь только на логи приложений и статистику балансировщика.

