Взлом инфраструктуры LineageOS через уязвимость в SaltStack
Разработчики мобильной платформы LineageOS, пришедшего на смену CyanogenMod, предупредили о выявлении следов взлома инфраструктуры проекта. Отмечается, что в 6 часов утра (MSK) 3 мая атакующему удалось получить доступ к основному серверу системы централизованного управления конфигурацией SaltStack через эксплуатацию неисправленной уязвимости. В настоящий момент идёт разбор инцидента и подробности пока недоступны.
Сообщается только, что атака не затронула ключи для формирования цифровых подписей, систему сборки и исходные тексты платформы — ключи размещались на хостах, полностью отделённых от основной инфраструктуры, управляемой через SaltStack, а сборки были остановлены по техническим причинам 30 апреля. Судя по данным на странице status.lineageos.org разработчики уже восстановили сервер с системой рецензирования кода Gerrit, сайт и wiki. Отключёнными остаются сервер со сборками (builds.lineageos.org), портал для загрузки файлов (download.lineageos.org), почтовые серверы и система координации проброса на зеркала.
Атака стала возможна благодаря тому, что сетевой порт (4506) для доступа к SaltStack не был блокирован для внешних запросов межсетевым экраном — атакующему оставалось дождаться появления критической уязвимости в SaltStack и эксплуатаровать её до того, как администраторы установят обновление с исправлением. Всем пользователям SaltStack рекомендуется срочно обновить свои системы и проверить на наличие следов взлома.
Судя по всему, атаки через SaltStack не ограничилась взломом LineageOS и приняли массовый характер — в течение дня различные пользователи, которые не успели обновить SaltStack, отмечают выявление компрометации своих инфраструктур с размещением на серверах кода для майнинга или бэкдоров. В том числе сообщается об аналогичном взломе инфраструктуры системы управления контентом Ghost, который затронул сайты Ghost(Pro) и биллинг (утверждается, что номера кредитный карт не пострадали, но хэши паролей пользователей Ghost могли попасть в руки атакующих).
29 апреля были выпущены обновления платформы SaltStack 3000.2 и 2019.2.4, в которых были устранены две уязвимости (сведения об уязвимостях были опубликованы 30 апреля), которым присвоен высший уровень опасности, так как они без прохождения аутентификации допускают удалённое выполнение кода как на управляющем хосте (salt-master), так и всех управляемых через него серверах.
Первая уязвимость (CVE-2020-11651) вызвана отсутствием должных проверок при вызове методов класса ClearFuncs в процессе salt-master. Уязвимость позволяет удалённому пользователю получить доступ к некоторым методам без аутентификации. В том числе через проблемные методы атакующий может получить токен для доступа с правами root к master-серверу и запустить любые команды на обслуживаемых хостах, на которых запущен демон salt-minion. Патч с устранением данной уязвимости был опубликован 20 дней назад, но после его применения всплывали регрессивныеизменения, приводящие к сбоям и нарушению синхронизации файлов.
Вторая уязвимость (CVE-2020-11652) позволяет через манипуляции с классом ClearFuncs получить доступ к методам через передачу определённым образом оформленных путей, что может использоваться для полного доступа к произвольным каталогам в ФС mastеr-сервера с правами root, но требует наличия аутентифицированного доступа (подобный доступ можно получить при помощи первой уязвимости и использовать вторую уязвимость для полной компрометации всей инфраструктуры).