Tailscale выпустила версию 1.104.4 для устранения уязвимостей в своем встроенном SSH-сервере, которые могли позволить злоумышленнику получить доступ к службам и файлам на других серверах, к которым должен иметь доступ только пользователь root. Уязвимости связаны с тем, как Tailscale SSH перенаправляет сетевые соединения — задачу, которую фоновый процесс Tailscale выполняет с привилегиями root. Чтобы использовать их, злоумышленник должен уже контролировать устройство, которому правила доступа сети разрешают открывать SSH-сессию к цели, причем перенаправление разрешено в этом правиле. Уязвимости обнаружены в отчете под названием Tailworm, опубликованном за несколько дней до исправления Эрикой Виндиш из Cyberdione Labs, которая протестировала выпущенные версии клиента Tailscale и автономного управляющего сервера headscale в лаборатории. Tailscale SSH определяет, кто может подключаться, используя идентификатор устройства и файл политики сети, а не пароль или ключ, поэтому злоумышленнику не нужны украденные учетные данные, а лишь точка опоры на устройстве, которому политика уже доверяет. Уязвимости «не позволяют неаутентифицированному злоумышленнику подключаться к произвольным SSH-серверам Tailscale», — заявили в Tailscale, и злоумышленник по-прежнему может получить доступ только к тем машинам, которые разрешены файлом политики. Сервер Tailscale SSH работает только на Linux и в сборке macOS с открытым исходным кодом; собственное устройство злоумышленника может быть любой платформой. Проблема заключается в перенаправлении сокетов. Когда разрешенная SSH-сессия перенаправляла соединение на Unix-сокет на сервере, процесс Tailscale проверял путь, но затем работал от имени root. Временная уловка позволила злоумышленнику подменить другой путь после этой проверки, обойдя защиту, предназначенную для ограничения того, к каким сокетам может осуществляться перенаправление. В собственных тестах Виндиш перенаправление на управляющий сокет Docker привело к получению root-оболочки и чтению файла паролей системы /etc/shadow без административных прав. В бюллетене Tailscale описывает доступ более узко, заявляя, что злоумышленник мог получить доступ к сокетам, доступным только для root, таким как сокет Docker или локальный API tailscaled. В версии 1.104.4 Tailscale изменил сервер для выполнения перенаправления от имени вошедшего в систему пользователя, а не от имени root, и для использования собственных разрешений файловой системы операционной системы вместо предыдущей проверки пути. Релиз охватывает 4 бюллетеня безопасности: Пользователям Tailscale SSH следует обновиться до версии 1.104.4 или новее. Если вы пока не можете обновить сервер, вы можете отключить перенаправление SSH на нем, установив TS_SSH_DISABLE_FORWARDING=1 в среде службы tailscaled и перезапустив службу, что, по словам Tailscale, отключает перенаправление, не отключая Tailscale SSH, и блокирует несколько из наиболее серьезных обнаружений. Tailscale также рекомендует пересмотреть правила доступа SSH, чтобы только те пользователи и устройства, которым нужен доступ, имели его. Tailscale предлагает использовать режим проверки SSH, который требует повторного входа пользователя перед началом сессии, для конфиденциальных систем. Режим проверки не устраняет эти уязвимости перенаправления: он контролирует начало сессии, тогда как перенаправление происходит в рамках уже одобренной сессии. Если сервер уже мог быть скомпрометирован, согласно отчету Виндиш, одного исправления недостаточно. Украденный ключ устройства остается действительным до тех пор, пока устройство не будет удалено в плоскости управления, поскольку переустановка машины не отзывает его. Уведомления Tailscale не охватывают этот случай. Ситуация хуже с headscale, автономным управляющим сервером. На headscale перенаправление SSH предоставляется при каждой принятой сессии и не может быть отключено в политике, поэтому, согласно отчету Виндиш, каждое предоставление SSH там должно рассматриваться как предоставление root. Последний выпуск headscale, версия 0.29.5 от 13 октября, не устраняет сообщенные проблемы. Виндиш назвала эту цепочку «червеобразной». В ее тестах одно скомпрометированное устройство могло распространяться на каждое устройство, разрешенное политикой, без паролей, без украденных ключей и без действий пользователя, менее чем за секунду на шаг. Два механизма контроля остановили распространение в этих тестах. Написание правил доступа как пар «одно устройство к другому» сдерживало его, а привязка ключей устройств к оборудованию, такому как TPM, не позволяла повторно использовать украденную личность где-либо еще. Tailscale отверг описание как «червеобразное». По словам компании, находки не описывают самовоспроизводящийся вредоносный код, который распространяется между машинами самостоятельно, а скорее боковое перемещение, ограниченное соединениями, которые уже разрешены файлом политики. Компания назвала проблемы с повышением привилегий «серьезными проблемами безопасности», заявила, что воспроизвела основные из них, и добавила, что все еще выясняет, какие конфигурации затронуты. На момент публикации 4 бюллетеня не имеют идентификаторов CVE или оценок серьезности, и ни в одном из них не указана самая старая затронутая версия. Отчет также охватывал коннекторы приложений Tailscale, а также функции serve и funnel. Tailscale заявил, что находка, касающаяся коннектора приложений, относится к conn25, экспериментальной функции, которую они не выпускали, и что коннекторы, используемые клиентами сегодня, не затронуты. Из 5 находок, касающихся serve и funnel, они исправили 3 и заявили, что остальные 2 работают как задумано. Виндиш опубликовала отчет, не координируя выпуск с Tailscale заранее, что она описала как «сообщено, но не согласовано». Tailscale заявил, что получил отчет утром в субботу, 24 октября, примерно за 2 часа до того, как Виндиш его опубликовала, и что их инженеры уже изучали те же части кода. Ни Tailscale, ни отчет не говорят о том, что уязвимости использовались в реальных атаках. Код proof-of-concept не является общедоступным, и Виндиш сказала, что передала его только команде безопасности Tailscale. Отчет является последним в серии исправлений в той же части Tailscale в этом году. В июне Tailscale исправил отдельную уязвимость в перенаправлении Unix-сокетов Tailscale SSH, которая позволяла непривилегированному пользователю получить доступ к привилегированному сокету, в версии 1.98.9.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Swati Khandelwal




