В сети Tor нашли 333 заражённых выходных узла, перехватывавших SSH
Автор блога kaba.cx (имя в тексте не указано) рассказывает, как в пятницу 2 октября в 09:35 333 заражённых выходных узла (exit relays) сети Tor начали согласованную кампанию: перехватывать SSH-соединения и собирать как можно больше незашифрованных данных. Всего в Tor около 3000 выходных узлов, то есть под контролем атакующих оказалось примерно 10%. Доступ к серверам злоумышленники получили двумя месяцами раньше, в августе, и тихо установили на них полезную нагрузку Ebury 1.8.3, бэкдор для OpenSSH и похититель учётных данных под Linux.
По оценке автора, у атаки было две основные цели: собрать как можно больше незашифрованного почтового трафика (для этого блокировкой ряда портов заражённые выходные узлы были настроены пропускать в основном его) и перехватывать SSH-соединения по схеме «человек посередине» (MITM). Подробный разбор первой части написал в рассылке Tor один из пострадавших, опытный оператор узлов; автор блога сосредоточился на SSH. Если цепочка Tor выходит через заражённый узел, сначала ничего не заметно: зашифрованный веб-трафик идёт как обычно, но SSH-подключение по порту 22 незаметно перенаправляется на один из 12 серверов перехвата. Именно это случилось с автором в пятницу утром: клиент показал предупреждение «REMOTE HOST IDENTIFICATION HAS CHANGED» (идентификация удалённого хоста изменилась). Если проигнорировать предупреждение и войти, атакующий делает три вещи: крадёт пароль, открывает соединение с вашим сервером и наблюдает за каждой вводимой командой, а также открывает второе соединение и заражает сервер Ebury.
В пятницу вечером автор передал свои находки команде сетевого здоровья Tor Project (network health team). Та подтвердила, что это нечто новое, и начала связываться с операторами затронутых узлов; в команде заявили: «Мы раньше не видели подобной атаки». Хронология: 2 октября, начало перехвата; воскресенье 4 октября, команда объявила о проблеме операторам, которые начали отключать выходные узлы, и узлы получили флаг BadExit, после чего клиенты перестали использовать их для выхода трафика; понедельник 5 октября, атакующие перезапустили многие узлы, но из-за флага те могли работать только как промежуточные, а затем все заражённые серверы были отключены, частично операторами, частично самими атакующими. На metrics.torproject.org с 4 октября виден заметный провал, который с тех пор не восстановился. В объявлении команда Tor описала картину так: атакующий получает доступ к Linux-хостам, а если на них работают не выходные узлы, правит файл torrc и превращает их в выходные, чтобы провести SSH-атаку.
Как автор нашёл узлы: с помощью exitmap он написал скрипт, который закреплял конкретный выходной узел и открывал SSH-соединение с его сервера A на сервер B. Сервер A проверял, пришёл ли правильный отпечаток SSH-ключа сервера B, а сервер B, пришло ли соединение с закреплённого узла или с одного из 12 серверов перехвата. Скрипт прогнали по всем примерно 3000 выходным узлам: около дюжины отдали поддельный отпечаток, а более 300 ничего не перехватывали, но направляли трафик через те же серверы перехвата. Одного перенаправления хватало, чтобы счесть узел заражённым. Затем автор использовал ловушку (honeypot) sshesame: обманом заставив MITM войти в неё, он увидел, что атакующие используют paramiko (библиотеку SSH для Python), а Ebury пытаются установить через Perl, сначала проверяя права, затем выполняя команду в кодировке base64.
Открытые вопросы: как именно злоумышленники попали на все эти серверы, неизвестно; одна из версий, взлом самого хостинг-провайдера, но это лишь предположение. Кто стоит за атакой, тоже неизвестно: применение Ebury и широкий сбор незашифрованных данных намекают на финансово мотивированную преступную группу, но и это домысел. Marc-Etienne M. Léveillé на рассылке Tor отметил, что с учётом числа серверов с Ebury в 2009-2023 годах (400 000) вероятно, есть и другие скомпрометированные реле Tor. Автор также подозревает, что атаку запустили в пятницу намеренно, в расчёте, что никто не захочет портить себе выходные ответом. Вывод автора: отключить парольную аутентификацию в пользу SSH-ключей; сам он собирается купить аппаратные ключи. Участник рассылки George добавляет, что реле и мосты нужно воспринимать как рабочие машины, которые часто становятся целью атак.
Ключевые факты
- 2 октября в 09:35 333 заражённых выходных узла Tor (около 10% от примерно 3000) с бэкдором Ebury 1.8.3 начали перехватывать SSH на порту 22, перенаправляя его на 12 серверов перехвата.
- Если проигнорировать предупреждение о смене ключа хоста, атакующий крадёт пароль, видит вводимые команды и заражает сервер жертвы Ebury; кроме того, узлы настроены собирать незашифрованную почту.
- Автор прогнал скрипт на основе exitmap по всем примерно 3000 выходным узлам: около дюжины отдали поддельный отпечаток, более 300 только перенаправляли трафик; после сообщения команде сетевого здоровья Tor узлы 4 октября получили BadExit, к 5 октября все были отключены.
- Как злоумышленники получили доступ к серверам и кто за этим стоит, неизвестно; версии о взломе хостинга и финансово мотивированной группе, предположения.
- Рекомендация автора: отключить парольную аутентификацию SSH в пользу ключей.
Почему это важно
Под контролем атакующих оказалась примерно десятая часть выходных узлов Tor, и команда сетевого здоровья заявила, что подобной атаки раньше не видела. Заражённые узлы перехватывали SSH и незашифрованную почту. Доступ к серверам атакующие получили за два месяца до начала кампании, а значит, заражение долго оставалось незамеченным.
Кому это важно
Пользователям Tor, которые подключаются по SSH через сеть, а также администраторам серверов, к которым так ходят. Операторам реле и мостов Tor: Léveillé указывает, что, вероятно, есть и другие скомпрометированные реле, а George советует относиться к реле и мостам как к рабочим машинам, которые часто становятся целью атак. Всем, кто передаёт почту без шифрования.
Как это применить
Автор советует отключить парольную аутентификацию SSH и перейти на ключи; сам он собирается купить аппаратные ключи. Предупреждение «REMOTE HOST IDENTIFICATION HAS CHANGED» при подключении через Tor нельзя игнорировать: именно после него атакующий крадёт пароль и заражает сервер. Метод автора, закрепить выходной узел через exitmap и проверять, совпадает ли отпечаток ключа и откуда на сервер пришло соединение, описан в тексте достаточно подробно, чтобы его повторить. Тем, кто хочет помочь сети, автор предлагает рассмотреть запуск собственного реле.
Можно ли доверять
Материал, личный блог автора и его собственный разбор, имя автора в тексте не указано. Хронология и слова команды Tor («Мы раньше не видели подобной атаки») приведены самим автором, который ссылается на обсуждение в рассылке Tor. Причины взлома серверов и личность атакующих автор прямо называет неизвестными, а версии о хостинге и финансово мотивированной группе, предположениями. Заголовок оригинала («убрал более 300 узлов») упрощает: узлы отключили операторы и сами атакующие, а флаг BadExit поставила команда Tor.
Риски и подводные камни
Число пострадавших пользователей и украденных паролей в тексте не названо. Атакующие перезапускали узлы уже после пометки BadExit, а по словам Léveillé, могут существовать и другие заражённые реле, так что угроза не обязательно закрыта. Вход по паролю при подмене ключа хоста отдаёт злоумышленнику и пароль, и сервер: Ebury устанавливается через второе соединение. Пока неясно, как атакующие попадают на серверы, защита сводится к гигиене: ключи вместо паролей и внимание к предупреждениям SSH.
«Мы раньше не видели подобной атаки.»
— Команда сетевого здоровья Tor (Tor Network Health Team)